From b4e0f827567f8d5ad4a1ff5caa22675cbc165b88 Mon Sep 17 00:00:00 2001 From: lsh <lsh123456> Date: 星期三, 11 六月 2025 10:27:31 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 191 +++++++++++++++++++++++++++++++---------------- 1 files changed, 125 insertions(+), 66 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 55a014e..4b83d4a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -530,13 +530,13 @@ } if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0) {//&& staProtocol.isInEnable() + if (staProtocol.isEmptyMk()){ + log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"绌烘澘淇″彿寮傚父锛�"); + continue; + } WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo()); if (wrkMast == null || !wrkMast.getSheetNo().equals("3")) { - continue; - } - if (staProtocol.isEmptyMk()){ - log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"绌烘澘淇″彿寮傚父锛�"); continue; } if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) @@ -877,10 +877,10 @@ // } // } // } else - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()>0) { + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isEmptyMk() && staProtocol.isPakMk() && staProtocol.getWorkNo()>0) { // WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3"); WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo()); - if (wrkMast == null || wrkMast.getSheetNo().equals("3")) { + if (wrkMast == null || (wrkMast.getSheetNo().equals("3") && wrkMast.getIoType()==101)) { WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L); @@ -1211,11 +1211,16 @@ } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔� if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) { - wrkMast.setUpdMk("Y"); - wrkMast.setIoPri(14D); - wrkMastMapper.updateById(wrkMast); - // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 - moveLocForDeepLoc(slave, shallowLoc); +// wrkMast.setUpdMk("Y"); +// wrkMast.setIoPri(14D); +// wrkMastMapper.updateById(wrkMast); +// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 +// moveLocForDeepLoc(slave, shallowLoc); + if (moveLocForDeepLoc(slave, shallowLoc)){ + wrkMast.setUpdMk("Y"); + wrkMast.setIoPri(14D); + wrkMastMapper.updateById(wrkMast); + } // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�) // moveLocForDeepLocPakin(slave, shallowLoc, wrkMast); } @@ -1355,11 +1360,17 @@ } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔� if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) { - wrkMast.setUpdMk("Y"); - wrkMast.setIoPri(14D); - wrkMastMapper.updateById(wrkMast); - // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 - moveLocForDeepLoc(slave, shallowLoc); +// wrkMast.setUpdMk("Y"); +// wrkMast.setIoPri(14D); +// wrkMastMapper.updateById(wrkMast); +// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 +// moveLocForDeepLoc(slave, shallowLoc); + + if (moveLocForDeepLoc(slave, shallowLoc)){ + wrkMast.setUpdMk("Y"); + wrkMast.setIoPri(14D); + wrkMastMapper.updateById(wrkMast); + } // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�) // moveLocForDeepLocPakin(slave, shallowLoc, wrkMast); } @@ -1487,10 +1498,16 @@ // if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk()) // || Cools.isEmpty(waitWrkMast)) { if (Cools.isEmpty(waitWrkMast)) { - wrkMast.setUpdMk("Y"); - wrkMastMapper.updateById(wrkMast); - // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 - moveLocForDeepLoc(slave, shallowLoc); +// wrkMast.setUpdMk("Y"); +// wrkMastMapper.updateById(wrkMast); +// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 +// moveLocForDeepLoc(slave, shallowLoc); + + if (moveLocForDeepLoc(slave, shallowLoc)){ + wrkMast.setUpdMk("Y"); +// wrkMast.setIoPri(14D); + wrkMastMapper.updateById(wrkMast); + } } log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo); continue; @@ -1544,7 +1561,15 @@ */ public synchronized void locToCrnStn1(CrnSlave slave, CrnProtocol crnProtocol) { List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep12(slave.getId()); + Double pri = 0.0; for (WrkMast wrkMast : wrkMasts) { + if (wrkMast.getIoType() != 110){ + if (wrkMast.getIoPri()>=pri){ + pri = wrkMast.getIoPri(); + } else { + continue; + } + } if (wrkMast == null) { continue; } @@ -1623,7 +1648,11 @@ log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo); } else { if (waitWrkMast.getWrkSts() == 11) { - waitWrkMast.setIoPri(15D); + if (waitWrkMast.getIoPri() + 100000D < 99999999) { + waitWrkMast.setIoPri(waitWrkMast.getIoPri()+100000D); + } else { + waitWrkMast.setIoPri(99999999D); + } waitWrkMast.setModiTime(new Date()); if (wrkMastMapper.updateById(waitWrkMast) == 0) { log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo()); @@ -1641,10 +1670,16 @@ // if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk()) // || Cools.isEmpty(waitWrkMast)) { if (Cools.isEmpty(waitWrkMast)) { - wrkMast.setUpdMk("Y"); - wrkMastMapper.updateById(wrkMast); - // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 - moveLocForDeepLoc(slave, shallowLoc); +// wrkMast.setUpdMk("Y"); +// wrkMastMapper.updateById(wrkMast); +// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑 +// moveLocForDeepLoc(slave, shallowLoc); + + if (moveLocForDeepLoc(slave, shallowLoc)){ + wrkMast.setUpdMk("Y"); +// wrkMast.setIoPri(14D); + wrkMastMapper.updateById(wrkMast); + } } log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo); continue; @@ -1653,6 +1688,9 @@ if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) { continue; } + } else if (!shallowLoc.getLocSts().equals("O") ){ + log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{},娴呭簱浣嶇姸鎬�:{}", wrkMast.getWrkNo(), shallowLocNo,shallowLoc.getLocSts()); + continue; } } @@ -2444,9 +2482,10 @@ continue; } Integer count1 = wrkDetlService.count1(); + Integer count11 = wrkDetlService.count11(); Integer count2 = wrkDetlService.count2(wrkDetls.get(0).getOrderNo()); Integer count3 = wrkDetlService.count3(); - wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl,count1,count2,count3))); + wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl,count1+count11,count2,count3))); } commands.add(ledCommand); } @@ -2622,7 +2661,7 @@ * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増) * tip锛氬悓姝� */ - private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc) { + private synchronized boolean moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc) { try { List<Integer> rows = locMastService.queryDistinctRow(crn.getId()); LocMast loc = null; @@ -2666,6 +2705,7 @@ if (null == loc) { log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); + return false; // throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); } else { // 鑾峰彇宸ヤ綔鍙� @@ -2690,7 +2730,9 @@ wrkMast.setModiTime(new Date()); int res = wrkMastMapper.insert(wrkMast); if (res == 0) { - throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>淇濆瓨宸ヤ綔妗eけ璐�"); + return true; +// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } // 宸ヤ綔妗f槑缁嗕繚瀛� if (shallowLoc.getLocSts().equals("F")) { @@ -2704,7 +2746,9 @@ wrkDetl.setAppeTime(new Date()); wrkDetl.setModiTime(new Date()); if (!wrkDetlService.insert(wrkDetl)) { - throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + return true; +// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } } } @@ -2713,28 +2757,38 @@ shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害 shallowLoc.setModiTime(new Date()); if (!locMastService.updateById(shallowLoc)) { - throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + return true; +// throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); } } else { - throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�"); + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>婧愬簱浣嶅嚭搴撳け璐�"); + return true; +// throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�"); } // 淇敼鐩爣搴撲綅鐘舵�� if (loc.getLocSts().equals("O")) { loc.setLocSts("S"); // S.鍏ュ簱棰勭害 loc.setModiTime(new Date()); if (!locMastService.updateById(loc)) { - throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); + return true; +// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); } } else { - throw new CoolException("绉昏浆澶辫触"); + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>绉昏浆澶辫触"); + return true; +// throw new CoolException("绉昏浆澶辫触"); } } } catch (Exception e) { log.error("鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e); - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return true; +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } + return true; } // /** @@ -3106,9 +3160,9 @@ if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){ continue; } - if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){ - continue; - } +// if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){ +// continue; +// } WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo); if (Cools.isEmpty(wrkMast)){ continue; @@ -3127,35 +3181,36 @@ // if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { // continue; // } - + if (staProtocol.isEmptyMk()){ + log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo); + continue; + } if (!staProtocol.isLoading()){ log.info("{}绔欑偣鏃犵墿锛屽紓甯革紒",staNo); continue; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() - && staProtocol.isLoading() - && staProtocol.isInEnable() - && (staProtocol.getWorkNo() == 0 || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) - ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { - + if (staProtocol.isAutoing() && staProtocol.getWorkNo() == 0) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { +// && staProtocol.isInEnable() //浠诲姟瀹屾垚 - boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); - Thread.sleep(100); - - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(144); - devpThread.setPakMk(staProtocol.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); +// boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); +// Thread.sleep(100); + StaProtocol staProtocolnew = new StaProtocol(); + staProtocolnew.setSiteId(staProtocol.getSiteId()); + staProtocolnew.setWorkNo(wrkMast.getWrkNo()); + staProtocolnew.setStaNo(144); + devpThread.setPakMk(staProtocolnew.getSiteId(), false); + devpThread.setReportSign(staProtocolnew.getSiteId(), true); + boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocolnew)); if (!result) { throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒"); } wrkMast.setWrkSts(52L); wrkMastMapper.updateById(wrkMast); - Thread.sleep(100); +// Thread.sleep(100); //浠诲姟瀹屾垚 - boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol)); +// boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol)); } } @@ -3362,7 +3417,7 @@ for (int staNo : staNos){ BasDevp basDevp = basDevpService.selectById(staNo); BasDevp basDevp135 = basDevpService.selectById(135); - if (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()<10000 && basDevp.getWrkNo()>9899) ){ + if (basDevp.getWrkNo()==0){ continue; } if (basDevp135.getReportSign()!=0){ @@ -3388,8 +3443,8 @@ } else { staProtocol135 = staProtocol135.clone(); } - if (staProtocol135.getWorkNo()<9900 || staProtocol135.getWorkNo()>9999 || staProtocol135.getWorkNo()==0 - || !staProtocol135.isLoading() || !staProtocol135.isAutoing()){ + if ( staProtocol135.getWorkNo()!=0 + || !staProtocol135.isLoading() || !staProtocol135.isAutoing() || !staProtocol135.isEmptyMk()){ continue; } StaProtocol staProtocol = devpThread.getStation().get(staNo); @@ -3435,21 +3490,25 @@ // } //浠诲姟瀹屾垚 - boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135)); - try{ - Thread.sleep(100); - }catch (Exception e){ } +// boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135)); +// try{ +// Thread.sleep(100); +// }catch (Exception e){ } basDevp135.setReportSign(2); basDevpService.updateById(basDevp135); int workNo = commonService.getWorkNo(5); - staProtocol135.setWorkNo(workNo); - staProtocol135.setStaNo(144); - devpThread.setPakMk(staProtocol135.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135)); + + StaProtocol staProtocolnew = new StaProtocol(); + staProtocolnew.setSiteId(staProtocol135.getSiteId()); + staProtocolnew.setWorkNo(workNo); + staProtocolnew.setStaNo(144); + + devpThread.setPakMk(staProtocolnew.getSiteId(), false); + boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocolnew)); if (!result) { throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒"); } - boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135)); +// boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135)); } } -- Gitblit v1.9.1