From c2b0be1a368a88e4adb6dda12d0aa5d3bb0df838 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 27 六月 2023 16:50:50 +0800 Subject: [PATCH] 搜索最近穿梭车,提升机完成方法 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 69 ++++++++++++++++++++++++++-------- 1 files changed, 52 insertions(+), 17 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 9a25422..cfede0a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1079,14 +1079,14 @@ BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo); Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮� - String disLocNo = "190020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆 + String disLocNo = "200020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆 LocMast locMast1 = locMastService.queryByLoc(disLocNo); if (locMast1 == null) { continue;//鎵句笉鍒板簱浣� } short disCode = Short.parseShort(locMast1.getQrCodeValue()); //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀� - ShuttleCommand moveCommand = shuttleThread.getMoveCommand(endStartCode, disCode, 1400, ShuttleRunDirection.BOTTOM.id, endStartCode, 1400, 500); + ShuttleCommand moveCommand = shuttleThread.getMoveCommand(endStartCode, disCode, 2800, ShuttleRunDirection.BOTTOM.id, endStartCode, 2800, 1000); commands.add(moveCommand); //鍒嗛厤鐩爣搴撲綅 @@ -1159,14 +1159,14 @@ BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo); Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮� - String disLocNo = "190020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆 + String disLocNo = "200020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆 LocMast locMast1 = locMastService.queryByLoc(disLocNo); if (locMast1 == null) { continue;//鎵句笉鍒板簱浣� } short disCode = Short.parseShort(locMast1.getQrCodeValue()); //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀� - ShuttleCommand moveCommand2 = shuttleThread.getMoveCommand(endStartCode, disCode, 1400, ShuttleRunDirection.BOTTOM.id, endStartCode, 1400, 500); + ShuttleCommand moveCommand2 = shuttleThread.getMoveCommand(endStartCode, disCode, 2800, ShuttleRunDirection.BOTTOM.id, endStartCode, 2800, 1000); List<ShuttleCommand> commands = this.shuttleAssignCommand(liftSiteLocNo, wrkMast.getSourceLocNo(), liftSiteLocNo, assignCommand, shuttleThread); if (commands == null) { @@ -1216,6 +1216,16 @@ ArrayList<ShuttleThread> sameLev = new ArrayList<>();//鐩稿悓妤煎眰鐨勭┛姊溅 ArrayList<ShuttleThread> diffLev = new ArrayList<>();//涓嶅悓妤煎眰鐨勭┛姊溅 + //鍒ゆ柇鍏朵粬绌洪棽绌挎杞︽槸鍚︾浠诲姟鏈�杩� + String distLocNo = null;//鐩爣鍦扮偣锛屽叆搴�=銆嬫彁鍗囨満鍙o紝鍑哄簱=銆嬭揣鐗╁簱浣嶅彿 + if (wrkMast.getIoType() < 101) { + //鍏ュ簱 + distLocNo = Utils.levToOutInStaLocNo(lev); + }else { + //鍑哄簱 + distLocNo = locNo; + } + for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { //鑾峰彇鍥涘悜绌挎杞︾嚎绋� ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttle.getId()); @@ -1231,6 +1241,14 @@ if (shuttleLocNo == null) { continue; } + + if (shuttleLocNo.equals(distLocNo)) { + //杞﹁締褰撳墠浣嶇疆宸茬粡鏄洰鏍囧簱浣嶏紝鏃犻渶璁$畻 + map.put("sameLay", true);//鍚屽眰 + map.put("result", shuttleThread); + return map; + } + int shuttleLocNoLey = Utils.getLev(shuttleLocNo);//搴撲綅鍙峰搴斿眰楂� if (lev == shuttleLocNoLey) { //宸ヤ綔妗fゼ灞傜浉鍚岀殑绌挎杞� @@ -1248,16 +1266,6 @@ for (ShuttleThread shuttleThread : sameLev) { if (recentShuttle == null) {//鏈�杩戠┛姊溅涓虹┖锛屽垯榛樿璧嬩簣涓烘渶杩戠┛姊溅 recentShuttle = shuttleThread; - } - - //鍒ゆ柇鍏朵粬绌洪棽绌挎杞︽槸鍚︾浠诲姟鏈�杩� - String distLocNo = null;//鐩爣鍦扮偣锛屽叆搴�=銆嬫彁鍗囨満鍙o紝鍑哄簱=銆嬭揣鐗╁簱浣嶅彿 - if (wrkMast.getIoType() < 101) { - //鍏ュ簱 - distLocNo = Utils.levToOutInStaLocNo(lev); - }else { - //鍑哄簱 - distLocNo = locNo; } //褰撳墠绌挎杞﹀簱浣嶅彿 @@ -1469,6 +1477,12 @@ } if (liftProtocol.getPlatShuttleCheck()) { //鎻愬崌鏈烘鏃舵湁鍥涘悜杞︼紝鍙兘鏈夋湭瀹屾垚鐨勪换鍔★紝绂佹鍒嗛厤鏂颁换鍔� + continue; + } + + //鑾峰彇鐩爣绔� + StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getStaNo()); + if (staProtocol.isLoading() || !staProtocol.isInEnable()) {//鐩爣绔欐湁鐗╋紝涓嶅彲鍏ワ紝绂佹鍒嗛厤浠诲姟 continue; } @@ -1695,9 +1709,6 @@ && !liftProtocol.getRunning() ) { - //鏍囪澶嶄綅 - liftProtocol.setPakMk(true); - DevpThread devpThread = null; Integer devpId = null; for (DevpSlave devp : slaveProperties.getDevp()){ @@ -1709,8 +1720,18 @@ //灏嗕换鍔℃。鏍囪涓哄畬鎴� WrkMast wrkMast = wrkMastMapper.selectByWorkNo372428(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()); @@ -1719,15 +1740,26 @@ if (!result) { throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); } + //浠诲姟鍙锋竻闆� + liftProtocol.setTaskNo((short) 0); wrkMast.setWrkSts(4L); 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;//鎻愬崌鏈烘病鏈夊埌杈剧洰鏍� + } wrkMast.setWrkSts(25L); break; case 28://28.鎻愬崌鏈烘惉杩愪腑 ==> 29.鎻愬崌鏈烘惉杩愬畬鎴� + if (liftProtocol.getPositionArrivalFeedback().intValue() != 2) { + continue;//鎻愬崌鏈烘槸鍚﹁揪鍒拌緭閫佺嚎妤煎眰 + } wrkMast.setWrkSts(29L); wrkMast.setWrkSts(34L);//34.鍑哄簱瀹屾垚锛屾殏鏃跺厛鐩存帴瀹屾垚鍑哄簱宸ヤ綔妗o紝鍚庣画闇�瑕佹牴鎹緭閫佺嚎缁欏嚭鐨勭姸鎬佹潵纭畾34.鍑哄簱瀹屾垚鐘舵�� //浠诲姟鍙锋竻闆� @@ -1750,6 +1782,9 @@ //鏌ヨ鏄惁鏈夊厖鐢典换鍔� WrkCharge wrkCharge = wrkChargeMapper.selectByWorkNo(liftProtocol.getTaskNo().intValue()); if (wrkCharge != null) { + //鏍囪澶嶄綅 + liftProtocol.setPakMk(true); + switch (wrkCharge.getWrkSts().intValue()) { case 54://鎻愬崌鏈烘惉杩愪腑 wrkCharge.setWrkSts(55L);//鎻愬崌鏈烘惉杩愬畬鎴� -- Gitblit v1.9.1