From de92c7f5e4643f678febef20435473f8c619b3d0 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期五, 11 三月 2022 09:55:28 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 100 ++++++++++++++++++++++++++++--------------------- src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 2 src/main/resources/mapper/WrkMastMapper.xml | 4 +- src/main/java/com/zy/core/MainProcess.java | 2 - 4 files changed, 60 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java index f20acb6..b2ea12f 100644 --- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java @@ -35,7 +35,7 @@ WrkMast selectPakInStep45(@Param("workNo")Integer workNo); - WrkMast selectPakInStep8(@Param("steNo")Integer steNo); + WrkMast selectCarWaiting(@Param("workNo")Integer workNo); // 鎷f枡鍐嶅叆搴撴椂锛岀珯鐐规湁鐗╀笖闇�姹傛椂鏌ヨ // @Select("select top 1 * from asr_wrk_mast where wrk_no=#{workNo} and wrk_sts=14 and (io_type=103 or io_type=107 or io_type=104)") 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 19d9816..9972426 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -735,7 +735,7 @@ } /** - * 鍏ュ簱 ===>> 鍫嗗灈鏈烘惉鍏ュ皬杞� + * 鍏ュ嚭搴� ===>> 鍫嗗灈鏈烘惉鍏ュ皬杞� */ public void carMoveIn(WrkMast wrkMast, Integer steNo, CrnProtocol crnProtocol) { // 鑾峰彇鍫嗗灈鏈轰俊鎭� @@ -746,6 +746,7 @@ // 鍫嗗灈鏈虹┖闂� if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) { LocMast locMast; + // 鍏ュ簱鎼� if (wrkMast.getWrkSts() <= 10) { locMast = locMastService.selectById(wrkMast.getLocNo()); // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 -------------------------------------------------------------------------- @@ -772,7 +773,33 @@ log.error("淇敼宸ヤ綔妗g姸鎬� 3.灏忚溅寰呮惉 => 4.杩佸叆灏忚溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); } } - + // 鍑哄簱鎼� + } else { + locMast = locMastService.selectById(wrkMast.getSourceLocNo()); + // 鍫嗗灈鏈哄懡浠や笅鍙戝尯 -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); + crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 + crnCommand.setSourcePosX(steProtocol.getRow()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(steProtocol.getBay()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(steProtocol.getLev()); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue()); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞� + if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { + log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 12.灏忚溅寰呮惉 => 13.杩佸叆灏忚溅 + Date now = new Date(); + wrkMast.setWrkSts(13L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 12.灏忚溅寰呮惉 => 13.杩佸叆灏忚溅 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + } } } @@ -985,7 +1012,7 @@ } } // 鍫嗗灈鏈烘惉杩愬皬杞� - if (wrkMast.getWrkSts() == 3L) { + if (wrkMast.getWrkSts() == 12L) { this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol); } } @@ -1066,43 +1093,6 @@ /** - * 鍫嗗灈鏈洪拡瀵逛簬灏忚溅杩佺Щ宸ヤ綔鐨勫畬鎴� - */ - @Async - public void carMoveFinished() { - for (CrnSlave crn : slaveProperties.getCrn()) { - // 鑾峰彇鍫嗗灈鏈轰俊鎭� - CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); - CrnProtocol crnProtocol = crnThread.getCrnProtocol(); - if (crnProtocol == null) { continue; } - // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 - if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { - // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectPakInStep45(crnProtocol.getTaskNo().intValue()); - if (wrkMast == null) { - log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); - continue; - } - // 鍏ュ簱 + 搴撲綅杞Щ ==> 6.灏忚溅寰呭叆 - if ((wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 5) || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)){ - wrkMast.setWrkSts(6L); - } else { - continue; - } - Date now = new Date(); - wrkMast.setCrnEndTime(now); - wrkMast.setModiTime(now); - // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 - if (wrkMastMapper.updateById(wrkMast) > 0) { - // 鍫嗗灈鏈哄浣� - crnThread.setResetFlag(true); - } - - } - } - } - - /** * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� */ @Async @@ -1167,7 +1157,7 @@ } } } - // 杩佸叆灏忚溅 瀹屾垚 + // 鍏ュ簱 ===>> 杩佸叆灏忚溅 瀹屾垚 } else if (wrkMast.getWrkSts() == 4) { // 4.杩佸叆灏忚溅 ==> 6.灏忚溅寰呭叆 wrkMast.setWrkSts(6L); @@ -1181,7 +1171,7 @@ } else { log.error("淇敼宸ヤ綔妗g姸鎬� 4.杩佸叆灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); } - // 杩佸嚭灏忚溅 瀹屾垚 + // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚 } else if (wrkMast.getWrkSts() == 5) { // 5.杩佸嚭灏忚溅 ==> 6.灏忚溅寰呭叆 wrkMast.setWrkSts(6L); @@ -1194,6 +1184,20 @@ crnThread.setResetFlag(true); } else { log.error("淇敼宸ヤ綔妗g姸鎬� 5.杩佸嚭灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + // 鍑哄簱 ===>> 杩佸叆灏忚溅 瀹屾垚 + } else if (wrkMast.getWrkSts() == 13) { + // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� + wrkMast.setWrkSts(14L); + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (wrkMastMapper.updateById(wrkMast) > 0) { + // 鍫嗗灈鏈哄浣� + crnThread.setResetFlag(true); + } else { + log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); } } } @@ -1212,7 +1216,7 @@ if (steProtocol == null) { continue; } if (steProtocol.getStatusType().equals(SteStatusType.WAITING) && steProtocol.getTaskNo() != 0) { // 鏌ヨ鏄惁鏈夊緟鍏ュ簱鐨勪换鍔� - WrkMast wrkMast = wrkMastMapper.selectPakInStep8(steProtocol.getSteNo().intValue()); + WrkMast wrkMast = wrkMastMapper.selectCarWaiting(steProtocol.getTaskNo()); if (wrkMast == null) { continue; } switch (wrkMast.getWrkSts().intValue()) { @@ -1236,6 +1240,16 @@ steThread.setResetFlag(true); } break; + case 11: + // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉 + wrkMast.setWrkSts(12L); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } else { + steThread.setResetFlag(true); + } + break; case 14: // 淇敼宸ヤ綔妗g姸鎬� 14.灏忚溅鎼嚭搴� => 15.绛夊緟鍚婅溅 wrkMast.setWrkSts(15L); diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 4b24503..a6bff69 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -51,8 +51,6 @@ mainService.crnStnToOutStn(); // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 mainService.crnIoExecute(); - // 鍫嗗灈鏈洪拡瀵逛簬灏忚溅杩佺Щ宸ヤ綔鐨勫畬鎴� - mainService.carMoveFinished(); // 鍏ュ簱 ===>> 鎵ц鍫嗗灈鏈哄宸ヤ綔妗g殑瀹屾垚鎿嶄綔 mainService.storeFinished(); // 鍏ュ簱 ===>> 鎵ц绌挎杞﹀宸ヤ綔妗g殑瀹屾垚鎿嶄綔 diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml index 43b71f4..9bb7080 100644 --- a/src/main/resources/mapper/WrkMastMapper.xml +++ b/src/main/resources/mapper/WrkMastMapper.xml @@ -100,8 +100,8 @@ select top 1 * from dbo.asr_wrk_mast where wrk_no=#{workNo} and wrk_sts = 7 </select> - <select id="selectPakInStep8" resultMap="BaseResultMap"> - select top 1 * from dbo.asr_wrk_mast where ste_no=#{steNo} and wrk_sts = 8 + <select id="selectCarWaiting" resultMap="BaseResultMap"> + select top 1 * from dbo.asr_wrk_mast where wrk_no=#{workNo} and wrk_sts in (2,8,11,14) </select> <select id="selectPickStep" resultMap="BaseResultMap"> -- Gitblit v1.9.1