From 01ba9dad3e284f390224151b510894a776ec4267 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 17 十一月 2025 08:14:32 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 88 ++++++++++++++++++++++++++++++++-----------
1 files changed, 65 insertions(+), 23 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 e6ccc5e..87e09c3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -309,6 +309,23 @@
return false;
}
+ List<WrkMast> shuttleMoveList = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .eq("io_type", 200)
+ );
+ for (WrkMast moveWrkMast : shuttleMoveList) {
+ if(Utils.getLev(moveWrkMast.getLocNo()) != Utils.getLev(wrkMast.getSourceLocNo())) {
+ continue;
+ }
+
+ if(Utils.getLev(moveWrkMast.getLocNo()) == Utils.getLev(moveWrkMast.getSourceLocNo())) {
+ continue;
+ }
+
+ //瀛樺湪鎹㈠眰浠诲姟锛屽嚭搴撲换鍔℃殏鏃朵笉鎵ц
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽瓨鍦ㄦ崲灞備换鍔★紝鍑哄簱浠诲姟绛夊緟涓�", wrkMast.getWrkNo());
+ return false;
+ }
+
boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(wrkMast.getSourceLocNo(), liftSta.getLocNo());
if(!checkLocPathIsAvailable) {
News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾湭璁$畻鍒板彲鎵ц璺緞锛岀瓑寰呬腑", wrkMast.getWrkNo());
@@ -676,6 +693,29 @@
return false;
}
+ //妫�娴嬫ゼ灞傛槸鍚︽湁鍙敤绌挎杞�
+ boolean checkLevHasShuttle = Utils.checkLevHasShuttle(liftSta.getLev());
+ if (!checkLevHasShuttle) {
+ if (wrkMast.getShuttleNo() != null) {
+ return false;
+ }
+
+ //鑾峰彇灏忚溅寰呮満浣�
+ String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo());
+ if (standbyLocNo == null) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃幏鍙栧皬杞﹀緟鏈轰綅澶辫触", wrkMast.getWrkNo());
+ return false;
+ }
+
+ //璋冨害灏忚溅鍘诲緟鏈轰綅
+ boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo);
+ if (!dispatchShuttle) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
+ return false;
+ }
+ return false;
+ }
+
Integer liftNo = wrkMast.getLiftNo();
if (liftNo == null) {
//鏈垎閰嶆彁鍗囨満
@@ -711,29 +751,6 @@
//鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庡叆搴撴ā寮�
if (!forkLiftProtocol.getIOModeType().equals(ForkLiftIoModeType.IN)) {
News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屾彁鍗囨満涓嶅浜庡叆搴撴ā寮忥紝绂佹鍏ュ簱", wrkMast.getWrkNo());
- return false;
- }
-
- //妫�娴嬫ゼ灞傛槸鍚︽湁鍙敤绌挎杞�
- boolean checkLevHasShuttle = Utils.checkLevHasShuttle(liftSta.getLev());
- if (!checkLevHasShuttle) {
- if (wrkMast.getShuttleNo() != null) {
- return false;
- }
-
- //鑾峰彇灏忚溅寰呮満浣�
- String standbyLocNo = Utils.getShuttleStandbyLocNo(liftSta.getLocNo());
- if (standbyLocNo == null) {
- News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃幏鍙栧皬杞﹀緟鏈轰綅澶辫触", wrkMast.getWrkNo());
- return false;
- }
-
- //璋冨害灏忚溅鍘诲緟鏈轰綅
- boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), standbyLocNo);
- if (!dispatchShuttle) {
- News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo());
- return false;
- }
return false;
}
@@ -1561,6 +1578,15 @@
return false;
}
+ //灏忚溅宸插湪杩戠偣浣嶇疆鏃犻渶鍓嶅線
+ if (shuttleProtocol.getCurrentLocNo().equals(endLocation)) {
+ wrkMast.setWrkSts(WrkStsType.MOVE_NEARBY_COMPLETE.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 301.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 303.灏忚溅绉诲姩鑷宠繎鐐瑰畬鎴�
+ wrkMast.setModiTime(now);
+ wrkMast.setSystemMsg("");//娓呯┖娑堟伅
+ wrkMastService.updateById(wrkMast);
+ return true;
+ }
+
//鑾峰彇灏忚溅鍒拌繎鐐硅璧板懡浠�
List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), endLocation, NavigationMapType.NORMAL.id, assignCommand, shuttleThread);
if (commands == null) {
@@ -1644,6 +1670,22 @@
return false;
}
+ List<WrkMast> outWrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .eq("io_type", 101)
+ .in("wrk_sts"
+ , WrkStsType.OUTBOUND_SHUTTLE_RUN.sts
+ , WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts
+ , WrkStsType.OUTBOUND_LIFT_RUN.sts
+ , WrkStsType.OUTBOUND_LIFT_RUN_COMPLETE.sts
+ )
+ );
+ for (WrkMast outWrkMast : outWrkMastList) {
+ if(Utils.getLev(outWrkMast.getSourceLocNo()) == Utils.getLev(wrkMast.getLocNo())) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛屽瓨鍦ㄦ鍦ㄦ墽琛岀殑灏忚溅鍑哄簱浠诲姟锛岀姝㈢Щ鍔ㄨ嚦绔欑偣", wrkMast.getWrkNo());
+ return false;
+ }
+ }
+
if (wrkMast.getLiftNo() == null) {
//鐢宠鎻愬崌鏈鸿祫婧�(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満)
boolean applyForkLift = forkLiftAction.applyForkLift(liftSta.getLiftNo(), wrkMast.getWrkNo());
--
Gitblit v1.9.1