From 9fc9a5d498cef94d0dae58c22609e79c4fa0f5f0 Mon Sep 17 00:00:00 2001 From: yxFwq <1> Date: 星期二, 16 七月 2024 13:25:36 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 225 insertions(+), 2 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 db7df8d..f24c52a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -1901,6 +1901,141 @@ } } + StaProtocol staProtocolOther = devpThread.getStation().get(crnStn.getStaNoOther()); + if (staProtocolOther == null) { + continue; + } else { + staProtocolOther = staProtocolOther.clone(); + } + + // 鏌ヨ绔欑偣璇︾粏淇℃伅 + BasDevp staDetlOther = basDevpService.selectById(crnStn.getStaNoOther()); + if (staDetlOther == null) { + log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNoOther()); + continue; + } + if (staProtocolOther.getWorkNo()!=0){ + WrkMast wrkMastOther = wrkMastMapper.selectPakInStep3(staProtocolOther.getWorkNo()); + if (Cools.isEmpty(wrkMastOther)){ + log.error("Other鏌ヨ宸ヤ綔妗f鏃犳暟鎹�--宸ヤ綔鍙穥},绔欑偣鍙凤細{}", staProtocolOther.getWorkNo(),staProtocolOther.getSiteId()); + continue; + } + // 鑾峰彇搴撲綅淇℃伅 + LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo()); + if (locMastOther == null) { + log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", locMastOther.getLocNo()); + continue; + } + if (!locMastOther.getLocSts().equals("S") && !locMastOther.getLocSts().equals("Q")) { + log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMastOther.getLocNo(), locMastOther.getLocSts()); + continue; + } + if (locMastOther.getBay1()!=81){ + if (staProtocolOther.isAutoing() && staProtocolOther.isLoading() + && staProtocolOther.isInEnable() && staDetlOther.getCanining() != null && staDetlOther.getCanining().equals("Y")) { + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommandParam crnCommandParam = new CrnCommandParam(); + crnCommandParam.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + + crnCommandParam.setTaskNo2(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommandParam.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� + crnCommandParam.setSourcePosX2(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommandParam.setSourcePosY2(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommandParam.setSourcePosZ2(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommandParam.setDestinationPosX2((short)0); // 鐩爣搴撲綅鎺� + crnCommandParam.setDestinationPosY2((short)0); // 鐩爣搴撲綅鍒� + crnCommandParam.setDestinationPosZ2((short)0); // 鐩爣搴撲綅灞� + + crnCommandParam.setTaskNo(wrkMastOther.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommandParam.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� + crnCommandParam.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommandParam.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommandParam.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommandParam.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺� + crnCommandParam.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� + crnCommandParam.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommandParam)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� + Date now = new Date(); + wrkMast.setWrkSts(3L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + WrkMastSplitTwin wrkMastSplitTwin = new WrkMastSplitTwin(wrkMast,2,now); + wrkMastSplitTwin.setWrkSts(1); + wrkMastSplitTwin.setWrkStart(wrkMast.getStaNo().toString()); + wrkMastSplitTwin.setWrkEnd(wrkMast.getLocNo()); + wrkMastSplitTwin.setStartRow(crnStn.getRow()); + wrkMastSplitTwin.setStartBay(crnStn.getBay()); + wrkMastSplitTwin.setStartLev(crnStn.getLev()); + wrkMastSplitTwin.setEndRow(locMast.getRow1()); + wrkMastSplitTwin.setEndBay(locMast.getBay1()); + wrkMastSplitTwin.setEndLev(locMast.getLev1()); + wrkMastSplitTwin.setWrkType(1); + wrkMastSplitTwin.setIoType(1); + + wrkMastOther.setWrkSts(3L); + wrkMastOther.setCrnStrTime(now); + wrkMastOther.setModiTime(now); + WrkMastSplitTwin wrkMastSplitTwinOther = new WrkMastSplitTwin(wrkMastOther,1,now); + wrkMastSplitTwinOther.setWrkSts(1); + wrkMastSplitTwinOther.setWrkStart(wrkMastOther.getStaNo().toString()); + wrkMastSplitTwinOther.setWrkEnd(wrkMastOther.getLocNo()); + wrkMastSplitTwinOther.setStartRow(crnStn.getRow()); + wrkMastSplitTwinOther.setStartBay(crnStn.getBay()); + wrkMastSplitTwinOther.setStartLev(crnStn.getLev()); + wrkMastSplitTwinOther.setEndRow(locMastOther.getRow1()); + wrkMastSplitTwinOther.setEndBay(locMastOther.getBay1()); + wrkMastSplitTwinOther.setEndLev(locMastOther.getLev1()); + wrkMastSplitTwinOther.setWrkType(1); + wrkMastSplitTwinOther.setIoType(1); + + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + + if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwin)==0){ + log.error("鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo()); + } + + if (wrkMastMapper.updateById(wrkMastOther) == 0) { + log.error("Other淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + + if (wrkMastSplitTwinMapper.insert(wrkMastSplitTwinOther)==0){ + log.error("Other鍒涘缓 鍫嗗灈鏈烘墽琛屼换鍔� 澶辫触锛侊紒锛屽伐浣滃彿={}锛屽爢鍨涙満鍙�={}", wrkMast.getWrkNo(),wrkMast.getCrnNo()); + } + return; + } + } + } + return; + } + StaProtocol staProtocolOther1 = devpThread.getStation().get(crnStn.getStaNoOther1()); + if (staProtocolOther1 == null) { + continue; + } else { + staProtocolOther1 = staProtocolOther1.clone(); + } + + if (staProtocolOther1.isAutoing() && staProtocolOther1.getWorkNo()!=0){ + return; + } + + + StaProtocol staProtocolOther2 = devpThread.getStation().get(crnStn.getStaNoOther2()); + if (staProtocolOther2 == null) { + continue; + } else { + staProtocolOther2 = staProtocolOther2.clone(); + } + if (staProtocolOther2.isAutoing() && staProtocolOther2.getWorkNo()!=0){ + return; + } + crnStation = 2; // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� @@ -1913,7 +2048,17 @@ crnCommand.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺� crnCommand.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� - if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) { + + staProtocol.setWorkNo(wrkMast.getWrkNo()); + staProtocol.setStaNo(wrkMast.getStaNo()); + + devpThread.setPakMk(staProtocol.getSiteId(), false); + + if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(99, crnCommand.getCrnNo()-2))) { + log.error("杈撻�佺嚎閿佸畾鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), crnCommand.getCrnNo()-2); + continue; + } + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(5, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSONString(crnCommand)); } else { // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� @@ -4474,6 +4619,84 @@ crnCommand.setDestinationPosZ(wrkMastSplitTwin.getEndLev().shortValue()); // 鐩爣搴撲綅灞� if (!MessageQueue.offer(SlaveType.Crn, wrkMastSplitTwin.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMastSplitTwin.getCrnNo(), JSON.toJSONString(crnCommand)); + return false; + } else { + return true; + } + }catch (Exception e){ + return false; + } + } + + /* + * 鍫嗗灈鏈哄彇璐ц嚦宸ヤ綅浠诲姟 + * */ + public synchronized boolean crnExecuteTakeFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){ + try{ + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� + CrnCommandParam crnCommandParam = new CrnCommandParam(); + crnCommandParam.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙� + crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommandParam.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� + crnCommandParam.setSourcePosX(wrkMastSplitTwinOne.getStartRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommandParam.setSourcePosY(wrkMastSplitTwinOne.getStartBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommandParam.setSourcePosZ(wrkMastSplitTwinOne.getStartLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommandParam.setDestinationPosX((short)0); // 鐩爣搴撲綅鎺� + crnCommandParam.setDestinationPosY((short)0); // 鐩爣搴撲綅鍒� + crnCommandParam.setDestinationPosZ((short)0); // 鐩爣搴撲綅灞� + + crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommandParam.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_TAKE); // 浠诲姟妯″紡: 鍗曞彇璐� + crnCommandParam.setSourcePosX2(wrkMastSplitTwinTwo.getStartRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommandParam.setSourcePosY2(wrkMastSplitTwinTwo.getStartBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommandParam.setSourcePosZ2(wrkMastSplitTwinTwo.getStartLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommandParam.setDestinationPosX2((short)0); // 鐩爣搴撲綅鎺� + crnCommandParam.setDestinationPosY2((short)0); // 鐩爣搴撲綅鍒� + crnCommandParam.setDestinationPosZ2((short)0); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam)); + return false; + } else { + return true; + } + }catch (Exception e){ + return false; + } + } + + /* + * 鍫嗗灈鏈烘斁璐ц揣鑷冲嚭搴撶珯鐐逛换鍔� + * */ + public synchronized boolean crnExecutePutFullPair(Integer crnNo,WrkMastSplitTwin wrkMastSplitTwinOne,WrkMastSplitTwin wrkMastSplitTwinTwo, Integer crnStation){ + try{ + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� + CrnCommandParam crnCommandParam = new CrnCommandParam(); + crnCommandParam.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙� + crnCommandParam.setTaskNo(wrkMastSplitTwinOne.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommandParam.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommandParam.setTaskMode(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡: 鍗曟斁璐� + crnCommandParam.setSourcePosX((short)0); // 婧愬簱浣嶆帓 + crnCommandParam.setSourcePosY((short)0); // 婧愬簱浣嶅垪 + crnCommandParam.setSourcePosZ((short)0); // 婧愬簱浣嶅眰 + crnCommandParam.setDestinationPosX(wrkMastSplitTwinOne.getEndRow().shortValue()); // 鐩爣搴撲綅鎺� + crnCommandParam.setDestinationPosY(wrkMastSplitTwinOne.getEndBay().shortValue()); // 鐩爣搴撲綅鍒� + crnCommandParam.setDestinationPosZ(wrkMastSplitTwinOne.getEndLev().shortValue()); // 鐩爣搴撲綅灞� + + crnCommandParam.setTaskNo2(wrkMastSplitTwinTwo.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommandParam.setAckFinish2((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommandParam.setTaskMode2(CrnTaskModeType.SEPARATE_PUT); // 浠诲姟妯″紡: 鍗曟斁璐� + crnCommandParam.setSourcePosX2((short)0); // 婧愬簱浣嶆帓 + crnCommandParam.setSourcePosY2((short)0); // 婧愬簱浣嶅垪 + crnCommandParam.setSourcePosZ2((short)0); // 婧愬簱浣嶅眰 + crnCommandParam.setDestinationPosX2(wrkMastSplitTwinTwo.getEndRow().shortValue()); // 鐩爣搴撲綅鎺� + crnCommandParam.setDestinationPosY2(wrkMastSplitTwinTwo.getEndBay().shortValue()); // 鐩爣搴撲綅鍒� + crnCommandParam.setDestinationPosZ2(wrkMastSplitTwinTwo.getEndLev().shortValue()); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, crnCommandParam.getCrnNo(), new Task(9, crnCommandParam))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnCommandParam.getCrnNo(), JSON.toJSONString(crnCommandParam)); return false; } else { return true; @@ -7678,7 +7901,7 @@ if (steProtocol.getCharge()>95.0F || steProtocol.getFullCharge()){ } else if (steProtocol.getCharge()>50.0F){ - if (wrkMastExecuteService.selectNoStart(steSlave.getId())==0){ + if (wrkMastExecuteService.selectNoStartCharge(steSlave.getId())==0){ if (wrkMastExecuteService.selectMoveStart(steSlave.getId())==0){ continue; } -- Gitblit v1.9.1