From 1cc1d0c34335555f1ee6c8f2e49ee76e5af74649 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 01 十一月 2024 09:33:13 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java      |   19 +++++++------------
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java |    4 ++--
 2 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
index ad3924c..c38c262 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
@@ -115,13 +115,13 @@
                     DynamicNode dynamicNode = dynamicMatrix[i][j];
                     String vehicle = dynamicNode.getVehicle();
                     if (!DynamicNodeType.ACCESS.val.equals(vehicle) && !DynamicNodeType.BLOCK.val.equals(vehicle)) {
-                        AgvModel agvModel = agvModelService.getById(agvService.selectByUuid(vehicle).getAgvModel());
+                        AgvModel agvModel = agvModelService.getById(agvService.selectByUuid(vehicle).getAgvModel());    // can be optimized
 
                         Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.IDLE_DISTANCE_COE);
                         List<NavigateNode> includeList = mapService.getWaveScopeByCode(lev, codeMatrix[i][j], avoidDistance);
 
                         for (NavigateNode navigateNode : includeList) {
-                            String waveNode = waveMatrix[navigateNode.getX()][navigateNode.getY()];
+                            String waveNode = waveMatrix[navigateNode.getX()][navigateNode.getY()]; // overlay
                             waveMatrix[navigateNode.getX()][navigateNode.getY()] = MapDataUtils.generateWaveNode(waveNode, vehicle);
                         }
                     }
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
index 2d218bb..3953bb6 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -243,7 +243,6 @@
                     String jamAgvNo = jamVehicleList.get(0);
                     if (mapDataDispatcher.queryCodeListFromDynamicNode(null, jamAgvNo).size() > 1 && pathList.size() <= MIN_SLICE_PATH_LENGTH) {
                         pathList.clear();
-//                        return pathList;
                     }
                 }
 
@@ -479,35 +478,31 @@
      * avoidPathList include wave node and dynamic node
      */
     private boolean notifyVehicleAvoid(String agvNo, String agvPosCode, List<String> avoidPathList, String sponsor, Jam jam) {
-
-        assert avoidPathList.size() >= 2;
+        Agv agv = agvService.selectByUuid(agvNo);
+        if (!Cools.isEmpty(segmentService.getByAgvAndState(agv.getId(), SegmentStateType.RUNNING.toString()))) {
+            log.warn("{}鍙疯溅杈嗛伩璁╁け璐ワ紝瀛樺湪杩涜涓换鍔★紒锛侊紒", agvNo);
+            return false;
+        }
 
         int[] startMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, agvPosCode);
-
         RetreatNavigateNode startNode = new RetreatNavigateNode(startMapIdx[0], startMapIdx[1], agvPosCode);
 
+        assert avoidPathList.size() >= 2;
         RetreatNavigateNode finalNode = retreatNavigateService.execute(agvNo, startNode, avoidPathList, sponsor, jam);
         if (null == finalNode) {
             log.warn("{}鍙疯溅杈嗛伩璁╁け璐ワ紝妫�绱㈤伩璁╃偣澶辫触锛侊紒锛�", agvNo);
             return false;
         }
 
-        Date now = new Date();
         String endCodeData = finalNode.getCodeData();
-        Agv agv = agvService.selectByUuid(agvNo);
         Code endCode = codeService.selectByData(endCodeData);
-
         jam.setAvoCode(endCode.getId());
-
-        if (!Cools.isEmpty(segmentService.getByAgvAndState(agv.getId(), SegmentStateType.RUNNING.toString()))) {
-            log.warn("{}鍙疯溅杈嗛伩璁╁け璐ワ紝瀛樺湪杩涜涓换鍔★紒锛侊紒", agvNo);
-            return false;
-        }
 
         List<Segment> waitingSegList = segmentService.getByAgvAndState(agv.getId(), SegmentStateType.WAITING.toString());
         if (!Cools.isEmpty(waitingSegList)) {
 
             // revert
+            Date now = new Date();
             for (Segment seg : waitingSegList) {
                 seg.setState(SegmentStateType.INIT.toString());
                 seg.setUpdateTime(now);

--
Gitblit v1.9.1