diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapItemController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapItemController.java index 230cd53d1..202ef4b0e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapItemController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/PositionMapItemController.java @@ -12,9 +12,11 @@ import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMa import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO; import cn.iocoder.yudao.module.system.handler.mapnode.NodeProcessingContext; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -28,7 +30,7 @@ import java.util.Map; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - +@Slf4j @Tag(name = "管理后台 - 仓库点位地图子表") @RestController @RequestMapping("/system/position-map-item") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/NodeBaseDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/NodeBaseDTO.java index 92f13d299..c49a8c187 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/NodeBaseDTO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/NodeBaseDTO.java @@ -32,6 +32,9 @@ public class NodeBaseDTO { @Schema(description = "实际坐标y轴") private String actualLocationY; + @Schema(description = "点位自增排序") + private Long sortNum; + @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充", example = "1") private Integer type; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemPageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemPageReqVO.java index a389ce45c..6f9f734d1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemPageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemPageReqVO.java @@ -32,6 +32,9 @@ public class PositionMapItemPageReqVO extends PageParam { @Schema(description = "坐标y轴") private String locationY; + @Schema(description = "点位自增排序") + private Long sortNum; + @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充", example = "1") private Integer type; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemRespVO.java index 4f54bcac3..12c3b278b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemRespVO.java @@ -52,6 +52,9 @@ public class PositionMapItemRespVO { @ExcelProperty("类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充") private Integer type; + @Schema(description = "点位自增排序") + private Long sortNum; + @Schema(description = "对应各个类型的独有属性Json格式 例如({库位长度:1,库位宽度:2,库位方向:单向})", example = "1") private String dataJson; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemSaveReqVO.java index 2c6d37f4b..d445ceab8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapItemSaveReqVO.java @@ -28,6 +28,9 @@ public class PositionMapItemSaveReqVO { @Schema(description = "坐标y轴") private String locationY; + @Schema(description = "点位自增排序") + private Long sortNum; + @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充", example = "1") 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 f889cf2bf..ca59fd72b 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 @@ -55,6 +55,10 @@ public class PositionMapItemDO extends BaseDO { * 实际坐标y轴 */ private String actualLocationY; + /** + * 点位自增排序 + */ + private Long sortNum; /** * 类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充 */ 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 88759dc85..ccd0a0f96 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 @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseD import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO; import cn.iocoder.yudao.module.system.handler.mapnode.strategy.*; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -16,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import java.util.*; +@Slf4j @Component public class NodeProcessingContext { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/HouseLocationStrategyImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/HouseLocationStrategyImpl.java index e18014727..7dc39bd63 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/HouseLocationStrategyImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/HouseLocationStrategyImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.system.handler.mapnode.strategy; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; @@ -8,6 +9,7 @@ import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHous import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseDTO; import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO; import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -19,11 +21,13 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_LOCATION_NO_EXIST; import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.TASK_DETAIL_CHANGE_ROBOT; import static com.baomidou.mybatisplus.core.toolkit.IdWorker.getId; - +@Slf4j @Component public class HouseLocationStrategyImpl implements NodeProcessingStrategy { @Resource private HouseLocationService houseLocationService; + //库位编号格式 - 第一个通配符为地图id 第二个通配符为随机数四位最后一个通配符为库位点层数 + private static final String KW_NO_FORMAT = "KW-%s-%s-%s"; @Override public void processNodes(Long positionMapId, List nodeBaseDTOS) { @@ -41,7 +45,7 @@ public class HouseLocationStrategyImpl implements NodeProcessingStrategy { List wareHouseLocationDOS = JSONUtil.toList(item.getDataJson(), WareHouseLocationDO.class); // -- 筛选出 库位编号不为空 - 并且第最后一组数据 最大的值 - 如果没有则为0 int max = wareHouseLocationDOS.stream().map(WareHouseLocationDO::getLocationNo).filter(StrUtil::isNotEmpty) - .mapToInt(s -> Integer.parseInt(s.split("_")[2])).max().orElse(0); + .mapToInt(s -> Integer.parseInt(s.substring(s.length() - 1))).max().orElse(1); int locationStorey = wareHouseLocationDOS.size(); for (WareHouseLocationDO wareHouseLocationDO : wareHouseLocationDOS) { wareHouseLocationDO.setLocationX(item.getLocationX()); @@ -53,7 +57,8 @@ public class HouseLocationStrategyImpl implements NodeProcessingStrategy { } if (StrUtil.isEmpty(wareHouseLocationDO.getLocationNo())) { // -- 生成库位编号 - - wareHouseLocationDO.setLocationNo(positionMapId + "_" + item.getId() + "_" + max++); + String locationNo = String.format(KW_NO_FORMAT, positionMapId, RandomUtil.randomNumbers(4), max++); + wareHouseLocationDO.setLocationNo(locationNo); } wareHouseLocationDO.setMapId(positionMapId); wareHouseLocationDO.setMapItemId(item.getId()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/MapNodeStrategyImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/MapNodeStrategyImpl.java index 62581553d..3338af4f0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/MapNodeStrategyImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/MapNodeStrategyImpl.java @@ -1,19 +1,10 @@ package cn.iocoder.yudao.module.system.handler.mapnode.strategy; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseDTO; -import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO; -import cn.iocoder.yudao.module.system.service.houselocation.HouseLocationService; import org.springframework.stereotype.Component; -import javax.annotation.Resource; -import java.util.ArrayList; import java.util.List; -import static com.baomidou.mybatisplus.core.toolkit.IdWorker.getId; - @Component public class MapNodeStrategyImpl implements NodeProcessingStrategy { 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 f16384e5c..3b192ff4f 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 @@ -54,8 +54,6 @@ public class PositionMapServiceImpl extends ServiceImpl