From 5589dd50d57175ca231827be7bb2a9fb18875c7f Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 26 六月 2023 19:25:28 +0800 Subject: [PATCH] 充电任务,出入库bug --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 261 +++++----------------------------------------------- 1 files changed, 25 insertions(+), 236 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 3e5142c..9a25422 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1079,7 +1079,7 @@ BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo); Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮� - String disLocNo = "2000202" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆 + String disLocNo = "190020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆 LocMast locMast1 = locMastService.queryByLoc(disLocNo); if (locMast1 == null) { continue;//鎵句笉鍒板簱浣� @@ -1155,22 +1155,11 @@ assignCommand.setTaskMode(ShuttleTaskModeType.PAK_OUT.id.shortValue()); assignCommand.setSourceLocNo(liftSiteLocNo); - List<ShuttleCommand> commands = this.shuttleAssignCommand(liftSiteLocNo, wrkMast.getSourceLocNo(), liftSiteLocNo, assignCommand, shuttleThread); - if (commands == null) { - continue;//鏈壘鍒拌矾寰� - } - //姝ゆ椂杞﹀湪鎻愬崌鏈哄唴閮紝闇�瑕佸涓嬭揪涓�姝ユ寚浠よ杞︾Щ鍔ㄥ埌鎻愬崌鏈哄彛 - short startCode = liftProtocol.getBarcode();//鎻愬崌鏈哄唴閮ㄤ簩缁寸爜 - Short distCode = commands.get(0).getStartCodeNum();//鐩爣浜岀淮鐮� - //鑾峰彇绉诲姩鍛戒护 - ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1400, commands.get(0).getRunDirection(), startCode, 1400, 500); - commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶� - //鑾峰彇褰撳墠灏忚溅鎵�鍦ㄦゼ灞傜殑绔欑偣淇℃伅 BasDevp basDevp = basDevpService.queryByLocNo(liftSiteLocNo); Short endStartCode = Short.parseShort(basDevp.getQrCodeValue());//绔欑偣浜岀淮鐮� - String disLocNo = "2000202" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆 + String disLocNo = "190020" + Utils.getLev(liftSiteLocNo);//閬胯浣嶇疆 LocMast locMast1 = locMastService.queryByLoc(disLocNo); if (locMast1 == null) { continue;//鎵句笉鍒板簱浣� @@ -1178,8 +1167,19 @@ short disCode = Short.parseShort(locMast1.getQrCodeValue()); //浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀� ShuttleCommand moveCommand2 = shuttleThread.getMoveCommand(endStartCode, disCode, 1400, ShuttleRunDirection.BOTTOM.id, endStartCode, 1400, 500); - commands.add(moveCommand2); + List<ShuttleCommand> commands = this.shuttleAssignCommand(liftSiteLocNo, wrkMast.getSourceLocNo(), liftSiteLocNo, assignCommand, shuttleThread); + if (commands == null) { + continue;//鏈壘鍒拌矾寰� + } + commands.add(moveCommand2);//浠诲姟鎵ц瀹屽悗锛屽皬杞﹁繘鍏ョЩ寮�鎻愬崌鏈哄彛绔欑偣浣嶇疆锛屼互鍏嶅潬钀� + + //姝ゆ椂杞﹀湪鎻愬崌鏈哄唴閮紝闇�瑕佸涓嬭揪涓�姝ユ寚浠よ杞︾Щ鍔ㄥ埌鎻愬崌鏈哄彛 + short startCode = liftProtocol.getBarcode();//鎻愬崌鏈哄唴閮ㄤ簩缁寸爜 + Short distCode = commands.get(0).getStartCodeNum();//鐩爣浜岀淮鐮� + //鑾峰彇绉诲姩鍛戒护 + ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1400, commands.get(0).getRunDirection(), startCode, 1400, 500); + commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶� //鍒嗛厤鐩爣搴撲綅 shuttleProtocol.setLocNo(wrkMast.getSourceLocNo()); @@ -1336,6 +1336,9 @@ && shuttleProtocol.getTaskNo() != 0 && shuttleProtocol.getBusyStatus() == 0 ) { + //鏍囪澶嶄綅 + shuttleProtocol.setPakMk(true); + //灏嗕换鍔℃。鏍囪涓哄畬鎴� WrkMast wrkMast = wrkMastMapper.selectByWorkNo(shuttleProtocol.getTaskNo().intValue()); if (wrkMast != null) { @@ -1364,8 +1367,6 @@ shuttleProtocol.setSourceLocNo(null); //鐩爣搴撲綅娓呴浂 shuttleProtocol.setLocNo(null); - //鏍囪澶嶄綅 - shuttleProtocol.setPakMk(true); //浠诲姟鎸囦护娓呴浂 shuttleProtocol.setAssignCommand(null); News.info("鍥涘悜绌挎杞﹀凡纭涓斾换鍔″畬鎴愮姸鎬�,澶嶄綅銆傚洓鍚戠┛姊溅鍙�={}", shuttleProtocol.getShuttleNo()); @@ -2470,7 +2471,7 @@ continue; } - WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttleProtocol.getShuttleNo().intValue(), WrkChargeType.charge); + WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttleProtocol.getShuttleNo().intValue()); if (wrkCharge != null) {//宸叉湁鍏呯數浠诲姟 continue; } @@ -2512,7 +2513,7 @@ */ public synchronized void executeShuttleCharge() { for (ShuttleSlave shuttle : slaveProperties.getShuttle()) { - WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.charge); + WrkCharge wrkCharge = wrkChargeService.selectWorking(shuttle.getId()); if (wrkCharge == null) { continue; } @@ -2735,8 +2736,12 @@ assignCommand.setCommands(commands); shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.CHARGING_WAITING); - //涓嬪彂浠诲姟 - MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand)); + + wrkCharge.setWrkSts(60L);//60.鍏呯數浠诲姟瀹屾垚 + if (wrkChargeMapper.updateById(wrkCharge) > 0) { + //涓嬪彂浠诲姟 + MessageQueue.offer(SlaveType.Shuttle, assignCommand.getShuttleNo().intValue(), new Task(3, assignCommand)); + } } if (shuttleProtocol.getProtocolStatus() == ShuttleProtocolStatusType.CHARGING_WAITING.id) { @@ -2745,222 +2750,6 @@ } } - } - - /** - * 杞鍏呯數妗╂槸鍚︽湁绌洪棽灏忚溅 - */ - @Deprecated - public synchronized void queryChargeLocOfComplete() { - // 涓庡厖鐢典换鍔′笉鍚屾杩涜 - if (null != wrkChargeService.selectWorking(null, WrkChargeType.charge)) { return; } - if (null != wrkChargeService.selectWorking(null, WrkChargeType.reset)) { return; } - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); - // 妫�绱㈠厖鐢垫々 - for (SteChargeType value : SteChargeType.values()) { - Integer steNo = basSteService.hasCarOfLocNo(value.locNo); - if (steNo != null) { - SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); - SteProtocol steProtocol = steThread.getSteProtocol(); - BasSte basSte = basSteService.selectById(steNo); - if (Cools.isEmpty(steProtocol, basSte)) { - continue; - } - if (steProtocol.getCharge() < 99) { - continue; - } - if (steProtocol.getMode() == 0) { - continue; - } - if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) { - continue; - } -// // 1鍙峰厖鐢垫々 -// if (value.equals(SteChargeType.FIRST) && devpThread.charge0) { -// continue; -// } -// // 2鍙峰厖鐢垫々 -// if (value.equals(SteChargeType.SECOND) && devpThread.charge1) { -// continue; -// } -// // 3鍙峰厖鐢垫々 -// if (value.equals(SteChargeType.THIRD) && devpThread.charge2) { -// continue; -// } -// // 灏忚溅鏄惁澶勪簬鍏呯數鐘舵�� -// if (steProtocol.getChargeStatus() == 1) { -// continue; -// } - // case 1 : 鑷姩鍏呯數寮� 棣堢數 脳 - // case 2 : 鑷姩鍏呯數寮� 婊$數 鉁� - // case 3 : 鑷姩鍏呯數鍏� 棣堢數 鉁� - // case 4 : 鑷姩鍏呯數鍏� 婊$數 鉁� - if (basSte.getAutoCharge().equals("Y") - && steProtocol.getCharge() < Float.parseFloat(basSte.getChargeLine())) { - continue; - } - - WrkCharge wrkCharge = wrkChargeService.selectWorking(steNo, WrkChargeType.reset); - - if (wrkCharge == null) { - // 寮�濮嬬┛姊溅澶嶄綅浠诲姟 - wrkCharge = new WrkCharge(); - wrkCharge.setSteNo(steNo); - wrkCharge.setWrkNo(commonService.getChargeWorkNo(6)); - wrkCharge.setWrkSts(41L); // 41.灏忚溅鍑嗗澶嶄綅 - wrkCharge.setCrnNo(2); // 鍥哄畾2鍙峰爢鍨涙満 - wrkCharge.setIoPri((double) 10); - wrkCharge.setSourceLocNo(value.locNo); - wrkCharge.setLocNo(basSte.getIdleLoc()); - wrkCharge.setMemo("reset"); - wrkCharge.setAppeTime(new Date()); - if (!wrkChargeService.insert(wrkCharge)) { - News.error("淇濆瓨{}鍙风┛姊溅澶嶄綅浠诲姟澶辫触!!!", steNo); - } else { - break; - } - } - } - } - } - - /** - * 灏忚溅浠庡厖鐢垫々 鑷� 寰呮満搴撲綅 - */ - @Deprecated - public synchronized void steFromChargeToIdleLoc() { - WrkCharge wrkCharge = wrkChargeService.selectWorking(null, WrkChargeType.reset); - if (wrkCharge == null) { return; } - SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkCharge.getSteNo()); - SteProtocol steProtocol = steThread.getSteProtocol(); - BasSte basSte = basSteService.selectById(wrkCharge.getSteNo()); - if (Cools.isEmpty(steProtocol, basSte)) { - return; - } - // 鎼繍鑷冲浐瀹氶�氶亾 - if (wrkCharge.getWrkSts() == 41L) { - // 鎼皬杞﹁嚦灏忚溅璧板悜閫氶亾 - List<String> channel = slaveProperties.getChannel(); - for (String channelLocNo : channel) { - Integer otherSte = existOtherSte(channelLocNo, wrkCharge.getSteNo()); - if (null != otherSte) { - News.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), channelLocNo, otherSte); - } else { - // 鍥哄畾鍫嗗灈鏈� - int crnNo = 1; - if (null != wrkMastMapper.selectWorkingByCrn(crnNo)) { - return; - } - - LocMast channelLoc = locMastService.selectById(channelLocNo); - - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo); - CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol == null) { continue; } - // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� - if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { - // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(steProtocol.getRow()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(Utils.getGroupRow(channelLoc.getLocNo(), false).shortValue()); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY(channelLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ(channelLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞� - if (!MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, crnCommand))) { - News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand)); - } else { - // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞� - steThread.modifyPos(Utils.getGroupRow(channelLoc.getLocNo(), false), channelLoc.getBay1(), channelLoc.getLev1()); - // 淇敼宸ヤ綔妗g姸鎬� 41.灏忚溅鍑嗗澶嶄綅 => 42.鍚婅溅鎼繍 - Date now = new Date(); - wrkCharge.setWrkSts(42L); - wrkCharge.setCrnStrTime(now); - wrkCharge.setModiTime(now); - if (!wrkChargeService.updateById(wrkCharge)) { - News.error("淇敼澶嶄綅浠诲姟鐘舵�� 41.灏忚溅鍑嗗澶嶄綅 => 42.鍚婅溅鎼繍 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); - } - } - break; - } - - } - } - } else if (wrkCharge.getWrkSts() == 43L) { - // 灏忚溅琛岄┒閫氶亾 - if (steProtocol.statusType.equals(SteStatusType.IDLE) && steProtocol.getPakMk().equals("N")) { - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - SteCommand steCommand = new SteCommand(); - steCommand.setSteNo(wrkCharge.getSteNo()); // 绌挎杞︾紪鍙� - steCommand.setTaskNo(wrkCharge.getWrkNo()); // 宸ヤ綔鍙� - steCommand.setTaskMode(SteTaskModeType.BACK_ORIGIN); // 鍘诲乏绔� - - steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue()); - steCommand.setBay(steProtocol.getBay()); - steCommand.setLev(steProtocol.getLev()); - if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) { - News.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand)); - } else { - // 淇敼宸ヤ綔妗g姸鎬� 43.灏忚溅鍒拌揪 ===> 44.灏忚溅璧拌 - wrkCharge.setWrkSts(44L); - Date now = new Date(); - wrkCharge.setCrnEndTime(now); - wrkCharge.setModiTime(now); - if (!wrkChargeService.updateById(wrkCharge)) { - News.error("淇敼澶嶄綅浠诲姟鐘舵�� 43.灏忚溅鍒拌揪 ===> 44.灏忚溅璧拌 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); - } - } - } - } else if (wrkCharge.getWrkSts() == 45L) { - if (null != wrkMastMapper.selectWorkingByCrn(wrkCharge.getCrnNo())) { - return; - } - - LocMast idleLoc = locMastService.selectById(basSte.getIdleLoc()); - - Integer otherSte = existOtherSte(idleLoc.getLocNo(), wrkCharge.getSteNo()); - if (null != otherSte) { - News.warn("{}鍙峰皬杞︾Щ鍏}搴撲綅缁勫け璐ワ紝鍘熷洜锛氬瓨鍦▄}鍙风┛姊溅锛�", wrkCharge.getSteNo(), idleLoc.getLocNo(), otherSte); - } else { - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, wrkCharge.getCrnNo()); - CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol == null) { return; } - // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� - if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { - // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(wrkCharge.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo(wrkCharge.getWrkNo().shortValue()); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.STE_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(Utils.getGroupRow(steProtocol.getRow().intValue(), true).shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(Utils.getGroupRow(idleLoc.getLocNo(), true).shortValue()); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY(idleLoc.getBay1().shortValue()); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ(idleLoc.getLev1().shortValue()); // 鐩爣搴撲綅灞� - if (!MessageQueue.offer(SlaveType.Crn, wrkCharge.getCrnNo(), new Task(2, crnCommand))) { - News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkCharge.getCrnNo(), JSON.toJSON(crnCommand)); - } else { - // 淇敼绌挎杞﹁繍琛屼腑鎺掑垪灞� - steThread.modifyPos(Utils.getGroupRow(idleLoc.getLocNo(), true), idleLoc.getBay1(), idleLoc.getLev1()); - // 淇敼宸ヤ綔妗g姸鎬� 45.灏忚溅寰呮惉 => 46.鏀捐嚦寰呮満浣� - Date now = new Date(); - wrkCharge.setWrkSts(46L); - wrkCharge.setCrnStrTime(now); - wrkCharge.setModiTime(now); - if (!wrkChargeService.updateById(wrkCharge)) { - News.error("淇敼宸ヤ綔妗g姸鎬� 45.灏忚溅寰呮惉 => 46.鏀捐嚦寰呮満浣� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkCharge.getWrkNo()); - } - } - } - - } - } } public List<String> crn2DemoLocs = new ArrayList<String>(); public String crn2LastLoc = ""; -- Gitblit v1.9.1