From 411b69b35e91d3d75fb7de7de1bc50e148038959 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期日, 03 八月 2025 08:58:12 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/utils/ShuttleOperaUtils.java | 31 +++++++++++++++++++++---------- 1 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/common/utils/ShuttleOperaUtils.java b/src/main/java/com/zy/common/utils/ShuttleOperaUtils.java index c421287..0b3fd1f 100644 --- a/src/main/java/com/zy/common/utils/ShuttleOperaUtils.java +++ b/src/main/java/com/zy/common/utils/ShuttleOperaUtils.java @@ -154,16 +154,16 @@ } //妫�娴嬮殰纰嶇墿杞� - public synchronized boolean checkObstacle(String locNo, List<Integer> whiteShuttles) { + public synchronized boolean checkObstacle(String locNo, List<Integer> whiteShuttles, List<NavigateNode> whiteNodes) { int innerCircle = 0; int outerCircle = 3; Config avoidInnerCircleConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "avoidInnerCircle")); - if(avoidInnerCircleConfig != null) { + if (avoidInnerCircleConfig != null) { innerCircle = Integer.parseInt(avoidInnerCircleConfig.getValue()); } Config avoidOuterCircleConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "avoidOuterCircle")); - if(avoidOuterCircleConfig != null) { + if (avoidOuterCircleConfig != null) { outerCircle = Integer.parseInt(avoidOuterCircleConfig.getValue()); } @@ -191,7 +191,7 @@ } //鑾峰彇澶栧湀鑺傜偣 - List<NavigateNode> outerNodes = getOuterNodes(locNo, outerCircle, whiteShuttlePointList, innerNodes); + List<NavigateNode> outerNodes = getOuterNodes(locNo, outerCircle, whiteShuttlePointList, innerNodes, whiteNodes); //灏嗗唴鍦堣妭鐐逛腑闅滅灏忚溅璋冪 for (Integer shuttleNo : nodesCar) { @@ -214,14 +214,14 @@ List<NavigateNode> avoidInnerNodes = getInnerNodes(dispatchLocNo, innerCircle, new ArrayList<>()); //璁$畻鍐呭湀鏄惁鏈夊皬杞� List<Integer> avoidNodesCar = findNodesCar(avoidInnerNodes); - if(!avoidNodesCar.isEmpty()) { - continue; + if (!avoidNodesCar.isEmpty()) { + continue; } targetLocNo = dispatchLocNo; break; } - if(targetLocNo == null) { + if (targetLocNo == null) { continue; } shuttleDispatchUtils.dispatchShuttle(null, targetLocNo, shuttleNo); @@ -268,7 +268,7 @@ return list; } - private List<NavigateNode> getOuterNodes(String locNo, int outerCircle, List<int[]> whiteShuttlePointList, List<NavigateNode> innerNodes) { + private List<NavigateNode> getOuterNodes(String locNo, int outerCircle, List<int[]> whiteShuttlePointList, List<NavigateNode> innerNodes, List<NavigateNode> whiteNodes) { List<NavigateNode> outerNodes = new ArrayList<>(); List<NavigateNode> outerNodesTmp = new ArrayList<>(); int lev = Utils.getLev(locNo); @@ -293,13 +293,24 @@ for (NavigateNode node : outerNodesTmp) { boolean flag = false; for (NavigateNode innerNode : innerNodes) { - if(node.getX() == innerNode.getX() && node.getY() == innerNode.getY()) { + if (node.getX() == innerNode.getX() && node.getY() == innerNode.getY()) { flag = true; break; } } - if(flag) { + if (flag) { + continue; + } + + for (NavigateNode whiteNode : whiteNodes) { + if (node.getX() == whiteNode.getX() && node.getY() == whiteNode.getY()) { + flag = true; + break; + } + } + + if (flag) { continue; } -- Gitblit v1.9.1