From 68ed198ddc082ef02f85f6d946af4cd7be0d0ed1 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 23 十二月 2024 10:39:03 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 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 c7c9dd0..5cd7493 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
@@ -17,6 +17,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.time.StopWatch;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.*;
@@ -29,6 +30,8 @@
 @Component("mapService")
 public class MapService {
 
+    @Value("${floyd.enable}")
+    private Boolean floydEnable;
     @Autowired
     private CodeService codeService;
     @Autowired
@@ -54,7 +57,9 @@
         NavigateNode startNode = new NavigateNode(startMapIdx[0], startMapIdx[1], startCode.getData());
         NavigateNode endNode = new NavigateNode(endMapIdx[0], endMapIdx[1], endCode.getData());
 
+        long startTime = System.currentTimeMillis();
         NavigateNode finishNode = aStarNavigateService.execute(agvNo, startNode, endNode, lock, blackList, segment);
+//        System.out.println("AStart spend time: " + (System.currentTimeMillis() - startTime));
 
         if (null == finishNode) {
             log.warn("{} 鍙稟GV妫�绱{}] ===>> [{}]璺緞澶辫触......", agvNo, startCode.getData(), endCode.getData());
@@ -92,6 +97,9 @@
      * 瀵诲潃 ===>> Floyd
      */
     public synchronized List<String> validFeasibility(Code startCode, Code endCode) {
+        if (!floydEnable) {
+            return Arrays.asList("00000001", "00000002", "00000003", "00000004", "00000005", "00000006");
+        }
 
         int startIdx = floydNavigateService.codeIdx(startCode.getId());
         int endIdx = floydNavigateService.codeIdx(endCode.getId());
@@ -198,14 +206,20 @@
 
 
             Integer serial = dynamicNode.getSerial();
+            long time = dynamicNode.getTime();
 
             List<String> resetCodeList = new ArrayList<>();
 
             for (int i = 0; i < dynamicMatrix.length; i++) {
                 for (int j = 0; j < dynamicMatrix[i].length; j++) {
+
+                    if (i == codeMatrixIdx[0] && j == codeMatrixIdx[1]) { continue; }
+
                     DynamicNode node = dynamicMatrix[i][j];
-                    if (node.getVehicle().equals(agvNo) && node.getSerial() < serial) {
-                        resetCodeList.add(codeMatrix[i][j]);
+                    if (node.getVehicle().equals(agvNo)) {
+                        if (node.getSerial() < serial || node.getTime() != time) {
+                            resetCodeList.add(codeMatrix[i][j]);
+                        }
                     }
                 }
             }
@@ -221,7 +235,7 @@
             }
 
         } catch (Exception e) {
-            log.error("TrafficService.unlockPath", e);
+            log.error("MapService.unlockPath", e);
         }
 
     }

--
Gitblit v1.9.1