From d58a5160d46bd0f83fdd73e9e49061b33e1d241b Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 15 一月 2026 15:21:50 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 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 7dc6ff4..2e6afef 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,7 +201,7 @@
             //        ArrayList<List<TaskPosDto>> list = JSON.parseObject(travel.getTaskContent(), new TypeReference<ArrayList<List<TaskPosDto>>>() {});
 
             // * sync wave scope
-            if (!avoidWaveCalculator.calcWaveScope()) {
+            if (!avoidWaveCalculator.calcWaveScope(agvModelService.getByAgvId(agv.getId()))) {
                 log.error("failed to calculate avoid wave matrix ...");
                 return;
             }
@@ -247,7 +247,7 @@
                 insertSeg.setPosType(TaskPosDto.PosType.MOVE.toString());
                 insertSeg.setState(SegmentStateType.WAITING.toString());
                 if (!segmentService.save(insertSeg)) {
-                    log.error("Segment [{}] failed to save 锛侊紒锛�", segment.getTravelId() + " - " + segment.getSerial());
+                    log.error("Segment [{}] failed to save 锛侊紒锛�", insertSeg.getTravelId() + " - " + insertSeg.getSerial());
                 }
                 segmentList.add(insertSeg);
 
@@ -287,6 +287,7 @@
             log.error("TrafficService.trigger", e);
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 
+            throw new RuntimeException("trigger method caught an exception", e);
         }
     }
 
@@ -671,7 +672,7 @@
 
                             // the wave of first node
                             Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(
-                                    agvModelService.getById(jamAgv.getAgvModel()).getDiameter(),
+                                    agvModelService.getByAgvId(jamAgv.getId()).getDiameter(),
                                     MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR
                             );
                             List<String> waveCodeList = mapService.getWaveScopeByCode(lev, firstCodeNode, avoidDistance)
@@ -696,8 +697,13 @@
             if (!blockVehicleDto.isAvoidable()) {
                 continue;
             }
+            Long agvId = agvService.getAgvId(blockVehicleDto.getVehicle());
             // 褰撳墠vehicle姝e湪杩涜閬胯浣滀笟
-            if (!Cools.isEmpty(jamService.getUnfinishedAvoSegByAvo(blockVehicleDto.getVehicle(), null))) {
+            if (!Cools.isEmpty(jamService.getUnfinishedAvoSegByAvo(agvId, null))) {
+                continue;
+            }
+            // 褰撳墠vehicle姝e湪杩涜婊氱瓛杈撻�佺嚎绛夊緟
+            if (segmentService.isRollerWaiting(agvId)) {
                 continue;
             }
             return blockVehicleDto.getVehicle();

--
Gitblit v1.9.1