From 876db5fee890311a1d7eaea983af20826b817e01 Mon Sep 17 00:00:00 2001 From: TQS <56479841@qq.com> Date: 星期二, 13 八月 2024 19:33:23 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 115 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 64 insertions(+), 51 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 2e92c6e..1bec270 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -844,28 +844,38 @@ // 鏌ヨ宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakOutStep16(staProtocol.getSiteId()); if (wrkMast == null) { - // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗� - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); - CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) { - // 绉诲姩涓� - continue; - } - // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� - if (crnProtocol.modeType == CrnModeType.AUTO - && crnProtocol.statusType == CrnStatusType.WAITING - && crnProtocol.forkPosType == CrnForkPosType.HOME - && crnProtocol.getBay().equals(crnStn.getBay().shortValue()) && crnProtocol.getLevel().equals(crnStn.getLev().shortValue())) { - News.info("鍫嗗灈鏈烘帴椹充换鍔″畬鎴愶紝宸ヤ綔鍙凤細"+crnProtocol.getTaskNo()+"锛涙墽琛屽爢鍨涙満鍙凤細"+crnSlave.getId()+"锛涙帴椹虫斁璐т綅锛�"+crnStn.getStaNo()+"锛涙帴椹宠璧扮洰鏍囩珯锛�"+Utils.getStaNoConvertCentreOther2(crnStn.getStaNo())); - // 涓嬪彂绔欑偣淇℃伅 - staProtocol.setWorkNo(crnProtocol.getTaskNo()); - staProtocol.setStaNo(Utils.getStaNoConvertCentreOther2(crnStn.getStaNo()).shortValue()); - if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { - continue; + try{ + if (crnSlave.getId()!=2){ + // 鍒ゆ柇鍚婅溅鏄惁瀹為檯宸插畬鎴愶紝涓旂數鑴戠姸鎬佸湪move涓紝浠ュ鐢佃剳杩涜鏇存柊宸ヤ綔妗� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol.statusType == CrnStatusType.FETCHING || crnProtocol.statusType == CrnStatusType.PUTTING) { + // 绉诲姩涓� + continue; + } + WrkMast onlyWrkNo = wrkMastMapper.selectByOnlyWrkNo(crnProtocol.getTaskNo().intValue()); + if (Cools.isEmpty(onlyWrkNo)){ + continue; + } + // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� + if (crnProtocol.modeType == CrnModeType.AUTO + && crnProtocol.statusType == CrnStatusType.WAITING + && crnProtocol.forkPosType == CrnForkPosType.HOME + && crnProtocol.getBay().equals(crnStn.getBay().shortValue()) && crnProtocol.getLevel().equals(crnStn.getLev().shortValue())) { + News.info("鍫嗗灈鏈烘帴椹充换鍔″畬鎴愶紝宸ヤ綔鍙凤細"+crnProtocol.getTaskNo()+"锛涙墽琛屽爢鍨涙満鍙凤細"+crnSlave.getId()+"锛涙帴椹虫斁璐т綅锛�"+crnStn.getStaNo()+"锛涙帴椹宠璧扮洰鏍囩珯锛�"+Utils.getStaNoConvertCentreOther2(crnStn.getStaNo())); + // 涓嬪彂绔欑偣淇℃伅 + staProtocol.setWorkNo(crnProtocol.getTaskNo()); + staProtocol.setStaNo(Utils.getStaNoConvertCentreOther2(crnStn.getStaNo()).shortValue()); + if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) { + continue; + } + // 澶嶄綅鍫嗗灈鏈� + crnThread.setResetFlag(true); + continue; + } } - // 澶嶄綅鍫嗗灈鏈� - crnThread.setResetFlag(true); - continue; + } catch (Exception e){ + News.info("鍫嗗灈鏈烘帴椹充换鍔″畬鎴愶紝涓�鍦猴細"+e.getMessage()); } continue; } @@ -992,38 +1002,41 @@ // 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。 WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo()); - if(null == wrkMast || (wrkMast.getCrnNo()==2 && wrkMast.getWrkSts()==2 && crnProtocol.getCrnNo()!=2 && (wrkMast.getIoType()==1 || wrkMast.getIoType()==10)) ){ + if(null == wrkMast){ try{ - // News.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo()); - // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� - if (wrkMastMapper.selectWorking(slave.getId()) != null) { - continue; - } - if (Cools.isEmpty(staProtocol.getWorkNo()) || !staProtocol.isLoading()){ - continue; - } - // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� - if (crnProtocol.modeType == CrnModeType.AUTO - && crnProtocol.statusType == CrnStatusType.IDLE - && crnProtocol.forkPosType == CrnForkPosType.HOME) { - News.info("鍫嗗灈鏈烘帴椹充换鍔℃墽琛岋紝宸ヤ綔鍙凤細"+staProtocol.getWorkNo()+"锛涙墽琛屽爢鍨涙満鍙凤細"+slave.getId()+"锛涙帴椹冲彇璐т綅锛�"+crnStn.getStaNo()+"锛涙帴椹虫斁璐т綅锛�"+staProtocol.getSiteId()); - // 鍫嗗灈鏈烘帴椹充换鍔″懡浠や笅鍙戝尯 -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setCommand((short) 0); - crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE); // 浠诲姟妯″紡: 绔欎綅杞Щ - crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(Utils.getRow(staProtocol.getSiteId())); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY(Utils.getBay(staProtocol.getSiteId())); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ(Utils.getLev(staProtocol.getSiteId())); // 鐩爣搴撲綅灞� - if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { - News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", slave.getId(), JSON.toJSONString(crnCommand)); + WrkMast onlyWrkNo = wrkMastMapper.selectByOnlyWrkNo(staProtocol.getWorkNo().intValue()); + if (!Cools.isEmpty(onlyWrkNo) && onlyWrkNo.getCrnNo()==2 && onlyWrkNo.getWrkSts()==2 && crnProtocol.getCrnNo()!=2 && (onlyWrkNo.getIoType()==1 || onlyWrkNo.getIoType()==10)){ + // News.error("{}绔欑偣鏌ヨ鏃犲緟鍏ュ簱鏁版嵁 宸ヤ綔鍙�={}", crnStn.getStaNo(), staProtocol.getWorkNo()); + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (wrkMastMapper.selectWorking(slave.getId()) != null) { + continue; } - return true; + if (Cools.isEmpty(staProtocol.getWorkNo()) || !staProtocol.isLoading()){ + continue; + } + // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� + if (crnProtocol.modeType == CrnModeType.AUTO + && crnProtocol.statusType == CrnStatusType.IDLE + && crnProtocol.forkPosType == CrnForkPosType.HOME) { + News.info("鍫嗗灈鏈烘帴椹充换鍔℃墽琛岋紝宸ヤ綔鍙凤細"+staProtocol.getWorkNo()+"锛涙墽琛屽爢鍨涙満鍙凤細"+slave.getId()+"锛涙帴椹冲彇璐т綅锛�"+crnStn.getStaNo()+"锛涙帴椹虫斁璐т綅锛�"+staProtocol.getSiteId()); + // 鍫嗗灈鏈烘帴椹充换鍔″懡浠や笅鍙戝尯 -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(onlyWrkNo.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setCommand((short) 0); + crnCommand.setTaskMode(CrnTaskModeType.XY_MOVE); // 浠诲姟妯″紡: 绔欎綅杞Щ + crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(Utils.getRow(staProtocol.getSiteId())); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(Utils.getBay(staProtocol.getSiteId())); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(Utils.getLev(staProtocol.getSiteId())); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { + News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", slave.getId(), JSON.toJSONString(crnCommand)); + } + return true; + } } continue; } catch (Exception e){ -- Gitblit v1.9.1