From 80f5003a640db7795d69c5e3a73caa685c289b80 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期三, 14 一月 2026 16:27:38 +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 4eda19e..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
@@ -96,7 +96,6 @@
Travel travel = travelService.getById(segment.getTravelId());
Agv agv = agvService.getById(travel.getAgvId());
- AgvDetail agvDetail = agvDetailService.selectByAgvId(travel.getAgvId());
long endNode = segment.getEndNode();
// valid ----------------------------------------------------
@@ -202,15 +201,15 @@
// 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;
}
// checkout path
- Code startCode = codeService.getCacheById(agvDetail.getRecentCode());
+ Code startCode = agvDetailService.getCurrentCode(travel.getAgvId());
Code endCode = codeService.getCacheById(endNode);
- long startTime = System.currentTimeMillis();
+// long startTime = System.currentTimeMillis();
List<String> pathList = this.checkoutPath(agv, startCode, endCode, segment);
// System.out.println("checkoutPath: " + (System.currentTimeMillis() - startTime));
if (Cools.isEmpty(pathList)) {
@@ -248,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);
@@ -265,8 +264,11 @@
interrupt = true;
} else {
if (nextStep.getEndNode() == endNode) {
-
- segmentList.add(nextStep);
+ // remove sta action seg
+ if (!nextStep.getPosType().equals(TaskPosDto.PosType.ORI_STA.toString())
+ && !nextStep.getPosType().equals(TaskPosDto.PosType.DEST_STA.toString())) {
+ segmentList.add(nextStep);
+ }
} else {
interrupt = true;
}
@@ -277,7 +279,7 @@
mapService.lockPath(null, pathList, agv.getUuid());
- startTime = System.currentTimeMillis();
+// startTime = System.currentTimeMillis();
mainService.generateAction(segment.getAgvId(), segmentList, pathList, now);
// System.out.println("generateAction: " + (System.currentTimeMillis() - startTime));
@@ -285,6 +287,7 @@
log.error("TrafficService.trigger", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ throw new RuntimeException("trigger method caught an exception", e);
}
}
@@ -669,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)
@@ -694,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