From c5e8e45124d314166d229bb63a9846f8d6b9c69b Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期六, 07 九月 2024 14:26:27 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 210 ++++++++++++++++++++++++++++----------------------- 1 files changed, 115 insertions(+), 95 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 b3e674b..d818a4f 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -91,17 +91,17 @@ @Value("${wms.url}") private String wmsUrl; - private Short getWorkMode(Integer bay) { - if (bay == 2 || bay == 7) { + private Short getWorkMode(Short locType1, Integer bay) { + if (locType1 == 2) { return (short) 3; - } else if (bay == 3) { - return (short) 2; - } else if (bay == 4) { - return (short) 2; - } else if (bay == 5) { - return (short) 1; + } else if (locType1 == 5) { + return (short) 3; } else { - return (short) 0; + if (bay == 5) { + return (short) 1; + } else { + return (short) 2; + } } } @@ -224,29 +224,39 @@ } // 鍒ゆ柇閲嶅宸ヤ綔妗� - WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); - //杩囨护鍒ゆ柇锛岄槻姝㈡嫞鏂欏啀鍏ュ簱璐х墿锛岀粡杩囧叆搴撶珯鍐嶅叆搴撴椂锛岃閫�鍥炲埌閫�搴撶珯 - WrkMast wrkMast1 = wrkMastMapper.selectPakInStepBarcode(barcode); - if (wrkMast1 != null) { - if (wrkMast1.getIoType() == 103 || wrkMast1.getIoType() == 107 || wrkMast1.getIoType() == 104) { + WrkMast wrkMast = wrkMastMapper.selectPakInStepBarcode(barcode); + if (wrkMast != null && wrkMast.getWrkSts() == 2) { + int wrkNo1 = basDevpService.count(new QueryWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo())); + if (wrkNo1 != 0) { + News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); + if (ledThread != null) { + News.error(":鎵爜澶辫触锛岃閲嶈瘯"); + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�=" + wrkMast.getWrkNo())); + } continue; } - } - if (wrkMast != null) { - News.error("" + mark + " - 4" + " - 宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); - staProtocol.setWorkNo((short) 9999); - staProtocol.setStaNo(inSta.getBackSta().shortValue()); + barcodeThread.setBarcode(""); + staProtocol.setWorkNo(Short.parseShort(wrkMast.getWrkNo() + "")); + staProtocol.setStaNo(Short.parseShort(wrkMast.getStaNo() + "")); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�" + wrkMast.getWrkNo() + "," + wrkMast.getStaNo()); + + ledThread.errorReset(); + log.info("缁勬墭璇锋眰鍚嶭ED閿欒娓呴櫎"); + if (!result) { - throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + News.error(":鏇存柊plc绔欑偣淇℃伅澶辫触"); + log.error("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒)==>鏇存柊plc绔欑偣淇℃伅澶辫触"); +// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + continue; } - // led 寮傚父鏄剧ず - if (ledThread != null) { - String errorMsg = "宸ヤ綔妗e凡瀛樺湪璇ユ潯鐮佸彿===>>" + barcode; - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg)); - } + } + WrkMast checkPick = wrkMastMapper.selectOne(new QueryWrapper<WrkMast>() + .eq("barcode", barcode) + .in("io_type", 107, 103, 57)); + if (!Cools.isEmpty(checkPick)) { continue; } @@ -489,10 +499,16 @@ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�"); WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode); -// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue()); + // WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue()); if (wrkMast == null) { - // 鏃犳嫞鏂欐暟鎹� - continue; + WrkMast wrkMast1 = wrkMastMapper.selectPakInStepBarcode(barcode); + if (!(wrkMast1 != null && wrkMast1.getWrkSts() == 2 && wrkMast1.getIoType() == 53)) { + // 鏃犳嫞鏂欐暟鎹� + continue; + } else { + wrkMast1.setIoType(103); + wrkMast = wrkMast1; + } } if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) { continue; @@ -508,12 +524,13 @@ // log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo()); // } // 鑾峰彇鐩爣绔� + Wrapper<StaDesc> wrapper = new QueryWrapper<StaDesc>().eq("type_no", wrkMast.getIoType() - 50).eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿 StaDesc staDesc = staDescService.getOne(wrapper); if (Cools.isEmpty(staDesc)) { News.error("" + mark + " - 2" + " - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo()); - staProtocol.setWorkNo((short) 9989); + staProtocol.setWorkNo((short) 9999); staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue() - (short) 1)); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); @@ -646,7 +663,7 @@ crnThread.setResetFlag(true); } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { crnThread.setResetFlagTwo(true); - } else { + } else if (statusTypeTwo == CrnStatusType.WAITING_All) { crnThread.setResetFlag(true); crnThread.setResetFlagTwo(true); } @@ -803,8 +820,7 @@ flag = true; } if (!flag) { - //TODO - News.error("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):" + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading() + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable() + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining()); + News.errorNoLog("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):" + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading() + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable() + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining()); continue; } // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。 @@ -883,7 +899,7 @@ CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(locMast.getBay1()); + Short workMode = getWorkMode(locMast.getLocType1(), locMast.getBay1()); if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); @@ -1055,12 +1071,13 @@ News.warnNoLog("" + mark + " - 2" + " - 12" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue(), sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue(), crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()); String locNo = sourceSta.getLocNo(); - + // 鑾峰彇鐩爣搴撲綅淇℃伅 + LocMast sta = locMastService.getById(sourceSta.getLocNo()); // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(sourceSta.getBay1()); + Short workMode = getWorkMode(sta.getLocType1(), sourceSta.getBay1()); if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); @@ -1268,10 +1285,11 @@ CrnCommand crnCommand = new CrnCommand(); crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙� - Short workMode = getWorkMode(sourceSta.getBay1()); + Short workMode = getWorkMode(sta.getLocType1(), sourceSta.getBay1()); crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� if (workMode == 2) { //CrnTaskModeType璇ユ灇涓剧被鏃犳晥锛屽彧鏈�1浠h〃宸ヤ綅锛�2浠h〃宸ヤ綅2锛�3鍙屽伐浣� + crnCommand.setTaskMode(CrnTaskModeType.PAKOUT); crnCommand.setSourcePosXTwo(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓 crnCommand.setSourcePosYTwo(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪 crnCommand.setSourcePosZTwo(sourceSta.getLev1().shortValue()); // 婧愬簱浣嶅眰 @@ -1329,8 +1347,38 @@ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 if (wait && crnProtocol.getTaskNo() != 0) { News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔"); - if (crnProtocol.getTaskNo() == 9999) { +// if (crnProtocol.getTaskNo() == 9999) { +// // 鍫嗗灈鏈哄浣� +// if (statusType == CrnStatusType.WAITING_ONE) { +// crnThread.setResetFlag(true); +// } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { +// crnThread.setResetFlagTwo(true); +// } else { +// crnThread.setResetFlag(true); +// crnThread.setResetFlagTwo(true); +// } +// } else { + // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 + WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); + if (wrkMast == null) { + News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); + continue; + } + // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚 + if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) { + wrkMast.setWrkSts(4L); + } else { + //TODO + News.info("鐘舵�佷笉瀵�,鐘舵��={}锛屽伐浣滃彿={}", wrkMast.getWrkSts(), crnProtocol.getTaskNo()); + continue; + } + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (wrkMastMapper.updateById(wrkMast) > 0) { // 鍫嗗灈鏈哄浣� + News.info("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo()); if (statusType == CrnStatusType.WAITING_ONE) { crnThread.setResetFlag(true); } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { @@ -1340,39 +1388,11 @@ crnThread.setResetFlagTwo(true); } } else { - // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); - if (wrkMast == null) { - News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗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) { - // 鍫嗗灈鏈哄浣� - News.info("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo()); - if (statusType == CrnStatusType.WAITING_ONE) { - crnThread.setResetFlag(true); - } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { - crnThread.setResetFlagTwo(true); - } else { - crnThread.setResetFlag(true); - crnThread.setResetFlagTwo(true); - } - } else { - News.error("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 澶辫触锛侊紒锛屽爢鍨涙満鍙�={}", crnThread.getCrnProtocol().getCrnNo()); - } + News.error("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 澶辫触锛侊紒锛屽爢鍨涙満鍙�={}", crnThread.getCrnProtocol().getCrnNo()); } - } + + //} } News.infoNoLog("" + mark + " - 0" + " - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�"); } @@ -1918,7 +1938,7 @@ LocMast loc = null; for (Integer row : rows) { if (Utils.isDeepLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2()); + loc = locMastService.queryFreeLocMast(row, shallowLoc.getBay1(), shallowLoc.getLocType1(), shallowLoc.getLocType2()); if (loc != null) { if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) { String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); @@ -1930,25 +1950,25 @@ } if (null != loc) { //璋冩暣鐨勫師鍥狅細鍙屽伐浣嶇殑鎯呭喌锛�5鍒楋紝鍙兘2鍙峰伐浣嶅彇鏀撅紝34鍒楋紝鍙兘宸ヤ綅1鍙栨斁 - if (shallowLoc.getLocType1() == 1) { - if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { - break; - } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { - if (loc.getBay1() == 3 || loc.getBay1() == 4) { - break; - } - } - loc = null; - } else { - break; - } +// if (shallowLoc.getLocType1() == 1) { +// if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { +// break; +// } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { +// if (loc.getBay1() == 3 || loc.getBay1() == 4) { +// break; +// } +// } +// loc = null; +// } else { + break; + // } } } } if (null == loc) { for (Integer row : rows) { if (Utils.isShallowLoc(slaveProperties, row)) { - loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1(), shallowLoc.getLocType2()); + loc = locMastService.queryFreeLocMast(row, shallowLoc.getBay1(), shallowLoc.getLocType1(), shallowLoc.getLocType2()); if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱 String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo()); @@ -1959,19 +1979,19 @@ } if (null != loc) { - //璋冩暣鐨勫師鍥狅細鍙屽伐浣嶇殑鎯呭喌锛�5鍒楋紝鍙兘2鍙峰伐浣嶅彇鏀撅紝34鍒楋紝鍙兘宸ヤ綅1鍙栨斁 - if (shallowLoc.getLocType1() == 1) { - if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { - break; - } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { - if (loc.getBay1() == 3 || loc.getBay1() == 4) { - break; - } - } - loc = null; - } else { - break; - } +// //璋冩暣鐨勫師鍥狅細鍙屽伐浣嶇殑鎯呭喌锛�5鍒楋紝鍙兘2鍙峰伐浣嶅彇鏀撅紝34鍒楋紝鍙兘宸ヤ綅1鍙栨斁 +// if (shallowLoc.getLocType1() == 1) { +// if (shallowLoc.getBay1() == 5 && loc.getBay1() == 5) { +// break; +// } else if (shallowLoc.getBay1() == 3 || shallowLoc.getBay1() == 4) { +// if (loc.getBay1() == 3 || loc.getBay1() == 4) { +// break; +// } +// } +// loc = null; +// } else { + break; + // } } } } -- Gitblit v1.9.1