From 3ad49e3f281d52edd7f121a398b93b408251811d Mon Sep 17 00:00:00 2001 From: LSH Date: 星期三, 02 八月 2023 15:17:41 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 135 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 112 insertions(+), 23 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 debb4c3..fc57a64 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -241,6 +241,22 @@ String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒"; MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); } + } else if (code == 1000){ + if (inSta.getStaNo().equals(103)){ + staProtocol.setWorkNo((short)9999); + staProtocol.setStaNo((short)203); + }else { + staProtocol.setWorkNo((short)9999); + staProtocol.setStaNo((short)103); + } + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + // led 寮傚父鏄剧ず + if (ledThread != null) { + String errorMsg = barcode + "闇�瑕佹崲鍏ュ簱绔欍�傜洰鏍囩珯锛�"+staProtocol.getStaNo(); + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } } } catch (Exception e) { e.printStackTrace(); @@ -336,8 +352,6 @@ staNo = 103; if (basDevps1.size()!=0 && basDevps2.size()!=0){ continue; - } else if (basDevps1.size()!=0){ - staNo = 203; } List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType((int)staNo); @@ -360,8 +374,6 @@ staNo = 203; if (basDevps1.size()!=0 && basDevps2.size()!=0){ continue; - } else if (basDevps2.size()!=0){ - staNo = 103; } // if (basDevps2.size()!=0){ @@ -391,9 +403,17 @@ staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(staNo); devpThread.setPakMk(staProtocol.getSiteId(), false); + if (staProtocol.getStaNo().equals(300)){ + BasDevp basDevp = basDevpMapper.selectByDevNo(300); + basDevp.setWrkNo1(wrkMast.getWrkNo()); + basDevpService.selectById(basDevp); + News.info("300绔欏幓鍏ュ簱绔欎换鍔′笅鍙戯紝鏇存柊绔欑偣琛紝[浠诲姟鍙�:{}锛岀珯鐐瑰彿:{}]", wrkMast.getWrkNo().shortValue(), staNo); + } boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); + } else { + News.info("300绔欏幓鍏ュ簱绔欎换鍔″凡涓嬪彂锛孾浠诲姟鍙�:{}锛岀珯鐐瑰彿:{}]", wrkMast.getWrkNo().shortValue(), staNo); } } } @@ -492,6 +512,15 @@ .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿 StaDesc staDesc = staDescService.selectOne(wrapper); if (Cools.isEmpty(staDesc)) { + // led 寮傚父鏄剧ず + String errorMsg = ""; + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed()); + if (wrkMast.getIoType() == 103) { + errorMsg = "褰撳墠鎷f枡浠诲姟璇风Щ鍔ㄨ嚦203绔�"; + } else { + errorMsg = "褰撳墠鎷f枡浠诲姟璇风Щ鍔ㄨ嚦103绔�"; + } + if (ledThread != null) {MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));} News.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo()); continue; } @@ -561,6 +590,11 @@ staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); + if (staProtocol.getStaNo().equals(300)){ + BasDevp basDevp = basDevpMapper.selectByDevNo(300); + basDevp.setWrkNo1(wrkMast.getWrkNo()); + basDevpService.selectById(basDevp); + } boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); if (!result) { News.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); @@ -940,10 +974,16 @@ continue; } - // 鍏ュ簱娣卞簱浣嶆槸鍚︽湁闈濬銆丏銆乆搴撲綅杩涜鏍¢獙 + // 鍏ュ簱娣卞簱浣嶆槸鍚︽湁闈濬銆丏銆乆搴撲綅杩涜鏍¢獙 锛� Q銆丳銆丷銆丼锛� if (wrkMastMapper.selectShallowLoc(Integer.parseInt(wrkMast.getLocNo().substring(0, 2)),Integer.parseInt(wrkMast.getLocNo().substring(2, 5)),Integer.parseInt(wrkMast.getLocNo().substring(5, 7)))!=null){ - continue; + //妫�鏌ュ叆搴撳簱浣嶆槸鍚︽槸鍦ㄥ爢鍨涙満杈瑰簱浣� + ArrayList<Integer> outLoc = new ArrayList<>(); + outLoc.add(3);outLoc.add(4);outLoc.add(11);outLoc.add(12);outLoc.add(18);outLoc.add(19); + if (!outLoc.contains(Integer.parseInt(wrkMast.getLocNo().substring(0, 2)))) { + continue; + } } + //鍔犲己鍒ゆ柇锛屽彧瑕佸瓨鍦ㄧЩ搴撲换鍔★紝璇存槑鍑哄簱浠诲姟鏈畬鍏ㄧ粨鏉燂紝涓嶆墽琛屽叆搴撲换鍔� WrkMast one = wrkMastMapper.selectLocMoveData(slave.getId()); @@ -993,18 +1033,22 @@ } } - } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) { - News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo()); +// } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) { +// News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo()); +// flag = true; +// break; + } else if (shallowLoc.getLocSts().equals("R") || shallowLoc.getLocSts().equals("P")) { + News.error("搴撲綅鍑哄簱鍒板爢鍨涙満绔� ===>> 搴撲綅鐘舵�佸湪搴擄紝浣嗘槸娴呭簱浣嶅凡瀛樺湪宸ヤ綔妗d换鍔★紒鍑哄簱搴撲綅={},娴呭簱浣嶅彿={}", shallowLoc.getLocNo()); flag = true; break; } - //20230307 ADD锛屽啀鍔犱竴娆″垽鏂紝褰撴祬搴撲綅鐘舵�佷笉涓篛鏃讹紝涓嶆墽琛屽綋鍓嶅嚭搴撲换鍔� - if (shallowLoc != null && !shallowLoc.getLocSts().equals("O")) { - News.error("鍋氫簡娴呭簱浣嶉樆濉炲鐞嗗悗鍙嶅鍒ゆ柇锛屾祬搴撲綅鐘舵�佷笉涓篛 ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo()); - flag = true; - break; - } +// //20230307 ADD锛屽啀鍔犱竴娆″垽鏂紝褰撴祬搴撲綅鐘舵�佷笉涓篛鏃讹紝涓嶆墽琛屽綋鍓嶅嚭搴撲换鍔� +// if (shallowLoc != null && !shallowLoc.getLocSts().equals("O")) { +// News.error("鍋氫簡娴呭簱浣嶉樆濉炲鐞嗗悗鍙嶅鍒ゆ柇锛屾祬搴撲綅鐘舵�佷笉涓篛 ===>> 娴呭簱浣嶅簱浣嶇姸鎬佷负鍏ュ簱棰勭害锛佸嚭搴撳簱浣�={},娴呭簱浣嶅彿={}", wrkMast.getSourceLocNo(), shallowLoc.getLocNo()); +// flag = true; +// break; +// } } } } @@ -1194,6 +1238,10 @@ } // 鍫嗗灈鏈烘惉杩愬皬杞� if (wrkMast.getWrkSts() == 3L) { + if (Cools.isEmpty(wrkMast.getSteNo()) || wrkMast.getSteNo()==0){ + News.error("宸ヤ綔鍙�={}鍗冲皢寮�濮嬫惉杩愬皬杞︿絾鏄伐浣滄。娌℃湁灏忚溅鍙�",wrkMast.getWrkNo()); + return false; + } this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol); } } @@ -1316,12 +1364,25 @@ News.error("搴撲綅寮傚父"); }else { if (waitWrkMast.getIoType() != 11 || waitWrkMast.getWrkSts() != 17){ - waitWrkMast.setIoPri((double)9999); + if(waitWrkMast.getIoPri()<=9980.0){ + waitWrkMast.setIoPri(waitWrkMast.getIoPri()+10.0); + }else { + waitWrkMast.setIoPri(9999d); + } + if (wrkMast.getIoPri()>23.0){ + wrkMast.setIoPri(wrkMast.getIoPri()-10.0); + }else { + wrkMast.setIoPri(13.0d); + } + if (wrkMastMapper.updateById(wrkMast)==0){ + News.error("璋冩暣浼樺厛绾уけ璐�"); + } if (wrkMastMapper.updateById(waitWrkMast)==0){ News.error("璋冩暣浼樺厛绾уけ璐�"); }else if (waitWrkMast.getWrkSts() != 17){ flag = true; } + break; } } @@ -1553,6 +1614,10 @@ } // 鍫嗗灈鏈烘惉杩愬皬杞� if (wrkMast.getWrkSts() == 12L) { + if (Cools.isEmpty(wrkMast.getSteNo()) || wrkMast.getSteNo()==0) { + News.error("宸ヤ綔鍙�={}鍗冲皢寮�濮嬫惉杩愬皬杞︿絾鏄伐浣滄。娌℃湁灏忚溅鍙�",wrkMast.getWrkNo()); + return false; + } this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol); } } @@ -2451,6 +2516,10 @@ } // 鍫嗗灈鏈烘惉杩愬皬杞� if (wrkMast.getWrkSts() == 12L) { + if (Cools.isEmpty(wrkMast.getSteNo()) || wrkMast.getSteNo()==0) { + News.error("宸ヤ綔鍙�={}鍗冲皢寮�濮嬫惉杩愬皬杞︿絾鏄伐浣滄。娌℃湁灏忚溅鍙�",wrkMast.getWrkNo()); + return; + } this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol); } } @@ -3395,6 +3464,10 @@ switch (wrkMast.getWrkSts().intValue()) { case 2: // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉 + if (Cools.isEmpty(wrkMast.getSteNo()) || wrkMast.getSteNo()==0){ + News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.灏忚溅寰呮惉 澶辫触锛侊紒锛屽伐浣滃彿={} 鍘熷洜锛氬伐浣滃彿娌″皬杞�", wrkMast.getWrkNo()); + break; + } wrkMast.setWrkSts(3L); wrkMast.setModiTime(now); if (wrkMastMapper.updateById(wrkMast) == 0) { @@ -3873,15 +3946,24 @@ ledCommand.setBarcode(wrkMast.getBarcode()); if (wrkMast.getIoType() != 110) { List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); + wrkDetls.forEach(wrkDetl -> { + Double total = 0.0; + EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); + LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); + if (Cools.isEmpty(locDetl)) { + total = wrkDetl.getAnfme(); + } else { + total = locDetl.getAnfme(); + } if (wrkMast.getIoType() == 101) { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme())); + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); } if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme())); + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); } if (wrkMast.getIoType() == 107) { - ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme())); + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); } }); } @@ -4323,15 +4405,21 @@ || Utils.getBay(one.getLocNo()) != Utils.getBay(shallowLoc.getLocNo()) || Utils.getLev(one.getLocNo()) != Utils.getLev(shallowLoc.getLocNo())){ - Integer steNo = this.hasCarOfIdle(one.getLocNo()); + Integer steNo = this.hasCar(one.getLocNo()); if (steNo != null) { //鏈夊皬杞� continue; } - //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆 - if (Utils.checkInsideLocIsDFX(one.getLocNo())) { - //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣� +// //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆 +// if (Utils.checkInsideLocIsDFX(one.getLocNo())) { +// //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆備笉鑳介�夊彇璇ュ簱浣� +// continue; +// } + + //妫�娴嬪綋鍓嶅簱浣嶅唴渚у叾浠栧簱浣嶆槸鍚︿负D銆丗銆乆銆丱 + if (Utils.checkInsideLocIsDFXO(one.getLocNo())) { + //鍐呬晶鍏朵粬搴撲綅涓嶆槸D銆丗銆乆銆丱銆備笉鑳介�夊彇璇ュ簱浣� continue; } @@ -4342,7 +4430,8 @@ if (null == loc) { News.error("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); - throw new CoolException("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); +// return; +// throw new CoolException("娣卞簱浣嶅嚭搴� --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo()); } // 鑾峰彇宸ヤ綔鍙� -- Gitblit v1.9.1