diff --git a/yudao-module-mqtt/yudao-module-mqtt-api/src/main/java/cn/iocoder/yudao/module/mqtt/api/path/dto/PositionMapLineDTO.java b/yudao-module-mqtt/yudao-module-mqtt-api/src/main/java/cn/iocoder/yudao/module/mqtt/api/path/dto/PositionMapLineDTO.java index 43da8b1a3..847596955 100644 --- a/yudao-module-mqtt/yudao-module-mqtt-api/src/main/java/cn/iocoder/yudao/module/mqtt/api/path/dto/PositionMapLineDTO.java +++ b/yudao-module-mqtt/yudao-module-mqtt-api/src/main/java/cn/iocoder/yudao/module/mqtt/api/path/dto/PositionMapLineDTO.java @@ -6,8 +6,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.math.BigDecimal; - @Data @Builder @NoArgsConstructor @@ -104,20 +102,27 @@ public class PositionMapLineDTO { @Schema(description = "终点高") private Double endHigh; - @Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)", example = "15890") + @Schema(description = "车头朝向(0:正正 1:正反 2:反正 3:反反)", example = "15890") private Integer toward; + @Schema(description = "发送给路径规划 车头朝向(0正 1反)", example = "15890") + private Integer ppToward; + + /** * 双向车道 反向行走变更车头朝向 + * * @param toward * @return */ public Integer changeToward(Integer toward) { if (toward == 0) { - return 3; + return 0; } else if (toward == 1) { - return 2; + return 1; } else if (toward == 2) { + return 0; + } else if (toward == 3) { return 1; } else { return 0; 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 6da04d7e5..f44854c3d 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 @@ -17,6 +17,7 @@ import javax.annotation.Resource; import javax.annotation.security.PermitAll; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -50,6 +51,16 @@ public class PositionMapController { return success(BeanUtils.toBean(positionMap, PositionMapRespVO.class)); } + + @GetMapping("/emergencyStopOrRecovery") + @Operation(summary = "一键急停or一键恢复地图上所有AGV") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('system:position-map:emergencyStopOrRecovery')") + public CommonResult emergencyStopOrRecovery(@RequestParam("id") Long id) { + positionMapService.emergencyStopOrRecovery(id); + return success(true); + } + @GetMapping("/getMap") @Operation(summary = "获得仓库点位地图Map") @PreAuthorize("@ss.hasPermission('system:position-map:query')") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/path/PathPlanningServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/path/PathPlanningServiceImpl.java index 88abea16f..df6df7a5c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/path/PathPlanningServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/path/PathPlanningServiceImpl.java @@ -11,7 +11,6 @@ import cn.iocoder.yudao.module.system.controller.admin.positionmap.vo.PositionMa import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapItemDO; import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapLineDO; -import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotInformationDO; import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapItemMapper; import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapLineMapper; import cn.iocoder.yudao.module.system.dal.mysql.positionmap.PositionMapMapper; @@ -26,8 +25,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -88,7 +85,7 @@ public class PathPlanningServiceImpl implements PathPlanningService { relatedPathNode.setFloor(positionMapDO.getFloor()); relatedPathNode.setArea(positionMapDO.getArea()); relatedPathNode.setType(PathTypeEnum.INIT.getType()); - List positionMapLineDOS = positionMapLineMap.get(positionMapDO.getId()+""); + List positionMapLineDOS = positionMapLineMap.get(positionMapDO.getId() + ""); if (ObjectUtil.isEmpty(positionMapLineDOS)) { continue; } @@ -163,10 +160,10 @@ public class PathPlanningServiceImpl implements PathPlanningService { for (PositionMapLineDTO positionMapLineDO : positionMapLineDOS) { list.add(positionMapLineDO); if (DirectionEnum.ONE_WAY.getType().equals(positionMapLineDO.getDirection())) { - continue; + positionMapLineDO.setPpToward(positionMapLineDO.changeToward(positionMapLineDO.getToward())); + } else { + list.add(setPositionMapLineDTOData(positionMapLineDO)); } - - list.add(setPositionMapLineDTOData(positionMapLineDO)); } PositionMapLinePathDTO relatedPathNode = new PositionMapLinePathDTO(); @@ -238,10 +235,10 @@ public class PathPlanningServiceImpl implements PathPlanningService { for (PositionMapLineDTO positionMapLineDO : positionMapLineDOS) { list.add(positionMapLineDO); if (DirectionEnum.ONE_WAY.getType().equals(positionMapLineDO.getDirection())) { - continue; + positionMapLineDO.setPpToward(positionMapLineDO.changeToward(positionMapLineDO.getToward())); + } else { + list.add(setPositionMapLineDTOData(positionMapLineDO)); } - - list.add(setPositionMapLineDTOData(positionMapLineDO)); } PositionMapLinePathDTO relatedPathNode = new PositionMapLinePathDTO(); @@ -406,10 +403,10 @@ public class PathPlanningServiceImpl implements PathPlanningService { for (PositionMapLineDTO positionMapLineDO : positionMapLineDOS) { list.add(positionMapLineDO); if (DirectionEnum.ONE_WAY.getType().equals(positionMapLineDO.getDirection())) { - continue; + positionMapLineDO.setPpToward(positionMapLineDO.changeToward(positionMapLineDO.getToward())); + } else { + list.add(setPositionMapLineDTOData(positionMapLineDO)); } - - list.add(setPositionMapLineDTOData(positionMapLineDO)); } relatedPathNode.setControl_nodes(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 074da0b51..a6a39c1e3 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 @@ -92,7 +92,15 @@ public interface PositionMapService extends IService { /** * 获得所有仓库点位地图Map + * * @return */ Map> getAllMap(); + + /** + * 一键急停or一键恢复 + * + * @param id + */ + void emergencyStopOrRecovery(Long id); } 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 3b192ff4f..5b64a1fa8 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 @@ -319,4 +319,10 @@ public class PositionMapServiceImpl extends ServiceImpl