From 41001fd098a83b3ea6c1812ce94a33101b3c8df0 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期六, 14 十月 2023 20:22:30 +0800
Subject: [PATCH] #库位移转
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 72 +++++++++++++++++++++++++----------
1 files changed, 51 insertions(+), 21 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 bfeca29..ed89dab 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1319,15 +1319,16 @@
wrkMast.setWrkSts(25L);
if (wrkMast.getIoType() == 11) {//搴撲綅绉昏浆
wrkMast.setWrkSts(4L);//4.鎻愬崌鏈烘惉杩愬畬鎴�
+ }else {
+ if (wrkMast.getMk() == null || !wrkMast.getMk().equals("Y")) {
+ //涓嶉渶瑕佺敤鍒版満姊拌噦锛岀洿鎺ヨ浆29.鍑哄簱瀹屾垚
+ wrkMast.setWrkSts(29L);
+ }
}
+
if (liftProtocol.getToken().equals(wrkMast.getWrkNo())) {
//閲婃斁鎻愬崌鏈轰护鐗�
liftProtocol.setToken(0);
- }
-
- if (wrkMast.getMk() == null || !wrkMast.getMk().equals("Y")) {
- //涓嶉渶瑕佺敤鍒版満姊拌噦锛岀洿鎺ヨ浆29.鍑哄簱瀹屾垚
- wrkMast.setWrkSts(29L);
}
break;
@@ -1542,14 +1543,47 @@
private boolean locToLocExecuteStep3(WrkMast wrkMast) {
Date now = new Date();
if (wrkMast.getWrkSts() == 23) {//23.灏忚溅鎼繍瀹屾垚
+ //婧愮珯
+ Integer sourceStaNo = wrkMast.getSourceStaNo();
+ //鐩爣绔�
+ Integer staNo = wrkMast.getStaNo();
+ if (sourceStaNo == null || staNo == null) {
+ return false;//婧愮珯鎴栫洰鏍囩珯涓虹┖
+ }
+
+ int liftNo = staNo / 100;//鑾峰彇鎻愬崌鏈哄彿
+
//鑾峰彇鎻愬崌鏈虹嚎绋�
- LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast.getLiftNo());
+ LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, liftNo);
if (liftThread == null) {
return false;
}
LiftProtocol liftProtocol = liftThread.getLiftProtocol();
if (liftProtocol == null) {
return false;
+ }
+
+ //鑾峰彇婧愮珯瀵瑰簲鐨勮緭閫佺珯鐐�
+ LiftStaProtocol liftStaProtocol = NyLiftUtils.getLiftStaByLev(liftNo, Utils.getLev(wrkMast.getSourceLocNo()));
+ if (liftStaProtocol == null) {
+ return false;//鎵句笉鍒扮珯鐐�
+ }
+
+ if (!(liftStaProtocol.getModel() && !liftStaProtocol.getBusy() && liftStaProtocol.getHasTray())) {
+ return false;//绔欑偣蹇呴』鑷姩銆佺┖闂层�佹湁鎵樼洏
+ }
+ NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
+ if (shuttleThread == null) {
+ return false;
+ }
+ NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
+ if (shuttleProtocol.getCurrentLocNo().equals(liftStaProtocol.getLocNo())) {
+ //灏忚溅杩樺湪杈撻�佺珯鐐�
+ //璋冨害灏忚溅閬胯
+ boolean result = Utils.searchEmptyGroupToMoveShuttle(Utils.getLev(wrkMast.getSourceLocNo()), wrkMast.getShuttleNo(), shuttleThread);
+ if (!result) {
+ return false;
+ }
}
if (!liftProtocol.isIdle()) {
@@ -1560,14 +1594,6 @@
WrkMast wrkMast1 = wrkMastMapper.selectLiftWrkMast(liftProtocol.getLiftNo().intValue());
if (wrkMast1 != null && wrkMast1.getWrkNo().intValue() != wrkMast.getWrkNo().intValue()) {
return false;
- }
-
- //婧愮珯
- Integer sourceStaNo = wrkMast.getSourceStaNo();
- //鐩爣绔�
- Integer staNo = wrkMast.getStaNo();
- if (sourceStaNo == null || staNo == null) {
- return false;//婧愮珯鎴栫洰鏍囩珯涓虹┖
}
//鑾峰彇鎻愬崌鏈哄懡浠�
@@ -1604,13 +1630,17 @@
private boolean locToLocExecuteStep4(WrkMast wrkMast) {
if (wrkMast.getWrkSts() == 4) {//4.鎻愬崌鏈烘惉杩愬畬鎴�
//鑾峰彇鐩爣绔欏搴旂殑杈撻�佺珯鐐�
- BasDevp targetBasDevp = basDevpService.selectByLevAndLiftNo(Utils.getLev(wrkMast.getLocNo()), wrkMast.getLiftNo());
- if (targetBasDevp == null) {
- return false;//缂哄皯绔欑偣淇℃伅
+ LiftStaProtocol liftStaProtocol = NyLiftUtils.getLiftStaByLev(wrkMast.getLiftNo(), Utils.getLev(wrkMast.getLocNo()));
+ if (liftStaProtocol == null) {
+ return false;//鎵句笉鍒扮珯鐐�
+ }
+
+ if (!(liftStaProtocol.getModel() && !liftStaProtocol.getBusy() && liftStaProtocol.getHasTray())) {
+ return false;//绔欑偣蹇呴』鑷姩銆佺┖闂层�佹湁鎵樼洏
}
if (wrkMast.getShuttleNo() == null) {
- shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), targetBasDevp.getLocNo());//璋冨害灏忚溅鍒扮洰鏍囪緭閫佺珯鐐硅繘琛屽彇璐�
+ shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), liftStaProtocol.getLocNo());//璋冨害灏忚溅鍒扮洰鏍囪緭閫佺珯鐐硅繘琛屽彇璐�
return false;
}
@@ -1628,14 +1658,14 @@
}
//鍒ゆ柇灏忚溅鏄惁鍒拌揪鐩爣杈撻�佺珯鐐�
- if (!shuttleProtocol.getCurrentLocNo().equals(targetBasDevp.getLocNo())) {
+ if (!shuttleProtocol.getCurrentLocNo().equals(liftStaProtocol.getLocNo())) {
//灏忚溅涓嶅湪鐩爣杈撻�佺珯鐐�
- shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), targetBasDevp.getLocNo(), wrkMast.getShuttleNo());//璋冨害灏忚溅鍒扮洰鏍囪緭閫佺珯鐐硅繘琛屽彇璐�
+ shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), liftStaProtocol.getLocNo(), wrkMast.getShuttleNo());//璋冨害灏忚溅鍒扮洰鏍囪緭閫佺珯鐐硅繘琛屽彇璐�
return false;
}
//灏忚溅宸叉姷杈剧洰鏍囪緭閫佺珯鐐癸紝灏嗚揣鐗╂惉杩愬埌鐩爣搴撲綅
- NyShuttleOperaResult result = NyShuttleOperaUtils.getShuttleTransportCommands(wrkMast.getShuttleNo(), wrkMast.getWrkNo(), targetBasDevp.getLocNo(), wrkMast.getLocNo());
+ NyShuttleOperaResult result = NyShuttleOperaUtils.getShuttleTransportCommands(wrkMast.getShuttleNo(), wrkMast.getWrkNo(), liftStaProtocol.getLocNo(), wrkMast.getLocNo());
if (result == null) {//璺緞璁$畻澶辫触
return false;
}
--
Gitblit v1.9.1