From 12f30a09bce1c61b2ae90129124cdc467a59b074 Mon Sep 17 00:00:00 2001
From: jianghaiyue <jianghaiyue@zkyt.com>
Date: 星期三, 05 十一月 2025 15:03:17 +0800
Subject: [PATCH] 优化更新

---
 algo-zkd/src/main/java/com/algo/service/RemainingPathProcessor.java |   38 +++++++++++---------------------------
 1 files changed, 11 insertions(+), 27 deletions(-)

diff --git a/algo-zkd/src/main/java/com/algo/service/RemainingPathProcessor.java b/algo-zkd/src/main/java/com/algo/service/RemainingPathProcessor.java
index 10d8fa4..87fd7fd 100644
--- a/algo-zkd/src/main/java/com/algo/service/RemainingPathProcessor.java
+++ b/algo-zkd/src/main/java/com/algo/service/RemainingPathProcessor.java
@@ -40,11 +40,11 @@
      * 2. 瀵筫rror=1鐨勬晠闅滆溅锛屽叏绋嬪崰鎹椂绌鸿〃锛岀‘淇濆彲浠ョ敓鎴愮粫琛岃矾绾�
      *
      * @param agvStatusList CTU鐘舵�佸垪琛�
+     * @param unifiedTimestamp 缁熶竴鏃堕棿鎴�
      * @return 鏃剁┖鍗犵敤琛紝key涓�"x,y,timeSlot"锛寁alue涓篊TU缂栧彿
      */
-    public Map<String, String> buildSpaceTimeOccupancyMap(List<AGVStatus> agvStatusList) {
-        // 閲嶇疆缁熶竴鏃堕棿鎴充负褰撳墠鏃堕棿
-        this.unifiedTimestamp = System.currentTimeMillis() / 1000;
+    public Map<String, String> buildSpaceTimeOccupancyMap(List<AGVStatus> agvStatusList, long unifiedTimestamp) {
+        this.unifiedTimestamp = unifiedTimestamp;
         
         Map<String, String> occupancyMap = new HashMap<>();
 
@@ -103,36 +103,20 @@
     
     /**
      * 澶勭悊闈欐AGV鐨勪綅缃崰鐢�
-     *
      * @param agv          CTU鐘舵��
      * @param occupancyMap 鏃剁┖鍗犵敤琛�
      */
     private void processStaticAgvOccupancy(AGVStatus agv, Map<String, String> occupancyMap) {
+        
+        if (!agv.hasRemainingPath()) {
+            System.out.println("  闈欐AGV " + agv.getAgvId());
+            return;
+        }
+        
         String position = agv.getPosition();
-        if (position == null || position.isEmpty()) {
-            return;
+        if (position != null && !position.isEmpty()) {
+            System.out.println("  闈欐AGV " + agv.getAgvId() + " 鏈夊墿浣欒矾寰勶紝宸插湪鍓╀綑璺緞澶勭悊涓崰鐢ㄤ綅缃�");
         }
-        
-        // 鑾峰彇浣嶇疆鍧愭爣
-        int[] coord = JsonUtils.getCoordinate(position, pathMapping);
-        if (coord == null) {
-            return;
-        }
-        
-        CTUPhysicalConfig config = agv.getPhysicalConfig();
-        
-        // 闈欐AGV鍗犵敤褰撳墠浣嶇疆鐨勯暱鏃堕棿娈碉紙鍋囪300绉掞級
-        long occupancyDuration = 300; // 300绉掔殑鍗犵敤鏃堕棿
-
-        for (long timeSlot = unifiedTimestamp; timeSlot < unifiedTimestamp + occupancyDuration; timeSlot++) {
-            String spaceTimeKey = coord[0] + "," + coord[1] + "," + timeSlot;
-            occupancyMap.put(spaceTimeKey, agv.getAgvId());
-            
-            occupyAdjacentSpaces(coord, timeSlot, agv.getAgvId(), occupancyMap, config);
-        }
-        
-        System.out.println("  闈欐AGV " + agv.getAgvId() + " 鍗犵敤浣嶇疆 " + position + 
-                         " (鍧愭爣: " + coord[0] + "," + coord[1] + ") " );
     }
 
     /**

--
Gitblit v1.9.1