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