From f6df128b575bdb9d0f2512b5fa5a126edfce2799 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 05 五月 2026 09:38:27 +0800
Subject: [PATCH] 算法集成

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java |   28 ++++++++++++++++++----------
 1 files changed, 18 insertions(+), 10 deletions(-)

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 bb3cd44..994eb74 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
@@ -201,16 +201,21 @@
             //        ArrayList<List<TaskPosDto>> list = JSON.parseObject(travel.getTaskContent(), new TypeReference<ArrayList<List<TaskPosDto>>>() {});
 
             // * sync wave scope
-            if (!avoidWaveCalculator.calcWaveScope(agvModelService.getByAgvId(agv.getId()))) {
-                log.error("failed to calculate avoid wave matrix ...");
-                return;
-            }
+//            if (!avoidWaveCalculator.calcWaveScope(agvModelService.getByAgvId(agv.getId()))) {
+//                log.error("failed to calculate avoid wave matrix ...");
+//                return;
+//            }
 
             // checkout path
             Code startCode = agvDetailService.getCurrentCode(travel.getAgvId());
             Code endCode = codeService.getCacheById(endNode);
 //            long startTime = System.currentTimeMillis();
-            List<String> pathList = this.checkoutPath(agv, startCode, endCode, segment);
+            List<Jam> unfinishedOriginJamByCurrAgv = jamService.getUnfinishedOriginJamByAvo(agv.getId(), startCode.getId(), segment.getId());
+            List<String> blackPath = this.getBlackPathList(unfinishedOriginJamByCurrAgv);
+            List<String> pathList = mapService.checkoutPath(agv.getUuid(), startCode, endCode, false, blackPath, segment);
+
+
+            //List<String> pathList = this.checkoutPath(agv, startCode, endCode, segment);
 //            System.out.println("checkoutPath: " + (System.currentTimeMillis() - startTime));
             if (Cools.isEmpty(pathList)) {
                 return;
@@ -277,7 +282,7 @@
                 }
             }
 
-            mapService.lockPath(null, pathList, agv.getUuid());
+            //mapService.lockPath(null, pathList, agv.getUuid());
 
 //            startTime = System.currentTimeMillis();
             mainService.generateAction(segment.getAgvId(), segmentList, pathList, now);
@@ -310,7 +315,7 @@
         List<String> lockPathList = mapService.checkoutPath(agvNo, startCode, endCode, true, blackPath, segment);
 
         if (!Cools.isEmpty(lockPathList) && // 瀛樺湪閬胯瑙�
-            Math.abs(lockPathList.size() - unlockPathList.size()) <= Arrays.stream(mapDataDispatcher.getCodeMatrix(lev)).mapToInt(row -> row.length).sum() / 10
+                Math.abs(lockPathList.size() - unlockPathList.size()) <= Arrays.stream(mapDataDispatcher.getCodeMatrix(lev)).mapToInt(row -> row.length).sum() / 10
         ) {
 
             pathList = lockPathList;
@@ -349,7 +354,7 @@
                     }
                 }
 
-            // 鏃犲彲璧拌璺緞
+                // 鏃犲彲璧拌璺緞
             } else {
 
                 if (Cools.isEmpty(blockVehicleList)) {
@@ -672,7 +677,7 @@
 
                             // the wave of first node
                             Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(
-                                    agvModelService.getByAgvId(jamAgv.getAgvModel()).getDiameter(),
+                                    agvModelService.getByAgvId(jamAgv.getId()).getDiameter(),
                                     MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR
                             );
                             List<String> waveCodeList = mapService.getWaveScopeByCode(lev, firstCodeNode, avoidDistance)
@@ -703,9 +708,12 @@
                 continue;
             }
             // 褰撳墠vehicle姝e湪杩涜婊氱瓛杈撻�佺嚎绛夊緟
-            if (segmentService.isRollerWaiting(agvId)) {
+            if (travelService.hasRollerWaiting(agvId)) {
                 continue;
             }
+//            if (segmentService.isRollerWaiting(agvId)) {
+//                continue;
+//            }
             return blockVehicleDto.getVehicle();
         }
         return null;

--
Gitblit v1.9.1