From 5317406cff3620bcf5333696eb04637e18f5e0f2 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 19 三月 2026 14:39:26 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java |   30 +++++++++++++++++++++++-------
 1 files changed, 23 insertions(+), 7 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..90c948b 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;
@@ -25,6 +26,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
+import com.zy.acs.common.utils.News;
 
 import java.util.*;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -135,12 +137,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 +210,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) {
@@ -252,7 +268,7 @@
 //            }
 
         } catch (InterruptedException e) {
-            log.error("unlockTaskQueue", e);
+            News.error("unlockTaskQueue", e);
         }
     }
 
@@ -716,4 +732,4 @@
         return result;
     }
 
-}
+}
\ No newline at end of file

--
Gitblit v1.9.1