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 b477f6cc0..4c3f65c4c 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 @@ -21,7 +21,7 @@ public enum NodeTypeEnum { PARKING(4, "停车点"), CHANGE(5, "区域变更点"), WAIT(6, "等待点"), - TEXT(7, "文字点"); + CHECK(7, "检测点"); /** * 类型 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 3380705a2..0a19dcf2e 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 @@ -35,7 +35,7 @@ public class NodeBaseDTO { @Schema(description = "点位自增排序") private Long sortNum; - @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充", example = "1") + @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 7.检测点 --- 后续补充", example = "1") private Integer type; @Schema(description = "对应各个类型的独有属性Json格式 例如({库位长度:1,库位宽度:2,库位方向:单向})", example = "1") 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 487ff7091..75e5814a7 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 @@ -37,7 +37,7 @@ public class PositionMapItemPageReqVO extends PageParam { @Schema(description = "点位自增排序") private Long sortNum; - @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充", example = "1") + @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 7.检测点 --- 后续补充", example = "1") private Integer type; @Schema(description = "对应各个类型的独有属性Json格式 例如({库位长度:1,库位宽度:2,库位方向:单向})", example = "1") 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 ddf4b1b96..77b5f0069 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 @@ -48,8 +48,8 @@ public class PositionMapItemRespVO { @Schema(description = "实际坐标y轴") private String actualLocationY; - @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充", example = "1") - @ExcelProperty("类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充") + @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 7.检测点 --- 后续补充", example = "1") + @ExcelProperty("类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 7.检测点 --- 后续补充") private Integer type; @Schema(description = "点位自增排序") 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 828a7ff07..2fe538c0a 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 @@ -31,7 +31,7 @@ public class PositionMapItemSaveReqVO { @Schema(description = "点位自增排序") private Long sortNum; - @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充", example = "1") + @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 7.检测点 --- 后续补充", example = "1") private Integer type; @Schema(description = "对应各个类型的独有属性Json格式 例如({库位长度:1,库位宽度:2,库位方向:单向})", example = "1") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseTakePointDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseTakePointDO.java index 1b0dd71b4..21990fd70 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseTakePointDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/houselocation/WareHouseTakePointDO.java @@ -34,7 +34,7 @@ public class WareHouseTakePointDO extends BaseDO { */ private String pointName; /** - * 点位类型(备用) + * 点位类型 0:翻转机设备, 1:普通取放货点位 */ private Integer pointType; /** 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 baa4ddfaf..6c09a07d2 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 @@ -61,7 +61,7 @@ public class PositionMapItemDO extends BaseDO { */ private Long sortNum; /** - * 类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 --- 后续补充 + * 类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 7.检测点--- 后续补充 */ private Integer type; /** diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/item/PositionMapItemEnum.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/item/PositionMapItemEnum.java index 6b9a71193..0a14701a1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/item/PositionMapItemEnum.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/enums/item/PositionMapItemEnum.java @@ -11,7 +11,9 @@ public enum PositionMapItemEnum { CHARGE(3,"充电桩"), STOP(4,"停车点"), CHANGE(5,"区域变更点"), - WAIT(6,"等待点"); + WAIT(6,"等待点"), + CHECK(7,"检测点"); + /** * 类型 */ 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 b67070067..ba77caeac 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 @@ -34,6 +34,8 @@ public class NodeProcessingContext { @Autowired @Lazy private DeviceStrategyImpl deviceStrategyImpl; + @Autowired + private CheckStrategyImpl checkStrategyImpl; /** * 项目启动时 初始化策略 @@ -52,8 +54,8 @@ public class NodeProcessingContext { strategyMap.put(NodeTypeEnum.CHANGE.getType(), changeNodeStrategyImpl); // 等待点 strategyMap.put(NodeTypeEnum.WAIT.getType(), mapNodeStrategyImpl); - // 文字点 - strategyMap.put(NodeTypeEnum.TEXT.getType(), mapNodeStrategyImpl); + // 检测点 + strategyMap.put(NodeTypeEnum.CHECK.getType(), checkStrategyImpl); // todo 可以继续添加更多的策略 - 新增实现即可 } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/CheckStrategyImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/CheckStrategyImpl.java new file mode 100644 index 000000000..02752bf27 --- /dev/null +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/handler/mapnode/strategy/CheckStrategyImpl.java @@ -0,0 +1,60 @@ +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.houselocation.vo.WareHouseTakePointSaveReqVO; +import cn.iocoder.yudao.module.system.controller.admin.positionmap.dto.NodeBaseDTO; +import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseTakePointDO; +import cn.iocoder.yudao.module.system.enums.map.PointTypeEnum; +import cn.iocoder.yudao.module.system.service.houselocation.WareHouseTakePointService; +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 CheckStrategyImpl implements NodeProcessingStrategy{ + + @Resource + private WareHouseTakePointService houseTakePointService; + + @Override + public void processNodes(Long positionMapId, List nodeBaseDTOS) { + // -- 策略3 处理设备点 + // -- 将data里面的json 数据转为实体类 - 再对比节点id - 然后做新增删除修改操作 + List newList = new ArrayList<>(); + // -- 拿到这个地图所绑定的设备 - + + WareHouseTakePointSaveReqVO reqVO = new WareHouseTakePointSaveReqVO(); + reqVO.setPositionMapId(positionMapId); + reqVO.setPointType(PointTypeEnum.TAKE.getType()); + List oldList = houseTakePointService.getHouseTakePointList(reqVO); + nodeBaseDTOS.forEach(item -> { + if (item.getId() == null) { + item.setId(getId()); + } + item.setPositionMapId(positionMapId); + + List wareHouseTakePointDOS = JSONUtil.toList(item.getDataJson(), WareHouseTakePointDO.class); + + for (WareHouseTakePointDO wareHouseTakePointDO : wareHouseTakePointDOS) { + wareHouseTakePointDO.setPointType(PointTypeEnum.TAKE.getType()); + wareHouseTakePointDO.setPositionMapId(positionMapId); + wareHouseTakePointDO.setPositionMapItemId(item.getId()); + newList.add(wareHouseTakePointDO); + } + item.setDataJson(JSONUtil.toJsonStr(wareHouseTakePointDOS)); + }); + + List> list = CollectionUtils.compareLists(oldList, newList, + (oldVal, newVal) -> ObjectUtil.equal(oldVal.getId(), newVal.getId())); + houseTakePointService.batchEditOrDel(list); + } + + + +} diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/WareHouseTakePointService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/WareHouseTakePointService.java index b63880df1..273243c48 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/WareHouseTakePointService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/WareHouseTakePointService.java @@ -59,4 +59,5 @@ public interface WareHouseTakePointService extends IService ids); + void batchEditOrDel(List> list); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/WareHouseTakePointServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/WareHouseTakePointServiceImpl.java index c0ffdad1e..5cb023815 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/WareHouseTakePointServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/WareHouseTakePointServiceImpl.java @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.houselocation.vo.WareHouseTakePointSaveReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseTakePointDO; +import cn.iocoder.yudao.module.system.dal.dataobject.parkingspot.ParkingSpotDO; import cn.iocoder.yudao.module.system.dal.mysql.houselocation.WareHouseTakePointMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -15,7 +16,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import static cn.hutool.core.collection.CollUtil.isNotEmpty; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.HOUSE_TAKE_POINT_NOT_EXISTS; /** @@ -88,5 +91,19 @@ public class WareHouseTakePointServiceImpl extends ServiceImpl> list) { + //批量添加、修改、删除 + if (isNotEmpty(list.get(0))) { + houseTakePointMapper.insertBatch(list.get(0)); + } + if (isNotEmpty(list.get(1))) { + houseTakePointMapper.updateBatch(list.get(1)); + } + if (isNotEmpty(list.get(2))) { + houseTakePointMapper.deleteByIds(convertList(list.get(2), WareHouseTakePointDO::getId)); + } + } + }