From eb96c650d25d9d17ea3c582cd091dbeff9909bf1 Mon Sep 17 00:00:00 2001 From: tqs <56479841@qq.com> Date: 星期五, 23 十二月 2022 08:52:07 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 126 +++++++++++++++++++++++++++++++++--------- 1 files changed, 99 insertions(+), 27 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 44e1231..4ff55ab 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -331,6 +331,7 @@ /** * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱銆愮2闃舵銆� */ + @Transactional public synchronized void stnToCrnStnPick1(){ for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鎷f枡鍏ュ簱鍙� @@ -455,6 +456,7 @@ } String sourceLocNo = wrkMast.getSourceLocNo().trim(); + // 鏇存柊宸ヤ綔妗f暟鎹姸鎬� wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57 wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋 @@ -470,14 +472,8 @@ if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) { throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�"); } + LocMast locMast = null; - // 淇敼婧愬簱浣嶇姸鎬� 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,10 +481,21 @@ if (!locMastService.updateById(locMast)) { 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.getLocNo() + "浠诲姟搴撳瓨鏄庣粏杞Щ澶辫触锛侊紒锛�"); + } + + // 淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣� + LocMast sourceLocMast = locMastService.selectById(sourceLocNo); + if (sourceLocMast.getLocSts().equals("P")) { + sourceLocMast.setLocSts("O"); + sourceLocMast.setModiTime(new Date()); + if (!locMastService.updateById(sourceLocMast)) { + throw new CoolException(wrkMast.getWrkNo() + "淇敼婧愬簱浣嶇姸鎬� O.绌哄簱浣�"); + } + locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", sourceLocNo)); + } // 鏉$爜璁惧澶勭悊 barcodeThread.setBarcode(""); @@ -544,22 +551,85 @@ public synchronized 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())); - } +// // 淇敼婧愬簱浣嶇姸鎬� 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()); } + } + } + + /** + * 鎷f枡/鐩樼偣杞叏鏉垮悗锛�300绔欎换鍔¤浆100/200绔欏幓 + */ + public synchronized void transPickToFullChangeStn() { + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鎷f枡鍑哄簱鍙� + for (DevpSlave.Sta pickSta : devp.getPickOutSta()) { + // 鑾峰彇鎷f枡鍑哄簱绔欎俊鎭� + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + + if (staProtocol.isAutoing() + && staProtocol.isLoading() + && staProtocol.isInEnable() + && staProtocol.getWorkNo() > 0 + && staProtocol.getStaNo().equals(staProtocol.getSiteId().shortValue()) + && staProtocol.isPakMk()){ + WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo()); + if(Cools.isEmpty(wrkMast)){ + log.error("鎷f枡/鐩樼偣杞叏鏉�,浠诲姟鍙峰伐浣滄。涓嶅瓨鍦�===>>[浠诲姟鍙�:{}]", staProtocol.getWorkNo()); + continue; + } + if (wrkMast.getIoType() != 101) { continue; } + + //鎷f枡杞叏鏉块粯璁ゅ嚭搴撶珯100绔欙紝褰�100绔欐湁鐗╂椂锛岀洰鏍囨敼200绔� + Integer staNo = 100; + StaProtocol staProtocol100 = devpThread.getStation().get(staNo); + if (staProtocol100 == null) { + continue; + } else { + staProtocol100 = staProtocol100.clone(); + } + if (staProtocol100.isLoading()) { + staNo = 200; + } + + // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 + staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); + staProtocol.setStaNo(staNo.shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + if (!result) { + log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); + } else { + wrkMast.setStaNo(staNo); + wrkMast.setModiTime(new Date()); + if (wrkMastMapper.updateById(wrkMast) == 0) { + log.error("鏇存柊宸ヤ綔妗g殑鐩爣绔欏け璐ワ紒锛侊紒 [宸ヤ綔鍙�:{}]", wrkMast.getWrkNo()); + } + } + + } + } + + } } @@ -932,13 +1002,13 @@ WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId()); if(!Cools.isEmpty(one)){ //瀛樺湪绉诲簱浠诲姟锛屼笖鍦ㄧЩ鍑轰腑锛屼笖绉诲簱婧愬簱浣嶄笌寰呭嚭搴撳簱浣嶄笉鍦ㄥ悓涓�搴撲綅缁勶紝鏃惰烦鍑猴紝纭繚绉诲簱/鍑哄簱鍏ㄥ浠诲姟瀹屾垚鍚庯紝鍐嶆墽琛屼笅涓�绗� - if(wrkMast.getWrkNo() ==11 && one.getWrkSts() > 10 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getSourceLocNo()) + if(wrkMast.getWrkNo() == 11 && 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(wrkMast.getWrkNo() ==11 && one.getWrkSts() < 11 && (Utils.getGroupRow(wrkMast.getSourceLocNo()) != Utils.getGroupRow(one.getLocNo()) + if(wrkMast.getWrkNo() == 11 && 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; @@ -949,7 +1019,7 @@ boolean flag = false; if(!locMastService.isOutMost(wrkMast.getSourceLocNo())){ WrkMast wrkMastMove = wrkMastMapper.selectLocMoveWorking(slave.getId()); - if(wrkMastMove != null){ + if(wrkMastMove != null && wrkMast.getWrkNo() == 11){ continue; } @@ -1446,7 +1516,7 @@ } } LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo()); - if(sourceLoc.getLocSts().equals("F")){ + if(sourceLoc.getLocSts().equals("F") || sourceLoc.getLocSts().equals("D")){ sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害 sourceLoc.setModiTime(new Date()); if (!locMastService.updateById(sourceLoc)) { @@ -2119,7 +2189,7 @@ SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { return; } - if (steProtocol.isIdle()) { + if (steProtocol.isIdle() && steProtocol.getLoad() == 0) { // 鍫嗗灈鏈虹┖闂� if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) { LocMast locMast; @@ -2198,7 +2268,7 @@ SteProtocol steProtocol = steThread.getSteProtocol(); if (steProtocol == null) { return; } // 绌挎杞︾┖闂� - if (steProtocol.isIdle()) { + if (steProtocol.isIdle() && steProtocol.getLoad() == 0) { // 鍫嗗灈鏈虹┖闂� if (crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() == 0) { @@ -2544,6 +2614,8 @@ log.error("搴撲綅绉昏浆 ===>> 杞Щ搴撳瓨鏄庣粏鏁版嵁澶辫触锛沎婧愬簱浣�={}],[鐩爣搴撲綅={}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo()); continue; } + } else { + locSts = "D"; } if(Cools.isEmpty(locSts)){ log.error("搴撲綅绉昏浆 ===>> 搴撳瓨鐘舵�佷负绌猴紱[婧愬簱浣�={}],[鐩爣搴撲綅={}]", wrkMast.getSourceLocNo(), wrkMast.getLocNo()); -- Gitblit v1.9.1