From 7a1627711c39344ee6b2000941533db588c5a03c Mon Sep 17 00:00:00 2001 From: cbs <18617195505@163.com> Date: Wed, 28 May 2025 15:22:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=B0=E5=9B=BE=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/enums/ErrorCodeConstants.java | 1 + .../api/robot/processor/RequestProcessor.java | 2 +- .../PositionMapItemController.java | 19 +++- .../dal/mysql/housearea/HouseAreaMapper.java | 6 ++ .../mysql/houselane/WareHouseLaneMapper.java | 5 + .../WareHouseLocationMapper.java | 13 +++ .../information/DeviceInformationMapper.java | 6 ++ .../mysql/parkingspot/ParkingSpotMapper.java | 6 ++ .../PositionChangePointBindingMapper.java | 7 ++ .../positionmap/PositionMapItemMapper.java | 6 ++ .../positionmap/PositionMapLineMapper.java | 7 ++ .../service/housearea/HouseAreaService.java | 6 ++ .../housearea/HouseAreaServiceImpl.java | 5 + .../houselane/WareHouseLaneService.java | 6 ++ .../houselane/WareHouseLaneServiceImpl.java | 5 + .../houselocation/HouseLocationService.java | 8 ++ .../HouseLocationServiceImpl.java | 15 +++ .../information/DeviceInformationService.java | 6 ++ .../DeviceInformationServiceImpl.java | 5 + .../parkingspot/ParkingSpotService.java | 6 ++ .../parkingspot/ParkingSpotServiceImpl.java | 5 + .../PositionChangePointBindingService.java | 6 ++ ...PositionChangePointBindingServiceImpl.java | 5 + .../positionmap/PositionMapItemService.java | 14 +++ .../PositionMapItemServiceImpl.java | 20 ++++ .../positionmap/PositionMapLineService.java | 6 ++ .../PositionMapLineServiceImpl.java | 5 + .../positionmap/PositionMapServiceImpl.java | 96 +++++++++++++++---- .../robot/RobotWarnMsgServiceImpl.java | 8 ++ .../mapper/housearea/HouseAreaMapper.xml | 5 + .../mapper/houselane/WareHouseLaneMapper.xml | 5 + .../houselocation/WareHouseLocationMapper.xml | 19 ++++ .../information/DeviceInformationMapper.xml | 8 ++ .../mapper/parkingspot/ParkingSpotMapper.xml | 5 + .../PositionChangePointBindingMapper.xml | 7 ++ .../positionmap/PositionMapItemMapper.xml | 5 + .../positionmap/PositionMapLineMapper.xml | 5 + 37 files changed, 345 insertions(+), 19 deletions(-) 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 4de68cec2..f2a631921 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 @@ -244,6 +244,7 @@ public interface ErrorCodeConstants { ErrorCode THERE_ARE_ALREADY_STORAGE_LOCATIONS_IN_OTHER_LINE_WAREHOUSES = new ErrorCode(1_002_038_007, "已有库位在其他线库内"); ErrorCode THERE_ARE_ALREADY_STORAGE_LOCATIONS_IN_OTHER_STORAGE_AREAS = new ErrorCode(1_002_038_008, "已有库位在其它区域内"); ErrorCode MAP_DOES_NOT_EXIST_AGV = new ErrorCode(1_002_038_009, "此楼层区域不存在车辆需要暂停或恢复"); + ErrorCode MAP_EXIST_TASK_EXIST_TASK = new ErrorCode(1_002_038_010, "修改地图:此楼层区域存在处理中的任务或者库位上还有货物"); // ========== 机器人自动移库 1-002-039-000 ========== ErrorCode TASK_AUTO_MOVE_NOT_EXISTS = new ErrorCode(1_002_039_001, "车辆自动移库不存在"); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/processor/RequestProcessor.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/processor/RequestProcessor.java index 23b901fa1..b0cb69ae6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/processor/RequestProcessor.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/robot/processor/RequestProcessor.java @@ -46,7 +46,7 @@ public class RequestProcessor { private void sendData(String map, Map data) { // -- 发送给对应的websocket // System.out.println("key:" + map + "发送数据:" + data); - log.info("key:" + map + "发送数据:" + data); +// log.info("key:" + map + "发送数据:" + data); webSocketSenderApi.sendObject(map, "map_push", data); } 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 9b851ac6e..ebc6f5b4b 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 @@ -22,6 +22,7 @@ import cn.iocoder.yudao.module.system.service.log.UserOperationLogService; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapItemService; import cn.iocoder.yudao.module.system.service.positionmap.PositionMapLineService; import cn.iocoder.yudao.module.system.service.robot.RobotTaskService; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -35,6 +36,7 @@ import javax.annotation.Resource; import javax.validation.Valid; import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -136,7 +138,7 @@ public class PositionMapItemController { @PostMapping("/lineAddItem") @Operation(summary = "线上加点保存点位") @PreAuthorize("@ss.hasPermission('system:position-map-item:lineAddItem')") - public CommonResult lineAddItem(@Valid @RequestBody List list) { + public CommonResult> lineAddItem(@Valid @RequestBody List list) { PositionMapItemSaveReqVO positionMapItem = BeanUtils.toBean(list.get(0), PositionMapItemSaveReqVO.class); positionMapItemService.createPositionMapItem(positionMapItem); @@ -144,10 +146,23 @@ public class PositionMapItemController { positionMapLineService.deletePositionMapLine(list.get(0).getOldLineId()); List positionMapLines = list.get(0).getPositionMapLines(); List lineList = BeanUtils.toBean(positionMapLines, PositionMapLineDO.class); + List itemIds = new ArrayList<>(); + for (PositionMapLineDO positionMapLineDO : lineList) { + itemIds.add(positionMapLineDO.getStartingPointId()); + itemIds.add(positionMapLineDO.getEndPointId()); + } + + Map sortNumMap = positionMapItemService.getSortNumMapByIds(itemIds); + for (PositionMapLineDO positionMapLineDO : lineList) { positionMapLineDO.setPositionMapId(positionMapItem.getPositionMapId()); + positionMapLineDO.setStartingSortNum(sortNumMap.get(positionMapLineDO.getStartingPointId()).intValue()); + positionMapLineDO.setEndPointSortNum(sortNumMap.get(positionMapLineDO.getEndPointId()).intValue()); } positionMapLineService.batchSaveLines(lineList); - return success(true); + Map map = new HashMap<>(); + map.put("ITEM",positionMapItemService.getPositionMapItem(positionMapItem.getId())); + map.put("LINE",lineList); + return success(map); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/housearea/HouseAreaMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/housearea/HouseAreaMapper.java index a9c373ef1..d045f9f53 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/housearea/HouseAreaMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/housearea/HouseAreaMapper.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.system.controller.admin.housearea.vo.HouseAreaPageReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.housearea.HouseAreaDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 库区 Mapper @@ -24,4 +25,9 @@ public interface HouseAreaMapper extends BaseMapperX { .orderByDesc(HouseAreaDO::getId)); } + /** + * 根据地图id删除 + * @param mapId + */ + void deleteHouseAreaByMapId(@Param("mapId") Long mapId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselane/WareHouseLaneMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselane/WareHouseLaneMapper.java index e8a21f24e..8516cace2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselane/WareHouseLaneMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/houselane/WareHouseLaneMapper.java @@ -27,4 +27,9 @@ public interface WareHouseLaneMapper extends BaseMapperX { .orderByDesc(WareHouseLaneDO::getId)); } + /** + * 根据地图id删除 + * @param mapId + */ + void deleteHouseLaneByMapId(@Param("mapId") Long mapId); } 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 89e505b74..bcf0a0aa5 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 @@ -169,4 +169,17 @@ public interface WareHouseLocationMapper extends BaseMapperX getLocationsXYByMapId(@Param("mapId") Long mapId); + + /** + * 根据地图id删除 + * @param mapId + */ + void deleteHouseLocationByMapId(@Param("mapId") Long mapId); + + /** + * 查询有货或者有锁定的库位 + * @param mapId + * @return + */ + List getInStockLockLocationByMapId(@Param("mapId") Long mapId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/information/DeviceInformationMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/information/DeviceInformationMapper.java index ae248e6e9..b79d497f7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/information/DeviceInformationMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/information/DeviceInformationMapper.java @@ -48,4 +48,10 @@ public interface DeviceInformationMapper extends BaseMapperX { .orderByDesc(ParkingSpotDO::getId)); } + /** + * 根据地图id删除 + * @param mapId + */ + void deleteParkingByMapId(@Param("mapId") Long mapId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionChangePointBindingMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionChangePointBindingMapper.java index ad88be360..cc3a65d89 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionChangePointBindingMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionChangePointBindingMapper.java @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.mqtt.api.path.dto.PositionAllChangePointBindingDT import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionChangePointBindingPageReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionChangePointBindingDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 区域变更点绑定 Mapper @@ -33,4 +34,10 @@ public interface PositionChangePointBindingMapper extends BaseMapperX getAllPositionChangePointBinding(); + + /** + * 根据地图id删除 + * @param mapId + */ + void deleteBindIngByMapId(@Param("mapId") Long mapId); } \ 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/positionmap/PositionMapItemMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionMapItemMapper.java index a09a2aaec..064394166 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionMapItemMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionMapItemMapper.java @@ -68,4 +68,10 @@ public interface PositionMapItemMapper extends BaseMapperX { * @return */ List selectInWaitList(@Param("list") List list); + + /** + * 删除这个地图的点 + * @param mapId + */ + void deleteByMapId(@Param("mapId") Long mapId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionMapLineMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionMapLineMapper.java index 5164edd0b..4e03a45be 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionMapLineMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/positionmap/PositionMapLineMapper.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.mqtt.api.path.dto.PositionMapLineDTO; import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMapLinePageReqVO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapLineDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -32,4 +33,10 @@ public interface PositionMapLineMapper extends BaseMapperX { * @return */ List getAllPositionMapLine(PositionMapLineDO positionMapLineDO); + + /** + * 根据地图id删除 + * @param mapId + */ + void deleteByMapId(@Param("mapId") Long mapId); } 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 2bfd7e4cd..1dcdf3714 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 @@ -75,4 +75,10 @@ public interface HouseAreaService extends IService { * @param id */ void delete(Long id); + + /** + * 根据地图id删除 + * @param mapId + */ + void deleteHouseAreaByMapId(Long mapId); } 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 90a9fde38..354a2a32b 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 @@ -187,4 +187,9 @@ public class HouseAreaServiceImpl extends ServiceImpl { * @param id */ void delete(Long id); + + /** + * 根据地图id删除 + * @param mapId + */ + void deleteHouseLaneByMapId(Long mapId); } 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 262b98bde..bfdb71f9c 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 @@ -157,4 +157,9 @@ public class WareHouseLaneServiceImpl extends ServiceImpl { * @return */ List getLocationsXYByMapId(Long mapId); + + /** + * 根据地图id删除 + * @param mapId + */ + void deleteHouseLocationByMapId(Long mapId); + + List getInStockLockLocationByMapId(Long mapId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java index 302c4c425..8e3e5f2e5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/houselocation/HouseLocationServiceImpl.java @@ -193,6 +193,21 @@ public class HouseLocationServiceImpl extends ServiceImpl getInStockLockLocationByMapId(Long mapId) { + return houseLocationMapper.getInStockLockLocationByMapId(mapId); + } + @Override @Transactional(rollbackFor = Exception.class) public void updateHouseLocationList(List list) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java index ae3f59198..ce787b454 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationService.java @@ -137,4 +137,10 @@ public interface DeviceInformationService extends IService * @return */ String getMapImageUrl(Integer deviceType); + + /** + * 根据地图ID删除 + * @param id + */ + void deleteDeviceByMapId(Long id); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java index 9c6c1eca8..384afd2a7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/information/DeviceInformationServiceImpl.java @@ -447,6 +447,11 @@ public class DeviceInformationServiceImpl extends ServiceImpl { * @param list */ void batchSaveOrEditOrDel(Long positionMapId, List> list); + + /** + * 根据地图id删除 + * @param mapId + */ + void deleteParkingByMapId(Long mapId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/parkingspot/ParkingSpotServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/parkingspot/ParkingSpotServiceImpl.java index 3deabc52d..b53d5ea96 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/parkingspot/ParkingSpotServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/parkingspot/ParkingSpotServiceImpl.java @@ -84,4 +84,9 @@ public class ParkingSpotServiceImpl extends ServiceImpl getByMapIdAndStartPointIds(Long positionMapId, List endPointIds, List startPointIds); + + /** + * 根据地图ID删除 + * @param mapId + */ + void deleteBindingByMapId(Long mapId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionChangePointBindingServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionChangePointBindingServiceImpl.java index 9ace0837a..ff4f594e9 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionChangePointBindingServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionChangePointBindingServiceImpl.java @@ -169,5 +169,10 @@ public class PositionChangePointBindingServiceImpl extends ServiceImpl { * @return */ List getItemBySortNum(Long sortNum); + + /** + * 根据ID获取排序的MAP + * @param itemIds + * @return + */ + Map getSortNumMapByIds(List itemIds); + + /** + * 删除这个地图的点 + * @param mapId + */ + void deleteByMapId(Long mapId); } 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 282ceb6c3..45de108d2 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 @@ -25,7 +25,10 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import static cn.hutool.core.collection.CollUtil.isNotEmpty; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; @@ -191,4 +194,21 @@ public class PositionMapItemServiceImpl extends ServiceImpl getSortNumMapByIds(List idList) { + List list = positionMapItemMapper.selectList(new LambdaQueryWrapperX() + .in(PositionMapItemDO::getId, idList)); + return list.stream().collect(Collectors.toMap(PositionMapItemDO::getId, PositionMapItemDO::getSortNum)); + } + + @Override + public void deleteByMapId(Long mapId) { + positionMapItemMapper.deleteByMapId(mapId); + } + } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineService.java index ffef1b87b..9742a00b5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineService.java @@ -68,4 +68,10 @@ public interface PositionMapLineService extends IService { * @param lineList */ void batchSaveLines(List lineList); + + /** + * 根据地图ID删除 + * @param id + */ + void deleteByMapId(Long mapId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineServiceImpl.java index 70ad8aa73..a88859c7f 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/positionmap/PositionMapLineServiceImpl.java @@ -83,4 +83,9 @@ public class PositionMapLineServiceImpl extends ServiceImpl() + .eq(PositionMapDO::getFloor, floorInt) + .eq(PositionMapDO::getArea, areaStr)); + if (ObjectUtil.isNotEmpty(positionMap)) { + positionMapMapper.deleteById(positionMap.getId()); + List locationDOList = houseLocationService.getInStockLockLocationByMapId(positionMap.getId()); + if (ObjectUtil.isNotEmpty(locationDOList)) { + warnMsgService.sendWarnMsgToWebsocket(MAP_EXIST_TASK_EXIST_TASK.getMsg()); + RobotWarnMsgSaveReqVO warnMsgSaveReqVO = new RobotWarnMsgSaveReqVO(); + List locationNos = locationDOList.stream().map(WareHouseLocationDO::getLocationNo).collect(Collectors.toList()); + String locationStr = StringUtils.join(locationNos, ","); + if (locationStr.length() > 160) { + locationStr = locationStr.substring(0,160); + } + warnMsgSaveReqVO.setWarnMsg(MAP_EXIST_TASK_EXIST_TASK.getMsg()+locationStr); + warnMsgSaveReqVO.setWarnLevel(4); + warnMsgSaveReqVO.setWarnCode("MAP"); + warnMsgSaveReqVO.setSolveTime(LocalDateTime.now()); + warnMsgService.createWarnMsg(warnMsgSaveReqVO); + throw exception(MAP_EXIST_TASK_EXIST_TASK); + } + positionMapItemService.deleteByMapId(positionMap.getId()); + positionMapLineService.deleteByMapId(positionMap.getId()); + houseLocationService.deleteHouseLocationByMapId(positionMap.getId()); + deviceInformationMapper.deleteDeviceByMapId(positionMap.getId()); + positionChangePointBindingService.deleteBindingByMapId(positionMap.getId()); + houseAreaService.deleteHouseAreaByMapId(positionMap.getId()); + houseLaneService.deleteHouseLaneByMapId(positionMap.getId()); + parkingSpotService.deleteParkingByMapId(positionMap.getId()); + } + // 处理 PNG 文件 try { pngUrl = url + pngFile.getOriginalFilename(); @@ -199,18 +269,11 @@ public class PositionMapServiceImpl extends ServiceImpl() - .eq(PositionMapDO::getFloor, floorInt) - .eq(PositionMapDO::getArea, areaStr)); - if (positionMap != null) { - positionMapMapper.updateById(positionMap.setYamlJson(yamlJson).setPngUrl(pngUrl).setYamlUrl(yamlUrl)); - // todo 异步通知所有该楼层区域内所有AGV车地图有更改 - 这个时候AGV应当重新获取地图信息 - } else { - positionMap = new PositionMapDO().setFloor(floorInt).setArea(areaStr) - .setYamlJson(yamlJson).setPngUrl(pngUrl).setYamlUrl(yamlUrl); - positionMapMapper.insert(positionMap); - } + // todo 异步通知所有该楼层区域内所有AGV车地图有更改 - 这个时候AGV应当重新获取地图信息 + positionMap = new PositionMapDO().setFloor(floorInt).setArea(areaStr) + .setYamlJson(yamlJson).setPngUrl(pngUrl).setYamlUrl(yamlUrl); + positionMapMapper.insert(positionMap); } @Override @@ -480,6 +543,7 @@ public class PositionMapServiceImpl extends ServiceImpl getRemoteSingleMapInfomation(Map robotMap, List robotNos, - Map robotDoingTaskMap, - Map remoteMap) { + Map robotDoingTaskMap, + Map remoteMap) { RemoteRobotDTO automatic = new RemoteRobotDTO(); RemoteRobotDTO handMovement = new RemoteRobotDTO(); RemoteRobotDTO free = new RemoteRobotDTO(); @@ -534,9 +598,9 @@ public class PositionMapServiceImpl extends ServiceImpl + + update ware_house_area + set deleted = '1' + where position_map_id = #{mapId} + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselane/WareHouseLaneMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselane/WareHouseLaneMapper.xml index 88b5ca8ff..8d245d54a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselane/WareHouseLaneMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselane/WareHouseLaneMapper.xml @@ -9,4 +9,9 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + update ware_house_lane + set deleted = '1' + where position_map_id = #{mapId} + diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselocation/WareHouseLocationMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselocation/WareHouseLocationMapper.xml index 140f0caf5..f90f466ab 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselocation/WareHouseLocationMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/houselocation/WareHouseLocationMapper.xml @@ -77,6 +77,14 @@ update_time, deleted + + update + ware_house_location + set + deleted = '1' + where + map_id = #{mapId} + + diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/information/DeviceInformationMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/information/DeviceInformationMapper.xml index e29083cf7..4daa6d8e3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/information/DeviceInformationMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/information/DeviceInformationMapper.xml @@ -28,4 +28,12 @@ where last_user = #{lastUser} + + update + device_information + set + deleted = '1' + where + position_map_id = #{mapId} + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/parkingspot/ParkingSpotMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/parkingspot/ParkingSpotMapper.xml index 01e8db785..4a52cbe1a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/parkingspot/ParkingSpotMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/parkingspot/ParkingSpotMapper.xml @@ -9,4 +9,9 @@ 文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ --> + + update ware_parking_spot + set deleted = '1' + where position_map_id = #{mapId} + \ No newline at end of file diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/positionmap/PositionChangePointBindingMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/positionmap/PositionChangePointBindingMapper.xml index 2081c5288..b86155989 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/positionmap/PositionChangePointBindingMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/positionmap/PositionChangePointBindingMapper.xml @@ -2,6 +2,13 @@ + + + update ware_position_change_point_binding + set deleted = '1' + where position_map_id = #{mapId} + +