巷道、库区、库位、车辆、设备

This commit is contained in:
cbs 2025-01-04 17:34:56 +08:00
parent 0017ab3778
commit 101be5a8ad
47 changed files with 2316 additions and 2 deletions

View File

@ -167,4 +167,19 @@ public interface ErrorCodeConstants {
ErrorCode INFORMATION_NOT_EXISTS = new ErrorCode(1_002_029_001, "设备信息不存在");
ErrorCode INFORMATION_MAC_EXIST = new ErrorCode(1_002_029_002, "此Mac地址已经存在");
ErrorCode INFORMATION_MAC_INPUT = new ErrorCode(1_002_029_003, "请输入Mac地址");
// ========== 线库/巷道 1-002-030-000 ==========
ErrorCode HOUSE_LANE_NOT_EXISTS = new ErrorCode(1-002-030-001, "线库不存在");
// ========== 库区 1-002-031-000 ==========
ErrorCode HOUSE_AREA_NOT_EXISTS = new ErrorCode(1-002-031-001, "库区不存在");
// ========== 库位 1-002-032-000 ==========
ErrorCode HOUSE_LOCATION_NOT_EXISTS = new ErrorCode(1-002-032-001, "库位不存在");
// ========== 车辆类型 1-002-033-000==========
ErrorCode MODEL_NOT_EXISTS = new ErrorCode(1-002-033-001, "车辆类型不存在");
// ========== 车辆信息 1-002-034-000 ==========
ErrorCode ROBOT_INFORMATION_NOT_EXISTS = new ErrorCode(1-002-034-001, "车辆信息不存在");
}

View File

