From e08b0e5516fb552c99362e474bb6959dab92d90a Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 02 九月 2020 09:53:26 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 92 insertions(+), 22 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 08d07d0..6273854 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -163,6 +163,54 @@ } + /** + * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2 + */ + @Async + public void generateStoreWrkFile2() { + // 鏍规嵁杈撻�佺嚎plc閬嶅巻 + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鍏ュ簱鍙� + for (DevpSlave.Sta inSta : devp.getInSta()) { + // 鑾峰彇鍏ュ簱绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 + if (staProtocol.isAutoing() && staProtocol.isLoading() + && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 + && staProtocol.isPakMk()) { + // 鍒ゆ柇閲嶅宸ヤ綔妗� + WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo()); + if (wrkMast == null) { + continue; + } + + // 鏇存柊宸ヤ綔涓绘。 + wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋 + wrkMast.setModiTime(new Date()); + Integer update = wrkMastMapper.updateById(wrkMast); + if (update == 0) { + throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�"); + } + + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + + // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 + staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); + staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + if (!result) { + throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + } + staProtocol.setPakMk(false); + + } + + + } + } + + } /** * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 @@ -320,26 +368,26 @@ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 if (crnProtocol.getLastIo().equals("I")) { if (basCrnp.getInEnable().equals("Y")) { - this.crnStnToLoc(crn); // 鍏ュ簱 + this.crnStnToLoc(crn, crnProtocol); // 鍏ュ簱 crnProtocol.setLastIo("O"); } else if (basCrnp.getOutEnable().equals("Y")) { - this.locToCrnStn(crn); // 鍑哄簱 + this.locToCrnStn(crn, crnProtocol); // 鍑哄簱 crnProtocol.setLastIo("I"); } } // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡 else if (crnProtocol.getLastIo().equals("O")) { if (basCrnp.getOutEnable().equals("Y")) { - this.locToCrnStn(crn); // 鍑哄簱 + this.locToCrnStn(crn, crnProtocol); // 鍑哄簱 crnProtocol.setLastIo("I"); } else if (basCrnp.getInEnable().equals("Y")) { - this.crnStnToLoc(crn); // 鍏ュ簱 + this.crnStnToLoc(crn, crnProtocol); // 鍏ュ簱 crnProtocol.setLastIo("O"); } } } // 搴撲綅绉昏浆 - this.locToLoc(crn); + this.locToLoc(crn, crnProtocol); } } @@ -347,7 +395,7 @@ * 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣� */ @Async - public void crnStnToLoc(CrnSlave slave){ + public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol){ for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) { boolean flag = false; // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅 @@ -359,7 +407,8 @@ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); continue; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staDetl.getCanining().equals("Y")) { + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 + && staDetl.getCanining()!=null && staDetl.getCanining().equals("Y")) { flag = true; } if (!flag) { @@ -379,6 +428,11 @@ } if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) { log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts()); + continue; + } + + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { continue; } @@ -413,7 +467,7 @@ * 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔� */ @Async - public void locToCrnStn(CrnSlave slave){ + public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){ for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) { // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId()); @@ -444,6 +498,11 @@ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() !=null && staDetl.getCanouting().equals("Y") && staProtocol.getWorkNo() == 0) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + continue; + } // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� CrnCommand crnCommand = new CrnCommand(); @@ -477,7 +536,7 @@ * 搴撲綅绉昏浆 */ @Async - public void locToLoc(CrnSlave slave){ + public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){ // 鑾峰彇宸ヤ綔妗d俊鎭� WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId()); if (null == wrkMast) { @@ -504,6 +563,12 @@ if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) { return; } + + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + return; + } + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� @@ -518,7 +583,17 @@ crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞� if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� + Date now = new Date(); + wrkMast.setWrkSts(12L); + wrkMast.setCrnStrTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } } + } /** @@ -553,20 +628,14 @@ wrkMast.setModiTime(now); // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 if (wrkMastMapper.updateById(wrkMast) > 0) { -// // 鍛戒护涓嬪彂鍖� ------------------------------------------------------------------------- -// if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) { -// // 鍫嗗灈鏈哄浣� -// if (!MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(3, new CrnCommand()))) { -// log.error("鍫嗗灈鏈哄浣嶅懡浠や笅鍙戝け璐ワ紝宸ヤ綔鍙�={}", wrkMast.getWrkNo()); -// } -// } + // 鍫嗗灈鏈哄浣� crnThread.setResetFlag(true); } // 瀹屾垚閫氱煡妗� - if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) { - log.error("鍏ュ簱閫氱煡妗d慨鏀圭粨鏉熺姸鎬佸け璐ワ紝workNo=[{}]", wrkMast.getWrkNo()); - } +// if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) { +// log.error("鍏ュ簱閫氱煡妗d慨鏀圭粨鏉熺姸鎬佸け璐ワ紝workNo=[{}]", wrkMast.getWrkNo()); +// } } } @@ -593,13 +662,16 @@ // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭� DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()); + if (staProtocol == null) { + continue; + } // 绔欑偣鏉′欢鍒ゆ柇 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) { // 宸ヤ綔鍙� int workNo = commonService.getWorkNo(0); // 妫�绱㈠簱浣� - StartupDto startupDto = commonService.getLocNo(1, 1, emptyInSta.getStaNo(), null); + StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null); // 鎻掑叆宸ヤ綔涓绘。 WrkMast wrkMast = new WrkMast(); @@ -637,8 +709,6 @@ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 staProtocol.setWorkNo((short) workNo); staProtocol.setStaNo(startupDto.getStaNo().shortValue()); - staProtocol.setPakMk(false); - staProtocol.setInreq1(false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); -- Gitblit v1.9.1