From 58cc46141d954e39bfc36d8830fb7a776ea2f98c Mon Sep 17 00:00:00 2001 From: TQS <56479841@qq.com> Date: 星期六, 19 十一月 2022 18:51:30 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 481 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 296 insertions(+), 185 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 ad8937d..ced0825 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -470,13 +470,14 @@ if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) { throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�"); } + LocMast locMast = null; // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣� - LocMast locMast = locMastService.selectById(sourceLocNo); - locMast.setLocSts("O"); - locMast.setModiTime(new Date()); - if (!locMastService.updateById(locMast)) { - throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�"); - } +// locMast = locMastService.selectById(sourceLocNo); +// locMast.setLocSts("O"); +// locMast.setModiTime(new Date()); +// if (!locMastService.updateById(locMast)) { +// throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�"); +// } // 淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴� locMast = locMastService.selectById(wrkMast.getLocNo()); locMast.setLocSts("Q"); @@ -485,9 +486,9 @@ throw new CoolException(wrkMast.getWrkNo() + "淇敼鐩爣搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�"); } // 搴撳瓨鏄庣粏杞Щ - if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) { - throw new CoolException(wrkMast.getWrkNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�"); - } +// if (!locDetlService.updateLocNo(wrkMast.getLocNo(), sourceLocNo)) { +// throw new CoolException(wrkMast.getWrkNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�"); +// } // 鏉$爜璁惧澶勭悊 barcodeThread.setBarcode(""); @@ -534,6 +535,31 @@ } } + } + } + + /** + * 鐩樼偣璐х墿鎶佃揪鐩樼偣鐩爣绔� wrkMast.sourceLoc P ===>> O + */ + public void pickWrkCompleteStaNo() { + List<WrkMast> wrkMasts = wrkMastMapper.selectPick17(null, null); + for (WrkMast wrkMast : wrkMasts) { + // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣� + LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo()); + if (locMast.getLocSts().equals("P")) { + locMast.setLocSts("O"); + locMast.setModiTime(new Date()); + if (!locMastService.updateById(locMast)) { + throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�"); + } + locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo())); + } + // 淇敼宸ヤ綔妗� + wrkMast.setIoPri(13D); + wrkMast.setModiTime(new Date()); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("鏇存柊宸ヤ綔妗g殑浼樺厛绾уけ璐ワ紒锛侊紒 [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo()); + } } } @@ -675,6 +701,14 @@ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); continue; } + + //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔� + WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId()); + if(!Cools.isEmpty(one)){ + log.error("鍏ュ簱 ===>> 瀛樺湪绉诲簱鏈畬鎴愪换鍔★紝涓嶈兘鍏ュ簱銆傜Щ搴撲换鍔″彿={},鍫嗗灈鏈哄彿={}", one.getWrkNo(), slave.getId()); + continue; + } + // 鑾峰彇宸ヤ綔鐘舵�佷负 2,3,4,5,6 鐨勫叆搴撳伐浣滄。 WrkMast wrkMast = wrkMastMapper.selectPakInStep23456(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo()); if(null == wrkMast) { @@ -869,6 +903,23 @@ continue; } + //鍔犲己鍒ゆ柇锛岀‘淇濆洜鍑哄簱瀵艰嚧鐨勭Щ搴撴暣濂椾换鍔″叏閮ㄧ粨鏉熷悗锛屾墠鑳芥墽琛屼笅涓�绗斿嚭搴撲换鍔°�傚彧鏈夊簱浣嶅畬鎴愮Щ搴撳洖鍘诲叏閮ㄤ换鍔″悗锛屾墠璁や负褰撶粍鍑哄簱浠诲姟瀹屾垚 + WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId()); + if(!Cools.isEmpty(one)){ + //瀛樺湪绉诲簱浠诲姟锛屼笖鍦ㄧЩ鍑轰腑锛屼笖绉诲簱婧愬簱浣嶄笌寰呭嚭搴撳簱浣嶄笉鍦ㄥ悓涓�搴撲綅缁勶紝鏃惰烦鍑猴紝纭繚绉诲簱/鍑哄簱鍏ㄥ浠诲姟瀹屾垚鍚庯紝鍐嶆墽琛屼笅涓�绗� + if(one.getWrkSts() > 10 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getSourceLocNo()) + || Utils.getBay(wrkMast.getSourceLocNo()) != Utils.getBay(one.getSourceLocNo()) + || Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(one.getSourceLocNo()))){ + continue; + } + //瀛樺湪绉诲簱浠诲姟锛屼笖鍦ㄧЩ鍥炰腑锛屼笖绉诲簱鐩爣搴撲綅涓庡緟鍑哄簱搴撲綅涓嶅湪鍚屼竴搴撲綅缁勶紝鏃惰烦鍑猴紝纭繚绉诲簱/鍑哄簱鍏ㄥ浠诲姟瀹屾垚鍚庯紝鍐嶆墽琛屼笅涓�绗� + if(one.getWrkSts() < 11 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getLocNo()) + || Utils.getBay(wrkMast.getSourceLocNo()) != Utils.getBay(one.getLocNo()) + || Utils.getLev(wrkMast.getSourceLocNo()) != Utils.getLev(one.getLocNo()))){ + continue; + } + } + //鍑哄簱搴撲綅涓嶆槸鏈�澶栧眰搴撲綅锛屽垽鏂祬搴撲綅缁勬槸鍚﹂兘涓虹┖锛屾垨瀛樺湪搴撲綅绉昏浆浠诲姟 boolean flag = false; if(!locMastService.isOutMost(wrkMast.getSourceLocNo())){ @@ -904,9 +955,12 @@ flag = true; break; } else { - log.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 搴撲綅鐘舵�佸湪搴擄紝浣嗘槸娴呭簱浣嶅凡瀛樺湪宸ヤ綔妗d换鍔★紒鍑哄簱搴撲綅={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo()); - flag = true; - break; + if (waitWrkMast.getWrkSts()!=18) { + log.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 搴撲綅鐘舵�佸湪搴擄紝浣嗘槸娴呭簱浣嶅凡瀛樺湪宸ヤ綔妗d换鍔★紒鍑哄簱搴撲綅={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo()); + flag = true; + break; + } + } } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")){ log.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo()); @@ -1264,6 +1318,11 @@ SteThread steThread = queryIdleCar(wrkMast); if (steThread != null) { if (null == wrkMastMapper.selectPakout(slave.getId(), steNo)) { + // 鏍囪绉诲簱褰撳墠娴佺▼ + wrkMast.setMk("O"); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("鏍囪绉诲簱褰撳墠娴佺▼ I 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } // 璁╁皬杞︾瓑寰呮惉杩愬緟缁� this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getSourceLocNo()); } @@ -1287,43 +1346,54 @@ return; } - //鏌ユ壘搴撲綅 - boolean flag = false; - String[] deeplocs = Utils.getDeepLocs(wrkMast.getSourceLocNo()); - if(!Cools.isEmpty(deeplocs)){ - for(String deepLocNo : deeplocs) { - LocMast deepLoc = locMastService.selectById(deepLocNo); + if (wrkMast.getWrkSts() == 17) { + //鏌ユ壘搴撲綅 + boolean flag = false; + String[] deeplocs = Utils.getDeepLocs(wrkMast.getSourceLocNo()); + if(!Cools.isEmpty(deeplocs)){ + for(String deepLocNo : deeplocs) { + LocMast deepLoc = locMastService.selectById(deepLocNo); // WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(deepLocNo); - if(deepLoc != null && !deepLoc.getLocSts().equals("F") && deepLoc.getLocSts().equals("D") && deepLoc.getLocSts().equals("O")){ - flag = true; - break; - } - if(deepLoc != null && deepLoc.getLocSts().equals("O")){ - //淇敼绉诲簱宸ヤ綔妗� - wrkMast.setSourceLocNo(wrkMast.getLocNo()); - wrkMast.setIoPri((double)9999); - wrkMast.setWrkSts(2L); - wrkMast.setLocNo(deepLocNo); - wrkMast.setSteNo(null); - wrkMast.setModiTime(new Date()); - if (wrkMastMapper.updateById(wrkMast) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + if(deepLoc != null && !deepLoc.getLocSts().equals("F") && !deepLoc.getLocSts().equals("D") && !deepLoc.getLocSts().equals("O")){ + log.error("绉诲簱鍐嶅洖搴撴椂锛屾繁搴撲綅缁勬繁搴撲綅鐘舵�佷负浣滀笟涓� ===>> deepLoc={},loc_sts={}", deepLoc.getLocNo(), deepLoc.getLocSts()); + flag = true; + break; } - - if(deepLoc.getLocSts().equals("O")){ - deepLoc.setLocSts("S"); // S.鍏ュ簱棰勭害 - deepLoc.setModiTime(new Date()); - if (!locMastService.updateById(deepLoc)) { - log.error("鍙屾繁搴撲綅 --- 鏇存柊鐩爣搴撲綅鐘舵�佸け璐ワ紒 寰呯Щ杞祬搴撲綅锛�" + deepLoc.getLocNo()); - throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�"); + if(deepLoc != null && deepLoc.getLocSts().equals("O")){ + //淇敼绉诲簱宸ヤ綔妗� + wrkMast.setSourceLocNo(wrkMast.getLocNo()); + wrkMast.setIoPri((double)9999); + wrkMast.setWrkSts(2L); + wrkMast.setLocNo(deepLocNo); + wrkMast.setSteNo(null); + wrkMast.setModiTime(new Date()); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 17.绉诲簱瀹屾垚 => 2.绉诲簱鍐嶅叆搴撲腑 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); } + + if(deepLoc.getLocSts().equals("O")){ + deepLoc.setLocSts("S"); // S.鍏ュ簱棰勭害 + deepLoc.setModiTime(new Date()); + if (!locMastService.updateById(deepLoc)) { + log.error("鍙屾繁搴撲綅 --- 鏇存柊鐩爣搴撲綅鐘舵�佸け璐ワ紒 寰呯Щ杞祬搴撲綅锛�" + deepLoc.getLocNo()); + throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�"); + } + } + LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo()); + if(sourceLoc.getLocSts().equals("F")){ + sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害 + sourceLoc.setModiTime(new Date()); + if (!locMastService.updateById(sourceLoc)) { + throw new CoolException("鏇存柊绉诲簱鍥炲簱鐩爣搴撲綅鐘舵�佸け璐�"); + } + } + break; } - break; } } - } - if(flag){ - return; + if(flag){ + return; + } } // 鑾峰彇婧愬簱浣嶄俊鎭� @@ -1426,6 +1496,11 @@ if (steThread != null) { // 娌℃湁鍏朵粬浠诲姟 if (null == wrkMastMapper.selectPakin(slave.getId(), steNo)) { + // 鏍囪绉诲簱褰撳墠娴佺▼ + wrkMast.setMk("I"); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("鏍囪绉诲簱褰撳墠娴佺▼ I 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } // 璁╁皬杞︾瓑寰呮惉杩愬緟缁� this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getLocNo()); } @@ -2325,134 +2400,163 @@ } // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚 } -// if (wrkMast.getWrkSts() == 16) { -// Date now = new Date(); -//// if (locMastService.isOutMost(wrkMast.getLocNo())) { -//// // 16.鍚婅溅鍑哄簱涓� ==> 9.鍏ュ簱瀹屾垚 -//// wrkMast.setWrkSts(9L); -//// wrkMast.setCrnEndTime(now); -//// } else { -//// // 16.鍚婅溅鍑哄簱涓� ==> 9.鍏ュ簱瀹屾垚 -//// wrkMast.setWrkSts(9L); -//// } + if (wrkMast.getWrkSts() == 16) { + Date now = new Date(); // if (locMastService.isOutMost(wrkMast.getLocNo())) { -// wrkMast.setWrkSts(17L); -// } -// wrkMast.setModiTime(now); -// // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 -// if (wrkMastMapper.updateById(wrkMast) > 0) { -// // 鍫嗗灈鏈哄浣� -// crnThread.setResetFlag(true); -// } else { -// log.error("淇敼宸ヤ綔妗g姸鎬� 16.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); -// } -// } else if (wrkMast.getWrkSts() == 4) { -// // 4.杩佸叆灏忚溅 ==> 6.灏忚溅寰呭叆 -// wrkMast.setWrkSts(6L); -// Date now = new Date(); -// wrkMast.setCrnEndTime(now); -// wrkMast.setModiTime(now); -// // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 -// if (wrkMastMapper.updateById(wrkMast) > 0) { -// // 鍫嗗灈鏈哄浣� -// crnThread.setResetFlag(true); -// // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰 -// SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkMast.getSteNo()); -// if (!steThread.confirmPos()) { -// log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo()); -// } -// // 绌挎杞﹀幓寰呮満浣� -// BasSte basSte = basSteService.selectById(wrkMast.getSteNo()); -// SteCommand steCommand = new SteCommand(); -// steCommand.setSteNo(wrkMast.getSteNo()); // 绌挎杞︾紪鍙� -// steCommand.setTaskNo(9999); // 宸ヤ綔鍙� -// steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙� -//// steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue()); -//// steCommand.setBay(steProtocol.getBay()); -//// steCommand.setLev(steProtocol.getLev()); -// if (!MessageQueue.offer(SlaveType.Ste, wrkMast.getSteNo(), new Task(2, steCommand))) { -// log.error("绌挎杞﹀緟鏈轰綅鍛戒护涓嬪彂澶辫触锛岀┛姊溅鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getSteNo(), JSON.toJSON(steCommand)); -// } -// } else { -// log.error("淇敼宸ヤ綔妗g姸鎬� 4.杩佸叆灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); -// } -// // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚 -// } else if (wrkMast.getWrkSts() == 7){ -// // 鍒ゆ柇鏄惁闇�瑕佸皬杞﹀叆搴� -// if (locMastService.isOutMost(wrkMast.getLocNo())) { -// // ==> 9.鍏ュ簱瀹屾垚 +// // 16.鍚婅溅鍑哄簱涓� ==> 9.鍏ュ簱瀹屾垚 // wrkMast.setWrkSts(9L); -// Date now = new Date(); // wrkMast.setCrnEndTime(now); -// wrkMast.setModiTime(now); -// // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 -// if (wrkMastMapper.updateById(wrkMast) > 0) { -// // 鍫嗗灈鏈哄浣� -// crnThread.setResetFlag(true); -// } else { -// log.error("淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 9.鍏ュ簱瀹屾垚 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); -// } // } else { -// // 缁欑┛姊溅涓嬪彂鍛戒护 -// Integer steNo = wrkMast.getSteNo(); -// SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); -// SteProtocol steProtocol = steThread.getSteProtocol(); -// if (steProtocol == null) { continue; } -// if (steProtocol.isIdle()) { -// // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- -// SteCommand steCommand = new SteCommand(); -// steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙� -// steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙� -// steCommand.setTaskMode(SteTaskModeType.findInByLoc(wrkMast.getLocNo())); // 浠诲姟妯″紡: 鎼叆搴� -// if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) { -// log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand)); -// } else { -// // 淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 8.灏忚溅鎼叆搴� -// wrkMast.setWrkSts(8L); -// Date now = new Date(); -// wrkMast.setCrnEndTime(now); -// wrkMast.setModiTime(now); -// if (wrkMastMapper.updateById(wrkMast) > 0) { -// // 鍫嗗灈鏈哄浣� -// crnThread.setResetFlag(true); -// } else { -// log.error("淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 8.灏忚溅鎼叆搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); -// } -// } -// } +// // 16.鍚婅溅鍑哄簱涓� ==> 9.鍏ュ簱瀹屾垚 +// wrkMast.setWrkSts(9L); // } -// } else if (wrkMast.getWrkSts() == 13) { -// // 缁欑┛姊溅涓嬪彂鍛戒护 -// Integer steNo = wrkMast.getSteNo(); -// SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); -// SteProtocol steProtocol = steThread.getSteProtocol(); -// if (steProtocol == null) { continue; } -// // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰 -// if (!steThread.confirmPos()) { -// log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo()); -// } -// // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- -// SteCommand steCommand = new SteCommand(); -// steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙� -// steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙� -// steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡: 鎼嚭搴� -// if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) { -// log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand)); -// } else { -// // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� -// wrkMast.setWrkSts(14L); -// Date now = new Date(); -// wrkMast.setCrnEndTime(now); -// wrkMast.setModiTime(now); -// // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 -// if (wrkMastMapper.updateById(wrkMast) > 0) { -// // 鍫嗗灈鏈哄浣� -// crnThread.setResetFlag(true); -// } else { -// log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); -// } -// } -// } + if (locMastService.isOutMost(wrkMast.getLocNo())) { + wrkMast.setWrkSts(17L); + // 榛樿鐩爣搴撲綅鏄┖鏉� + String locSts = "D"; + // 搴撲綅绉昏浆鍒ゆ柇鏄惁涓虹┖鏉跨Щ杞� + if (wrkMast.getEmptyMk().equals("N")) { + locSts = "F"; + // 杞Щ搴撳瓨鏄庣粏鏁版嵁: 搴撳瓨鍙� 鐢卞伐浣滄。婧愬簱浣嶅彉涓虹洰鏍囧簱浣� + if (!locDetlService.updateLocNo(wrkMast.getLocNo(), wrkMast.getSourceLocNo())) { + log.error("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={}],[鐩爣搴撲綅={}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo()); + continue; + } + } + // 淇敼婧愬簱浣嶇姸鎬� ==> O + LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo()); + if (null != sourceLoc) { + sourceLoc.setBarcode(""); + sourceLoc.setLocSts("O"); + sourceLoc.setModiTime(now); + sourceLoc.setIoTime(now); + if (!locMastService.updateById(sourceLoc)) { + log.error("搴撲綅绉昏浆 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={}],[sourceLoc={}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); + } + } + // 淇敼鐩爣搴撲綅鐘舵�� ==> .locSts + LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); + locMast.setLocSts(locSts); + locMast.setModiTime(new Date()); + if (!locMastService.updateById(locMast)) { + log.error(""); + } + } + wrkMast.setModiTime(now); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (wrkMastMapper.updateById(wrkMast) > 0) { + // 鍫嗗灈鏈哄浣� + crnThread.setResetFlag(true); + } else { + log.error("淇敼宸ヤ綔妗g姸鎬� 16.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + } else if (wrkMast.getWrkSts() == 4) { + // 4.杩佸叆灏忚溅 ==> 6.灏忚溅寰呭叆 + wrkMast.setWrkSts(6L); + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (wrkMastMapper.updateById(wrkMast) > 0) { + // 鍫嗗灈鏈哄浣� + crnThread.setResetFlag(true); + // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰 + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, wrkMast.getSteNo()); + if (!steThread.confirmPos()) { + log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo()); + } + // 绌挎杞﹀幓寰呮満浣� + BasSte basSte = basSteService.selectById(wrkMast.getSteNo()); + SteCommand steCommand = new SteCommand(); + steCommand.setSteNo(wrkMast.getSteNo()); // 绌挎杞︾紪鍙� + steCommand.setTaskNo(9999); // 宸ヤ綔鍙� + steCommand.setTaskMode(SteTaskModeType.findWaiting(basSte.getRow())); // 浠诲姟妯″紡: 鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙� +// steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue()); +// steCommand.setBay(steProtocol.getBay()); +// steCommand.setLev(steProtocol.getLev()); + if (!MessageQueue.offer(SlaveType.Ste, wrkMast.getSteNo(), new Task(2, steCommand))) { + log.error("绌挎杞﹀緟鏈轰綅鍛戒护涓嬪彂澶辫触锛岀┛姊溅鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getSteNo(), JSON.toJSON(steCommand)); + } + } else { + log.error("淇敼宸ヤ綔妗g姸鎬� 4.杩佸叆灏忚溅 => 6.灏忚溅寰呭叆 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + // 鍏ュ簱 ===>> 杩佸嚭灏忚溅 瀹屾垚 + } else if (wrkMast.getWrkSts() == 7){ + // 鍒ゆ柇鏄惁闇�瑕佸皬杞﹀叆搴� + if (locMastService.isOutMost(wrkMast.getLocNo())) { + // ==> 9.鍏ュ簱瀹屾垚 + wrkMast.setWrkSts(9L); + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (wrkMastMapper.updateById(wrkMast) > 0) { + // 鍫嗗灈鏈哄浣� + crnThread.setResetFlag(true); + } else { + log.error("淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 9.鍏ュ簱瀹屾垚 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + } else { + // 缁欑┛姊溅涓嬪彂鍛戒护 + Integer steNo = wrkMast.getSteNo(); + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); + SteProtocol steProtocol = steThread.getSteProtocol(); + if (steProtocol == null) { continue; } + if (steProtocol.isIdle()) { + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + SteCommand steCommand = new SteCommand(); + steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙� + steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙� + steCommand.setTaskMode(SteTaskModeType.findInByLoc(wrkMast.getLocNo())); // 浠诲姟妯″紡: 鎼叆搴� + if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) { + log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand)); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 8.灏忚溅鎼叆搴� + wrkMast.setWrkSts(8L); + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + if (wrkMastMapper.updateById(wrkMast) > 0) { + // 鍫嗗灈鏈哄浣� + crnThread.setResetFlag(true); + } else { + log.error("淇敼宸ヤ綔妗g姸鎬� 7.鍚婅溅鍏ュ簱涓� => 8.灏忚溅鎼叆搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + } + } + } + } else if (wrkMast.getWrkSts() == 13) { + // 缁欑┛姊溅涓嬪彂鍛戒护 + Integer steNo = wrkMast.getSteNo(); + SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); + SteProtocol steProtocol = steThread.getSteProtocol(); + if (steProtocol == null) { continue; } + // 绌挎杞﹂噸鏂板畾浣嶆帓鍒楀眰 + if (!steThread.confirmPos()) { + log.error("{}鍙风┛姊溅閲嶆柊瀹氫綅澶辫触锛佷綔涓氬伐浣滄。浠诲姟鍙凤細{}", wrkMast.getSteNo(), wrkMast.getWrkNo()); + } + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + SteCommand steCommand = new SteCommand(); + steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙� + steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙� + steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡: 鎼嚭搴� + if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) { + log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand)); + } else { + // 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� + wrkMast.setWrkSts(14L); + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (wrkMastMapper.updateById(wrkMast) > 0) { + // 鍫嗗灈鏈哄浣� + crnThread.setResetFlag(true); + } else { + log.error("淇敼宸ヤ綔妗g姸鎬� 13.杩佸叆灏忚溅 ==> 14.灏忚溅鎼嚭搴� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo()); + } + } + } } } } @@ -2468,6 +2572,10 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { continue; } + if (steProtocol.getWaiting() && steProtocol.getTaskNo() == 0){ + log.info("ste[id={}] 鏀跺埌绛夊緟WCS纭淇″彿锛屼絾鏄换鍔″彿(鍦板潃V824)涓�0", steProtocol.getSteNo()); + } + if (steProtocol.getWaiting() && steProtocol.getTaskNo() != 0) { log.info("ste[id={}] 鎵ц宸ヤ綔妗e畬鎴愶紝浠诲姟鍙�={}", steProtocol.getSteNo(), steProtocol.getTaskNo()); if (steProtocol.getTaskNo() == 9999) { @@ -2544,23 +2652,23 @@ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉 wrkMast.setWrkSts(12L); } else { -// if (Cools.isEmpty(wrkMast.getMk())) { -// log.error("绉诲簱宸ヤ綔妗f病鏈夋祦绋嬫爣璁帮紒锛侊紝宸ヤ綔鍙�={}", wrkMast.getWrkNo()); -// } else { -// if (wrkMast.getMk().equals("I")) { -// String locNo = wrkMast.getLocNo(); -// if (Utils.getGroupRow(locNo).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(locNo) && steProtocol.getLev() == Utils.getLev(locNo)) { -// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 6.灏忚溅寰呭叆 -// wrkMast.setWrkSts(6L); -// } else { -// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 3.灏忚溅寰呮惉 -// wrkMast.setWrkSts(3L); -// } -// } else if (wrkMast.getMk().equals("O")) { -// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉 -// wrkMast.setWrkSts(12L); -// } -// } + if (Cools.isEmpty(wrkMast.getMk())) { + log.error("绉诲簱宸ヤ綔妗f病鏈夋祦绋嬫爣璁帮紒锛侊紝宸ヤ綔鍙�={}", wrkMast.getWrkNo()); + } else { + if (wrkMast.getMk().equals("I")) { + String locNo = wrkMast.getLocNo(); + if (Utils.getGroupRow(locNo).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(locNo) && steProtocol.getLev() == Utils.getLev(locNo)) { + // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 6.灏忚溅寰呭叆 + wrkMast.setWrkSts(6L); + } else { + // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 3.灏忚溅寰呮惉 + wrkMast.setWrkSts(3L); + } + } else if (wrkMast.getMk().equals("O")) { + // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.灏忚溅寰呮惉 + wrkMast.setWrkSts(12L); + } + } } wrkMast.setModiTime(now); if (wrkMastMapper.updateById(wrkMast) == 0) { @@ -2975,10 +3083,13 @@ List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); wrkDetls.forEach(wrkDetl -> { if (wrkMast.getIoType() == 101) { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getAnfme())); + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getAnfme())); } if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getAnfme())); + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getAnfme())); + } + if (wrkMast.getIoType() == 107) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getAnfme())); } }); } -- Gitblit v1.9.1