diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java index 4263e0934..5791da0c9 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java @@ -223,4 +223,7 @@ public interface ErrorCodeConstants { // ========== 机器人告警码值映射 1_002_041_001 ========== ErrorCode WARN_CODE_MAPPING_NOT_EXISTS = new ErrorCode(1_002_041_001, "机器人告警码值映射不存在"); + // ========== 通用配置 1_002_042_001 ========== + ErrorCode CONFIG_NOT_EXISTS = new ErrorCode(1_002_042_001 , "通用配置不存在"); + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java index 2ff94fd8d..4922b78e9 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/RobotStatusApiImpl.java @@ -72,6 +72,8 @@ public class RobotStatusApiImpl implements RobotStatusApi { robotStatusDataPoseDTO.setX(robotStatusDataDTO.getData().getPose2d().getX()); robotStatusDataPoseDTO.setY(robotStatusDataDTO.getData().getPose2d().getY()); robotStatusDataPoseDTO.setYaw(robotStatusDataDTO.getData().getPose2d().getYaw()); + robotStatusDataPoseDTO.setFloor(robotStatusDataDTO.getData().getPose2d().getFloor()); + robotStatusDataPoseDTO.setArea(robotStatusDataDTO.getData().getPose2d().getArea()); redisUtil.set(pose2dKey,JSON.toJSONString(robotStatusDataPoseDTO),robotPositionCacheTime); if (ObjectUtil.isNotNull(robotStatusDataDTO.getData().getErr_code())) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/CommonConfigController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/CommonConfigController.java new file mode 100644 index 000000000..268b93333 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/CommonConfigController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.system.controller.admin.config; + +import cn.iocoder.yudao.module.system.controller.admin.config.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.config.CommonConfigDO; +import cn.iocoder.yudao.module.system.service.config.CommonConfigService; +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/common/config") +@Validated +public class CommonConfigController { + + @Resource + private CommonConfigService configService; + + @PostMapping("/create") + @Operation(summary = "创建通用配置") + @PreAuthorize("@ss.hasPermission('common:config:create')") + public CommonResult createConfig(@Valid @RequestBody CommonConfigSaveReqVO createReqVO) { + return success(configService.createConfig(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新通用配置") + @PreAuthorize("@ss.hasPermission('common:config:update')") + public CommonResult updateConfig(@Valid @RequestBody CommonConfigSaveReqVO updateReqVO) { + configService.updateConfig(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除通用配置") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('common:config:delete')") + public CommonResult deleteConfig(@RequestParam("id") Long id) { + configService.deleteConfig(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得通用配置") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('common:config:query')") + public CommonResult getConfig(@RequestParam("configType") Long configType) { + CommonConfigDO config = configService.getConfig(configType); + return success(config); + } + + @GetMapping("/page") + @Operation(summary = "获得通用配置分页") + @PreAuthorize("@ss.hasPermission('common:config:query')") + public CommonResult> getConfigPage(@Valid CommonConfigPageReqVO pageReqVO) { + PageResult pageResult = configService.getConfigPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, CommonConfigRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出通用配置 Excel") + @PreAuthorize("@ss.hasPermission('common:config:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportConfigExcel(@Valid CommonConfigPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = configService.getConfigPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "通用配置.xls", "数据", CommonConfigRespVO.class, + BeanUtils.toBean(list, CommonConfigRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigPageReqVO.java new file mode 100644 index 000000000..2195e2c1d --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.controller.admin.config.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 CommonConfigPageReqVO extends PageParam { + + @Schema(description = "类型(1:参数配置、2:备用)", example = "1") + private Integer configType; + + @Schema(description = "配置信息") + private String configStr; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigRespVO.java new file mode 100644 index 000000000..32e3f3c88 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.system.controller.admin.config.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 CommonConfigRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22456") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "类型(1:参数配置、2:备用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("类型(1:参数配置、2:备用)") + private Integer configType; + + @Schema(description = "配置信息") + @ExcelProperty("配置信息") + private String configStr; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigSaveReqVO.java new file mode 100644 index 000000000..09faba934 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigSaveReqVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.system.controller.admin.config.vo; + +import cn.iocoder.yudao.framework.common.exception.ErrorCode; +import cn.iocoder.yudao.framework.common.exception.enums.ServiceErrorCodeRange; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.io.Serializable; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 通用配置新增/修改 Request VO") +@Data +public class CommonConfigSaveReqVO implements Serializable { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22456") + private Long id; + + //查看 CommandConfigTypeEnum + @Schema(description = "类型(1:参数配置、2:备用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Integer configType; + + @Schema(description = "配置信息") + private String configStr; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigVO.java new file mode 100644 index 000000000..d89cfee13 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/config/vo/CommonConfigVO.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.system.controller.admin.config.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 参数设置 + */ +@Data +public class CommonConfigVO { + + @Schema(description = "自动充电电量-充电-阀值") + private Integer startAutoCharge; + + @Schema(description = "自动充电电量-离开-阀值") + private Integer endAutoCharge; + + @Schema(description = "机会充电电量-充电-阀值") + private Integer chanceChargeStart; + + @Schema(description = "机会充电电量-离开-阀值") + private Integer chanceChargeEnd; + + @Schema(description = "定时充电时段-开始时间") + private LocalDateTime chargeStartTime; + + @Schema(description = "定时充电时段-结束时间") + private LocalDateTime chargeEndTime; + + @Schema(description = "冲满电周期") + private Integer chanceCycle; + + @Schema(description = "遇障告警设置-等待时间") + private Integer warnWaitTime; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/housearea/HouseAreaController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/housearea/HouseAreaController.java index 62f92feab..4c31153b4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/housearea/HouseAreaController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/housearea/HouseAreaController.java @@ -79,4 +79,12 @@ public class HouseAreaController { BeanUtils.toBean(list, HouseAreaRespVO.class)); } + @GetMapping("/getHouseAreaList") + @Operation(summary = "获得全部库区") + @PreAuthorize("@ss.hasPermission('ware:house-area:query')") + public CommonResult> getHouseAreaList() { + List list = houseAreaService.getHouseAreaList(); + return success(BeanUtils.toBean(list, HouseAreaRespVO.class)); + } + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/WareHouseLaneController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/WareHouseLaneController.java index b05995d06..1466e2533 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/WareHouseLaneController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/WareHouseLaneController.java @@ -54,4 +54,12 @@ public class WareHouseLaneController { .eq(WareHouseLaneDO::getPositionMapId, positionMapId)); return success(BeanUtils.toBean(list, WareHouseLaneRespVO.class)); } + + @GetMapping("/getHouseLaneList") + @Operation(summary = "获得所有线库列表") + public CommonResult> getHouseLaneList() { + List list = houseLaneService.list(new LambdaQueryWrapperX() + .orderByAsc(WareHouseLaneDO::getId)); + return success(BeanUtils.toBean(list, WareHouseLaneRespVO.class)); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java index 303017949..68a15dd52 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/WareHouseLocationController.java @@ -73,10 +73,10 @@ public class WareHouseLocationController { return success(BeanUtils.toBean(houseLocation, WareHouseLocationRespVO.class)); } - @GetMapping("/page") + @PostMapping("/page") @Operation(summary = "获得库位分页") @PreAuthorize("@ss.hasPermission('ware:house-location:query')") - public CommonResult> getHouseLocationPage(@Valid WareHouseLocationPageReqVO pageReqVO) { + public CommonResult> getHouseLocationPage(@Valid @RequestBody WareHouseLocationPageReqVO pageReqVO) { PageResult pageResult = houseLocationService.getHouseLocationPage(pageReqVO); return success(BeanUtils.toBean(pageResult, WareHouseLocationRespVO.class)); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationRespVO.java index 36ca3faac..454f93eb4 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselocation/vo/WareHouseLocationRespVO.java @@ -140,4 +140,8 @@ public class WareHouseLocationRespVO { @Schema(description = "ware_position_map的id", example = "1") @ExcelProperty("ware_position_map的id") private Long mapId; + + @Schema(description = "ware_position_map_item的id", example = "1") + @ExcelProperty("ware_position_map_item的id") + private Long mapItemId; } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapController.java index 6f154587a..6da04d7e5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapController.java @@ -91,10 +91,10 @@ public class PositionMapController { } @GetMapping("/getAllMap") - @Operation(summary = "获得所有仓库点位地图Map") + @Operation(summary = "获得楼层对应的区域集合") @PreAuthorize("@ss.hasPermission('system:position-map:getAllMap')") - public CommonResult> getAllMap() { - List list = positionMapService.getAllMap(); + public CommonResult>> getAllMap() { + Map> list = positionMapService.getAllMap(); return success(list); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotWarnCodeMappingController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotWarnCodeMappingController.java index 9cdf50a94..a7728fa1b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotWarnCodeMappingController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotWarnCodeMappingController.java @@ -33,7 +33,7 @@ import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; @Tag(name = "管理后台 - 机器人告警码值映射") @RestController -@RequestMapping("/robot/warn-code-mapping") +@RequestMapping("/system/robot/warn-code-mapping") @Validated public class RobotWarnCodeMappingController { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotWarnMsgController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotWarnMsgController.java index 14576b934..05b24b2d1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotWarnMsgController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/RobotWarnMsgController.java @@ -33,7 +33,7 @@ import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; @Tag(name = "管理后台 - 机器人告警信息") @RestController -@RequestMapping("/robot/warn-msg") +@RequestMapping("/system/robot/warn-msg") @Validated public class RobotWarnMsgController { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotInformationPageRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotInformationPageRespVO.java index 3cedea497..aa5550d82 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotInformationPageRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotInformationPageRespVO.java @@ -5,6 +5,9 @@ import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import javax.validation.constraints.NotNull; +import java.util.Set; + @Schema(description = "管理后台 - 车辆信息 Response VO") @Data @@ -14,6 +17,9 @@ public class RobotInformationPageRespVO { @ExcelProperty("主键ID") private Long id; + @Schema(description = "车辆类型表id", example = "28234") + private Long robotModelId; + @Schema(description = "车辆类型") @ExcelProperty("车辆类型") private String robotModelNumber; @@ -55,4 +61,7 @@ public class RobotInformationPageRespVO { @Schema(description = "任务模式(0:拒收任务、1:正常)") private Integer robotTaskModel; + @Schema(description = "楼层/区域(json)") + private Set floorAreaJson; + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotInformationSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotInformationSaveReqVO.java index c7d19f9c8..7d8201c4d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotInformationSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotInformationSaveReqVO.java @@ -20,7 +20,6 @@ public class RobotInformationSaveReqVO { private Long robotModelId; @Schema(description = "车辆类型") - @NotEmpty(message = "车辆类型不能为空") private String robotModelNumber; @Schema(description = "AGV编号") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelPageReqVO.java index c9f2855a6..928b6c1ae 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelPageReqVO.java @@ -28,4 +28,9 @@ public class RobotModelPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "上传图片附件", example = "https://www.iocoder.cn") + private String url; + + @Schema(description = "是否自动充电(0:手动充电,1:自动充电)") + private Integer autoCharge; } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelRespVO.java index 6a2433474..a1a17b2c8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelRespVO.java @@ -20,6 +20,13 @@ public class RobotModelRespVO { @ExcelProperty("车辆类型") private String robotModelNumber; + @Schema(description = "上传图片附件", example = "https://www.iocoder.cn") + @ExcelProperty("上传图片附件") + private String url; + + @Schema(description = "是否自动充电(0:手动充电,1:自动充电)") + private Integer autoCharge; + @Schema(description = "偏移量") @ExcelProperty("偏移量") private String robotOffset; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelSaveReqVO.java index c3dfd0a01..6d2b1fb8b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/robot/vo/RobotModelSaveReqVO.java @@ -19,4 +19,10 @@ public class RobotModelSaveReqVO { @Schema(description = "偏移量") private String robotOffset; + @Schema(description = "上传图片附件", example = "https://www.iocoder.cn") + private String url; + + @Schema(description = "是否自动充电(0:手动充电,1:自动充电)") + private Integer autoCharge; + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/config/CommonConfigDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/config/CommonConfigDO.java new file mode 100644 index 000000000..a28bb1855 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/config/CommonConfigDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.system.dal.dataobject.config; + +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("common_config") +@KeySequence("common_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CommonConfigDO extends BaseDO { + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 类型(1:参数配置、2:备用) + */ + private Integer configType; + /** + * 配置信息 + */ + private String configStr; + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/robot/RobotModelDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/robot/RobotModelDO.java index ca9ef2ba3..505b73876 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/robot/RobotModelDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/robot/RobotModelDO.java @@ -37,4 +37,14 @@ public class RobotModelDO extends BaseDO { */ private String robotOffset; + /** + * 上传图片附件 + */ + private String url; + + /** + * 是否自动充电(0:手动充电,1:自动充电) + */ + private Integer autoCharge; + } \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/config/CommonConfigMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/config/CommonConfigMapper.java new file mode 100644 index 000000000..a9b727165 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/config/CommonConfigMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.system.dal.mysql.config; + +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.config.vo.CommonConfigPageReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.config.CommonConfigDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 通用配置 Mapper + * + * @author 陈宾顺 + */ +@Mapper +public interface CommonConfigMapper extends BaseMapperX { + + default PageResult selectPage(CommonConfigPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(CommonConfigDO::getConfigType, reqVO.getConfigType()) + .eqIfPresent(CommonConfigDO::getConfigStr, reqVO.getConfigStr()) + .betweenIfPresent(CommonConfigDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(CommonConfigDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselocation/WareHouseLocationMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselocation/WareHouseLocationMapper.java index 2e0bc867e..db7f5f3e8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselocation/WareHouseLocationMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselocation/WareHouseLocationMapper.java @@ -28,10 +28,10 @@ public interface WareHouseLocationMapper extends BaseMapperX return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(RobotInformationDO::getRobotModelId, reqVO.getRobotModelId()) .eqIfPresent(RobotInformationDO::getRobotModelNumber, reqVO.getRobotModelNumber()) - .eqIfPresent(RobotInformationDO::getRobotNo, reqVO.getRobotNo()) + .likeIfPresent(RobotInformationDO::getRobotNo, reqVO.getRobotNo()) .eqIfPresent(RobotInformationDO::getRobotTaskModel, reqVO.getRobotTaskModel()) .eqIfPresent(RobotInformationDO::getMacAddress, reqVO.getMacAddress()) .eqIfPresent(RobotInformationDO::getUrl, reqVO.getUrl()) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/robot/RobotWarnMsgMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/robot/RobotWarnMsgMapper.java index a6887c000..88ede7201 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/robot/RobotWarnMsgMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/robot/RobotWarnMsgMapper.java @@ -21,7 +21,7 @@ public interface RobotWarnMsgMapper extends BaseMapperX { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(RobotWarnMsgDO::getRobotNo, reqVO.getRobotNo()) .eqIfPresent(RobotWarnMsgDO::getWarnLevel, reqVO.getWarnLevel()) - .eqIfPresent(RobotWarnMsgDO::getWarnCode, reqVO.getWarnCode()) + .likeIfPresent(RobotWarnMsgDO::getWarnCode, reqVO.getWarnCode()) .eqIfPresent(RobotWarnMsgDO::getWarnMsg, reqVO.getWarnMsg()) .eqIfPresent(RobotWarnMsgDO::getWarnSolve, reqVO.getWarnSolve()) .betweenIfPresent(RobotWarnMsgDO::getSolveTime, reqVO.getSolveTime()) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/config/CommandConfigTypeEnum.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/config/CommandConfigTypeEnum.java new file mode 100644 index 000000000..08daaceec --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/config/CommandConfigTypeEnum.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.system.enums.config; + + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * common_config的 config_type + */ +@Getter +@AllArgsConstructor +public enum CommandConfigTypeEnum { + ONE(1), //充电设置(页面) + TWO(2); //充满电周期对应的冲电量 + /** + * 类型 + */ + private final Integer type; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/CommonConfigService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/CommonConfigService.java new file mode 100644 index 000000000..8172c47d9 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/CommonConfigService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.system.service.config; + +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.config.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.config.CommonConfigDO; + +/** + * 通用配置 Service 接口 + * + * @author 陈宾顺 + */ +public interface CommonConfigService { + + /** + * 创建通用配置 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createConfig(@Valid CommonConfigSaveReqVO createReqVO); + + /** + * 更新通用配置 + * + * @param updateReqVO 更新信息 + */ + void updateConfig(@Valid CommonConfigSaveReqVO updateReqVO); + + /** + * 删除通用配置 + * + * @param id 编号 + */ + void deleteConfig(Long id); + + /** + * 获得通用配置 + * + * @param id 编号 + * @return 通用配置 + */ + CommonConfigDO getConfig(Long configType); + + /** + * 获得通用配置分页 + * + * @param pageReqVO 分页查询 + * @return 通用配置分页 + */ + PageResult getConfigPage(CommonConfigPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/CommonConfigServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/CommonConfigServiceImpl.java new file mode 100644 index 000000000..560b4ee07 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/config/CommonConfigServiceImpl.java @@ -0,0 +1,78 @@ +package cn.iocoder.yudao.module.system.service.config; + +import cn.iocoder.yudao.module.system.controller.admin.config.vo.*; +import cn.iocoder.yudao.module.system.dal.dataobject.config.CommonConfigDO; +import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDetailDO; +import cn.iocoder.yudao.module.system.dal.mysql.config.CommonConfigMapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +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.CONFIG_NOT_EXISTS; + +/** + * 通用配置 Service 实现类 + * + * @author 陈宾顺 + */ +@Service +@Validated +public class CommonConfigServiceImpl implements CommonConfigService { + + @Resource + private CommonConfigMapper configMapper; + + @Override + public Long createConfig(CommonConfigSaveReqVO createReqVO) { + // 插入 + CommonConfigDO config = BeanUtils.toBean(createReqVO, CommonConfigDO.class); + configMapper.insert(config); + // 返回 + return config.getId(); + } + + @Override + public void updateConfig(CommonConfigSaveReqVO updateReqVO) { + // 校验存在 + validateConfigExists(updateReqVO.getId()); + // 更新 + CommonConfigDO updateObj = BeanUtils.toBean(updateReqVO, CommonConfigDO.class); + configMapper.updateById(updateObj); + } + + @Override + public void deleteConfig(Long id) { + // 校验存在 + validateConfigExists(id); + // 删除 + configMapper.deleteById(id); + } + + private void validateConfigExists(Long id) { + if (configMapper.selectById(id) == null) { + throw exception(CONFIG_NOT_EXISTS); + } + } + + @Override + public CommonConfigDO getConfig(Long configType) { + CommonConfigDO commonConfigDO = configMapper.selectOne(new LambdaQueryWrapper() + .eq(CommonConfigDO::getConfigType, configType)); + return commonConfigDO; + } + + @Override + public PageResult getConfigPage(CommonConfigPageReqVO pageReqVO) { + return configMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/housearea/HouseAreaService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/housearea/HouseAreaService.java index f0c9c0627..5d7275044 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/housearea/HouseAreaService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/housearea/HouseAreaService.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaSav import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO; import javax.validation.Valid; +import java.util.List; /** * 库区 Service 接口 @@ -58,4 +59,10 @@ public interface HouseAreaService { * @param createReqVO */ void createOrEditOrDel(@Valid HouseAreaSaveReqVO createReqVO); + + /** + * 获得全部库区 + * @return + */ + List getHouseAreaList(); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/housearea/HouseAreaServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/housearea/HouseAreaServiceImpl.java index 16717012c..3e9f356a2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/housearea/HouseAreaServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/housearea/HouseAreaServiceImpl.java @@ -14,9 +14,11 @@ import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.PositionM import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO; import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO; +import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotModelDO; import cn.iocoder.yudao.module.system.dal.mysql.housearea.HouseAreaMapper; import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -154,4 +156,11 @@ public class HouseAreaServiceImpl implements HouseAreaService { } } + @Override + public List getHouseAreaList() { + List list = houseAreaMapper.selectList(new LambdaQueryWrapper() + .orderByAsc(HouseAreaDO::getId)); + return list; + } + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapService.java index 2d1522bde..074da0b51 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapService.java @@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.util.List; +import java.util.Map; /** * 仓库点位地图 Service 接口 @@ -93,5 +94,5 @@ public interface PositionMapService extends IService { * 获得所有仓库点位地图Map * @return */ - List getAllMap(); + Map> getAllMap(); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapServiceImpl.java index 9aada77a3..f16384e5c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapServiceImpl.java @@ -1,11 +1,13 @@ package cn.iocoder.yudao.module.system.service.positionmap; import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapSaveReqVO; +import cn.iocoder.yudao.module.system.dal.dataobject.information.DeviceInformationDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapDO; import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -31,6 +33,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; +import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -296,11 +299,26 @@ public class PositionMapServiceImpl extends ServiceImpl getAllMap() { + public Map> getAllMap() { List positionMapDOS = positionMapMapper.selectList(new LambdaQueryWrapperX() .orderByAsc(PositionMapDO::getFloor)); - return positionMapDOS; + + if (ObjectUtil.isEmpty(positionMapDOS)) { + return new HashMap<>(); + } + + Map> collect = + positionMapDOS.stream() + .collect(Collectors.groupingBy(PositionMapDO::getFloor)); + + ArrayList>> list = new ArrayList>>(collect.entrySet()); + Collections.sort(list, new Comparator>>() { + public int compare(Map.Entry> o1, Map.Entry> o2) { + return o1.getKey().compareTo(o2.getKey()); // 按照值排序 + } + }); + + return collect; } - } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java index dadc9e443..653b80273 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotInformationServiceImpl.java @@ -8,9 +8,11 @@ import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant; import cn.iocoder.yudao.module.system.controller.admin.robot.vo.*; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapDO; import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO; +import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotModelDO; import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDetailDO; import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapMapper; import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotInformationMapper; +import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotModelMapper; import cn.iocoder.yudao.module.system.dal.mysql.robot.RobotTaskDetailMapper; import cn.iocoder.yudao.module.system.enums.robot.*; import cn.iocoder.yudao.module.system.util.redis.RedisUtil; @@ -46,6 +48,9 @@ public class RobotInformationServiceImpl implements RobotInformationService { @Resource private RobotTaskDetailMapper taskDetailMapper; + @Resource + private RobotModelMapper modelMapper; + @Resource private RedisUtil redisUtil; @@ -65,6 +70,9 @@ public class RobotInformationServiceImpl implements RobotInformationService { if (ObjectUtil.isNotEmpty(existRobotNo)) { throw exception(ROBOT_ROBOT_NO_EXISTS); } + RobotModelDO robotModelDO = modelMapper.selectById(createReqVO.getRobotModelId()); + createReqVO.setRobotModelNumber(robotModelDO.getRobotModelNumber()); + createReqVO.setUrl(robotModelDO.getUrl()); // 插入 RobotInformationDO information = BeanUtils.toBean(createReqVO, RobotInformationDO.class); informationMapper.insert(information); @@ -165,12 +173,12 @@ public class RobotInformationServiceImpl implements RobotInformationService { v.setArea(robotStatusDataPoseDTO.getArea()); } - if (ObjectUtil.isEmpty(object)) { - v.setRobotStatus(RobotInformationPageStatusEnum.OFFLINE.getType()); - v.setMsg("车辆已经离线"); - }else if (RobotTaskModelEnum.REJECTION.getType().equals(v.getRobotTaskModel())) { + if (RobotTaskModelEnum.REJECTION.getType().equals(v.getRobotTaskModel())) { v.setRobotStatus(RobotInformationPageStatusEnum.DOLOCK.getType()); v.setMsg("车辆已经锁定"); + }else if (ObjectUtil.isEmpty(object)) { + v.setRobotStatus(RobotInformationPageStatusEnum.OFFLINE.getType()); + v.setMsg("车辆已经离线"); }else if (RobotStatusEnum.STAND_BY.getType().equals(v.getRobotStatus())) { //查看机器人最后做的任务是不是充电 RobotTaskDetailDO robotTaskDetailDO = taskDetailMapper.selectOne(new LambdaQueryWrapper() diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotTaskServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotTaskServiceImpl.java index 15bed435d..3f6b01824 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotTaskServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/robot/RobotTaskServiceImpl.java @@ -129,15 +129,11 @@ public class RobotTaskServiceImpl implements RobotTaskService { } //搬空任务只能选择线库或者区域 if (MoveAllEnum.YES.getType().equals(createReqVO.getDoMoveAll())) { - Set releaseTypeList = - createReqVO.getTaskDetailList().stream().map(v -> v.getReleaseType()) - .collect(Collectors.toSet()); - Set takeTypeList = - createReqVO.getTaskDetailList().stream().map(v -> v.getTakeType()) - .collect(Collectors.toSet()); - if (releaseTypeList.contains(ReleaseTakeEnum.TO_LOCATION.getType()) - || takeTypeList.contains(ReleaseTakeEnum.TO_LOCATION.getType())) { - throw exception(TASK_ONLY_CHOOSE_LOCATION); + for (RobotTaskDetailAddVO robotTaskDetailAddVO : createReqVO.getTaskDetailList()) { + if (ReleaseTakeEnum.TO_LOCATION.getType().equals(robotTaskDetailAddVO.getTakeType()) + || ReleaseTakeEnum.TO_LOCATION.getType().equals(robotTaskDetailAddVO.getReleaseType())) { + throw exception(TASK_ONLY_CHOOSE_LOCATION); + } } } //校验机器人是否禁用 @@ -164,7 +160,7 @@ public class RobotTaskServiceImpl implements RobotTaskService { throw exception(TASK_CHECK_EXIST_NO); } } - // todo 如果搬空所选线库/区域 ,不能线库到库位, 不能区域到库位 + } /** @@ -176,8 +172,6 @@ public class RobotTaskServiceImpl implements RobotTaskService { RobotTaskDO task = BeanUtils.toBean(createReqVO, RobotTaskDO.class); taskMapper.insert(task); - // todo 更新数据库顺序 后续改为xxl-job一致 - //查找库位 List locationIds = new ArrayList<>(); if (MoveAllEnum.NO.getType().equals(createReqVO.getDoMoveAll())) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/config/CommonConfigMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/config/CommonConfigMapper.xml new file mode 100644 index 000000000..173b7417f --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/config/CommonConfigMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file