From 69c1168dcc58af3bfa8a4859bcf351d2d564f2be Mon Sep 17 00:00:00 2001 From: aikai Date: Fri, 17 Jan 2025 09:57:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ware):=20=E9=87=8D=E6=9E=84=E7=BA=BF?= =?UTF-8?q?=E5=BA=93=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 NodeProcessingContext 中的策略判断逻辑 -重命名 NodeTypeEnum 中的字段名称 - 更新 PositionMapItemDO 中的字段注释 - 新增 PositionMapItemService 接口及实现类 - 重构 WareHouseLaneController,改为仅处理线库相关操作 - 更新相关 VO 类,移除巷道相关字段- 重构 WareHouseLaneService接口,新增 createOrEditOrDel 方法 - 实现 WareHouseLaneServiceImpl 中的 createOrEditOrDel 方法 --- .../framework/common/enums/NodeTypeEnum.java | 6 +- .../system/enums/ErrorCodeConstants.java | 1 + .../houselane/WareHouseLaneController.java | 75 ++++++---------- .../houselane/vo/WareHouseLanePageReqVO.java | 5 +- .../houselane/vo/WareHouseLaneRespVO.java | 6 +- .../houselane/vo/WareHouseLaneSaveReqVO.java | 17 ++-- .../dto/PositionMapConditionDTO.java | 27 ++++++ .../positionmap/PositionMapItemDO.java | 4 +- .../mapnode/NodeProcessingContext.java | 4 +- .../houselane/WareHouseLaneService.java | 45 +++------- .../houselane/WareHouseLaneServiceImpl.java | 87 +++++++++++-------- .../positionmap/PositionMapItemService.java | 12 ++- .../PositionMapItemServiceImpl.java | 20 ++++- 13 files changed, 164 insertions(+), 145 deletions(-) create mode 100644 yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/PositionMapConditionDTO.java diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/NodeTypeEnum.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/NodeTypeEnum.java index cc27daab3..67b561354 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/NodeTypeEnum.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/NodeTypeEnum.java @@ -22,11 +22,11 @@ public enum NodeTypeEnum { WAIT(6, "等待点"); /** - * 状态值 + * 类型 */ - private final Integer status; + private final Integer type; /** - * 状态名 + * 说明 */ private final String name; 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 428dc8149..fbc65f229 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 @@ -208,4 +208,5 @@ public interface ErrorCodeConstants { ErrorCode PLEASE_UPLOAD_PNG_AND_YAML_FILES = new ErrorCode(1_002_038_003, "请上传png和yaml两个文件并且文件内容不为空"); ErrorCode AGV_MAP_NOT_FOUND = new ErrorCode(1_002_038_004, "找不到AGV地图信息"); ErrorCode AGV_IMAGE_CONVERSION_TO_BASE64_FAILED = new ErrorCode(1_002_038_005, "AGV图片转base64失败"); + ErrorCode THE_LINE_LIBRARY_POINTS_ARE_NOT_LOCATED_IN_THE_SAME_AREA = new ErrorCode(1_002_038_006, "线库点位不在同一区域内"); } 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 5969444d4..91058d6ff 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 @@ -1,37 +1,34 @@ package cn.iocoder.yudao.module.system.controller.admin.houselane; +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.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 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.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.List; -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.apilog.core.enums.OperateTypeEnum.EXPORT; 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 = "管理后台 - 线库/巷道") +@Tag(name = "管理后台 - 线库") @RestController @RequestMapping("/system/ware/house-lane") @Validated @@ -40,32 +37,16 @@ public class WareHouseLaneController { @Resource private WareHouseLaneService houseLaneService; - @PostMapping("/create") - @Operation(summary = "创建线库/巷道") + @PostMapping("/createOrEditOrDel") + @Operation(summary = "创建修改删除线库") @PreAuthorize("@ss.hasPermission('ware:house-lane:create')") - public CommonResult createHouseLane(@Valid @RequestBody WareHouseLaneSaveReqVO createReqVO) { - return success(houseLaneService.createHouseLane(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新线库/巷道") - @PreAuthorize("@ss.hasPermission('ware:house-lane:update')") - public CommonResult 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 deleteHouseLane(@RequestParam("id") Long id) { - houseLaneService.deleteHouseLane(id); + public CommonResult createOrEditOrDel(@Valid @RequestBody WareHouseLaneSaveReqVO createReqVO) { + houseLaneService.createOrEditOrDel(createReqVO); return success(true); } @GetMapping("/get") - @Operation(summary = "获得线库/巷道") + @Operation(summary = "获得线库") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ware:house-lane:query')") public CommonResult getHouseLane(@RequestParam("id") Long id) { @@ -74,7 +55,7 @@ public class WareHouseLaneController { } @GetMapping("/page") - @Operation(summary = "获得线库/巷道分页") + @Operation(summary = "获得线库分页") @PreAuthorize("@ss.hasPermission('ware:house-lane:query')") public CommonResult> getHouseLanePage(@Valid WareHouseLanePageReqVO pageReqVO) { PageResult pageResult = houseLaneService.getHouseLanePage(pageReqVO); @@ -82,16 +63,16 @@ public class WareHouseLaneController { } @GetMapping("/export-excel") - @Operation(summary = "导出线库/巷道 Excel") + @Operation(summary = "导出线库 Excel") @PreAuthorize("@ss.hasPermission('ware:house-lane:export')") @ApiAccessLog(operateType = EXPORT) public void exportHouseLaneExcel(@Valid WareHouseLanePageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = houseLaneService.getHouseLanePage(pageReqVO).getList(); // 导出 Excel - ExcelUtils.write(response, "线库/巷道.xls", "数据", WareHouseLaneRespVO.class, - BeanUtils.toBean(list, WareHouseLaneRespVO.class)); + ExcelUtils.write(response, "线库.xls", "数据", WareHouseLaneRespVO.class, + BeanUtils.toBean(list, WareHouseLaneRespVO.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/houselane/vo/WareHouseLanePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLanePageReqVO.java index 665d18615..fd19ccf15 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLanePageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLanePageReqVO.java @@ -15,9 +15,6 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class WareHouseLanePageReqVO extends PageParam { - @Schema(description = "巷道id(自定义)", example = "276") - private Long laneId; - @Schema(description = "巷道名称", example = "芋艿") private String laneName; @@ -28,4 +25,4 @@ public class WareHouseLanePageReqVO extends PageParam { @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/houselane/vo/WareHouseLaneRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLaneRespVO.java index 4b705b302..f03c227c9 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLaneRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLaneRespVO.java @@ -16,10 +16,6 @@ public class WareHouseLaneRespVO { @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; @@ -32,4 +28,4 @@ public class WareHouseLaneRespVO { @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/houselane/vo/WareHouseLaneSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLaneSaveReqVO.java index 00c82b979..eb372b569 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLaneSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/houselane/vo/WareHouseLaneSaveReqVO.java @@ -5,21 +5,22 @@ import lombok.*; import java.util.*; import javax.validation.constraints.*; -@Schema(description = "管理后台 - 线库/巷道新增/修改 Request VO") +@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 = "芋艿") + @Schema(description = "线库名称", example = "芋艿") private String laneName; - @Schema(description = "巷道说明(可以拓展为区域说明)") + @Schema(description = "线库说明(可以拓展为说明)") private String laneMsg; -} \ No newline at end of file + @Schema(description = "地图id") + private Long mapId; + + @Schema(description = "地图库位节点ids") + private List mapItemIds; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/PositionMapConditionDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/PositionMapConditionDTO.java new file mode 100644 index 000000000..d98bd1bc4 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/PositionMapConditionDTO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.system.controller.admin.positionmap.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +@Schema(description = "管理后台 - 仓库点位地图查询") +@Data +@Accessors(chain = true) +public class PositionMapConditionDTO { + @Schema(description = "ids") + private List ids; + + @Schema(description = "仓库点位地图表id") + private Long positionMapId; + + @Schema(description = "库区id") + private Long areaId; + + @Schema(description = "巷道id") + private Long laneId; + + @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充") + private Integer type; +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/positionmap/PositionMapItemDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/positionmap/PositionMapItemDO.java index 78419fded..7896d809d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/positionmap/PositionMapItemDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/positionmap/PositionMapItemDO.java @@ -33,11 +33,11 @@ public class PositionMapItemDO extends BaseDO { */ private Long positionMapId; /** - * 库区id(自定义) + * 库区id */ private Long areaId; /** - * 巷道id(自定义) + * 线库id */ private Long laneId; /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/NodeProcessingContext.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/NodeProcessingContext.java index fe3c01689..d0c63dca2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/NodeProcessingContext.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/NodeProcessingContext.java @@ -44,7 +44,7 @@ public class NodeProcessingContext { // 节点 // strategyMap.put(1, positionMapItemStrategyImpl); // 库位 - strategyMap.put(NodeTypeEnum.WARE.getStatus(), houseLocationStrategyImpl); + strategyMap.put(NodeTypeEnum.WARE.getType(), houseLocationStrategyImpl); // todo 可以继续添加更多的策略 } @@ -57,7 +57,7 @@ public class NodeProcessingContext { } item.setPositionMapId(positionMapId); // -- 如果是库位点 - 可能是一对多情况 - 需要将多个库位点的id set进去 - if (Objects.equals(item.getType(), NodeTypeEnum.WARE.getStatus())) { + if (Objects.equals(item.getType(), NodeTypeEnum.WARE.getType())) { List wareHouseLocationDOS = JSONUtil.toList(item.getDataJson(), WareHouseLocationDO.class); wareHouseLocationDOS.forEach(wareHouseLocationDO -> { wareHouseLocationDO.setLocationX(item.getLocationX()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselane/WareHouseLaneService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselane/WareHouseLaneService.java index f1ce77fd3..49bb1f976 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselane/WareHouseLaneService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselane/WareHouseLaneService.java @@ -1,56 +1,39 @@ 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; +import javax.validation.Valid; + /** - * 线库/巷道 Service 接口 + * 线库 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 线库/巷道 + * @return 线库 */ WareHouseLaneDO getHouseLane(Long id); /** - * 获得线库/巷道分页 + * 获得线库分页 * * @param pageReqVO 分页查询 - * @return 线库/巷道分页 + * @return 线库分页 */ PageResult getHouseLanePage(WareHouseLanePageReqVO pageReqVO); -} \ No newline at end of file + /** + * 创建修改删除线库 + * + * @param createReqVO + */ + void createOrEditOrDel(@Valid WareHouseLaneSaveReqVO createReqVO); +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselane/WareHouseLaneServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselane/WareHouseLaneServiceImpl.java index 5599851b4..ae1f43b01 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselane/WareHouseLaneServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselane/WareHouseLaneServiceImpl.java @@ -1,19 +1,26 @@ package cn.iocoder.yudao.module.system.service.houselane; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.json.JSONUtil; +import cn.iocoder.yudao.framework.common.pojo.PageResult; 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.controller.admin.positionmap.dto.PositionMapConditionDTO; import cn.iocoder.yudao.module.system.dal.dataobject.houselane.WareHouseLaneDO; +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.mysql.houselane.WareHouseLaneMapper; +import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - +import javax.annotation.Resource; +import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_LANE_NOT_EXISTS; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.THE_LINE_LIBRARY_POINTS_ARE_NOT_LOCATED_IN_THE_SAME_AREA; /** @@ -27,38 +34,8 @@ 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); - } - } + @Resource + private PositionMapItemService positionMapItemService; @Override public WareHouseLaneDO getHouseLane(Long id) { @@ -70,4 +47,38 @@ public class WareHouseLaneServiceImpl implements WareHouseLaneService { return houseLaneMapper.selectPage(pageReqVO); } -} \ No newline at end of file + @Override + @Transactional(rollbackFor = Exception.class) + public void createOrEditOrDel(WareHouseLaneSaveReqVO createReqVO) { +// // -- 先判定这些点位是否在同一区域内 - 如果不在则提示 哪些点位不在同一区域内 +// List oldList = positionMapItemService.getByCondition(new PositionMapConditionDTO() +// .setPositionMapId(createReqVO.getMapId()) +// .setLaneId(createReqVO.getId())); +// +// +// List list = positionMapItemService.getByCondition(new PositionMapConditionDTO() +// .setPositionMapId(createReqVO.getMapId()) +// .setIds(createReqVO.getMapItemIds())); +// +// if (CollUtil.isNotEmpty(list)) { +// // 判定是否都在同一区域内 +// long count = list.stream().map(PositionMapItemDO::getAreaId).distinct().count(); +// if (count > 1) { +// throw exception(THE_LINE_LIBRARY_POINTS_ARE_NOT_LOCATED_IN_THE_SAME_AREA); +// } +// } +// WareHouseLaneDO houseLane = BeanUtil.copyProperties(createReqVO, WareHouseLaneDO.class); +// houseLaneMapper.insertOrUpdate(houseLane); +// +// list.forEach(item -> { +// item.setLaneId(createReqVO.getId()); +// List wareHouseLocationDOS = JSONUtil.toList(item.getDataJson(), WareHouseLocationDO.class); +// wareHouseLocationDOS.forEach(a -> { +// a.setLaneId(createReqVO.getId()); +// a.setLaneName(createReqVO.getLaneName()); +// }); +// }); +// positionMapItemService.update + + } +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemService.java index cc8ae9446..68eecfe9f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemService.java @@ -1,9 +1,11 @@ package cn.iocoder.yudao.module.system.service.positionmap; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.PositionMapConditionDTO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO; +import com.baomidou.mybatisplus.extension.service.IService; import javax.validation.Valid; import java.util.List; @@ -13,7 +15,7 @@ import java.util.List; * * @author 芋道源码 */ -public interface PositionMapItemService { +public interface PositionMapItemService extends IService { /** * 创建仓库点位地图子表 @@ -67,4 +69,12 @@ public interface PositionMapItemService { * @param list */ void batchSaveOrEditOrDel(Long positionMapId, List> list); + + /** + * 根据条件搜索地图点位信息 + * + * @param positionMapConditionDTO + * @return + */ + List getByCondition(PositionMapConditionDTO positionMapConditionDTO); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java index 8e2085ce3..db6f8d985 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapItemServiceImpl.java @@ -1,15 +1,14 @@ package cn.iocoder.yudao.module.system.service.positionmap; -import cn.hutool.json.JSONUtil; 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.dto.PositionMapConditionDTO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapItemSaveReqVO; -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.mysql.positionmap.PositionMapItemMapper; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -26,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils. */ @Service @Validated -public class PositionMapItemServiceImpl implements PositionMapItemService { +public class PositionMapItemServiceImpl extends ServiceImpl implements PositionMapItemService { @Resource private PositionMapItemMapper positionMapItemMapper; @@ -82,4 +81,17 @@ public class PositionMapItemServiceImpl implements PositionMapItemService { positionMapItemMapper.deleteByIds(convertList(list.get(2), PositionMapItemDO::getId)); } } + + + @Override + public List getByCondition(PositionMapConditionDTO dto) { + return positionMapItemMapper.selectList(new LambdaQueryWrapperX() + .eqIfPresent(PositionMapItemDO::getPositionMapId, dto.getPositionMapId()) + .eqIfPresent(PositionMapItemDO::getType, dto.getType()) + .inIfPresent(PositionMapItemDO::getId, dto.getIds()) + .eqIfPresent(PositionMapItemDO::getAreaId, dto.getAreaId()) + .eqIfPresent(PositionMapItemDO::getLaneId, dto.getLaneId())); + } + + }