From c4281fca922cfdda53dec5dfe79890db7671d19d Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 14 一月 2025 16:53:19 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 166 +++++++++++++++++++++++++-----------------------------
1 files changed, 77 insertions(+), 89 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 b1aafc8..ba01141 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -839,45 +839,46 @@
//灏嗕换鍔℃。鏍囪涓哄畬鎴�
WrkMast wrkMast = wrkMastService.selectByWorkNo(shuttleProtocol.getTaskNo());
if (wrkMast != null) {
- switch (wrkMast.getWrkSts().intValue()) {
-// case 5://5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚
-// wrkMast.setWrkSts(9L);
-// shuttleProtocol.setTaskNo(0);
-// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
-// //閲婃斁灏忚溅浠ょ墝
-// shuttleProtocol.setToken(0);
-// }
-// break;
-// case 22://22.灏忚溅鎼繍涓� ==> 23.灏忚溅鎼繍瀹屾垚
-// wrkMast.setWrkSts(23L);
-// shuttleProtocol.setTaskNo(0);
-// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
-// //閲婃斁灏忚溅浠ょ墝
-// shuttleProtocol.setToken(0);
-// }
-// break;
- case 302://302.灏忚溅绉诲姩鑷崇珯鐐� ==> 303.灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴�
- wrkMast.setWrkSts(WrkStsType.MOVE_SITE_COMPLETE.sts);
- break;
- case 110://310.灏忚溅绉诲姩涓� ==> 311.灏忚溅绉诲姩瀹屾垚
- wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts);
- shuttleThread.setTaskNo(0);
- break;
- default:
+ if (wrkMast.getWrkSts() == WrkStsType.MOVE_SITE.sts) {
+ //302.灏忚溅绉诲姩鑷崇珯鐐� ==> 303.灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴�
+ wrkMast.setWrkSts(WrkStsType.MOVE_SITE_COMPLETE.sts);
+ } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) {
+ //310.灏忚溅绉诲姩涓� ==> 311.灏忚溅绉诲姩瀹屾垚
+ wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts);
+ shuttleThread.setSyncTaskNo(0);
+ } else if (wrkMast.getWrkSts() == WrkStsType.CHARGE_SHUTTLE_WORKING.sts) {
+ //204.灏忚溅鍏呯數涓� ==> 205.灏忚溅鍏呯數瀹屾垚
+ wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts);
+ shuttleThread.setSyncTaskNo(0);
}
+// switch (wrkMast.getWrkSts().intValue()) {
+//// case 5://5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚
+//// wrkMast.setWrkSts(9L);
+//// shuttleProtocol.setTaskNo(0);
+//// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
+//// //閲婃斁灏忚溅浠ょ墝
+//// shuttleProtocol.setToken(0);
+//// }
+//// break;
+//// case 22://22.灏忚溅鎼繍涓� ==> 23.灏忚溅鎼繍瀹屾垚
+//// wrkMast.setWrkSts(23L);
+//// shuttleProtocol.setTaskNo(0);
+//// if (shuttleProtocol.getToken().equals(wrkMast.getWrkNo())) {
+//// //閲婃斁灏忚溅浠ょ墝
+//// shuttleProtocol.setToken(0);
+//// }
+//// break;
+// case 302:
+// wrkMast.setWrkSts(WrkStsType.MOVE_SITE_COMPLETE.sts);
+// break;
+// case WrkStsType.MOVE_SHUTTLE.sts:
+// wrkMast.setWrkSts(WrkStsType.COMPLETE_MOVE.sts);
+// shuttleThread.setSyncTaskNo(0);
+// break;
+// default:
+// }
if (wrkMastService.updateById(wrkMast)) {
- if (wrkMast.getWrkSts() == 111) {
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (wrkMastLogMapper.save(wrkMast.getWrkNo()) <= 0) {
- log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
- }
- // 鍒犻櫎宸ヤ綔涓绘。
- if (!wrkMastService.deleteById(wrkMast)) {
- log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", wrkMast.getWrkNo());
- }
- }
-
//璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵��
shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo());
@@ -1844,7 +1845,7 @@
*/
public synchronized void executeShuttleCharge() {
try {
- //鏌ヨ灏忚溅绉诲簱浠诲姟
+ //鏌ヨ灏忚溅鍏呯數浠诲姟
for (ShuttleSlave shuttle : slaveProperties.getShuttle()) {
WrkMast wrkMast = wrkMastService.selectChargeWorking(shuttle.getId());
if(wrkMast == null) {
@@ -1970,7 +1971,7 @@
assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡
assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
- List<ShuttleCommand> commands = shuttleOperaUtils.shuttleChargeCommand(assignCommand, shuttleThread, true);
+ List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, true);
assignCommand.setCommands(commands);//杩愯鍛戒护
wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_WORKING.sts);
@@ -2009,14 +2010,8 @@
assignCommand.setTaskMode(ShuttleTaskModeType.CHARGE.id);//鍑哄簱妯″紡
assignCommand.setSourceLocNo(shuttleProtocol.getCurrentLocNo());//婧愬簱浣�(灏忚溅褰撳墠浣嶇疆)
- List<ShuttleCommand> commands = shuttleOperaUtils.shuttleChargeCommand(assignCommand, shuttleThread, false);
+ List<ShuttleCommand> commands = shuttleOperaUtils.getShuttleChargeCommand(assignCommand, shuttleThread, false);
assignCommand.setCommands(commands);//杩愯鍛戒护
-
- wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts);
- wrkMast.setModiTime(new Date());
- if (!wrkMastService.updateById(wrkMast)) {
- return false;
- }
//涓嬪彂浠诲姟
shuttleAction.assignWork(shuttleProtocol.getShuttleNo(), assignCommand);
@@ -2037,22 +2032,22 @@
return false;
}
- ShuttleChargeType chargeType = ShuttleChargeType.get(wrkMast.getMk());
+ ShuttleChargeType chargeType = ShuttleChargeType.get(Integer.parseInt(wrkMast.getMk()));
if(chargeType == null) {
return false;
}
- wrkMast.setWrkSts(WrkStsType.CHARGE_SHUTTLE_COMPLETE.sts);
- wrkMast.setModiTime(new Date());
- if (wrkMastService.updateById(wrkMast)) {
- //璋冨害灏忚溅鍘诲緟鏈轰綅
- boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), chargeType.waitLocNo, wrkMast.getShuttleNo());
- if (!dispatched) {
- return false;
- }
+ //璋冨害灏忚溅鍘诲緟鏈轰綅
+ boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), chargeType.waitLocNo, wrkMast.getShuttleNo());
+ if (!dispatched) {
return false;
}
+ wrkMast.setWrkSts(WrkStsType.COMPLETE_CHARGE.sts);
+ wrkMast.setModiTime(new Date());
+ if (wrkMastService.updateById(wrkMast)) {
+ return false;
+ }
return false;
}
return true;
@@ -2110,7 +2105,7 @@
//灏忚溅澶勪簬绌洪棽鐘舵��
if (!shuttleThread.isIdle()) {
- News.info("{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
}
@@ -2134,7 +2129,7 @@
//鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟(璇ヤ换鍔¢渶瑕佹崲灞傚繀椤绘彁鍓嶇嫭鍗犳彁鍗囨満)
WrkMast liftWrkMast = wrkMastService.selectLiftWrkMast(liftSta.getLiftNo());
if (liftWrkMast != null) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftSta.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), liftSta.getLiftNo());
return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
@@ -2147,33 +2142,34 @@
//鑾峰彇灏忚溅鍒拌緭閫佺珯鐐硅璧板懡浠�
List<ShuttleCommand> commands = shuttleOperaUtils.getStartToTargetCommands(shuttleProtocol.getCurrentLocNo(), liftSta.getLocNo(), NavigationMapType.NORMAL.id, assignCommand, shuttleThread);
if (commands == null) {
- News.info("{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;//璺緞瑙i攣澶辫触
}
assignCommand.setCommands(commands);
- //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
- List<NavigateNode> targetNodes = ForkLiftUtils.getLiftStaNodes(wrkMast.getStaNo());
- if (targetNodes == null) {
- return false;//鏈幏鍙栧埌鑺傜偣
- }
- boolean checkPathIsAvailable = navigateUtils.checkPathIsAvailable(targetNodes, shuttleProtocol.getShuttleNo(), Utils.getLev(wrkMast.getLocNo()));
- if (!checkPathIsAvailable) {
- News.info("{}浠诲姟锛寋}灏忚溅锛岀洰鏍囩珯鐐硅矾寰勮鍗犵敤锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
- return false;//妫�娴嬬洰鏍囩珯鐐硅矾寰勬槸鍚︽湭琚崰鐢�
- }
- //灏濊瘯閿佸畾鐩爣绔欒矾寰�
- boolean result2 = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), shuttleProtocol.getShuttleNo(), targetNodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹氱鐢�
- if (!result2) {
- News.info("{}浠诲姟锛寋}灏忚溅锛岃矾寰勯攣瀹氬け璐ワ紝绂佹娲惧彂", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
- return false;//璺緞閿佸畾澶辫触
- }
- //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
+// //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
+// List<NavigateNode> targetNodes = ForkLiftUtils.getLiftStaNodes(wrkMast.getStaNo());
+// if (targetNodes == null) {
+// return false;//鏈幏鍙栧埌鑺傜偣
+// }
+// boolean checkPathIsAvailable = navigateUtils.checkPathIsAvailable(targetNodes, shuttleProtocol.getShuttleNo(), Utils.getLev(wrkMast.getLocNo()));
+// if (!checkPathIsAvailable) {
+// News.info("{}浠诲姟锛寋}灏忚溅锛岀洰鏍囩珯鐐硅矾寰勮鍗犵敤锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+// return false;//妫�娴嬬洰鏍囩珯鐐硅矾寰勬槸鍚︽湭琚崰鐢�
+// }
+// //灏濊瘯閿佸畾鐩爣绔欒矾寰�
+// boolean result2 = navigateMapUtils.writeNavigateNodeToRedisMap(Utils.getLev(wrkMast.getLocNo()), shuttleProtocol.getShuttleNo(), targetNodes, true);//鎵�浣跨敤鐨勮矾寰勮繘琛岄攣瀹氱鐢�
+// if (!result2) {
+// News.info("{}浠诲姟锛寋}灏忚溅锛岃矾寰勯攣瀹氬け璐ワ紝绂佹娲惧彂", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+// return false;//璺緞閿佸畾澶辫触
+// }
+// //*************灏濊瘯閿佸畾鐩爣绔欒矾寰�***************
wrkMast.setWrkSts(WrkStsType.MOVE_SITE.sts);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 301.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 302.灏忚溅绉诲姩鑷崇珯鐐�
wrkMast.setModiTime(now);
wrkMast.setLiftNo(liftSta.getLiftNo());//鎻愬墠閿佸畾鎻愬崌鏈�
+ wrkMast.setSystemMsg("");//娓呯┖娑堟伅
// shuttleProtocol.setToken(wrkMast.getWrkNo());//鐙崰璇ュ皬杞︿护鐗�
if (wrkMastService.updateById(wrkMast)) {
//涓嬪彂浠诲姟
@@ -2205,14 +2201,14 @@
return false;
}
if (!forkLiftThread.isIdle()) {
- News.info("{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満蹇欑涓紝绂佹娲惧彂", wrkMast.getWrkNo(), 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());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙锋彁鍗囨満锛屾彁鍗囨満瀛樺湪鏈畬鎴愪换鍔★紝绂佹娲惧彂", wrkMast.getWrkNo(), wrkMast.getLiftNo());
return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇�
}
}
@@ -2222,7 +2218,7 @@
//鑾峰彇鐩爣绔�
ForkLiftStaProtocol liftSta = ForkLiftUtils.getLiftStaByStaNo(wrkMast.getStaNo());
if (sourceLiftSta == null || liftSta == null) {
- News.info("{}浠诲姟锛岀己灏戠珯鐐逛俊鎭紝绂佹娲惧彂", wrkMast.getWrkNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岀己灏戠珯鐐逛俊鎭紝绂佹娲惧彂", wrkMast.getWrkNo());
return false;//缂哄皯绔欑偣淇℃伅
}
@@ -2240,6 +2236,7 @@
assignCommand.setTaskMode(ForkLiftTaskModeType.SHUTTLE_SWITCH.id.shortValue());
wrkMast.setWrkSts(WrkStsType.MOVE_LIFT_RUN.sts);//鎻愬崌鏈烘惉杩愪腑 303.灏忚溅绉诲姩鑷崇珯鐐瑰畬鎴� ==> 306.鎻愬崌鏈烘惉杩愪腑
+ wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
//涓嬪彂浠诲姟
@@ -2273,7 +2270,7 @@
//灏忚溅澶勪簬绌洪棽鐘舵��
if (!shuttleThread.isIdle()) {
- News.info("{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;
}
@@ -2283,17 +2280,6 @@
wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
wrkMast.setModiTime(now);
wrkMastService.updateById(wrkMast);
-
- if (wrkMast.getWrkSts() == WrkStsType.COMPLETE_MOVE.sts) {
- // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
- if (wrkMastLogMapper.save(wrkMast.getWrkNo()) <= 0) {
- log.info("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={}]澶辫触", wrkMast.getWrkNo());
- }
- // 鍒犻櫎宸ヤ綔涓绘。
- if (!wrkMastService.deleteById(wrkMast)) {
- log.info("鍒犻櫎宸ヤ綔涓绘。[workNo={}]澶辫触", wrkMast.getWrkNo());
- }
- }
return false;
}
@@ -2332,6 +2318,7 @@
}
if (commands == null) {
+ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo());
return false;//璺緞璁$畻澶辫触
}
@@ -2353,6 +2340,7 @@
wrkMast.setWrkSts(WrkStsType.MOVE_SHUTTLE.sts);//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑 309.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 310.灏忚溅绉诲姩涓�
wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈�
+ wrkMast.setSystemMsg("");//娓呯┖娑堟伅
wrkMast.setModiTime(now);
if (wrkMastService.updateById(wrkMast)) {
--
Gitblit v1.9.1