From ff7f41f5d6c99bff4a1d85a5b3342eec5a8fee0c Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 07 十一月 2024 08:52:34 +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