From 0d8fcb1505ba869290cce9099b42370e4333b708 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 05 六月 2025 09:44:43 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 509 ++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 331 insertions(+), 178 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 ec47558..4d6cb49 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -3,9 +3,9 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; import com.core.common.DateUtils; +import com.core.common.SpringUtils; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.*; @@ -21,7 +21,6 @@ import com.zy.common.utils.CollectionUtils; import com.zy.common.utils.HttpHandler; import com.zy.common.utils.RedisUtil; -import com.zy.common.utils.RgvUtils; import com.zy.core.CrnThread; import com.zy.core.DevpThread; import com.zy.core.cache.MessageQueue; @@ -74,8 +73,6 @@ @Autowired private LocMastService locMastService; @Autowired - private StaDescService staDescService; - @Autowired private BasCrnpService basCrnpService; @Autowired private BasRgvService basRgvService; @@ -93,8 +90,6 @@ private BasRgvErrLogService basRgvErrLogService; @Autowired private BasRgvPathService basRgvPathService; - @Autowired - private RedisUtil redisUtil; @Autowired private WrkMastStaMapper wrkMastStaMapper; @Autowired @@ -534,14 +529,14 @@ continue; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) { - WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3"); - - if (wrkMast == null) { - continue; - } + 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 ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) @@ -577,12 +572,12 @@ .doPost(); } catch(Exception e){ log.error("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param); - log.error("stnToCrnStnPick2===>>鐩樼偣鏌ュ簱浣嶅叆搴撴帴鍙eけ璐�", e); - e.printStackTrace(); +// log.error("stnToCrnStnPick2===>>鐩樼偣鏌ュ簱浣嶅叆搴撴帴鍙eけ璐�", e); +// e.printStackTrace(); continue; } - log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param); - log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"涓嬪彂鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS杩斿洖缁撴灉===>>" + response); +// log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS===>>鍙傛暟锛�" + param); +// log.info("鍏ュ簱浣滀笟绔�"+pickSta.getStaNo()+"涓嬪彂鐩樼偣鍐嶅叆搴撲换鍔¤姹俉MS杩斿洖缁撴灉===>>" + response); if(response.equals("")) { continue; } @@ -590,35 +585,35 @@ // LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed()); Integer code = jsonObject.getInteger("code"); if (code == 200) { - StartupDto dto = jsonObject.getObject("data", StartupDto.class); - if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getStaNo())) { - log.error("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶅け璐�===>>" + jsonObject.toJSONString()); - } else { +// StartupDto dto = jsonObject.getObject("data", StartupDto.class); +// if (Cools.isEmpty(dto) || Cools.isEmpty(dto.getStaNo())) { +// log.error("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶅け璐�===>>" + jsonObject.toJSONString()); +// } else { log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣鍐嶅叆搴撴煡璇㈠簱浣嶆垚鍔�===>>" + jsonObject.toJSONString()); - try { - // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 - staProtocol.setWorkNo(wrkMast.getWrkNo()); - staProtocol.setStaNo(dto.getStaNo()); - devpThread.setPakMk(staProtocol.getSiteId(), false); -// ledThread.errorReset(); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - if (!result) { - log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); - } - log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣/鎷f枡鍐嶅叆搴撲换鍔′笅鍙戞垚鍔�===>>" + staProtocol); - } catch (Exception e) { - log.error("鐩樼偣鍐嶅叆搴撳け璐�===>>" + e); - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } +// try { +// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 +// staProtocol.setWorkNo(wrkMast.getWrkNo()); +// staProtocol.setStaNo(dto.getStaNo()); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +//// ledThread.errorReset(); +// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// if (!result) { +// log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); +// } +// log.info("浠诲姟鍙�"+wrkMast.getWrkNo()+"鐩樼偣/鎷f枡鍐嶅叆搴撲换鍔′笅鍙戞垚鍔�===>>" + staProtocol); +// } catch (Exception e) { +// log.error("鐩樼偣鍐嶅叆搴撳け璐�===>>" + e); +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// } +// } } else { log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin2/loc/v1", JSON.toJSONString(param), response); } } catch (Exception e) { log.error("stnToCrnStnPick2===>>fail", e); - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } // // 鑾峰彇鐩爣绔� @@ -867,9 +862,25 @@ continue; } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) { - WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3"); - if (wrkMast == null) { +// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0) { +// WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3"); +// if (wrkMast == null) { +// WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); +// if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ +// WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L); +// if (Cools.isEmpty(wrkMastSta)){ +// WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId()); +// wrkMastSta1.setType(2); +// wrkMastSta1.setWrkType(1); +// wrkMastStaMapper.insert(wrkMastSta1); +// } +// } +// } +// } else + 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") && wrkMast.getIoType()==101)) { WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3"); if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L); @@ -1200,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); } @@ -1344,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); } @@ -1476,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; @@ -1533,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; } @@ -1556,7 +1592,7 @@ } //閫�搴撴ā寮忚烦杩�118銆�119鍑哄簱浠诲姟 if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ - RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign"); if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ continue; } @@ -1612,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()); @@ -1630,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; @@ -1642,6 +1688,9 @@ if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) { continue; } + } else if (!shallowLoc.getLocSts().equals("O") ){ + log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{},娴呭簱浣嶇姸鎬�:{}", wrkMast.getWrkNo(), shallowLocNo,shallowLoc.getLocSts()); + continue; } } @@ -2286,7 +2335,7 @@ */ public synchronized void storeEmptyPlt3() { try{ - RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign"); if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ return; } @@ -2433,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); } @@ -2611,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; @@ -2655,74 +2705,90 @@ if (null == loc) { log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); - throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); - } - - // 鑾峰彇宸ヤ綔鍙� - int workNo = commonService.getWorkNo(0); - // 淇濆瓨宸ヤ綔妗� - WrkMast wrkMast = new WrkMast(); - wrkMast.setWrkNo(workNo); - wrkMast.setIoTime(new Date()); - wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID - wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 - wrkMast.setIoPri(13D); - wrkMast.setCrnNo(crn.getId()); - wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣� - wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅 - wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘 - wrkMast.setPicking("N"); // 鎷f枡 - wrkMast.setExitMk("N"); // 閫�鍑� - wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘 - wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮� - wrkMast.setLinkMis("N"); - wrkMast.setAppeTime(new Date()); - wrkMast.setModiTime(new Date()); - int res = wrkMastMapper.insert(wrkMast); - if (res == 0) { - throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); - } - // 宸ヤ綔妗f槑缁嗕繚瀛� - if (shallowLoc.getLocSts().equals("F")) { - List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo())); - for (LocDetl locDetl : locDetls) { - WrkDetl wrkDetl = new WrkDetl(); - wrkDetl.setWrkNo(workNo); - wrkDetl.setIoTime(new Date()); - wrkDetl.setAnfme(locDetl.getAnfme()); - VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗 - wrkDetl.setAppeTime(new Date()); - wrkDetl.setModiTime(new Date()); - if (!wrkDetlService.insert(wrkDetl)) { - throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + return false; +// throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); + } else { + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(0); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 + wrkMast.setIoPri(13D); + wrkMast.setCrnNo(crn.getId()); + wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣� + wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅 + wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘 + wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setAppeTime(new Date()); + wrkMast.setModiTime(new Date()); + int res = wrkMastMapper.insert(wrkMast); + if (res == 0) { + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>淇濆瓨宸ヤ綔妗eけ璐�"); + return true; +// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 宸ヤ綔妗f槑缁嗕繚瀛� + if (shallowLoc.getLocSts().equals("F")) { + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo())); + for (LocDetl locDetl : locDetls) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(new Date()); + wrkDetl.setAnfme(locDetl.getAnfme()); + VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗 + wrkDetl.setAppeTime(new Date()); + wrkDetl.setModiTime(new Date()); + if (!wrkDetlService.insert(wrkDetl)) { + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + return true; +// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } } } - } - // 淇敼婧愬簱浣嶇姸鎬� - if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) { - shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害 - shallowLoc.setModiTime(new Date()); - if (!locMastService.updateById(shallowLoc)) { - throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + // 淇敼婧愬簱浣嶇姸鎬� + if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) { + shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害 + shallowLoc.setModiTime(new Date()); + if (!locMastService.updateById(shallowLoc)) { + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + return true; +// throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + } + } else { + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>婧愬簱浣嶅嚭搴撳け璐�"); + return true; +// throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�"); } - } else { - throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�"); - } - // 淇敼鐩爣搴撲綅鐘舵�� - if (loc.getLocSts().equals("O")) { - loc.setLocSts("S"); // S.鍏ュ簱棰勭害 - loc.setModiTime(new Date()); - if (!locMastService.updateById(loc)) { - throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); + // 淇敼鐩爣搴撲綅鐘舵�� + if (loc.getLocSts().equals("O")) { + loc.setLocSts("S"); // S.鍏ュ簱棰勭害 + loc.setModiTime(new Date()); + if (!locMastService.updateById(loc)) { + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); + return true; +// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); + } + } else { + log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 ====>绉昏浆澶辫触"); + return true; +// throw new CoolException("绉昏浆澶辫触"); } - } else { - throw new CoolException("绉昏浆澶辫触"); } + } catch (Exception e) { log.error("鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e); - e.printStackTrace(); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return true; +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } + return true; } // /** @@ -3094,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; @@ -3115,35 +3181,35 @@ // 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); + 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)); } } @@ -3155,7 +3221,7 @@ } /** - * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝� + * 鍏朵粬 ===>> 鐮佸灈瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝� 2===銆�3 */ public synchronized void stackingCompletionDriveTrayOk2() { for (DevpSlave devp : slaveProperties.getDevp()) { @@ -3171,7 +3237,7 @@ staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0 && staProtocol.isOutEnable()) {// + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0) {// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo()); if (wrkMast == null) { @@ -3184,7 +3250,7 @@ } if (wrkMast.getIoType()==101){ //浠诲姟瀹屾垚 - boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); +// boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); wrkMast.setSheetNo("3"); wrkMastMapper.updateById(wrkMast); }else { @@ -3193,17 +3259,17 @@ continue; } //浠诲姟瀹屾垚 - boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); +// boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol)); wrkMast.setSheetNo("3"); wrkMastMapper.updateById(wrkMast); - try{ - Thread.sleep(100); - }catch (Exception e){ +// try{ +// Thread.sleep(100); +// }catch (Exception e){ +// +// } - } - - 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)); } } @@ -3350,7 +3416,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){ @@ -3376,8 +3442,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); @@ -3423,21 +3489,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)); } } @@ -3488,7 +3558,7 @@ log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta); continue; } - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue()); + /* WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue()); if (!Cools.isEmpty(wrkMast) && wrkMastSta.getWrkType()!=5){ Thread.sleep(200); SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); @@ -3524,7 +3594,7 @@ // }catch (Exception e){ // // } - } + }*/ boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); if (!rgvComplete){ log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); @@ -3551,7 +3621,7 @@ log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta); continue; } - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue()); + /*WrkMast wrkMast = wrkMastMapper.selectPakInStep3(wrkMastSta.getWrkNo().intValue()); if (!Cools.isEmpty(wrkMast) && wrkMastSta.getWrkType()!=5){ Thread.sleep(200); DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); @@ -3582,7 +3652,7 @@ // }catch (Exception e){ // // } - } + }*/ boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); if (!rgvComplete){ log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo()); @@ -4258,17 +4328,17 @@ // return; continue; } - if (!rgvProtocol.getRgvPosI().equals(108) && !rgvProtocol.getRgvPosI().equals(119)){ + if (!rgvProtocol.getRgvPosI().equals(110) && !rgvProtocol.getRgvPosI().equals(108) && !rgvProtocol.getRgvPosI().equals(119)){ continue; } Integer count108Y = wrkMastStaMapper.selectAllWrkCount108Y(); - if (count108Y==0){ + if (count108Y!=0){ continue; } - Integer count108 = wrkMastStaMapper.selectAllWrkCount108(); - if (count108==0){ - continue; - } +// Integer count108 = wrkMastStaMapper.selectAllWrkCount108(); +// if (count108!=0){ +// continue; +// } rgvAvoidanceXY(rgvProtocol.getRgvNo()); continue; // BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); @@ -4384,7 +4454,7 @@ rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙� rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐� //basRgvMap.getLockStartRoute().shortValue() - rgvCommand.setSourceStaNo1( (short)107); + rgvCommand.setSourceStaNo1( (short)104); rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭 if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� @@ -4406,7 +4476,7 @@ rgvCommand.setAckFinish2((short) 0); // 宸ヤ綅2浠诲姟瀹屾垚纭浣� rgvCommand.setTaskNo2((short)32222); // 宸ヤ綅2宸ヤ綔鍙� rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 宸ヤ綅2浠诲姟妯″紡: 鍥炲師鐐� - rgvCommand.setSourceStaNo2((short)113); + rgvCommand.setSourceStaNo2((short)114); rgvCommand.setCommand((short) 2); //宸ヤ綅2浠诲姟纭 if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) { //step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙� @@ -4651,4 +4721,87 @@ } } + + /** + * ste鍏呯數浠诲姟鍒涘缓 //瀹屾垚 + */ + public synchronized void armNoStartTwoLo() { + int[] staNos =new int[]{215,219}; + for (int staNo : staNos){ + try{ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocol = devpThread.getStation().get(staNo); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()){ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("armNo"+staNo); + if (!Cools.isEmpty(rgvOneSign) && rgvOneSign.getRgvOneSign() == 1){ + int workNo = commonService.getWorkNo(6); + + StaProtocol staProtocolnew = new StaProtocol(); + staProtocolnew.setSiteId(staNo); + staProtocolnew.setWorkNo(workNo); + staProtocolnew.setStaNo(staNo==215? 217:221); + boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocolnew)); + + devpThread.setPakMk(staProtocolnew.getSiteId(), false); + + boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocolnew)); + if (!result2) { + log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", 2); + } + if (!staProtocol.isLoading()){ + updateRgvOneSign("armNo"+staNo,0); + } + + + boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocolnew)); + } + } + }catch (Exception e){ + log.error("绔欑偣"+staNo+"2妤兼満姊拌噦鐮佸灈鍚庢爣璁版竻闄ゅけ璐ワ紝寮傚父淇℃伅锛�"+e); + } + } + } + + public synchronized void armNoCleanUpTwoLo() { + int[] staNos =new int[]{215,219}; + for (int staNo : staNos){ + try{ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); + StaProtocol staProtocol = devpThread.getStation().get(staNo); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (!staProtocol.isLoading()){ + updateRgvOneSign("armNo"+staNo,0); + } + }catch (Exception e){ + log.error("绔欑偣"+staNo+"2妤兼満姊拌噦鐮佸灈鍚庢爣璁版竻闄ゅけ璐ワ紝寮傚父淇℃伅锛�"+e); + } + } + } + + public void updateRgvOneSign(String signType,Integer oneSign){ + try{ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType); + if (!Cools.isEmpty(rgvOneSign)){ + rgvOneSign.setRgvOneSign(oneSign); + rgvOneSignMapper.updateById(rgvOneSign); + } + } catch (Exception e){ + RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType); + if (!Cools.isEmpty(rgvOneSign)){ + rgvOneSign.setRgvOneSign(999); + rgvOneSignMapper.updateById(rgvOneSign); + } + } + } + } -- Gitblit v1.9.1