From 1fef8884888d62aa238aeb990b27c9686bf1d86e Mon Sep 17 00:00:00 2001 From: aikai Date: Wed, 9 Apr 2025 09:56:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(positionmap):=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=BD=A6=E5=A4=B4=E6=9C=9D=E5=90=91=E7=9A=84=E7=A7=8D=E7=B1=BB?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E8=B7=AF=E5=BE=84=E8=A7=84=E5=88=92?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 PositionMapLineDO 和 PositionMapLineDTO 中扩展了车头朝向的种类,增加了随意朝向和反向行走时的朝向变化 - 修改了 PathPlanningServiceImpl 中的路径规划逻辑,以适应新的车头朝向种类 - 更新了相关控制器和 API 接口中的车头朝向描述 --- .../mqtt/api/path/dto/PositionMapLineDTO.java | 48 ++++++++++++++++++- .../positionmap/dto/PositionMapLineDTO.java | 2 +- .../vo/PositionMapLinePageReqVO.java | 2 +- .../positionmap/vo/PositionMapLineRespVO.java | 4 +- .../vo/PositionMapLineSaveReqVO.java | 2 +- .../positionmap/PositionMapLineDO.java | 2 +- .../service/path/PathPlanningServiceImpl.java | 20 +++++--- .../positionmap/PositionMapServiceImpl.java | 3 +- 8 files changed, 66 insertions(+), 17 deletions(-) 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 847596955..56ffffc7b 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 @@ -102,16 +102,18 @@ public class PositionMapLineDTO { @Schema(description = "终点高") private Double endHigh; - @Schema(description = "车头朝向(0:正正 1:正反 2:反正 3:反反)", example = "15890") + @Schema(description = "车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随) 如果是单向的话 0代表正 1代表反 2代表随意", example = "15890") private Integer toward; - @Schema(description = "发送给路径规划 车头朝向(0正 1反)", example = "15890") + @Schema(description = "发送给路径规划 车头朝向(0正 1反 2随)", example = "15890") private Integer ppToward; /** * 双向车道 反向行走变更车头朝向 * + * 车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随 + * * @param toward * @return */ @@ -124,6 +126,48 @@ public class PositionMapLineDTO { return 0; } else if (toward == 3) { return 1; + } else if (toward == 4) { + return 2; + } else if (toward == 5) { + return 0; + } else if (toward == 6) { + return 1; + } else if (toward == 7) { + return 2; + } else if (toward == 8) { + return 2; + } else { + return 0; + } + } + + /** + * 双向车道 反向行走变更车头朝向 + * + * 车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随 + * + * @param toward + * @return + */ + public Integer changeTowardFirst(Integer toward) { + if (toward == 0) { + return 0; + } else if (toward == 1) { + return 0; + } else if (toward == 2) { + return 1; + } else if (toward == 3) { + return 1; + } else if (toward == 4) { + return 0; + } else if (toward == 5) { + return 2; + } else if (toward == 6) { + return 2; + } else if (toward == 7) { + return 1; + } else if (toward == 8) { + return 2; } else { return 0; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/PositionMapLineDTO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/PositionMapLineDTO.java index 37ddc5a51..8586cbea8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/PositionMapLineDTO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/dto/PositionMapLineDTO.java @@ -102,6 +102,6 @@ public class PositionMapLineDTO { @Schema(description = "终点高") private BigDecimal endHigh; - @Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)") + @Schema(description = "车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随") private Integer toward; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLinePageReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLinePageReqVO.java index c8f3cd2dd..600e1db1a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLinePageReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLinePageReqVO.java @@ -114,7 +114,7 @@ public class PositionMapLinePageReqVO extends PageParam { private LocalDateTime[] createTime; - @Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)", example = "15890") + @Schema(description = "车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随", example = "15890") private Integer toward; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLineRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLineRespVO.java index 71808b651..bd959df65 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLineRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLineRespVO.java @@ -130,8 +130,8 @@ public class PositionMapLineRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; - @Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)", example = "15890") - @ExcelProperty("车头朝向( 0:正正 1:正反 2:反正 3:反反)") + @Schema(description = "车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随", example = "15890") + @ExcelProperty("车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随") private Integer toward; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLineSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLineSaveReqVO.java index e1f6248ec..e37e9f4ba 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLineSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/positionmap/vo/PositionMapLineSaveReqVO.java @@ -112,7 +112,7 @@ public class PositionMapLineSaveReqVO { private BigDecimal reverseSpeedLimit; - @Schema(description = "车头朝向( 0:正正 1:正反 2:反正 3:反反)", example = "15890") + @Schema(description = "车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随 如果是单向的话 0代表正 1代表反 2代表随意", example = "15890") private Integer toward; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/positionmap/PositionMapLineDO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/positionmap/PositionMapLineDO.java index daf536f97..f86a12cff 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/positionmap/PositionMapLineDO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/positionmap/PositionMapLineDO.java @@ -169,7 +169,7 @@ public class PositionMapLineDO extends BaseDO { private BigDecimal reverseSpeedLimit; /** - * 车头朝向(0:正正 1:正反 2:反正 3:反反) + * 车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随 如果是单向的话 0代表正 1代表反 2代表随意 */ private Integer toward; } 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 bbbb2d17f..ebe013196 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 @@ -205,10 +205,12 @@ public class PathPlanningServiceImpl implements PathPlanningService { List list = new ArrayList<>(); for (PositionMapLineDTO positionMapLineDO : positionMapLineDOS) { - list.add(positionMapLineDO); if (DirectionEnum.ONE_WAY.getType().equals(positionMapLineDO.getDirection())) { - positionMapLineDO.setPpToward(positionMapLineDO.changeToward(positionMapLineDO.getToward())); + positionMapLineDO.setPpToward(positionMapLineDO.getToward()); + list.add(positionMapLineDO); } else { + positionMapLineDO.setPpToward(positionMapLineDO.changeTowardFirst(positionMapLineDO.getToward())); + list.add(positionMapLineDO); list.add(setPositionMapLineDTOData(positionMapLineDO)); } } @@ -280,10 +282,12 @@ public class PathPlanningServiceImpl implements PathPlanningService { List list = new ArrayList<>(); for (PositionMapLineDTO positionMapLineDO : positionMapLineDOS) { - list.add(positionMapLineDO); if (DirectionEnum.ONE_WAY.getType().equals(positionMapLineDO.getDirection())) { - positionMapLineDO.setPpToward(positionMapLineDO.changeToward(positionMapLineDO.getToward())); + positionMapLineDO.setPpToward(positionMapLineDO.getToward()); + list.add(positionMapLineDO); } else { + positionMapLineDO.setPpToward(positionMapLineDO.changeTowardFirst(positionMapLineDO.getToward())); + list.add(positionMapLineDO); list.add(setPositionMapLineDTOData(positionMapLineDO)); } } @@ -533,7 +537,7 @@ public class PathPlanningServiceImpl implements PathPlanningService { .expansionZoneAfter(positionMapLineDO.getExpansionZoneFront()) .expansionZoneLeft(positionMapLineDO.getExpansionZoneRight()) .expansionZoneRight(positionMapLineDO.getExpansionZoneLeft()) - .toward(positionMapLineDO.changeToward(positionMapLineDO.getToward())) + .ppToward(positionMapLineDO.changeToward(positionMapLineDO.getToward())) .build(); return build; } @@ -548,10 +552,12 @@ public class PathPlanningServiceImpl implements PathPlanningService { List list = new ArrayList<>(); for (PositionMapLineDTO positionMapLineDO : positionMapLineDOS) { - list.add(positionMapLineDO); if (DirectionEnum.ONE_WAY.getType().equals(positionMapLineDO.getDirection())) { - positionMapLineDO.setPpToward(positionMapLineDO.changeToward(positionMapLineDO.getToward())); + positionMapLineDO.setPpToward(positionMapLineDO.getToward()); + list.add(positionMapLineDO); } else { + positionMapLineDO.setPpToward(positionMapLineDO.changeTowardFirst(positionMapLineDO.getToward())); + list.add(positionMapLineDO); list.add(setPositionMapLineDTOData(positionMapLineDO)); } } 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 e11f3ee52..81e32b8c6 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 @@ -301,8 +301,7 @@ public class PositionMapServiceImpl extends ServiceImpl