From e80188bc55e4a01af9490c70846a13833e3301a3 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期三, 11 三月 2026 13:29:08 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java |   25 ++++++++++++++++++++-----
 1 files changed, 20 insertions(+), 5 deletions(-)

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 dfca02b..1f65871 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
@@ -7,6 +7,7 @@
 import com.zy.acs.manager.core.constant.MapDataConstant;
 import com.zy.acs.manager.core.domain.DirectionDto;
 import com.zy.acs.manager.core.domain.LaneDto;
+import com.zy.acs.manager.core.domain.PathDto;
 import com.zy.acs.manager.core.domain.SortCodeDto;
 import com.zy.acs.manager.core.domain.UnlockPathTask;
 import com.zy.acs.manager.core.domain.VehicleFootprint;
@@ -135,12 +136,15 @@
             return null;
         }
         angle = (angle + 360) % 360;
+
+        double result;
         double remainder = angle % 45;
         if (remainder < 22.5) {
-            return angle - remainder;
+            result = angle - remainder;
         } else {
-            return angle + (45 - remainder);
+            result = angle + (45 - remainder);
         }
+        return (result + 360) % 360;
     }
 
     // 瑙掑害璁$畻
@@ -205,9 +209,20 @@
         return Math.sqrt(deltaX * deltaX + deltaY * deltaY);
     }
 
-    public void lockPath(Integer lev, List<String> pathList, String agvNo) {
-        List<int[]> codeMatrixIdxList = mapDataDispatcher.getCodeMatrixIdxList(lev, pathList);
-        mapDataDispatcher.modifyDynamicMatrix(lev, codeMatrixIdxList, agvNo);
+    public void lockPath(Integer lev, List<PathDto> pathList, String agvNo) {
+        if (Cools.isEmpty(agvNo, pathList)) {
+            return;
+        }
+        List<PathDto> normalized = pathList.stream()
+                .filter(Objects::nonNull)
+                .filter(dto -> !Cools.isEmpty(dto.getCode()))
+                .collect(Collectors.toList());
+        if (Cools.isEmpty(normalized)) {
+            return;
+        }
+        List<String> codeList = normalized.stream().map(PathDto::getCode).collect(Collectors.toList());
+        List<int[]> codeMatrixIdxList = mapDataDispatcher.getCodeMatrixIdxList(lev, codeList);
+        mapDataDispatcher.modifyDynamicMatrix(lev, codeMatrixIdxList, agvNo, normalized);
     }
 
     public void unlockPath(String agvNo, String codeData) {

--
Gitblit v1.9.1