From 78478aecdc7b125e16cae01954f3a0ad25644b17 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 21 四月 2025 17:02:28 +0800
Subject: [PATCH] #调度避障算法

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 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 6699984..ffb8a10 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -179,6 +179,15 @@
                 return false;
             }
 
+            //妫�娴嬮殰纰嶇墿杞�
+            boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{
+                add(shuttleProtocol.getShuttleNo());
+            }});
+            if (checkObstacle) {
+                News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo());
+                return false;
+            }
+
             ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
             assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙�
             assignCommand.setTaskMode(ShuttleTaskModeType.TRANSPORT.id);//灏忚溅绉诲簱浠诲姟
@@ -351,6 +360,15 @@
                 //灏忚溅涓嶅湪杈撻�佺珯鐐逛綅缃�
                 shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getShuttleNo());//璋冨害灏忚溅鍒拌揣鐗╂墍鍦ㄥ簱浣嶈繘琛屽彇璐�
                 News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屾湭鍒拌揪杈撻�佺珯鐐癸紝绯荤粺绛夊緟涓�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+                return false;
+            }
+
+            //妫�娴嬮殰纰嶇墿杞�
+            boolean checkObstacle = shuttleOperaUtils.checkObstacle(liftSta.getLocNo(), new ArrayList<Integer>() {{
+                add(shuttleProtocol.getShuttleNo());
+            }});
+            if (checkObstacle) {
+                News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo());
                 return false;
             }
 
@@ -1361,6 +1379,15 @@
                 return false;
             }
 
+            //妫�娴嬮殰纰嶇墿杞�
+            boolean checkObstacle = shuttleOperaUtils.checkObstacle(basShuttleCharge.getWaitLocNo(), new ArrayList<Integer>() {{
+                add(shuttleProtocol.getShuttleNo());
+            }});
+            if (checkObstacle) {
+                News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo());
+                return false;
+            }
+
             //璋冨害灏忚溅鍘诲緟鏈轰綅
             boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), basShuttleCharge.getWaitLocNo(), wrkMast.getShuttleNo());
             if (!dispatched) {
@@ -1744,6 +1771,15 @@
                 return false;//璺緞璁$畻澶辫触
             }
 
+            //妫�娴嬮殰纰嶇墿杞�
+            boolean checkObstacle = shuttleOperaUtils.checkObstacle(wrkMast.getLocNo(), new ArrayList<Integer>() {{
+                add(shuttleProtocol.getShuttleNo());
+            }});
+            if (checkObstacle) {
+                News.info("{}浠诲姟锛岄伩闅滆寖鍥存湁灏忚溅锛岀瓑寰呴殰纰嶅皬杞﹁皟绂讳腑", wrkMast.getWrkNo());
+                return false;
+            }
+
             assignCommand.setCommands(commands);
 
             wrkMast.setWrkSts(WrkStsType.MOVE_SHUTTLE.sts);//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑  309.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 310.灏忚溅绉诲姩涓�

--
Gitblit v1.9.1