From 89ebb86100459cdb687989637bb8317abd3bfd4f Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 23 十二月 2024 11:07:27 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java | 20 +++++++++++++++++--- 1 files changed, 17 insertions(+), 3 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 c7c9dd0..5cd7493 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 @@ -17,6 +17,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.time.StopWatch; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.util.*; @@ -29,6 +30,8 @@ @Component("mapService") public class MapService { + @Value("${floyd.enable}") + private Boolean floydEnable; @Autowired private CodeService codeService; @Autowired @@ -54,7 +57,9 @@ NavigateNode startNode = new NavigateNode(startMapIdx[0], startMapIdx[1], startCode.getData()); NavigateNode endNode = new NavigateNode(endMapIdx[0], endMapIdx[1], endCode.getData()); + long startTime = System.currentTimeMillis(); NavigateNode finishNode = aStarNavigateService.execute(agvNo, startNode, endNode, lock, blackList, segment); +// System.out.println("AStart spend time: " + (System.currentTimeMillis() - startTime)); if (null == finishNode) { log.warn("{} 鍙稟GV妫�绱{}] ===>> [{}]璺緞澶辫触......", agvNo, startCode.getData(), endCode.getData()); @@ -92,6 +97,9 @@ * 瀵诲潃 ===>> Floyd */ public synchronized List<String> validFeasibility(Code startCode, Code endCode) { + if (!floydEnable) { + return Arrays.asList("00000001", "00000002", "00000003", "00000004", "00000005", "00000006"); + } int startIdx = floydNavigateService.codeIdx(startCode.getId()); int endIdx = floydNavigateService.codeIdx(endCode.getId()); @@ -198,14 +206,20 @@ Integer serial = dynamicNode.getSerial(); + long time = dynamicNode.getTime(); List<String> resetCodeList = new ArrayList<>(); for (int i = 0; i < dynamicMatrix.length; i++) { for (int j = 0; j < dynamicMatrix[i].length; j++) { + + if (i == codeMatrixIdx[0] && j == codeMatrixIdx[1]) { continue; } + DynamicNode node = dynamicMatrix[i][j]; - if (node.getVehicle().equals(agvNo) && node.getSerial() < serial) { - resetCodeList.add(codeMatrix[i][j]); + if (node.getVehicle().equals(agvNo)) { + if (node.getSerial() < serial || node.getTime() != time) { + resetCodeList.add(codeMatrix[i][j]); + } } } } @@ -221,7 +235,7 @@ } } catch (Exception e) { - log.error("TrafficService.unlockPath", e); + log.error("MapService.unlockPath", e); } } -- Gitblit v1.9.1