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 | 136 ++++++++++++++++++++++++--------------------- 1 files changed, 73 insertions(+), 63 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 0cee555..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,32 +839,44 @@ //灏嗕换鍔℃。鏍囪涓哄畬鎴� 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)) { //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵�� @@ -1833,7 +1845,7 @@ */ public synchronized void executeShuttleCharge() { try { - //鏌ヨ灏忚溅绉诲簱浠诲姟 + //鏌ヨ灏忚溅鍏呯數浠诲姟 for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { WrkMast wrkMast = wrkMastService.selectChargeWorking(shuttle.getId()); if(wrkMast == null) { @@ -2001,12 +2013,6 @@ 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); return false; @@ -2026,22 +2032,22 @@ return false; } - ShuttleChargeType chargeType = ShuttleChargeType.get(wrkMast.getMk()); + ShuttleChargeType chargeType = ShuttleChargeType.get(Integer.parseInt(wrkMast.getMk())); if(chargeType == null) { + 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)) { - //璋冨害灏忚溅鍘诲緟鏈轰綅 - boolean dispatched = shuttleDispatchUtils.dispatchShuttle(wrkMast.getWrkNo(), chargeType.waitLocNo, wrkMast.getShuttleNo()); - if (!dispatched) { - return false; - } return false; } - return false; } return true; @@ -2099,7 +2105,7 @@ //灏忚溅澶勪簬绌洪棽鐘舵�� if (!shuttleThread.isIdle()) { - News.info("{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); return false; } @@ -2123,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;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇� } @@ -2136,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)) { //涓嬪彂浠诲姟 @@ -2194,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;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇� } } @@ -2211,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;//缂哄皯绔欑偣淇℃伅 } @@ -2229,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)) { //涓嬪彂浠诲姟 @@ -2262,7 +2270,7 @@ //灏忚溅澶勪簬绌洪棽鐘舵�� if (!shuttleThread.isIdle()) { - News.info("{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); return false; } @@ -2310,6 +2318,7 @@ } if (commands == null) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛岃矾寰勮绠楀け璐�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); return false;//璺緞璁$畻澶辫触 } @@ -2331,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