From c6ac196d7207e64b8591f84932439214561fc446 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期五, 29 八月 2025 15:56:52 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java | 271 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 186 insertions(+), 85 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
index ee7b7de..e68df5f 100644
--- a/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java
@@ -23,6 +23,8 @@
import com.zy.core.model.command.ShuttleCommand;
import com.zy.core.model.protocol.LiftProtocol;
import com.zy.core.model.protocol.ShuttleProtocol;
+import com.zy.core.model.protocol.StaProtocol;
+import com.zy.core.thread.DevpThread;
import com.zy.core.thread.LiftThread;
import com.zy.core.thread.ShuttleThread;
import lombok.extern.slf4j.Slf4j;
@@ -32,6 +34,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Map;
@Slf4j
@Service("noLiftOutService")
@@ -58,14 +61,17 @@
@Autowired
private LiftAction liftAction;
+ @Autowired
+ private MainServiceImpl mainService;
/**
* 浠庢病鏈夋彁鍗囨満渚у嚭搴擄紝鏈変袱绉嶆儏鍐碉紝涓�绉�1锛�5搴撳埌鍚屽眰锛屼竴绉嶉潪1锛�5搴撳埌1锛�5锛屽垯闇�瑕佹彁鍗囨満
+ *
* @param wrkMast
*/
- public void shuttleMoveExecute(WrkMast wrkMast) {
+ public void shuttleMoveExecute(WrkMast wrkMast, Integer staNo, Integer lev) {
//鍒ゆ柇鐩爣搴撲綅鏄惁鍦�1灞傛垨5灞�
- if (Utils.getLev(wrkMast.getLocNo()) == 1 || Utils.getLev(wrkMast.getLocNo()) == 5) {
+ if ((lev == 1 & staNo == 1013) || (lev == 5 && staNo == 1024)) {
boolean stepMoveSta = this.shuttleMoveExecuteTransportLiftStepCallShuttle2(wrkMast);//鍛煎彨灏忚溅鑷冲彇璐х偣
if (!stepMoveSta) {
return;
@@ -136,9 +142,27 @@
return false;
}
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ if (devpThread == null) {
+ return false;
+ }
+
+ WrkMast wrkMast1 = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo());
+ if (wrkMast1 != null) {
+ if (!mainService.isOutEnable(devpThread, wrkMast1.getStaNo())) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎涓嶅彲鍑�111", wrkMast.getWrkNo(), wrkMast1.getStaNo());
+ return false;
+ }
+ StaProtocol staProtocol = devpThread.getStation().get(wrkMast1.getStaNo() + 2);
+ if (staProtocol.isLoading()) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿111", wrkMast.getWrkNo(), wrkMast1.getStaNo() + 1);
+ return false;
+ }
+ }
+
if (shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) {
//灏忚溅鍦ㄥ彇璐х偣
- wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_2.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 301.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 鍛煎彨灏忚溅鑷冲彇璐х偣
+ wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_1.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 301.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 鍛煎彨灏忚溅鑷冲彇璐х偣
wrkMast.setModiTime(now);
wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMastService.updateById(wrkMast);
@@ -195,13 +219,13 @@
//鑾峰彇绌挎杞︽渶杩戜笖绌洪棽鐨勬彁鍗囨満
LiftThread liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo());
if (liftThread == null) {
- News.info("{}鍙峰皬杞︼紝{}鐩爣搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂叉彁鍗囨満", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}鍙峰皬杞︼紝{}灏忚溅搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂叉彁鍗囨満", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
return false;//娌℃湁鍙敤涓旂┖闂茬殑鎻愬崌鏈�
}
LiftProtocol liftProtocol = liftThread.getStatus();
if (liftProtocol == null) {
- News.info("{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", wrkMast.getLiftNo());
return false;
}
@@ -260,82 +284,62 @@
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
if (shuttleThread == null) {
- News.info("{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅绾跨▼涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅绾跨▼涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
return false;
}
ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
if (shuttleProtocol == null) {
- News.info("{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅瀵硅薄涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅瀵硅薄涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
return false;
}
LiftThread liftThread = null;
LiftProtocol liftProtocol = null;
- if (wrkMast.getLiftNo() == null) {
- //鑾峰彇绌挎杞︽渶杩戜笖绌洪棽鐨勬彁鍗囨満
- liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo());
- if (liftThread == null) {
- News.info("{}鍙峰皬杞︼紝{}鐩爣搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂叉彁鍗囨満", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
- return false;//娌℃湁鍙敤涓旂┖闂茬殑鎻愬崌鏈�
- }
- liftProtocol = liftThread.getStatus();
- if (liftProtocol == null) {
- News.info("{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", wrkMast.getLiftNo());
- return false;
- }
- //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満)
- WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftProtocol.getLiftNo());
- if (liftWrkMast != null) {
- News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
- return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
- }
+ //鑾峰彇绌挎杞︽渶杩戜笖绌洪棽鐨勬彁鍗囨満
+ liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo());
+ if (liftThread == null) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}鍙峰皬杞︼紝{}鐩爣搴撲綅锛屾病鏈夊彲鐢ㄧ┖闂叉彁鍗囨満", shuttleProtocol.getShuttleNo(), shuttleProtocol.getCurrentLocNo());
+ return false;//娌℃湁鍙敤涓旂┖闂茬殑鎻愬崌鏈�
+ }
- wrkMast.setModiTime(now);
- wrkMast.setLiftNo(liftProtocol.getLiftNo());//鎻愬墠閿佸畾鎻愬崌鏈�
- wrkMast.setSystemMsg("");//娓呯┖娑堟伅
- wrkMastService.updateById(wrkMast);
+ liftProtocol = liftThread.getStatus();
+ //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
+ if (liftProtocol.getHasCar()) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
return false;
- } else {
- liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast.getLiftNo());
- if (liftThread == null) {
- News.info("{}鍙锋彁鍗囨満涓嶅瓨鍦�", wrkMast.getLiftNo());
- return false;
- }
-
- liftProtocol = liftThread.getStatus();
- if (liftProtocol == null) {
- News.info("{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", wrkMast.getLiftNo());
- return false;
- }
}
- //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
- WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo());
- if (liftWrkMast != null) {
- if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚�
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
- return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
- }
+ //鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夋墭鐩�
+ if (liftProtocol.getHasTray()) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+ return false;
}
+
if (!liftThread.isIdle()) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
return false;
}
//鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
if (liftProtocol.getHasCar()) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
return false;//鎻愬崌鏈哄唴鏃犲皬杞�
}
//鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夋墭鐩�
if (liftProtocol.getHasTray()) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
return false;//鎻愬崌鏈哄唴鏃犲皬杞�
+ }
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
+ WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(1, wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
+ if (liftWrkMast != null) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
//鍒ゆ柇鎻愬崌鏈烘ゼ灞�
@@ -343,6 +347,7 @@
//鎻愬崌鏈哄湪灏忚溅妤煎眰
wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_5.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴�
wrkMast.setModiTime(now);
+ wrkMast.setLiftNo(1);
wrkMastService.updateById(wrkMast);
return false;
}
@@ -361,9 +366,12 @@
//鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔
LiftAssignCommand assignCommand = new LiftAssignCommand();
assignCommand.setCommands(commands);
- assignCommand.setLiftNo(wrkMast.getLiftNo().shortValue());
+ assignCommand.setLiftNo((short) 1);
assignCommand.setTaskNo(wrkMast.getWrkNo().shortValue());
assignCommand.setTaskMode(LiftCommandModeType.MOVE.id.shortValue());
+
+
+
wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_4.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 鎻愬崌鏈鸿嚦灏忚溅灞�
wrkMast.setLiftNo(liftProtocol.getLiftNo());//鎻愬墠閿佸畾鎻愬崌鏈�
@@ -393,56 +401,44 @@
//鑾峰彇鍥涘悜绌挎杞︾嚎绋�
ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, wrkMast.getShuttleNo());
if (shuttleThread == null) {
- News.info("{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅绾跨▼涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅绾跨▼涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
return false;
}
ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
if (shuttleProtocol == null) {
- News.info("{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅瀵硅薄涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙峰皬杞︼紝灏忚溅瀵硅薄涓嶅瓨鍦紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getShuttleNo());
return false;
}
- if (wrkMast.getLiftNo() == null) {
- News.info("{}浠诲姟锛屾湭缁戝畾鎻愬崌鏈猴紝绂佹娲惧彂", wrkMast.getWrkNo());
- return false;
- }
-
- LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast.getLiftNo());
- if (liftThread == null) {
- News.info("{}鍙锋彁鍗囨満涓嶅瓨鍦�", wrkMast.getLiftNo());
- return false;
- }
-
+ LiftThread liftThread = LiftUtils.getRecentLift(shuttleProtocol.getCurrentLocNo());
LiftProtocol liftProtocol = liftThread.getStatus();
if (liftProtocol == null) {
- News.info("{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}鍙锋彁鍗囨満瀵硅薄涓嶅瓨鍦�", 1);
return false;
}
//鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
- WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo());
+ WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(1, wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
if (liftWrkMast != null) {
- if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚�
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
- return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
- }
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), 1);
+ return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
if (!liftThread.isIdle()) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), 1);
return false;
}
//灏忚溅澶勪簬绌洪棽鐘舵��
if (!shuttleThread.isIdle()) {
- News.info("{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
}
//鍒ゆ柇鎻愬崌鏈哄唴鏄惁鏈夊皬杞�
if (liftProtocol.getHasCar()) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮湁灏忚溅锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
return false;//鎻愬崌鏈哄唴鏃犲皬杞�
}
@@ -459,6 +455,13 @@
return false;//绛夊緟鎻愬崌鏈哄埌灏忚溅妤煎眰
}
+ //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
+ WrkMast w = wrkMastService.selectLiftWrkMastAndWrkNo(1, wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
+ if (w != null) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鍒殑缁戝畾浠诲姟out锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), 1);
+ return false;
+ }
+
ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙�
assignCommand.setTaskMode(ShuttleTaskModeType.MOVE_LOC_NO.id);//灏忚溅绉诲簱浠诲姟
@@ -466,7 +469,7 @@
assignCommand.setAuto(true);//鑷姩妯″紡
//鑾峰彇灏忚溅鍒版彁鍗囨満琛岃蛋鍛戒护
- List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftThread.getLiftLocNo(Utils.getLev(shuttleProtocol.getCurrentLocNo())), NavigationMapType.NORMAL.id, assignCommand, shuttleThread);
+ List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftThread.getLiftLocNo(Utils.getLev(shuttleProtocol.getCurrentLocNo())), NavigationMapType.DFX.id, assignCommand, shuttleThread);
if (commands == null) {
News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
@@ -476,6 +479,7 @@
wrkMast.setWrkSts(WrkStsType.MOVE_OUT_NO_LIFT_6.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 鎻愬崌鏈鸿嚦灏忚溅灞傚畬鎴� ==> 灏忚溅杩佸叆鎻愬崌鏈轰腑
wrkMast.setModiTime(now);
+ wrkMast.setLiftNo(1);
if (wrkMastService.updateById(wrkMast)) {
//涓嬪彂浠诲姟
shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
@@ -516,12 +520,10 @@
}
//鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
- WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo());
+ WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(1, wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
if (liftWrkMast != null) {
- if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚�
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
- return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
- }
+ News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
if (!liftThread.isIdle()) {
@@ -607,12 +609,10 @@
}
//鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟
- WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(wrkMast.getLiftNo());
+ WrkMast liftWrkMast = wrkMastService.selectLiftWrkMastAndWrkNo(1, wrkMast.getWrkNo(), wrkMast.getMainWrkNo());
if (liftWrkMast != null) {
- if (!liftWrkMast.getWrkNo().equals(wrkMast.getWrkNo())) {//鎻愬崌鏈轰换鍔″拰褰撳墠浠诲姟涓嶇浉鍚�
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
- return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
- }
+ News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, wrkMast.getLiftNo());
@@ -648,6 +648,25 @@
if (!liftProtocol.getHasTray()) {
News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満鍐呮棤鎵樼洏锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), liftProtocol.getLiftNo());
return false;//鎻愬崌鏈哄唴鏃犲皬杞�
+ }
+
+ if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(wrkMast.getLocNo())) {
+ ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
+ assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙�
+ assignCommand.setTaskMode(ShuttleTaskModeType.UPDATE_LOCATION.id);//鏇存柊鍧愭爣
+ assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙�
+ assignCommand.setAuto(true);//鑷姩妯″紡
+ assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�
+ assignCommand.setLocNo(wrkMast.getLocNo());//鐩爣搴撲綅
+
+ //鏇存柊灏忚溅鍧愭爣
+ ShuttleCommand command = shuttleThread.getUpdateLocationCommand(wrkMast.getWrkNo(), wrkMast.getLocNo());
+ ArrayList<ShuttleCommand> commands = new ArrayList<>();
+ commands.add(command);
+
+ assignCommand.setCommands(commands);
+ shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
+ return false;
}
ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
@@ -703,10 +722,47 @@
return false;
}
+// if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) != Utils.getLev(wrkMast.getLocNo())) {
+// ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
+// assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙�
+// assignCommand.setTaskMode(ShuttleTaskModeType.UPDATE_LOCATION.id);//鏇存柊鍧愭爣
+// assignCommand.setTaskNo(wrkMast.getWrkNo());//浠诲姟鍙�
+// assignCommand.setAuto(true);//鑷姩妯″紡
+// assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�
+// assignCommand.setLocNo(wrkMast.getLocNo());//鐩爣搴撲綅
+//
+// //鏇存柊灏忚溅鍧愭爣
+// ShuttleCommand command = shuttleThread.getUpdateLocationCommand(wrkMast.getWrkNo(), wrkMast.getLocNo());
+// ArrayList<ShuttleCommand> commands = new ArrayList<>();
+// commands.add(command);
+//
+// assignCommand.setCommands(commands);
+// shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
+// return false;
+// }
+
+
//灏忚溅澶勪簬绌洪棽鐘舵��
if (!shuttleThread.isIdle()) {
News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
+ }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ Map<Integer, StaProtocol> station = devpThread.getStation();
+ StaProtocol staProtocol2 = null;
+ if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) {
+ staProtocol2 = station.get(1015);
+ if (staProtocol2.isLoading()) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12432", wrkMast.getWrkNo(), 1015);
+ return false;
+ }
+ } else {
+ staProtocol2 = station.get(1026);
+ if (staProtocol2.isLoading()) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12341", wrkMast.getWrkNo(), 1026);
+ return false;
+ }
}
ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
@@ -744,6 +800,14 @@
//涓嬪彂浠诲姟
shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
}
+ WrkMast wrkMast1 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo());
+ if (wrkMast1 != null) {
+ wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.updateById(wrkMast1)) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}瑙i攣鎻愬崌鏈�", wrkMast1.getWrkNo());
+ }
+ }
}
return true;
}
@@ -772,6 +836,22 @@
if (!shuttleThread.isIdle()) {
News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
+ }
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ if (devpThread == null) {
+ return false;
+ }
+ WrkMast wrkMast1 = wrkMastService.selectByWorkNo(wrkMast.getMainWrkNo());
+ if (wrkMast1 != null) {
+ if (!mainService.isOutEnable(devpThread, wrkMast1.getStaNo())) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎涓嶅彲鍑�222", wrkMast.getWrkNo(), wrkMast1.getStaNo());
+ return false;
+ }
+ StaProtocol staProtocol = devpThread.getStation().get(wrkMast1.getStaNo() + 2);
+ if (staProtocol.isLoading()) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿222", wrkMast.getWrkNo(), wrkMast1.getStaNo());
+ return false;
+ }
}
if (shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) {
@@ -825,6 +905,27 @@
News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
}
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ Map<Integer, StaProtocol> station = devpThread.getStation();
+ StaProtocol staProtocol2 = null;
+ if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) {
+ staProtocol2 = station.get(1015);
+ if (staProtocol2.isLoading()) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12432", wrkMast.getWrkNo(), 1015);
+ return false;
+ }
+ } else {
+ staProtocol2 = station.get(1026);
+ if (staProtocol2.isLoading()) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12341", wrkMast.getWrkNo(), 1026);
+ return false;
+ }
+ }
+
+
+ if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) {
+ return false;
+ }
ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙�
--
Gitblit v1.9.1