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 +++++++++++++++++++++----------
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 8 ++++----
src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java | 2 +-
3 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 63ca0b6..aadf7ed 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -183,7 +183,7 @@
//妫�娴嬮殰纰嶇墿杞�
boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{
add(shuttleProtocol.getShuttleNo());
- }});
+ }}, new ArrayList<>());
if (checkObstacle) {
News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo());
return false;
@@ -374,7 +374,7 @@
//妫�娴嬮殰纰嶇墿杞�
boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getSourceLocNo(), new ArrayList<Integer>() {{
add(shuttleProtocol.getShuttleNo());
- }});
+ }}, new ArrayList<>());
if (checkObstacle) {
News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo());
return false;
@@ -516,7 +516,7 @@
//妫�娴嬮殰纰嶇墿杞�
boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{
add(shuttleProtocol.getShuttleNo());
- }});
+ }}, new ArrayList<>());
if (checkObstacle) {
News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo());
return false;
@@ -1386,7 +1386,7 @@
//妫�娴嬮殰纰嶇墿杞�
boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{
add(shuttleProtocol.getShuttleNo());
- }});
+ }}, new ArrayList<>());
if (checkObstacle) {
News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo());
return false;
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;
}
diff --git a/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java b/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java
index 89819a2..721e5ee 100644
--- a/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java
+++ b/src/main/java/com/zy/core/thread/impl/TrafficControlImplThread.java
@@ -176,7 +176,7 @@
//妫�娴嬮殰纰嶇墿杞�
boolean checkObstacle = shuttleOperaUtils.checkObstacle(shuttleProtocol.getCurrentLocNo(), new ArrayList<Integer>() {{
add(shuttleNo);
- }});
+ }}, totalNodeList);
pathIdleShuttleMap.remove(shuttleProtocol.getShuttleNo());
}
}else {
--
Gitblit v1.9.1