From 5a552bd8462b50b11ffd6730e456657366f37484 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 31 七月 2023 16:03:21 +0800 Subject: [PATCH] 提升机、穿梭车finished方法 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 213 +++++----------------------------------------------- 1 files changed, 22 insertions(+), 191 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 769aec2..dee35a0 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1480,40 +1480,26 @@ && shuttleProtocol.getTaskNo() != 0 && shuttleProtocol.getBusyStatus() == 0 ) { - //鏍囪澶嶄綅 - shuttleProtocol.setPakMk(true); - - ShuttleAssignCommand assignCommand = shuttleProtocol.getAssignCommand(); - //灏嗕换鍔℃。鏍囪涓哄畬鎴� WrkMast wrkMast = wrkMastMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue()); - ShuttleAssignCommand moveAssignCommand = null;//閬胯鍛戒护 if (wrkMast != null) { switch (wrkMast.getWrkSts().intValue()) { - case 9://9.灏忚溅鍏ュ簱鎼繍涓� ==> 14.鍏ュ簱瀹屾垚 - wrkMast.setWrkSts(14L); + case 5://5.灏忚溅鎼繍涓� ==> 9.鍏ュ簱瀹屾垚 + wrkMast.setWrkSts(9L); //浠诲姟鍙锋竻闆� shuttleProtocol.setTaskNo((short) 0); break; - case 5://5.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙� ==> 6.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� - wrkMast.setWrkSts(6L); - break; - case 22://22.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙� ==> 23.杩佺Щ灏忚溅鑷虫彁鍗囨満鍙e畬鎴� + case 22://22.灏忚溅鎼繍涓� ==> 23.灏忚溅鎼繍瀹屾垚 wrkMast.setWrkSts(23L); break; - case 26://26.灏忚溅鍑哄簱鎼繍涓� ==> 27.灏忚溅鍑哄簱鎼繍瀹屾垚 - //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀� - //鎼滅储涓�鏉℃病鏈夊皬杞︾殑绌哄贩閬擄紝骞惰皟搴﹀皬杞� - int distLev = Utils.getLev(wrkMast.getSourceLocNo());//閬胯妤煎眰 - String startLocNo = "180020" + distLev; - moveAssignCommand = Utils.searchEmptyGroupToMoveShuttle(distLev, shuttleThread.getSlave().getId(), shuttleThread, startLocNo); - if (moveAssignCommand == null) {//璋冨害灏忚溅鍛戒护涓虹┖ - continue; - } - - wrkMast.setWrkSts(27L); - //浠诲姟鍙锋竻闆� - shuttleProtocol.setTaskNo((short) 0); + case 102://102.灏忚溅鍒版彁鍗囨満涓� ==> 103.灏忚溅鍒版彁鍗囨満瀹屾垚 + wrkMast.setWrkSts(103L); + break; + case 106://106.灏忚溅杩佸嚭鎻愬崌鏈轰腑 ==> 107.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� + wrkMast.setWrkSts(107L); + break; + case 108://108.灏忚溅绉诲姩涓� ==> 109.灏忚溅绉诲姩瀹屾垚 + wrkMast.setWrkSts(109L); break; default: } @@ -1528,83 +1514,11 @@ //浠诲姟鎸囦护娓呴浂 shuttleProtocol.setAssignCommand(null); News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo()); - - if (wrkMast.getWrkSts() == 27) { - if (moveAssignCommand != null) { - try { - Thread.sleep(4000); - //涓嬪彂浠诲姟 - shuttleProtocol.setPakMk(true); - MessageQueue.offer(SlaveType.Shuttle, shuttleThread.getSlave().getId(), new Task(3, moveAssignCommand)); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } - } - } - } else { News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo()); } } - if (assignCommand != null) { - if (assignCommand.getTaskMode().intValue() == ShuttleTaskModeType.AVOID.id) { - //閬胯浠诲姟 - //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵�� - shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE); - //浠诲姟鍙锋竻闆� - shuttleProtocol.setTaskNo((short) 0); - //婧愬簱浣嶆竻闆� - shuttleProtocol.setSourceLocNo(null); - //鐩爣搴撲綅娓呴浂 - shuttleProtocol.setLocNo(null); - //浠诲姟鎸囦护娓呴浂 - shuttleProtocol.setAssignCommand(null); - News.info("鍥涘悜绌挎杞﹂伩璁╀换鍔″凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo()); - } - } - - } - - //鍥涘悜绌挎杞︾姸鎬佷负鍏呯數鐘舵�� - if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id //鍏呯數鏍囪瘑 - && shuttleProtocol.getTaskNo() != 0) { - //鏌ヨ鏄惁鏈夊厖鐢典换鍔� - WrkCharge wrkCharge = wrkChargeMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue()); - if (wrkCharge != null) { - switch (wrkCharge.getWrkSts().intValue()) { - case 52://鍥涘悜绌挎杞﹁縼绉诲埌鎻愬崌鏈哄彛 - wrkCharge.setWrkSts(53L);//杩佺Щ瀹屾垚 - shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING); - break; - case 56://灏忚溅鍘诲厖鐢垫々涓� - wrkCharge.setWrkSts(57L);//鍒拌揪鍏呯數妗� - break; - default: - } - - if (wrkChargeMapper.updateById(wrkCharge) > 0) { - if (wrkCharge.getWrkSts() == 60) { - //璁剧疆鍥涘悜绌挎杞︿负绌洪棽鐘舵�� - shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE); - } - if (wrkCharge.getWrkSts() != 57) { - //浠诲姟鍙锋竻闆� - shuttleProtocol.setTaskNo((short) 0); - //婧愬簱浣嶆竻闆� - shuttleProtocol.setSourceLocNo(null); - //鐩爣搴撲綅娓呴浂 - shuttleProtocol.setLocNo(null); - //鏍囪澶嶄綅 - shuttleProtocol.setPakMk(true); - //浠诲姟鎸囦护娓呴浂 - shuttleProtocol.setAssignCommand(null); - } - News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo()); - } else { - News.error("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傚洓鍚戠┛姊溅鍙�={}锛屽伐浣滃彿={}", shuttleProtocol.getShuttleNo(), shuttleProtocol.getTaskNo()); - } - } } } @@ -1904,63 +1818,18 @@ && !liftProtocol.getBusy() ) { - DevpThread devpThread = null; - Integer devpId = null; - for (DevpSlave devp : slaveProperties.getDevp()){ - // 鑾峰彇鍏ュ簱绔欎俊鎭� - devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - devpId = devp.getId(); - } - //灏嗕换鍔℃。鏍囪涓哄畬鎴� - WrkMast wrkMast = wrkMastMapper.selectByWorkNo372428(liftProtocol.getTaskNo().intValue()); + WrkMast wrkMast = wrkMastMapper.selectByWorkNo324104(liftProtocol.getTaskNo().intValue()); if (wrkMast != null) { - //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀埌杈句换鍔℃ゼ灞� - String locNo = wrkMast.getIoType() < 101 ? wrkMast.getLocNo() : wrkMast.getSourceLocNo(); - int lev = Utils.getLev(locNo);//浠诲姟鐩爣妤煎眰 - - //鏍囪澶嶄綅 - liftProtocol.setPakMk(true); - switch (wrkMast.getWrkSts().intValue()) { case 3://3.鎻愬崌鏈烘惉杩愪腑 ==> 4.鎻愬崌鏈烘惉杩愬畬鎴� - if (liftProtocol.getLev().intValue() != lev) { - continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍� - } - //缁欑洰鏍囩珯璁剧疆宸ヤ綔鍙� - StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo());//鐩爣绔� - staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); - staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); - boolean result = MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocol)); - if (!result) { - throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); - } wrkMast.setWrkSts(4L); - //浠诲姟鍙锋竻闆� - liftProtocol.setTaskNo((short) 0); - wrkMast.setLiftNo(null);//鎻愬崌鏈鸿В閿� break; - case 7://7.鎻愬崌鏈鸿縼绉诲皬杞︿腑 ==> 8.鎻愬崌鏈鸿縼绉诲皬杞﹀畬鎴� - if (liftProtocol.getLev().intValue() != lev) { - continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍� - } - wrkMast.setWrkSts(8L); - break; - case 24://24.鎻愬崌鏈鸿縼绉诲皬杞︿腑 ==> 25.鎻愬崌鏈鸿縼绉诲皬杞﹀畬鎴� - if (liftProtocol.getLev().intValue() != lev) { - continue;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍� - } + case 24://24.鎻愬崌鏈烘惉杩愪腑 ==> 25.鎻愬崌鏈烘惉杩愬畬鎴� wrkMast.setWrkSts(25L); break; - case 28://28.鎻愬崌鏈烘惉杩愪腑 ==> 29.鎻愬崌鏈烘惉杩愬畬鎴� -// if (liftProtocol.getPositionArrivalFeedback().intValue() != 2) { -// continue;//鎻愬崌鏈烘槸鍚﹁揪鍒拌緭閫佺嚎妤煎眰 -// } - wrkMast.setWrkSts(29L); - wrkMast.setWrkSts(34L);//34.鍑哄簱瀹屾垚锛屾殏鏃跺厛鐩存帴瀹屾垚鍑哄簱宸ヤ綔妗o紝鍚庣画闇�瑕佹牴鎹緭閫佺嚎缁欏嚭鐨勭姸鎬佹潵纭畾34.鍑哄簱瀹屾垚鐘舵�� - //浠诲姟鍙锋竻闆� - liftProtocol.setTaskNo((short) 0); - wrkMast.setLiftNo(null);//鎻愬崌鏈鸿В閿� + case 104://104.鎻愬崌鏈烘惉杩愪腑 ==> 105.鎻愬崌鏈烘惉杩愬畬鎴� + wrkMast.setWrkSts(105L); break; default: } @@ -1974,50 +1843,6 @@ } else { News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo()); } - } - - //鏌ヨ鏄惁鏈夊厖鐢典换鍔� - WrkCharge wrkCharge = wrkChargeMapper.selectByWorkNo(liftProtocol.getTaskNo().intValue()); - if (wrkCharge != null) { - //鏍囪澶嶄綅 - liftProtocol.setPakMk(true); - - switch (wrkCharge.getWrkSts().intValue()) { - case 54://鎻愬崌鏈烘惉杩愪腑 - wrkCharge.setWrkSts(55L);//鎻愬崌鏈烘惉杩愬畬鎴� - break; - default: - } - - if (wrkChargeMapper.updateById(wrkCharge) > 0) { - //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵�� - liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE); - //浠诲姟鍙锋竻闆� - liftProtocol.setTaskNo((short) 0); - //鏍囪澶嶄綅 - liftProtocol.setPakMk(true); - //浠诲姟鎸囦护娓呴浂 - liftProtocol.setAssignCommand(null); - News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo()); - } else { - News.error("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅澶辫触锛屼絾鏈壘鍒板伐浣滄。銆傛彁鍗囨満鍙�={}锛屽伐浣滃彿={}", liftProtocol.getLiftNo(), liftProtocol.getTaskNo()); - } - } - - //涓嶆槸鍏ュ嚭搴撹皟搴︿换鍔°�佸伐浣滄。浠诲姟锛岃繘琛屾彁鍗囨満鐨勫浣� - if (liftProtocol.getAssignCommand() != null) { - //璁剧疆鎻愬崌鏈轰负绌洪棽鐘舵�� - liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE); - //鍒ゆ柇鏄惁涓哄洓鍚戠┛姊溅璋冨害鎻愬崌鏈猴紝濡傛槸鍒欐棤闇�娓呯悊浠诲姟鍙� -// if (!liftProtocol.getSecurityMk()) { -// //浠诲姟鍙锋竻闆� -// liftProtocol.setTaskNo((short) 0); -// } - //鏍囪澶嶄綅 - liftProtocol.setPakMk(true); - //浠诲姟鎸囦护娓呴浂 - liftProtocol.setAssignCommand(null); - News.info("鎻愬崌鏈哄凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傛彁鍗囨満鍙�={}", liftProtocol.getLiftNo()); } } @@ -3209,6 +3034,11 @@ if (basLift.getPoint() == null) { return false;//娌℃湁璁剧疆鎻愬崌鏈虹偣浣嶅潗鏍� } + //鍒ゆ柇鎻愬崌鏈烘槸鍚︽湁鍏朵粬浠诲姟 + WrkMast liftWrkMast = wrkMastMapper.selectLiftWrkMast(basLift.getLiftNo()); + if (liftWrkMast != null) { + return false;//褰撳墠鎻愬崌鏈哄瓨鍦ㄦ湭瀹屾垚浠诲姟锛岀瓑寰呬笅涓�娆¤疆璇� + } NavigateNode liftNode = new NavigateNode(basLift.getPoint().getX(), basLift.getPoint().getY()); liftNode.setZ(basLift.getPoint().getZ()); @@ -3231,7 +3061,7 @@ assignCommand.setNodes(result.getNodes()); wrkMast.setWrkSts(102L);//灏忚溅绉诲姩鍒版彁鍗囨満涓� 101.鐢熸垚灏忚溅绉诲簱浠诲姟 ==> 102.灏忚溅鍒版彁鍗囨満涓� - wrkMast.setLiftNo(basLift.getLiftNo());//鎻愬崌鏈哄彿 + wrkMast.setLiftNo(basLift.getLiftNo());//鎻愬崌鏈哄彿(閿佸畾鎻愬崌鏈洪槻姝㈣鍏朵粬浠诲姟鎶㈠崰) wrkMast.setModiTime(now); if (wrkMastMapper.updateById(wrkMast) > 0) { //涓嬪彂浠诲姟 @@ -3451,6 +3281,7 @@ assignCommand.setNodes(result.getNodes()); wrkMast.setWrkSts(108L);//灏忚溅绉诲姩鍒扮洰鏍囧簱浣嶄腑 107.灏忚溅杩佸嚭鎻愬崌鏈哄畬鎴� ==> 108.灏忚溅绉诲姩涓� + wrkMast.setLiftNo(null);//閲婃斁鎻愬崌鏈� wrkMast.setModiTime(now); if (wrkMastMapper.updateById(wrkMast) > 0) { //涓嬪彂浠诲姟 -- Gitblit v1.9.1