From afbdf224dcc6f4c5d0f9331e25b99e0621cb6afd Mon Sep 17 00:00:00 2001
From: yy <yy123>
Date: 星期二, 30 十二月 2025 14:37:40 +0800
Subject: [PATCH] no message

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index d01f215..520d46f 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -768,7 +768,7 @@
                 Task task = taskService.getById(segment.getTaskId());
                 TaskPosDto.PosType posType = Objects.requireNonNull(TaskPosDto.queryPosType(segment.getPosType()));
                 boolean isStation = posType.equals(TaskPosDto.PosType.ORI_STA) || posType.equals(TaskPosDto.PosType.DEST_STA);
-
+                boolean isLoc = posType.equals(TaskPosDto.PosType.ORI_LOC) || posType.equals(TaskPosDto.PosType.DEST_LOC);
                 // 鑺傜偣鏉$爜
                 Code code = codeService.getCacheById(segment.getEndNode());
 
@@ -792,7 +792,7 @@
                         boolean reverse = false;
                         if (nextDirection.equals((workDirection + 180) % 360)) {
                             List<String> list = Arrays.asList("00000050", "00000051", "00000052", "00000053", "00000054", "00000080", "00000081", "00000082", "00000083", "00000084");
-                            if (isStation && list.contains(lastCode.getData())) {
+                            if ((isStation && list.contains("00000050")) || (isLoc && list.contains("00000080"))) {
                                 reverse = false;
                                 lastDirection = nextDirection;
                             } else {
@@ -819,7 +819,7 @@
                                     nextDirection = lastDirection;
                                     reverse = true;
                                 } else {
-                                    if (isStation && (lastCode.getData().equals("00000050") || lastCode.getData().equals("00000080"))) {
+                                    if ((isStation && lastCode.getData().equals("00000050")) || (isLoc && lastCode.getData().equals("00000080"))) {
                                         // turn
                                         reverse = false;
                                         actionList.add(new Action(
@@ -844,6 +844,11 @@
                                                 nextDirection,
                                                 180);
                                     } else {
+                                        List<String> list = Arrays.asList("00000051", "00000052", "00000053", "00000054");
+                                        Double turnDirection = nextDirection;
+                                        if ((isStation && list.contains("00000050")) || (isLoc && list.contains("00000080"))) {
+                                            turnDirection = 180.0;
+                                        }
                                         // turn
                                         actionList.add(new Action(
                                                 null,    // 缂栧彿s
@@ -854,7 +859,7 @@
                                                 ActionTypeType.TurnCorner.desc,    // 鍚嶇О
                                                 mapService.isTurnCorner(lastCode.getData()) ? 1D : 0D,    // 灞炴�у��
                                                 lastCode.getData(),    // 鍦伴潰鐮�
-                                                String.valueOf(nextDirection),   // 鍔ㄤ綔鍙傛暟
+                                                String.valueOf(turnDirection),   // 鍔ㄤ綔鍙傛暟
                                                 ActionTypeType.TurnCorner.val(),    // 鍔ㄤ綔绫诲瀷
                                                 actionPrepareSts,    // 鍔ㄤ綔杩涘害
                                                 agvId,    // AGV
@@ -870,7 +875,7 @@
                                     lastDirection = nextDirection;
                                 }
                             } else {
-                                if (isStation && (lastCode.getData().equals("00000050") || lastCode.getData().equals("00000080"))) {
+                                if ((isStation && lastCode.getData().equals("00000050")) || (isLoc && lastCode.getData().equals("00000080"))) {
                                     // turn
                                     reverse = false;
                                     actionList.add(new Action(
@@ -958,7 +963,7 @@
                     if (Cools.isEmpty(actionList) || !actionList.get(0).getActionType().equals(ActionTypeType.TurnCorner.val())) {
                         Double turnDirection = workDirection;
                         List<String> list = Arrays.asList("00000050","00000051", "00000052", "00000053", "00000054", "00000080", "00000081", "00000082", "00000083", "00000084");
-                        if (isStation && list.contains(lastCode.getData())) {
+                        if ((isStation && list.contains("00000050")) || (isLoc && list.contains("00000080"))) {
                             turnDirection = workDirection + 180.0;
                         }
                         if (lastCode.getCornerBool()) {

--
Gitblit v1.9.1