@ -0,0 +1,97 @@
package cn.iocoder.yudao.module.system.controller.admin.housearea;
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaRespVO;
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
import cn.iocoder.yudao.module.system.service.housearea.HouseAreaService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 库区")
@RestController
@RequestMapping("/system/ware/house-area")
@Validated
public class HouseAreaController {
@Resource
private HouseAreaService houseAreaService;
@PostMapping("/create")
@Operation(summary = "创建库区")
@PreAuthorize("@ss.hasPermission('ware:house-area:create')")
public CommonResult<Long> createHouseArea(@Valid @RequestBody HouseAreaSaveReqVO createReqVO) {
return success(houseAreaService.createHouseArea(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新库区")
@PreAuthorize("@ss.hasPermission('ware:house-area:update')")
public CommonResult<Boolean> updateHouseArea(@Valid @RequestBody HouseAreaSaveReqVO updateReqVO) {
houseAreaService.updateHouseArea(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除库区")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('ware:house-area:delete')")
public CommonResult<Boolean> deleteHouseArea(@RequestParam("id") Long id) {
houseAreaService.deleteHouseArea(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得库区")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('ware:house-area:query')")
public CommonResult<HouseAreaRespVO> getHouseArea(@RequestParam("id") Long id) {
HouseAreaDO houseArea = houseAreaService.getHouseArea(id);
return success(BeanUtils.toBean(houseArea, HouseAreaRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得库区分页")
@PreAuthorize("@ss.hasPermission('ware:house-area:query')")
public CommonResult<PageResult<HouseAreaRespVO>> getHouseAreaPage(@Valid HouseAreaPageReqVO pageReqVO) {
PageResult<HouseAreaDO> pageResult = houseAreaService.getHouseAreaPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, HouseAreaRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出库区 Excel")
@PreAuthorize("@ss.hasPermission('ware:house-area:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportHouseAreaExcel(@Valid HouseAreaPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<HouseAreaDO> list = houseAreaService.getHouseAreaPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "库区.xls", "数据", HouseAreaRespVO.class,
BeanUtils.toBean(list, HouseAreaRespVO.class));
}
}

View File

@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.system.controller.admin.housearea.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 库区分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class HouseAreaPageReqVO extends PageParam {
@Schema(description = "库区id(自定义)", example = "24710")
private Long areaId;
@Schema(description = "库区名称", example = "李四")
private String areaName;
@Schema(description = "库区说明")
private String areaMsg;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.system.controller.admin.housearea.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 库区 Response VO")
@Data
@ExcelIgnoreUnannotated
public class HouseAreaRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2922")
@ExcelProperty("主键ID")
private Long id;
@Schema(description = "库区id(自定义)", requiredMode = Schema.RequiredMode.REQUIRED, example = "24710")
@ExcelProperty("库区id(自定义)")
private Long areaId;
@Schema(description = "库区名称", example = "李四")
@ExcelProperty("库区名称")
private String areaName;
@Schema(description = "库区说明")
@ExcelProperty("库区说明")
private String areaMsg;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.system.controller.admin.housearea.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 库区新增/修改 Request VO")
@Data
public class HouseAreaSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "2922")
private Long id;
@Schema(description = "库区id(自定义)", requiredMode = Schema.RequiredMode.REQUIRED, example = "24710")
@NotNull(message = "库区id(自定义)不能为空")
private Long areaId;
@Schema(description = "库区名称", example = "李四")
private String areaName;
@Schema(description = "库区说明")
private String areaMsg;
}

View File

@ -0,0 +1,97 @@
package cn.iocoder.yudao.module.system.controller.admin.houselane;
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLanePageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneRespVO;
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
import cn.iocoder.yudao.module.system.service.houselane.WareHouseLaneService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 线库/巷道")
@RestController
@RequestMapping("/system/ware/house-lane")
@Validated
public class WareHouseLaneController {
@Resource
private WareHouseLaneService houseLaneService;
@PostMapping("/create")
@Operation(summary = "创建线库/巷道")
@PreAuthorize("@ss.hasPermission('ware:house-lane:create')")
public CommonResult<Long> createHouseLane(@Valid @RequestBody WareHouseLaneSaveReqVO createReqVO) {
return success(houseLaneService.createHouseLane(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新线库/巷道")
@PreAuthorize("@ss.hasPermission('ware:house-lane:update')")
public CommonResult<Boolean> updateHouseLane(@Valid @RequestBody WareHouseLaneSaveReqVO updateReqVO) {
houseLaneService.updateHouseLane(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除线库/巷道")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('ware:house-lane:delete')")
public CommonResult<Boolean> deleteHouseLane(@RequestParam("id") Long id) {
houseLaneService.deleteHouseLane(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得线库/巷道")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('ware:house-lane:query')")
public CommonResult<WareHouseLaneRespVO> getHouseLane(@RequestParam("id") Long id) {
WareHouseLaneDO houseLane = houseLaneService.getHouseLane(id);
return success(BeanUtils.toBean(houseLane, WareHouseLaneRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得线库/巷道分页")
@PreAuthorize("@ss.hasPermission('ware:house-lane:query')")
public CommonResult<PageResult<WareHouseLaneRespVO>> getHouseLanePage(@Valid WareHouseLanePageReqVO pageReqVO) {
PageResult<WareHouseLaneDO> pageResult = houseLaneService.getHouseLanePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, WareHouseLaneRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出线库/巷道 Excel")
@PreAuthorize("@ss.hasPermission('ware:house-lane:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportHouseLaneExcel(@Valid WareHouseLanePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<WareHouseLaneDO> list = houseLaneService.getHouseLanePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "线库/巷道.xls", "数据", WareHouseLaneRespVO.class,
BeanUtils.toBean(list, WareHouseLaneRespVO.class));
}
}

View File

@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.system.controller.admin.houselane.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 线库/巷道分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class WareHouseLanePageReqVO extends PageParam {
@Schema(description = "巷道id(自定义)", example = "276")
private Long laneId;
@Schema(description = "巷道名称", example = "芋艿")
private String laneName;
@Schema(description = "巷道说明(可以拓展为区域说明)")
private String laneMsg;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.system.controller.admin.houselane.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 线库/巷道 Response VO")
@Data
@ExcelIgnoreUnannotated
public class WareHouseLaneRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4293")
@ExcelProperty("主键ID")
private Long id;
@Schema(description = "巷道id(自定义)", requiredMode = Schema.RequiredMode.REQUIRED, example = "276")
@ExcelProperty("巷道id(自定义)")
private Long laneId;
@Schema(description = "巷道名称", example = "芋艿")
@ExcelProperty("巷道名称")
private String laneName;
@Schema(description = "巷道说明(可以拓展为区域说明)")
@ExcelProperty("巷道说明(可以拓展为区域说明)")
private String laneMsg;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.system.controller.admin.houselane.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 线库/巷道新增/修改 Request VO")
@Data
public class WareHouseLaneSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "4293")
private Long id;
@Schema(description = "巷道id(自定义)", requiredMode = Schema.RequiredMode.REQUIRED, example = "276")
@NotNull(message = "巷道id(自定义)不能为空")
private Long laneId;
@Schema(description = "巷道名称", example = "芋艿")
private String laneName;
@Schema(description = "巷道说明(可以拓展为区域说明)")
private String laneMsg;
}

View File

@ -0,0 +1,97 @@
package cn.iocoder.yudao.module.system.controller.admin.houselocation;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.HouseLocationPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.HouseLocationRespVO;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.HouseLocationSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.HouseLocationDO;
import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 库位")
@RestController
@RequestMapping("/system/ware/house-location")
@Validated
public class HouseLocationController {
@Resource
private HouseLocationService houseLocationService;
@PostMapping("/create")
@Operation(summary = "创建库位")
@PreAuthorize("@ss.hasPermission('ware:house-location:create')")
public CommonResult<Long> createHouseLocation(@Valid @RequestBody HouseLocationSaveReqVO createReqVO) {
return success(houseLocationService.createHouseLocation(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新库位")
@PreAuthorize("@ss.hasPermission('ware:house-location:update')")
public CommonResult<Boolean> updateHouseLocation(@Valid @RequestBody HouseLocationSaveReqVO updateReqVO) {
houseLocationService.updateHouseLocation(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除库位")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('ware:house-location:delete')")
public CommonResult<Boolean> deleteHouseLocation(@RequestParam("id") Long id) {
houseLocationService.deleteHouseLocation(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得库位")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('ware:house-location:query')")
public CommonResult<HouseLocationRespVO> getHouseLocation(@RequestParam("id") Long id) {
HouseLocationDO houseLocation = houseLocationService.getHouseLocation(id);
return success(BeanUtils.toBean(houseLocation, HouseLocationRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得库位分页")
@PreAuthorize("@ss.hasPermission('ware:house-location:query')")
public CommonResult<PageResult<HouseLocationRespVO>> getHouseLocationPage(@Valid HouseLocationPageReqVO pageReqVO) {
PageResult<HouseLocationDO> pageResult = houseLocationService.getHouseLocationPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, HouseLocationRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出库位 Excel")
@PreAuthorize("@ss.hasPermission('ware:house-location:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportHouseLocationExcel(@Valid HouseLocationPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<HouseLocationDO> list = houseLocationService.getHouseLocationPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "库位.xls", "数据", HouseLocationRespVO.class,
BeanUtils.toBean(list, HouseLocationRespVO.class));
}
}

View File

@ -0,0 +1,86 @@
package cn.iocoder.yudao.module.system.controller.admin.houselocation.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 库位分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class HouseLocationPageReqVO extends PageParam {
@Schema(description = "巷道/线库id", example = "12101")
private Long laneId;
@Schema(description = "巷道/线库名称", example = "张三")
private String laneName;
@Schema(description = "库区id(自定义)", example = "10751")
private Long areaId;
@Schema(description = "库区名称", example = "芋艿")
private String areaName;
@Schema(description = "库位编号")
private String locationNo;
@Schema(description = "弧度")
private String locationYaw;
@Schema(description = "分组名称", example = "李四")
private String groupName;
@Schema(description = "物料消息")
private String skuInfo;
@Schema(description = "启用/禁用0禁用、1启用")
private Integer locationEnable;
@Schema(description = "锁定/正常0锁定、1正常")
private Integer locationLock;
@Schema(description = "状态0空闲、1占用", example = "2")
private Integer locationUseStatus;
@Schema(description = "库位坐标x轴")
private BigDecimal locationX;
@Schema(description = "库位坐标y轴")
private BigDecimal locationY;
@Schema(description = "宽(库位上目前所放物品的宽)")
private BigDecimal locationWide;
@Schema(description = "深(库位上目前所放物品的深)")
private BigDecimal locationDeep;
@Schema(description = "高(库位上目前所放物品的高)")
private BigDecimal locationHeight;
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
private BigDecimal locationDefaultHeight;
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
private BigDecimal locationTotalHeight;
@Schema(description = "机车上报的托盘高度")
private BigDecimal locationTrayHeight;
@Schema(description = "层数")
private Integer locationStorey;
@Schema(description = "点位类型0库位、1等待点、2输送线取托盘点、3出库放托盘点", example = "2")
private Integer locationType;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,107 @@
package cn.iocoder.yudao.module.system.controller.admin.houselocation.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 库位 Response VO")
@Data
@ExcelIgnoreUnannotated
public class HouseLocationRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31832")
@ExcelProperty("主键ID")
private Long id;
@Schema(description = "巷道/线库id", example = "12101")
@ExcelProperty("巷道/线库id")
private Long laneId;
@Schema(description = "巷道/线库名称", example = "张三")
@ExcelProperty("巷道/线库名称")
private String laneName;
@Schema(description = "库区id(自定义)", example = "10751")
@ExcelProperty("库区id(自定义)")
private Long areaId;
@Schema(description = "库区名称", example = "芋艿")
@ExcelProperty("库区名称")
private String areaName;
@Schema(description = "库位编号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("库位编号")
private String locationNo;
@Schema(description = "弧度")
private String locationYaw;
@Schema(description = "分组名称", example = "李四")
@ExcelProperty("分组名称")
private String groupName;
@Schema(description = "物料消息")
@ExcelProperty("物料消息")
private String skuInfo;
@Schema(description = "启用/禁用0禁用、1启用")
@ExcelProperty("启用/禁用0禁用、1启用")
private Integer locationEnable;
@Schema(description = "锁定/正常0锁定、1正常")
@ExcelProperty("锁定/正常0锁定、1正常")
private Integer locationLock;
@Schema(description = "状态0空闲、1占用", example = "2")
@ExcelProperty("状态0空闲、1占用")
private Integer locationUseStatus;
@Schema(description = "库位坐标x轴")
@ExcelProperty("库位坐标x轴")
private BigDecimal locationX;
@Schema(description = "库位坐标y轴")
@ExcelProperty("库位坐标y轴")
private BigDecimal locationY;
@Schema(description = "宽(库位上目前所放物品的宽)")
@ExcelProperty("宽(库位上目前所放物品的宽)")
private BigDecimal locationWide;
@Schema(description = "深(库位上目前所放物品的深)")
@ExcelProperty("深(库位上目前所放物品的深)")
private BigDecimal locationDeep;
@Schema(description = "高(库位上目前所放物品的高)")
@ExcelProperty("高(库位上目前所放物品的高)")
private BigDecimal locationHeight;
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
@ExcelProperty("库位默认高度(现场有水泥高出地面的高度)")
private BigDecimal locationDefaultHeight;
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
@ExcelProperty("机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
private BigDecimal locationTotalHeight;
@Schema(description = "机车上报的托盘高度")
@ExcelProperty("机车上报的托盘高度")
private BigDecimal locationTrayHeight;
@Schema(description = "层数")
@ExcelProperty("层数")
private Integer locationStorey;
@Schema(description = "点位类型0库位、1等待点、2输送线取托盘点、3出库放托盘点", example = "2")
@ExcelProperty("点位类型0库位、1等待点、2输送线取托盘点、3出库放托盘点")
private Integer locationType;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,80 @@
package cn.iocoder.yudao.module.system.controller.admin.houselocation.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 库位新增/修改 Request VO")
@Data
public class HouseLocationSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31832")
private Long id;
@Schema(description = "巷道/线库id", example = "12101")
private Long laneId;
@Schema(description = "巷道/线库名称", example = "张三")
private String laneName;
@Schema(description = "库区id(自定义)", example = "10751")
private Long areaId;
@Schema(description = "库区名称", example = "芋艿")
private String areaName;
@Schema(description = "库位编号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "库位编号不能为空")
private String locationNo;
@Schema(description = "弧度")
private String locationYaw;
@Schema(description = "分组名称", example = "李四")
private String groupName;
@Schema(description = "物料消息")
private String skuInfo;
@Schema(description = "启用/禁用0禁用、1启用")
private Integer locationEnable;
@Schema(description = "锁定/正常0锁定、1正常")
private Integer locationLock;
@Schema(description = "状态0空闲、1占用", example = "2")
private Integer locationUseStatus;
@Schema(description = "库位坐标x轴")
private BigDecimal locationX;
@Schema(description = "库位坐标y轴")
private BigDecimal locationY;
@Schema(description = "宽(库位上目前所放物品的宽)")
private BigDecimal locationWide;
@Schema(description = "深(库位上目前所放物品的深)")
private BigDecimal locationDeep;
@Schema(description = "高(库位上目前所放物品的高)")
private BigDecimal locationHeight;
@Schema(description = "库位默认高度(现场有水泥高出地面的高度)")
private BigDecimal locationDefaultHeight;
@Schema(description = "机车上报的高度/总高(如果两个箱子叠加,就是叠加后的总高度)")
private BigDecimal locationTotalHeight;
@Schema(description = "机车上报的托盘高度")
private BigDecimal locationTrayHeight;
@Schema(description = "层数")
private Integer locationStorey;
@Schema(description = "点位类型0库位、1等待点、2输送线取托盘点、3出库放托盘点", example = "2")
private Integer locationType;
}

View File

@ -0,0 +1,96 @@
package cn.iocoder.yudao.module.system.controller.admin.robot;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationRespVO;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO;
import cn.iocoder.yudao.module.system.service.robot.RobotInformationService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 车辆信息")
@RestController
@RequestMapping("/system/robot/information")
@Validated
public class RobotInformationController {
@Resource
private RobotInformationService informationService;
@PostMapping("/create")
@Operation(summary = "创建车辆信息")
@PreAuthorize("@ss.hasPermission('robot:information:create')")
public CommonResult<Long> createInformation(@Valid @RequestBody RobotInformationSaveReqVO createReqVO) {
return success(informationService.createInformation(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新车辆信息")
@PreAuthorize("@ss.hasPermission('robot:information:update')")
public CommonResult<Boolean> updateInformation(@Valid @RequestBody RobotInformationSaveReqVO updateReqVO) {
informationService.updateInformation(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除车辆信息")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('robot:information:delete')")
public CommonResult<Boolean> deleteInformation(@RequestParam("id") Long id) {
informationService.deleteInformation(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得车辆信息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('robot:information:query')")
public CommonResult<RobotInformationRespVO> getInformation(@RequestParam("id") Long id) {
RobotInformationDO information = informationService.getInformation(id);
return success(BeanUtils.toBean(information, RobotInformationRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得车辆信息分页")
@PreAuthorize("@ss.hasPermission('robot:information:query')")
public CommonResult<PageResult<RobotInformationRespVO>> getInformationPage(@Valid RobotInformationPageReqVO pageReqVO) {
PageResult<RobotInformationDO> pageResult = informationService.getInformationPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, RobotInformationRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出车辆信息 Excel")
@PreAuthorize("@ss.hasPermission('robot:information:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportInformationExcel(@Valid RobotInformationPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<RobotInformationDO> list = informationService.getInformationPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "车辆信息.xls", "数据", RobotInformationRespVO.class,
BeanUtils.toBean(list, RobotInformationRespVO.class));
}
}

View File

@ -0,0 +1,94 @@
package cn.iocoder.yudao.module.system.controller.admin.robot;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotModelPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotModelRespVO;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotModelSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotModelDO;
import cn.iocoder.yudao.module.system.service.robot.RobotModelService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 车辆类型")
@RestController
@RequestMapping("/system/robot/model")
@Validated
public class RobotModelController {
@Resource
private RobotModelService modelService;
@PostMapping("/create")
@Operation(summary = "创建车辆类型")
@PreAuthorize("@ss.hasPermission('robot:model:create')")
public CommonResult<Long> createModel(@Valid @RequestBody RobotModelSaveReqVO createReqVO) {
return success(modelService.createModel(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新车辆类型")
@PreAuthorize("@ss.hasPermission('robot:model:update')")
public CommonResult<Boolean> updateModel(@Valid @RequestBody RobotModelSaveReqVO updateReqVO) {
modelService.updateModel(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除车辆类型")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('robot:model:delete')")
public CommonResult<Boolean> deleteModel(@RequestParam("id") Long id) {
modelService.deleteModel(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得车辆类型")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('robot:model:query')")
public CommonResult<RobotModelRespVO> getModel(@RequestParam("id") Long id) {
RobotModelDO model = modelService.getModel(id);
return success(BeanUtils.toBean(model, RobotModelRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得车辆类型分页")
@PreAuthorize("@ss.hasPermission('robot:model:query')")
public CommonResult<PageResult<RobotModelRespVO>> getModelPage(@Valid RobotModelPageReqVO pageReqVO) {
PageResult<RobotModelDO> pageResult = modelService.getModelPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, RobotModelRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出车辆类型 Excel")
@PreAuthorize("@ss.hasPermission('robot:model:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportModelExcel(@Valid RobotModelPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<RobotModelDO> list = modelService.getModelPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "车辆类型.xls", "数据", RobotModelRespVO.class,
BeanUtils.toBean(list, RobotModelRespVO.class));
}
}

View File

@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.system.controller.admin.robot.vo;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 车辆信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class RobotInformationPageReqVO extends PageParam {
@Schema(description = "车辆类型表id", example = "26319")
private Long robotModelId;
@Schema(description = "车辆类型")
private String robotModelNumber;
@Schema(description = "AGV编号")
private String robotNo;
@Schema(description = "任务模式0拒收任务、1正常")
private Integer robotTaskModel;
@Schema(description = "mac地址")
private String macAddress;
@Schema(description = "上传图片附件", example = "https://www.iocoder.cn")
private String url;
@Schema(description = "AGV状态0暂停且无任务、1暂停(有处理中的任务)、2任务中、3待命", example = "1")
private Integer robotStatus;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,50 @@
package cn.iocoder.yudao.module.system.controller.admin.robot.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 车辆信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RobotInformationRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24068")
@ExcelProperty("主键ID")
private Long id;
@Schema(description = "车辆类型表id", example = "26319")
@ExcelProperty("车辆类型表id")
private Long robotModelId;
@Schema(description = "车辆类型")
@ExcelProperty("车辆类型")
private String robotModelNumber;
@Schema(description = "AGV编号")
@ExcelProperty("AGV编号")
private String robotNo;
@Schema(description = "任务模式0拒收任务、1正常", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("任务模式0拒收任务、1正常")
private Integer robotTaskModel;
@Schema(description = "mac地址")
@ExcelProperty("mac地址")
private String macAddress;
@Schema(description = "上传图片附件", example = "https://www.iocoder.cn")
@ExcelProperty("上传图片附件")
private String url;
@Schema(description = "AGV状态0暂停且无任务、1暂停(有处理中的任务)、2任务中、3待命", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("AGV状态0暂停且无任务、1暂停(有处理中的任务)、2任务中、3待命")
private Integer robotStatus;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.system.controller.admin.robot.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 车辆信息新增/修改 Request VO")
@Data
public class RobotInformationSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24068")
private Long id;
@Schema(description = "车辆类型表id", example = "26319")
private Long robotModelId;
@Schema(description = "车辆类型")
private String robotModelNumber;
@Schema(description = "AGV编号")
private String robotNo;
@Schema(description = "任务模式0拒收任务、1正常", requiredMode = Schema.RequiredMode.REQUIRED)
private Integer robotTaskModel;
@Schema(description = "mac地址")
private String macAddress;
@Schema(description = "上传图片附件", example = "https://www.iocoder.cn")
private String url;
@Schema(description = "AGV状态0暂停且无任务、1暂停(有处理中的任务)、2任务中、3待命", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Integer robotStatus;
}

View File

@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.system.controller.admin.robot.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 车辆类型分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class RobotModelPageReqVO extends PageParam {
@Schema(description = "车辆类型")
private String robotModelNumber;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,27 @@
package cn.iocoder.yudao.module.system.controller.admin.robot.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 车辆类型 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RobotModelRespVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15571")
@ExcelProperty("主键ID")
private Long id;
@Schema(description = "车辆类型", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("车辆类型")
private String robotModelNumber;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.system.controller.admin.robot.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@Schema(description = "管理后台 - 车辆类型新增/修改 Request VO")
@Data
public class RobotModelSaveReqVO {
@Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "15571")
private Long id;
@Schema(description = "车辆类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "车辆类型不能为空")
private String robotModelNumber;
}

View File

@ -0,0 +1,40 @@
package cn.iocoder.yudao.module.system.dal.dataobject.housearea;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 库区 DO
*
* @author 陈宾顺
*/
@TableName("ware_house_area")
@KeySequence("ware_house_area_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HouseAreaDO extends BaseDO {
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 库区id(自定义)
*/
private Long areaId;
/**
* 库区名称
*/
private String areaName;
/**
* 库区说明
*/
private String areaMsg;
}

View File

@ -0,0 +1,43 @@
package cn.iocoder.yudao.module.system.dal.dataobject.houselane;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 线库/巷道 DO
*
* @author 陈宾顺
*/
@TableName("ware_house_lane")
@KeySequence("ware_house_lane_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WareHouseLaneDO extends BaseDO {
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 巷道id(自定义)
*/
private Long laneId;
/**
* 巷道名称
*/
private String laneName;
/**
* 巷道说明(可以拓展为区域说明)
*/
private String laneMsg;
}

View File

@ -0,0 +1,124 @@
package cn.iocoder.yudao.module.system.dal.dataobject.houselocation;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 库位 DO
*
* @author 陈宾顺
*/
@TableName("ware_house_location")
@KeySequence("ware_house_location_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HouseLocationDO extends BaseDO {
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 巷道/线库id
*/
private Long laneId;
/**
* 巷道/线库名称
*/
private String laneName;
/**
* 库区id(自定义)
*/
private Long areaId;
/**
* 库区名称
*/
private String areaName;
/**
* 库位编号
*/
private String locationNo;
/**
* 弧度
*/
private String locationYaw;
/**
* 分组名称
*/
private String groupName;
/**
* 物料消息
*/
private String skuInfo;
/**
* 启用/禁用0禁用1启用
*/
private Integer locationEnable;
/**
* 锁定/正常0锁定1正常
*/
private Integer locationLock;
/**
* 状态0空闲1占用
*/
private Integer locationUseStatus;
/**
* 库位坐标x轴
*/
private BigDecimal locationX;
/**
* 库位坐标y轴
*/
private BigDecimal locationY;
/**
* (库位上目前所放物品的宽)
*/
private BigDecimal locationWide;
/**
* (库位上目前所放物品的深)
*/
private BigDecimal locationDeep;
/**
* (库位上目前所放物品的高)
*/
private BigDecimal locationHeight;
/**
* 库位默认高度(现场有水泥高出地面的高度)
*/
private BigDecimal locationDefaultHeight;
/**
* 机车上报的高度/总高(如果两个箱子叠加就是叠加后的总高度)
*/
private BigDecimal locationTotalHeight;
/**
* 机车上报的托盘高度
*/
private BigDecimal locationTrayHeight;
/**
* 层数
*/
private Integer locationStorey;
/**
* 点位类型0库位1等待点2输送线取托盘点3出库放托盘点
*/
private Integer locationType;
}

View File

@ -0,0 +1,59 @@
package cn.iocoder.yudao.module.system.dal.dataobject.robot;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 车辆信息 DO
*
* @author 陈宾顺
*/
@TableName("robot_information")
@KeySequence("robot_information_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RobotInformationDO extends BaseDO {
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 车辆类型表id
*/
private Long robotModelId;
/**
* 车辆类型
*/
private String robotModelNumber;
/**
* AGV编号
*/
private String robotNo;
/**
* 任务模式0拒收任务1正常
*/
private Integer robotTaskModel;
/**
* mac地址
*/
private String macAddress;
/**
* 上传图片附件
*/
private String url;
/**
* AGV状态0暂停且无任务1暂停(有处理中的任务)2任务中3待命
*/
private Integer robotStatus;
}

View File

@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.system.dal.dataobject.robot;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/**
* 车辆类型 DO
*
* @author 陈宾顺
*/
@TableName("robot_model")
@KeySequence("robot_model_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RobotModelDO extends BaseDO {
/**
* 主键ID
*/
@TableId
private Long id;
/**
* 车辆类型
*/
private String robotModelNumber;
}

View File

@ -0,0 +1,29 @@
package cn.iocoder.yudao.module.system.dal.mysql.housearea;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 库区 Mapper
*
* @author 陈宾顺
*/
@Mapper
public interface HouseAreaMapper extends BaseMapperX<HouseAreaDO> {
default PageResult<HouseAreaDO> selectPage(HouseAreaPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<HouseAreaDO>()
.eqIfPresent(HouseAreaDO::getAreaId, reqVO.getAreaId())
.likeIfPresent(HouseAreaDO::getAreaName, reqVO.getAreaName())
.eqIfPresent(HouseAreaDO::getAreaMsg, reqVO.getAreaMsg())
.betweenIfPresent(HouseAreaDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(HouseAreaDO::getId));
}
}

View File

@ -0,0 +1,29 @@
package cn.iocoder.yudao.module.system.dal.mysql.houselane;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLanePageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 线库/巷道 Mapper
*
* @author 陈宾顺
*/
@Mapper
public interface WareHouseLaneMapper extends BaseMapperX<WareHouseLaneDO> {
default PageResult<WareHouseLaneDO> selectPage(WareHouseLanePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<WareHouseLaneDO>()
.eqIfPresent(WareHouseLaneDO::getLaneId, reqVO.getLaneId())
.likeIfPresent(WareHouseLaneDO::getLaneName, reqVO.getLaneName())
.eqIfPresent(WareHouseLaneDO::getLaneMsg, reqVO.getLaneMsg())
.betweenIfPresent(WareHouseLaneDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(WareHouseLaneDO::getId));
}
}

View File

@ -0,0 +1,47 @@
package cn.iocoder.yudao.module.system.dal.mysql.houselocation;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.HouseLocationPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.HouseLocationDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 库位 Mapper
*
* @author 陈宾顺
*/
@Mapper
public interface HouseLocationMapper extends BaseMapperX<HouseLocationDO> {
default PageResult<HouseLocationDO> selectPage(HouseLocationPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<HouseLocationDO>()
.eqIfPresent(HouseLocationDO::getLaneId, reqVO.getLaneId())
.likeIfPresent(HouseLocationDO::getLaneName, reqVO.getLaneName())
.eqIfPresent(HouseLocationDO::getAreaId, reqVO.getAreaId())
.likeIfPresent(HouseLocationDO::getAreaName, reqVO.getAreaName())
.eqIfPresent(HouseLocationDO::getLocationNo, reqVO.getLocationNo())
.eqIfPresent(HouseLocationDO::getLocationYaw, reqVO.getLocationYaw())
.likeIfPresent(HouseLocationDO::getGroupName, reqVO.getGroupName())
.eqIfPresent(HouseLocationDO::getSkuInfo, reqVO.getSkuInfo())
.eqIfPresent(HouseLocationDO::getLocationEnable, reqVO.getLocationEnable())
.eqIfPresent(HouseLocationDO::getLocationLock, reqVO.getLocationLock())
.eqIfPresent(HouseLocationDO::getLocationUseStatus, reqVO.getLocationUseStatus())
.eqIfPresent(HouseLocationDO::getLocationX, reqVO.getLocationX())
.eqIfPresent(HouseLocationDO::getLocationY, reqVO.getLocationY())
.eqIfPresent(HouseLocationDO::getLocationWide, reqVO.getLocationWide())
.eqIfPresent(HouseLocationDO::getLocationDeep, reqVO.getLocationDeep())
.eqIfPresent(HouseLocationDO::getLocationHeight, reqVO.getLocationHeight())
.eqIfPresent(HouseLocationDO::getLocationDefaultHeight, reqVO.getLocationDefaultHeight())
.eqIfPresent(HouseLocationDO::getLocationTotalHeight, reqVO.getLocationTotalHeight())
.eqIfPresent(HouseLocationDO::getLocationTrayHeight, reqVO.getLocationTrayHeight())
.eqIfPresent(HouseLocationDO::getLocationStorey, reqVO.getLocationStorey())
.eqIfPresent(HouseLocationDO::getLocationType, reqVO.getLocationType())
.betweenIfPresent(HouseLocationDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(HouseLocationDO::getId));
}
}

View File

@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.system.dal.mysql.robot;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 车辆信息 Mapper
*
* @author 陈宾顺
*/
@Mapper
public interface RobotInformationMapper extends BaseMapperX<RobotInformationDO> {
default PageResult<RobotInformationDO> selectPage(RobotInformationPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<RobotInformationDO>()
.eqIfPresent(RobotInformationDO::getRobotModelId, reqVO.getRobotModelId())
.eqIfPresent(RobotInformationDO::getRobotModelNumber, reqVO.getRobotModelNumber())
.eqIfPresent(RobotInformationDO::getRobotNo, reqVO.getRobotNo())
.eqIfPresent(RobotInformationDO::getRobotTaskModel, reqVO.getRobotTaskModel())
.eqIfPresent(RobotInformationDO::getMacAddress, reqVO.getMacAddress())
.eqIfPresent(RobotInformationDO::getUrl, reqVO.getUrl())
.eqIfPresent(RobotInformationDO::getRobotStatus, reqVO.getRobotStatus())
.betweenIfPresent(RobotInformationDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(RobotInformationDO::getId));
}
}

View File

@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.system.dal.mysql.robot;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotModelPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotModelDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 车辆类型 Mapper
*
* @author 陈宾顺
*/
@Mapper
public interface RobotModelMapper extends BaseMapperX<RobotModelDO> {
default PageResult<RobotModelDO> selectPage(RobotModelPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<RobotModelDO>()
.eqIfPresent(RobotModelDO::getRobotModelNumber, reqVO.getRobotModelNumber())
.betweenIfPresent(RobotModelDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(RobotModelDO::getId));
}
}

View File

@ -0,0 +1,54 @@
package cn.iocoder.yudao.module.system.service.housearea;
import javax.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
/**
* 库区 Service 接口
*
* @author 陈宾顺
*/
public interface HouseAreaService {
/**
* 创建库区
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createHouseArea(@Valid HouseAreaSaveReqVO createReqVO);
/**
* 更新库区
*
* @param updateReqVO 更新信息
*/
void updateHouseArea(@Valid HouseAreaSaveReqVO updateReqVO);
/**
* 删除库区
*
* @param id 编号
*/
void deleteHouseArea(Long id);
/**
* 获得库区
*
* @param id 编号
* @return 库区
*/
HouseAreaDO getHouseArea(Long id);
/**
* 获得库区分页
*
* @param pageReqVO 分页查询
* @return 库区分页
*/
PageResult<HouseAreaDO> getHouseAreaPage(HouseAreaPageReqVO pageReqVO);
}

View File

@ -0,0 +1,72 @@
package cn.iocoder.yudao.module.system.service.housearea;
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO;
import cn.iocoder.yudao.module.system.dal.mysql.housearea.HouseAreaMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_AREA_NOT_EXISTS;
/**
* 库区 Service 实现类
*
* @author 陈宾顺
*/
@Service
@Validated
public class HouseAreaServiceImpl implements HouseAreaService {
@Resource
private HouseAreaMapper houseAreaMapper;
@Override
public Long createHouseArea(HouseAreaSaveReqVO createReqVO) {
// 插入
HouseAreaDO houseArea = BeanUtils.toBean(createReqVO, HouseAreaDO.class);
houseAreaMapper.insert(houseArea);
// 返回
return houseArea.getId();
}
@Override
public void updateHouseArea(HouseAreaSaveReqVO updateReqVO) {
// 校验存在
validateHouseAreaExists(updateReqVO.getId());
// 更新
HouseAreaDO updateObj = BeanUtils.toBean(updateReqVO, HouseAreaDO.class);
houseAreaMapper.updateById(updateObj);
}
@Override
public void deleteHouseArea(Long id) {
// 校验存在
validateHouseAreaExists(id);
// 删除
houseAreaMapper.deleteById(id);
}
private void validateHouseAreaExists(Long id) {
if (houseAreaMapper.selectById(id) == null) {
throw exception(HOUSE_AREA_NOT_EXISTS);
}
}
@Override
public HouseAreaDO getHouseArea(Long id) {
return houseAreaMapper.selectById(id);
}
@Override
public PageResult<HouseAreaDO> getHouseAreaPage(HouseAreaPageReqVO pageReqVO) {
return houseAreaMapper.selectPage(pageReqVO);
}
}

View File

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.system.service.houselane;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLanePageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
/**
* 线库/巷道 Service 接口
*
* @author 陈宾顺
*/
public interface WareHouseLaneService {
/**
* 创建线库/巷道
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createHouseLane(@Valid WareHouseLaneSaveReqVO createReqVO);
/**
* 更新线库/巷道
*
* @param updateReqVO 更新信息
*/
void updateHouseLane(@Valid WareHouseLaneSaveReqVO updateReqVO);
/**
* 删除线库/巷道
*
* @param id 编号
*/
void deleteHouseLane(Long id);
/**
* 获得线库/巷道
*
* @param id 编号
* @return 线库/巷道
*/
WareHouseLaneDO getHouseLane(Long id);
/**
* 获得线库/巷道分页
*
* @param pageReqVO 分页查询
* @return 线库/巷道分页
*/
PageResult<WareHouseLaneDO> getHouseLanePage(WareHouseLanePageReqVO pageReqVO);
}

View File

@ -0,0 +1,73 @@
package cn.iocoder.yudao.module.system.service.houselane;
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLanePageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.houselane.vo.WareHouseLaneSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO;
import cn.iocoder.yudao.module.system.dal.mysql.houselane.WareHouseLaneMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_LANE_NOT_EXISTS;
/**
* 线库/巷道 Service 实现类
*
* @author 陈宾顺
*/
@Service
@Validated
public class WareHouseLaneServiceImpl implements WareHouseLaneService {
@Resource
private WareHouseLaneMapper houseLaneMapper;
@Override
public Long createHouseLane(WareHouseLaneSaveReqVO createReqVO) {
// 插入
WareHouseLaneDO houseLane = BeanUtils.toBean(createReqVO, WareHouseLaneDO.class);
houseLaneMapper.insert(houseLane);
// 返回
return houseLane.getId();
}
@Override
public void updateHouseLane(WareHouseLaneSaveReqVO updateReqVO) {
// 校验存在
validateHouseLaneExists(updateReqVO.getId());
// 更新
WareHouseLaneDO updateObj = BeanUtils.toBean(updateReqVO, WareHouseLaneDO.class);
houseLaneMapper.updateById(updateObj);
}
@Override
public void deleteHouseLane(Long id) {
// 校验存在
validateHouseLaneExists(id);
// 删除
houseLaneMapper.deleteById(id);
}
private void validateHouseLaneExists(Long id) {
if (houseLaneMapper.selectById(id) == null) {
throw exception(HOUSE_LANE_NOT_EXISTS);
}
}
@Override
public WareHouseLaneDO getHouseLane(Long id) {
return houseLaneMapper.selectById(id);
}
@Override
public PageResult<WareHouseLaneDO> getHouseLanePage(WareHouseLanePageReqVO pageReqVO) {
return houseLaneMapper.selectPage(pageReqVO);
}
}

View File

@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.system.service.houselocation;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.HouseLocationPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.HouseLocationSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.HouseLocationDO;
/**
* 库位 Service 接口
*
* @author 陈宾顺
*/
public interface HouseLocationService {
/**
* 创建库位
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createHouseLocation(@Valid HouseLocationSaveReqVO createReqVO);
/**
* 更新库位
*
* @param updateReqVO 更新信息
*/
void updateHouseLocation(@Valid HouseLocationSaveReqVO updateReqVO);
/**
* 删除库位
*
* @param id 编号
*/
void deleteHouseLocation(Long id);
/**
* 获得库位
*
* @param id 编号
* @return 库位
*/
HouseLocationDO getHouseLocation(Long id);
/**
* 获得库位分页
*
* @param pageReqVO 分页查询
* @return 库位分页
*/
PageResult<HouseLocationDO> getHouseLocationPage(HouseLocationPageReqVO pageReqVO);
}

View File

@ -0,0 +1,73 @@
package cn.iocoder.yudao.module.system.service.houselocation;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.HouseLocationPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.HouseLocationSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.HouseLocationDO;
import cn.iocoder.yudao.module.system.dal.mysql.houselocation.HouseLocationMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_LOCATION_NOT_EXISTS;
/**
* 库位 Service 实现类
*
* @author 陈宾顺
*/
@Service
@Validated
public class HouseLocationServiceImpl implements HouseLocationService {
@Resource
private HouseLocationMapper houseLocationMapper;
@Override
public Long createHouseLocation(HouseLocationSaveReqVO createReqVO) {
// 插入
HouseLocationDO houseLocation = BeanUtils.toBean(createReqVO, HouseLocationDO.class);
houseLocationMapper.insert(houseLocation);
// 返回
return houseLocation.getId();
}
@Override
public void updateHouseLocation(HouseLocationSaveReqVO updateReqVO) {
// 校验存在
validateHouseLocationExists(updateReqVO.getId());
// 更新
HouseLocationDO updateObj = BeanUtils.toBean(updateReqVO, HouseLocationDO.class);
houseLocationMapper.updateById(updateObj);
}
@Override
public void deleteHouseLocation(Long id) {
// 校验存在
validateHouseLocationExists(id);
// 删除
houseLocationMapper.deleteById(id);
}
private void validateHouseLocationExists(Long id) {
if (houseLocationMapper.selectById(id) == null) {
throw exception(HOUSE_LOCATION_NOT_EXISTS);
}
}
@Override
public HouseLocationDO getHouseLocation(Long id) {
return houseLocationMapper.selectById(id);
}
@Override
public PageResult<HouseLocationDO> getHouseLocationPage(HouseLocationPageReqVO pageReqVO) {
return houseLocationMapper.selectPage(pageReqVO);
}
}

View File

@ -51,8 +51,7 @@ public class DeviceInformationServiceImpl implements DeviceInformationService {
throw exception(INFORMATION_MAC_INPUT);
}
if(DeviceInformationType.PALLETIZER.getType().equals(createReqVO.getDeviceType())){
String jiCheResponse = grpcServiceApi.onVehiclePoseUpdated();
log.info("调用GRPC查询机车信息返回 :{}",jiCheResponse);
// String jiCheResponse = grpcServiceApi.robotExecption();
}
// 插入

View File

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.system.service.robot;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO;
/**
* 车辆信息 Service 接口
*
* @author 陈宾顺
*/
public interface RobotInformationService {
/**
* 创建车辆信息
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createInformation(@Valid RobotInformationSaveReqVO createReqVO);
/**
* 更新车辆信息
*
* @param updateReqVO 更新信息
*/
void updateInformation(@Valid RobotInformationSaveReqVO updateReqVO);
/**
* 删除车辆信息
*
* @param id 编号
*/
void deleteInformation(Long id);
/**
* 获得车辆信息
*
* @param id 编号
* @return 车辆信息
*/
RobotInformationDO getInformation(Long id);
/**
* 获得车辆信息分页
*
* @param pageReqVO 分页查询
* @return 车辆信息分页
*/
PageResult<RobotInformationDO> getInformationPage(RobotInformationPageReqVO pageReqVO);
}

View File

@ -0,0 +1,73 @@
package cn.iocoder.yudao.module.system.service.robot;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO;
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotInformationMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.ROBOT_INFORMATION_NOT_EXISTS;
/**
* 车辆信息 Service 实现类
*
* @author 陈宾顺
*/
@Service
@Validated
public class RobotInformationServiceImpl implements RobotInformationService {
@Resource
private RobotInformationMapper informationMapper;
@Override
public Long createInformation(RobotInformationSaveReqVO createReqVO) {
// 插入
RobotInformationDO information = BeanUtils.toBean(createReqVO, RobotInformationDO.class);
informationMapper.insert(information);
// 返回
return information.getId();
}
@Override
public void updateInformation(RobotInformationSaveReqVO updateReqVO) {
// 校验存在
validateInformationExists(updateReqVO.getId());
// 更新
RobotInformationDO updateObj = BeanUtils.toBean(updateReqVO, RobotInformationDO.class);
informationMapper.updateById(updateObj);
}
@Override
public void deleteInformation(Long id) {
// 校验存在
validateInformationExists(id);
// 删除
informationMapper.deleteById(id);
}
private void validateInformationExists(Long id) {
if (informationMapper.selectById(id) == null) {
throw exception(ROBOT_INFORMATION_NOT_EXISTS);
}
}
@Override
public RobotInformationDO getInformation(Long id) {
return informationMapper.selectById(id);
}
@Override
public PageResult<RobotInformationDO> getInformationPage(RobotInformationPageReqVO pageReqVO) {
return informationMapper.selectPage(pageReqVO);
}
}

View File

@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.system.service.robot;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotModelPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotModelSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotModelDO;
import javax.validation.Valid;
/**
* 车辆类型 Service 接口
*
* @author 陈宾顺
*/
public interface RobotModelService {
/**
* 创建车辆类型
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createModel(@Valid RobotModelSaveReqVO createReqVO);
/**
* 更新车辆类型
*
* @param updateReqVO 更新信息
*/
void updateModel(@Valid RobotModelSaveReqVO updateReqVO);
/**
* 删除车辆类型
*
* @param id 编号
*/
void deleteModel(Long id);
/**
* 获得车辆类型
*
* @param id 编号
* @return 车辆类型
*/
RobotModelDO getModel(Long id);
/**
* 获得车辆类型分页
*
* @param pageReqVO 分页查询
* @return 车辆类型分页
*/
PageResult<RobotModelDO> getModelPage(RobotModelPageReqVO pageReqVO);
}

View File

@ -0,0 +1,73 @@
package cn.iocoder.yudao.module.system.service.robot;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotModelPageReqVO;
import cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotModelSaveReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotModelDO;
import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotModelMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.MODEL_NOT_EXISTS;
/**
* 车辆类型 Service 实现类
*
* @author 陈宾顺
*/
@Service
@Validated
public class RobotModelServiceImpl implements RobotModelService {
@Resource
private RobotModelMapper modelMapper;
@Override
public Long createModel(RobotModelSaveReqVO createReqVO) {
//todo 判断是否存在
// modelMapper.selectPage(pageReqVO);
// 插入
RobotModelDO model = BeanUtils.toBean(createReqVO, RobotModelDO.class);
modelMapper.insert(model);
// 返回
return model.getId();
}
@Override
public void updateModel(RobotModelSaveReqVO updateReqVO) {
// 校验存在
validateModelExists(updateReqVO.getId());
// 更新
RobotModelDO updateObj = BeanUtils.toBean(updateReqVO, RobotModelDO.class);
modelMapper.updateById(updateObj);
}
@Override
public void deleteModel(Long id) {
// 校验存在
validateModelExists(id);
// 删除
modelMapper.deleteById(id);
}
private void validateModelExists(Long id) {
if (modelMapper.selectById(id) == null) {
throw exception(MODEL_NOT_EXISTS);
}
}
@Override
public RobotModelDO getModel(Long id) {
return modelMapper.selectById(id);
}
@Override
public PageResult<RobotModelDO> getModelPage(RobotModelPageReqVO pageReqVO) {
return modelMapper.selectPage(pageReqVO);
}
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.housearea.HouseAreaMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.houselane.WareHouseLaneMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.houselocation.HouseLocationMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.robot.RobotInformationMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.system.dal.mysql.robot.RobotModelMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>