From 80f5003a640db7795d69c5e3a73caa685c289b80 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期三, 14 一月 2026 16:27:38 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java |   14 +++++++-------
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/DirectionDto.java |   25 +++++++++++++++++++++++++
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java  |   12 ++++++++----
 3 files changed, 40 insertions(+), 11 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/DirectionDto.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/DirectionDto.java
index 89bc227..232bc84 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/DirectionDto.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/domain/DirectionDto.java
@@ -42,4 +42,29 @@
         return list;
     }
 
+    public static List<DirectionDto> initCodeDirections0() {
+        List<DirectionDto> list = new ArrayList<>();
+        DirectionDto northDto = new DirectionDto();
+        northDto.setAngle(CodeDirectionType.NORTH.angle);
+        northDto.setEnabled(true);
+        list.add(northDto);
+
+        DirectionDto eastDto = new DirectionDto();
+        eastDto.setAngle(CodeDirectionType.EAST.angle);
+        eastDto.setEnabled(false);
+        list.add(eastDto);
+
+        DirectionDto southDto = new DirectionDto();
+        southDto.setAngle(CodeDirectionType.SOUTH.angle);
+        southDto.setEnabled(true);
+        list.add(southDto);
+
+        DirectionDto westDto = new DirectionDto();
+        westDto.setAngle(CodeDirectionType.WEST.angle);
+        westDto.setEnabled(true);
+        list.add(westDto);
+
+        return list;
+    }
+
 }
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 45c9131..5e7058c 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
@@ -978,7 +978,7 @@
                                         null,    // 鍔ㄤ綔鍙�
                                         null,    // 浼樺厛绾�
                                         ActionTypeType.TurnCorner.desc,    // 鍚嶇О
-                                        (double) mapService.spinDirection(lastCode).val,     // 灞炴�у��
+                                        (double) MapService.calcSpinDirection(lastCode, lastDirection, nextLaneDir).val,     // 灞炴�у��
                                         lastCode.getData(),    // 鍦伴潰鐮�
                                         String.valueOf(nextLaneDir),   // 鍔ㄤ綔鍙傛暟
                                         ActionTypeType.TurnCorner.val(),    // 鍔ㄤ綔绫诲瀷
@@ -1045,7 +1045,7 @@
                                                 null,    // 鍔ㄤ綔鍙�
                                                 null,    // 浼樺厛绾�
                                                 ActionTypeType.TurnCorner.desc,    // 鍚嶇О
-                                                (double) mapService.spinDirection(lastCode).val,     // 灞炴�у��
+                                                (double) MapService.calcSpinDirection(lastCode, lastDirection, nextDirection).val,     // 灞炴�у��
                                                 lastCode.getData(),    // 鍦伴潰鐮�
                                                 String.valueOf(nextDirection),   // 鍔ㄤ綔鍙傛暟
                                                 ActionTypeType.TurnCorner.val(),    // 鍔ㄤ綔绫诲瀷
@@ -1070,7 +1070,7 @@
                                     null,    // 鍔ㄤ綔鍙�
                                     null,    // 浼樺厛绾�
                                     ActionTypeType.TurnCorner.desc,    // 鍚嶇О
-                                    (double) mapService.spinDirection(lastCode).val,    // 灞炴�у��
+                                    (double) MapService.calcSpinDirection(lastCode, lastDirection, nextDirection).val,    // 灞炴�у��
                                     lastCode.getData(),    // 鍦伴潰鐮�
                                     String.valueOf(nextDirection),   // 鍔ㄤ綔鍙傛暟
                                     ActionTypeType.TurnCorner.val(),    // 鍔ㄤ綔绫诲瀷
@@ -1137,7 +1137,7 @@
                                 null,    // 鍔ㄤ綔鍙�
                                 null,    // 浼樺厛绾�
                                 ActionTypeType.TurnCorner.desc,    // 鍚嶇О
