From ad2775412691be4f4d9dd4e33264df7851759eac Mon Sep 17 00:00:00 2001 From: pjb <pjb123456> Date: 星期五, 25 七月 2025 09:46:33 +0800 Subject: [PATCH] 回原点任务下发后等待3秒,避免和入出库任务冲突 --- src/main/java/com/zy/service/impl/MainServiceImpl.java | 87 +++++++++++++++++++++++++++++-------------- 1 files changed, 58 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java index 4f37a5a..5b6df08 100644 --- a/src/main/java/com/zy/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java @@ -118,6 +118,9 @@ private WaitPakinMapper waitPakinMapper; @Autowired private LocMastService locMastService; + + @Resource + private LocMastMapper locMastMapper; @Autowired private StaDescService staDescService; @Autowired @@ -731,7 +734,7 @@ continue; } - } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { + } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("M")|| shallowLoc.getLocSts().equals("Z")) { News.warnNoLog(""+mark+" - 1"+" - 12"+" - // F銆丏 搴撲綅鐘舵��={}",shallowLoc.getLocSts()); // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔� if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) { @@ -819,6 +822,11 @@ */ public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) { News.warnNoLog(""+mark+" - 2"+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�"); + boolean crnAvailableOut = false; + Config config = configService.selectOne(new EntityWrapper<Config>().eq("code","removeCrnAvailableOut")); + if (config != null && config.getStatus() == 1) { + crnAvailableOut = true; + } for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) { // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗� List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep11(slave.getId(), crnStn.getStaNo()); @@ -855,9 +863,8 @@ } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if ((staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") - && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) - || (staProtocol.getSiteId() == 1056 && staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y"))) { + if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && + (crnAvailableOut || !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable())) { // 鍫嗗灈鏈烘帶鍒惰繃婊� if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { break; @@ -894,7 +901,7 @@ } } - } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { + } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("M")|| shallowLoc.getLocSts().equals("Z")) { News.warnNoLog(""+mark+" - 2"+" - 9"+" - // F銆丏 搴撲綅鐘舵��={}",shallowLoc.getLocSts()); // WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟 @@ -1148,21 +1155,23 @@ // 绌烘《鍏ュ簱瀹屾垚锛屽厛瀹屾垚瀵瑰簲搴撲綅缁勪换鍔� if(wrkMast.getWorkNoOther() != 0 ){ WrkMast wrkMast1 = wrkMastService.selectByWrkNo(wrkMast.getWorkNoOther()); - // 浜ゆ崲搴撲綅鍙� - String locNo = wrkMast.getLocNo(); - wrkMast.setLocNo(wrkMast1.getLocNo()); - // 浜ゆ崲鍏ュ簱鏃堕棿锛屾彁鍙栧簱瀛樻椂鎸夐『搴忓厛娴呭悗娣� - Date ioTime = wrkMast.getIoTime(); - if(locNo.startsWith("10")) { - wrkMast.setIoTime(wrkMast1.getIoTime()); - wrkMast1.setIoTime(ioTime); + if (wrkMast1 != null) { + // 浜ゆ崲搴撲綅鍙� + String locNo = wrkMast.getLocNo(); + wrkMast.setLocNo(wrkMast1.getLocNo()); + // 浜ゆ崲鍏ュ簱鏃堕棿锛屾彁鍙栧簱瀛樻椂鎸夐『搴忓厛娴呭悗娣� + Date ioTime = wrkMast.getIoTime(); + if(locNo.startsWith("10")) { + wrkMast.setIoTime(wrkMast1.getIoTime()); + wrkMast1.setIoTime(ioTime); + } + wrkMast1.setLocNo(locNo); + wrkMast1.setCrnEndTime(now); + wrkMast1.setModiTime(now); + wrkMast1.setWrkSts(4L); + wrkMast1.setWorkNoOther(0); + wrkMastMapper.updateById(wrkMast1); } - wrkMast1.setLocNo(locNo); - wrkMast1.setCrnEndTime(now); - wrkMast1.setModiTime(now); - wrkMast1.setWrkSts(4L); - wrkMast1.setWorkNoOther(0); - wrkMastMapper.updateById(wrkMast1); } wrkMast.setCrnEndTime(now); wrkMast.setModiTime(now); @@ -1189,6 +1198,9 @@ // 鑾峰彇鍫嗗灈鏈轰俊鎭� CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if(crnProtocol == null) { + continue; + } if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) { // 鍒ゆ柇鏄笉鏄凡鍦ㄥ師鐐� @@ -1203,8 +1215,13 @@ Date now = new Date(); Date modiTime = basCrnp.getModiTime(); long diffInMillis = now.getTime()-modiTime.getTime(); - if(diffInMillis < 3 * 60 * 1000) { + if(diffInMillis < 10 * 1000) { // 绌洪棽灏忎簬10绉掑垯璺宠繃 continue; + } else { // 鏈夊叆搴撲换鍔℃垨澶т簬2鍒嗛挓锛屽洖鍘熺偣 + int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 1).eq("crn_no", crn.getId()).in("wrk_sts", 2, 9, 10)); + if(count == 0 && diffInMillis < 2 * 60 * 1000) { + continue; + } } // 鏈夊悐杞﹀叆搴撴垨鍚婅溅鍑哄簱浠诲姟 @@ -1230,7 +1247,7 @@ basCrnpService.updateById(basCrnp); // 璁剧疆鏇存柊鏃堕棿锛岄伩鍏嶉噸澶嶄笅鍙戝洖鍘熺偣 log.info("{}鍙峰爢鍨涙満鍥炲師鐐逛换鍔′笅鍙戞垚鍔燂細{}", crn.getId(), JSON.toJSON(crnCommand)); } - Thread.sleep(2000); + Thread.sleep(3000); } } } @@ -1514,13 +1531,25 @@ */ private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,Integer mark) { + // 鍙湁208L鑳芥斁11灞� + String model = null; + if(shallowLoc.getLocSts().equals("F")) { + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo())); + if(locDetl != null && locDetl.getModel() != null) { + String matModel = locMastMapper.selectMatMatnrByMaktx(locDetl.getModel()); + if(matModel != null && matModel.equals("208L")) { + model = "208L"; + } + } + } try { News.warnNoLog(""+mark+"moveLocForDeepLoc"+" - 0"+" - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)"); List<Integer> rows = locMastService.queryDistinctRow(crn.getId()); LocMast loc = null; for (Integer row : rows) { if (Utils.isDeepLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2()); +// loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2()); + loc = locMastMapper.queryFreeLocMastNew(row,model); if (loc != null) { if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) { @@ -1539,12 +1568,12 @@ if (null == loc) { for (Integer row : rows) { if (Utils.isShallowLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2()); - +// loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType2()); + loc = locMastMapper.queryFreeLocMastNew(row,model); if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱 String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo()); LocMast deepLoc1 = locMastService.selectById(deepLoc); - if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) { + if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("M")&& !deepLoc1.getLocSts().equals("Z")) { loc = null; } } @@ -1576,7 +1605,7 @@ wrkMast.setFullPlt(shallowLoc.getLocSts().equals("F") ? "Y" : "N"); // 婊℃澘 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� - wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘 + wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("M") ? "M" : shallowLoc.getLocSts().equals("Z") ? "Z" : "N"); // 绌烘澘 wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮� wrkMast.setLinkMis("N"); wrkMast.setAppeTime(new Date()); @@ -1604,7 +1633,7 @@ } } // 淇敼婧愬簱浣嶇姸鎬� - if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) { + if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("M") || shallowLoc.getLocSts().equals("Z")) { shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害 shallowLoc.setModiTime(new Date()); if (!locMastService.updateById(shallowLoc)) { @@ -1725,8 +1754,8 @@ staProtocol = staProtocol.clone(); } if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.isInEnable() || staProtocol.isOutEnable() && site == 1090) && staProtocol.getWorkNo() != 0 && staProtocol.getWorkNo() < 9000) { - if (staProtocol.getWorkNo() == 1034 && !staProtocol.isHigh()) { // 1034绌烘瘝鎷栧洖娴佷换鍔¢渶瑕侀珮淇″彿 - return; + if (staProtocol.getSiteId() == 1034 && !staProtocol.isHigh()) { // 1034绌烘瘝鎷栧洖娴佷换鍔¢渶瑕侀珮淇″彿 + continue; } // 鏌ヨ宸ヤ綔妗� WrkMast wrkMast = wrkMastMapper.selectByWrkNo(staProtocol.getWorkNo()); -- Gitblit v1.9.1