From ddee9db870db0459bb0dfbdd86987e86924f7eaa Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期六, 20 五月 2023 16:23:15 +0800 Subject: [PATCH] WMS任务(1.入库,101.出库) --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 165 +++++++++++++++++++----------------------------------- 1 files changed, 58 insertions(+), 107 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 2b59854..98eb27e 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -7,6 +7,7 @@ import com.core.common.Cools; import com.core.common.DateUtils; import com.core.exception.CoolException; +import com.zy.asrs.domain.enums.WmsWrkStatusType; import com.zy.asrs.entity.*; import com.zy.asrs.mapper.BasCrnErrorMapper; import com.zy.asrs.mapper.WaitPakinMapper; @@ -87,6 +88,8 @@ private BasErrLogService basErrLogService; @Autowired private BasCrnErrorMapper basCrnErrorMapper; + @Autowired + private WmsWrkService wmsWrkService; @Value("${wms.url}") private String wmsUrl; @@ -124,8 +127,9 @@ staProtocol = staProtocol.clone(); } -// // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if ( inSta.getStaNo()==180 && devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } + // 鍏ュ嚭搴撴ā寮忓垽鏂� +// if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } + if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { continue; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() @@ -280,7 +284,7 @@ } // // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } + if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() @@ -304,6 +308,13 @@ if (wrkMastMapper.updateById(wrkMast) == 0) { log.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", wrkMast.getWrkNo()); } + + //鏇存柊WMS浠诲姟鐘舵�� + WmsWrk wmsWrk = wmsWrkService.selectByWmsWrkNo(wrkMast.getWmsWrkNo()); + wmsWrk.setWmsStatus(WmsWrkStatusType.WORKING.id);//鎵ц涓� + wmsWrk.setModiTime(new Date()); + wmsWrkService.updateById(wmsWrk); + } else { log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); } @@ -473,9 +484,8 @@ } // 鍒ゆ柇鍫嗗灈鏈虹姸鎬佺瓑寰呯‘璁� if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) - && crnProtocol.statusType == CrnStatusType.WAITING + && crnProtocol.getTaskFinish() == 1 && crnProtocol.forkPosType == CrnForkPosType.HOME) { - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- // 涓嬪彂绔欑偣淇℃伅 @@ -517,11 +527,6 @@ continue; } - //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓� - if(crnThread.isBackHpFlag()){ - continue; - } - // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) { @@ -551,62 +556,6 @@ // this.crnRebackHp(crnProtocol, crnThread); } - } - - /** - * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣 - */ - public synchronized void crnRebackHp(CrnProtocol crnProtocol, CrnThread crnThread){ -// for (CrnSlave crn : slaveProperties.getCrn()) { -// // 鑾峰彇鍫嗗灈鏈轰俊鎭� -// CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); -// CrnProtocol crnProtocol = crnThread.getCrnProtocol(); -// if (crnProtocol == null) { -// continue; -// } -// BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); -// if (basCrnp == null) { -// log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); -// continue; -// } - if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { - if(crnProtocol.getBay() ==1 && crnProtocol.getLevel()==1){ - return; - } - - // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12 - if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) { - return; - } - - //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12 - if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) { - return; - } - - //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2 - if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) { - return; - } - log.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣"); - // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙� - crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐� - crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� - if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) { - log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand)); - } - crnThread.setBackHpFlag(true); - } -// } } /** @@ -777,6 +726,9 @@ // // 鍏ュ嚭搴撴ā寮忓垽鏂� // if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; } + if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { + continue; + } // 鏌ヨ绔欑偣璇︾粏淇℃伅 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); @@ -814,20 +766,22 @@ } continue; } else { - } } } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) { - WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); +// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); + //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟 + WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo); // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔� - if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk()) - || Cools.isEmpty(waitWrkMast)) { +// 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); } - log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo()); + log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(),shallowLocNo); continue; } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")){ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo); @@ -1069,33 +1023,28 @@ CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 - if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { - if(crnProtocol.getTaskNo()==9999){ + if (crnProtocol.getTaskFinish() == 1 && crnProtocol.getTaskNo() != 0) { + // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 + WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); + if (wrkMast == null) { + log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); + continue; + } + // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚 + if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) { + wrkMast.setWrkSts(4L); + } else { + continue; + } + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + Integer integerWrkMast = wrkMastMapper.updateById(wrkMast); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (integerWrkMast > 0) { // 鍫嗗灈鏈哄浣� crnThread.setResetFlag(true); - }else { - // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); - if (wrkMast == null) { - log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); - continue; - } - // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚 - if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) { - wrkMast.setWrkSts(4L); - } else { - continue; - } - Date now = new Date(); - wrkMast.setCrnEndTime(now); - wrkMast.setModiTime(now); - // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 - if (wrkMastMapper.updateById(wrkMast) > 0) { - // 鍫嗗灈鏈哄浣� - crnThread.setResetFlag(true); - } } - } } } @@ -1120,13 +1069,13 @@ BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue()); // 鏈夊紓甯� if (latest == null) { - if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { + if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) { WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo()); if (wrkMast == null) { continue; } - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); - String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); + String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 缂栧彿 wrkMast.getWrkNo(), // 宸ヤ綔鍙� @@ -1141,7 +1090,7 @@ wrkMast.getSourceStaNo(), // 婧愮珯 wrkMast.getSourceLocNo(), // 婧愬簱浣� wrkMast.getBarcode(), // 鏉$爜 - (int) crnProtocol.getAlarm(), // 寮傚父鐮� + (int) crnProtocol.getAlarm1(), // 寮傚父鐮� errName, // 寮傚父 1, // 寮傚父鎯呭喌 now, // 娣诲姞鏃堕棿 @@ -1156,7 +1105,7 @@ } } else { // 寮傚父淇 - if (crnProtocol.getAlarm() == null || crnProtocol.getAlarm() == 0) { + if (crnProtocol.getAlarm1() == null || crnProtocol.getAlarm1() == 0) { latest.setEndTime(now); latest.setUpdateTime(now); latest.setStatus(2); @@ -1169,11 +1118,11 @@ } else { BasErrLog latest = basErrLogService.findLatest(crn.getId()); // 鏈夊紓甯� - if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { + if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) { // 璁板綍鏂板紓甯� - if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); - String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); + if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm1().intValue())) { + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); + String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 缂栧彿 null, // 宸ヤ綔鍙� @@ -1188,7 +1137,7 @@ null, // 婧愮珯 null, // 婧愬簱浣� null, // 鏉$爜 - (int)crnProtocol.getAlarm(), // 寮傚父鐮� + (int)crnProtocol.getAlarm1(), // 寮傚父鐮� errName, // 寮傚父 1, // 寮傚父鎯呭喌 now, // 娣诲姞鏃堕棿 @@ -1240,7 +1189,8 @@ } // // 鍏ュ嚭搴撴ā寮忓垽鏂� -// if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } +// if ( emptyInSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; } + if ( emptyInSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { continue; } // 绔欑偣鏉′欢鍒ゆ柇 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() @@ -1874,7 +1824,8 @@ devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() - && !devpThread.getStation().get(inSta.getStaNo()+1).isLoading()) { + && !devpThread.getStation().get(inSta.getStaNo()+1).isLoading() + && devpThread.getStation().get(inSta.getStaNo()+1).getWorkNo()==0) { // 鍑哄簱妯″紡 devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE; } -- Gitblit v1.9.1