-                                (double) mapService.spinDirection(lastCode).val,    // 灞炴�у��
+                                (double) MapService.calcSpinDirection(lastCode, lastDirection, firstTurnDir).val,    // 灞炴�у��
                                 lastCode.getData(),    // 鍦伴潰鐮�
                                 String.valueOf(firstTurnDir),   // 鍔ㄤ綔鍙傛暟
                                 ActionTypeType.TurnCorner.val(),    // 鍔ㄤ綔绫诲瀷
@@ -1263,7 +1263,7 @@
                                     null,    // 鍔ㄤ綔鍙�
                                     null,    // 浼樺厛绾�
                                     ActionTypeType.TurnCorner.desc,    // 鍚嶇О
-                                    (double) mapService.spinDirection(lastCode).val,   // 灞炴�у��
+                                    (double) MapService.calcSpinDirection(lastCode, lastDirection, oriStaWorkDirection).val,   // 灞炴�у��
                                     lastCode.getData(),    // 鍦伴潰鐮�
                                     String.valueOf(oriStaWorkDirection),   // 鍔ㄤ綔鍙傛暟
                                     ActionTypeType.TurnCorner.val(),    // 鍔ㄤ綔绫诲瀷
@@ -1327,7 +1327,7 @@
                                     null,    // 鍔ㄤ綔鍙�
                                     null,    // 浼樺厛绾�
                                     ActionTypeType.TurnCorner.desc,    // 鍚嶇О
-                                    (double) mapService.spinDirection(lastCode).val,    // 灞炴�у��
+                                    (double) MapService.calcSpinDirection(lastCode, lastDirection, destStaWorkDirection).val,    // 灞炴�у��
                                     lastCode.getData(),    // 鍦伴潰鐮�
                                     String.valueOf(destStaWorkDirection),   // 鍔ㄤ綔鍙傛暟
                                     ActionTypeType.TurnCorner.val(),    // 鍔ㄤ綔绫诲瀷
@@ -1386,7 +1386,7 @@
                                     null,    // 鍔ㄤ綔鍙�
                                     null,    // 浼樺厛绾�
                                     ActionTypeType.TurnCorner.desc,    // 鍚嶇О
-                                    (double) mapService.spinDirection(lastCode).val,    // 灞炴�у��
+                                    (double) MapService.calcSpinDirection(lastCode, lastDirection, chargeDirection).val,    // 灞炴�у��
                                     lastCode.getData(),    // 鍦伴潰鐮�
                                     String.valueOf(chargeDirection),   // 鍔ㄤ綔鍙傛暟
                                     ActionTypeType.TurnCorner.val(),    // 鍔ㄤ綔绫诲瀷
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
index 423b127..d792dd8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
@@ -427,16 +427,20 @@
     }
 
     public static void main(String[] args) {
+        CodeSpinType codeSpinType = calcSpinDirection(null, 260.0, 10.0);
         List<DirectionDto> directionDtoList = DirectionDto.initCodeDirections();
-        System.out.println(JSON.toJSONString(directionDtoList));
+        System.out.println(codeSpinType.toString());
     }
 
-    public CodeSpinType calcSpinDirection(Code code, Double currDir, Double nextDir) {
+    public static CodeSpinType calcSpinDirection(Code code, Double currDir, Double nextDir) {
         if (Cools.isEmpty(code, currDir, nextDir)) {
             return CodeSpinType.NA;
         }
         List<Double> disableAngleList = new ArrayList<>();
         List<DirectionDto> directionDtoList = DirectionDto.initCodeDirections();
+        if (code.getData().contains("57")) {
+            directionDtoList = DirectionDto.initCodeDirections0();
+        }
         for (DirectionDto dto : directionDtoList) {
             if (null != dto.getEnabled() && !dto.getEnabled()) {
                 disableAngleList.add(dto.getAngle());
@@ -455,8 +459,8 @@
             return CodeSpinType.NA;
         }
 
-        double cwDelta = cwDelta(curr, next);     // (0, 360)
-        double ccwDelta = 360.0 - cwDelta;  // (0, 360)
+        double cwDelta = cwDelta(curr, next);
+        double ccwDelta = 360.0 - cwDelta;
 
         boolean cwBlocked = false;
         boolean ccwBlocked = false;

--
Gitblit v1.9.1