From 5ed7d2941573d4b89a52457483717335e26e605a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 08 十一月 2024 14:44:09 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java | 116 ++++------------------------------------------------------
1 files changed, 8 insertions(+), 108 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
index 107e9a3..86c4139 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
@@ -41,14 +41,14 @@
private ActionService actionService;
public List<String> checkoutPath(String agvNo, Code startCode, Code endCode, Boolean lock) {
- return this.checkoutPath(agvNo, startCode, endCode, lock, null, null);
+ return this.checkoutPath(agvNo, startCode, endCode, lock, null);
}
/**
- * 瀵诲潃 ===>> A*
+ * 瀵诲潃 ===>> A Star
*/
public synchronized List<String> checkoutPath(String agvNo, Code startCode, Code endCode
- , Boolean lock, List<String> whiteList, List<String> blackList) {
+ , Boolean lock, List<String> blackList) {
int[] startMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, startCode.getData());
int[] endMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, endCode.getData());
@@ -56,7 +56,7 @@
NavigateNode startNode = new NavigateNode(startMapIdx[0], startMapIdx[1], startCode.getData());
NavigateNode endNode = new NavigateNode(endMapIdx[0], endMapIdx[1], endCode.getData());
- NavigateNode finishNode = aStarNavigateService.execute(agvNo, startNode, endNode, lock, whiteList, blackList);
+ NavigateNode finishNode = aStarNavigateService.execute(agvNo, startNode, endNode, lock, blackList);
if (null == finishNode) {
log.warn("{} 鍙稟GV妫�绱{}] ===>> [{}]璺緞澶辫触......", agvNo, startCode.getData(), endCode.getData());
@@ -66,7 +66,7 @@
ArrayList<NavigateNode> navigateNodes = new ArrayList<>();
// 娓叉煋
- NavigateNode parentNode = null;//褰撳墠寰幆涓婁竴鑺傜偣锛岀敤浜庢嫄鐐硅绠�
+ NavigateNode parentNode = null; // 褰撳墠寰幆涓婁竴鑺傜偣锛岀敤浜庢嫄鐐硅绠�
while (finishNode != null) {
navigateNodes.add(finishNode);
@@ -76,12 +76,9 @@
Collections.reverse(navigateNodes);
- //灏嗘瘡涓妭鐐归噷闈㈢殑fatherNode鑷充负null(鏂逛究鍚庣画璁$畻鏃剁埗鑺傜偣杩囧瀵艰嚧鏄剧ず鐨勮妭鐐瑰お澶�)
- for (NavigateNode navigateNode : navigateNodes) {
- //鐖惰妭鐐硅缃负null锛屼笉褰卞搷璁$畻缁撴灉锛屼笉褰卞搷鍚庣画鎿嶄綔銆�
- //姝ゆ搷浣滀粎涓哄悗缁帓鏌ュ鐞嗘彁渚涜瑙夋柟渚裤��
- navigateNode.setParent(null);
- }
+// for (NavigateNode navigateNode : navigateNodes) {
+// navigateNode.setParent(null);
+// }
return navigateNodes.stream().map(NavigateNode::getCodeData).collect(Collectors.toList());
}
@@ -174,103 +171,6 @@
public void lockPath(Integer lev, List<String> pathList, String agvNo) {
mapDataDispatcher.modifyDynamicMatrix(lev, pathList, agvNo);
- }
-
- public synchronized void unlockPath(String agvNo, List<String> nodeList) {
- try {
- StopWatch stopWatch = new StopWatch();
- stopWatch.start();
-
- if (Cools.isEmpty(agvNo, nodeList)) {
- return;
- }
-
- List<String> pathList = actionService.getPathListByAgv(agvNo).stream().distinct().collect(Collectors.toList());
-
- List<String> inTrace = new ArrayList<>();
-
- Set<String> outsideTrace = new HashSet<>();
-
- if (Cools.isEmpty(pathList)) {
- outsideTrace.addAll(nodeList);
- } else {
-
- int size = nodeList.size();
- for (String code : pathList) {
-
-
- Iterator<String> iterator = nodeList.iterator();
- while (iterator.hasNext()) {
-
- String next = iterator.next();
-
- if (next.equals(code)) {
- if (!inTrace.contains(next)) {
- inTrace.add(next);
- }
-
- iterator.remove();
- }
- }
-
- }
-
-
- assert inTrace.size() + nodeList.size() <= size;
-
- if (!Cools.isEmpty(nodeList)) {
- outsideTrace.addAll(nodeList);
- }
-
- if (!Cools.isEmpty(inTrace)) {
-
- String last = inTrace.get(inTrace.size() - 1);
-
- int idx = pathList.indexOf(last);
- inTrace = pathList.subList(0, idx + 1);
- }
-
-
- }
-
- List<String> resetCodeList = new ArrayList<>();
-
- Integer lev = null;
-
- DynamicNode[][] dynamicMatrix = mapDataDispatcher.getDynamicMatrix(lev);
-
- for (String code : inTrace) {
- int[] node = mapDataDispatcher.getCodeMatrixIdx(lev, code);
- DynamicNode dynamicNode = dynamicMatrix[node[0]][node[1]];
-
- if (dynamicNode.getVehicle().equals(agvNo)) {
- resetCodeList.add(code);
- }
- }
-
- for (String code : outsideTrace) {
- int[] node = mapDataDispatcher.getCodeMatrixIdx(lev, code);
- DynamicNode dynamicNode = dynamicMatrix[node[0]][node[1]];
-
- if (dynamicNode.getVehicle().equals(agvNo)) {
- resetCodeList.add(code);
- }
- }
-
- if (!Cools.isEmpty(resetCodeList)) {
-
- mapDataDispatcher.clearDynamicMatrixByCodeList(lev, resetCodeList);
- }
-
- stopWatch.stop();
- if (stopWatch.getTime() > 50) {
- log.info("瑙i攣璺緞鍑芥暟鑺辫垂鏃堕棿涓猴細{}姣......", stopWatch.getTime());
- }
-
- } catch (Exception e) {
- log.error("TrafficService.unlockPath", e);
- }
-
}
public synchronized void unlockPath(String agvNo, String codeData) {
--
Gitblit v1.9.1