From e666ab89158593e0ab2e44d6e61a2a3a4f8210b2 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 02 六月 2023 14:47:22 +0800 Subject: [PATCH] 随机可用堆垛机号 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 108 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 72 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 89db0a0..45a92f5 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -160,41 +160,48 @@ @Transactional public void startupFullTakeStore(StockOutParam param, Long userId) { ArrayList<String> locNos = new ArrayList<>(); - List<StockOutParam.LocDetl> locDetls = new ArrayList<>(); - ArrayList<String> matnrs = new ArrayList<>();//鐩殑鍋氭暟鎹幓閲� - for (StockOutParam.LocDetl locDetl : param.getLocDetls()) { - if (!matnrs.contains(locDetl.getMatnr())) { - matnrs.add(locDetl.getMatnr()); - - //1.鏍规嵁鐗╂枡鍙峰厛鎼滅储楂橀鍖哄煙鏄惁鏈夊簱瀛� - List<StockOutParam.LocDetl> locNoStep1 = this.findLocNoStep1(locDetl); - if (locNoStep1 != null) { - locDetls.addAll(locNoStep1); - continue; - } - - //楂橀娣锋斁鍖哄煙娌℃湁婊¤冻鐨勫簱浣嶏紝鍦ㄥ崟鍝佸尯鍩熻繘琛屾悳绱� - List<StockOutParam.LocDetl> locNoStep2 = this.findLocNoStep2(locDetl); - if (locNoStep2 != null) { - locDetls.addAll(locNoStep2); - continue; - } - - //浣庨娣锋斁鍖哄煙杩涜鎼滅储 - List<StockOutParam.LocDetl> locNoStep3 = this.findLocNoStep3(locDetl); - if (locNoStep3 != null) { - locDetls.addAll(locNoStep3); - continue; - } - - } - } - - for (StockOutParam.LocDetl locDetl : locDetls) { - if (!locNos.contains(locDetl.getLocNo())) { + for (StockOutParam.LocDetl locDetl:param.getLocDetls()){ + if (!locNos.contains(locDetl.getLocNo())){ locNos.add(locDetl.getLocNo()); } } + List<StockOutParam.LocDetl> locDetls = param.getLocDetls(); +// ArrayList<String> locNos = new ArrayList<>(); +// List<StockOutParam.LocDetl> locDetls = new ArrayList<>(); +// ArrayList<String> matnrs = new ArrayList<>();//鐩殑鍋氭暟鎹幓閲� +// for (StockOutParam.LocDetl locDetl : param.getLocDetls()) { +// if (!matnrs.contains(locDetl.getMatnr())) { +// matnrs.add(locDetl.getMatnr()); +// +// //1.鏍规嵁鐗╂枡鍙峰厛鎼滅储楂橀鍖哄煙鏄惁鏈夊簱瀛� +// List<StockOutParam.LocDetl> locNoStep1 = this.findLocNoStep1(locDetl); +// if (locNoStep1 != null) { +// locDetls.addAll(locNoStep1); +// continue; +// } +// +// //楂橀娣锋斁鍖哄煙娌℃湁婊¤冻鐨勫簱浣嶏紝鍦ㄥ崟鍝佸尯鍩熻繘琛屾悳绱� +// List<StockOutParam.LocDetl> locNoStep2 = this.findLocNoStep2(locDetl); +// if (locNoStep2 != null) { +// locDetls.addAll(locNoStep2); +// continue; +// } +// +// //浣庨娣锋斁鍖哄煙杩涜鎼滅储 +// List<StockOutParam.LocDetl> locNoStep3 = this.findLocNoStep3(locDetl); +// if (locNoStep3 != null) { +// locDetls.addAll(locNoStep3); +// continue; +// } +// +// } +// } +// +// for (StockOutParam.LocDetl locDetl : locDetls) { +// if (!locNos.contains(locDetl.getLocNo())) { +// locNos.add(locDetl.getLocNo()); +// } +// } // //妫�娴嬫彁浜ょ殑鍑哄簱搴撲綅鏄惁鍚堟硶(娴呭簱浣嶆湁闈炵┖搴撲綅) // Utils.checkStockOutLocNo(locNos); @@ -245,7 +252,14 @@ if (locDetls1.size() == 0) {//鍐呬晶搴撲綅娌℃湁鐩稿悓鐨勭墿鏂欙紝璺宠繃 continue; } - + int locRow = Utils.getRow(locDetl0.getLocNo()); + switch (locRow) { + case 3: + case 11: + case 18: + Collections.reverse(locDetls1); + break; + } for (LocDetl detl : locDetls1) { double lastCount = locDetl.getCount() - useCount;//鍓╀綑鎵�闇�鏁伴噺 double realCount = 0;//瀹為檯鎻愪緵鏁伴噺 @@ -302,7 +316,7 @@ double realCount = 0;//瀹為檯鎻愪緵鏁伴噺 if (locDetl0.getAnfme() >= lastCount) {//瀹為檯鏁伴噺澶т簬鎵�闇�鏁伴噺锛屾寜鎵�闇�鏁伴噺鎻愪緵 realCount = lastCount; - }else { + } else { //瀹為檯灏忎簬鎵�闇�鏁伴噺锛屾寜瀹為檯鏁伴噺鎻愪緵 realCount = locDetl0.getAnfme(); } @@ -314,6 +328,9 @@ return locDetlList; } } + + //搴撳瓨鏁伴噺涓嶆弧瓒� + throw new CoolException("鍗曞搧鍖哄煙鍙湁" + useCount + "涓揣鐗�"); } return null; @@ -393,9 +410,14 @@ } } - List<String> outerLoc = Utils.getGroupOuterSingleLoc(locNo); + List<String> outerLocs = Utils.getGroupOuterSingleLoc(locNo); Double wrkPri = 15D; - for (LocMast locMast : locMastService.selectByLocNos(outerLoc)) { + for (String outerLoc : outerLocs) { + LocMast locMast = locMastService.selectById(outerLoc); + if (locMast == null) { + continue; + } + if (!locMast.getLocSts().equals("F")) { continue; } @@ -457,6 +479,7 @@ wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); wrkDetl.setSpecs(locDetl.getSpecs()); + wrkDetl.setMatType(locDetl.getMatType()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } @@ -489,6 +512,15 @@ assert ioType != null; // 鑾峰彇搴撲綅 LocMast locMast = locMastService.selectById(dto.getLocNo()); + + //-----------------2023.6.2鍑哄簱鍏煎浠g爜----------------------- + List<LocDetl> locDetls = locDetlService.selectByLocNo(locMast.getLocNo()); + if (locMast.getLocType2() == 1 && locDetls.size() > 1) { + //鍗曞搧鍖哄煙鍑哄簱鐗╂枡澶т簬1绉嶏紝寮哄埗鍙樻垚101鍏ㄦ澘鍑哄簱 + ioType = 101; + } + //-----------------2023.6.2鍑哄簱鍏煎浠g爜end----------------------- + // 鑾峰彇璺緞 StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), staNo.getDevNo(), locMast.getRow1()); if(staDesc == null){ @@ -540,6 +572,7 @@ wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); wrkDetl.setSpecs(detlDto.getLocDetl().getSpecs()); + wrkDetl.setMatType(detlDto.getLocDetl().getMatType()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } @@ -626,6 +659,7 @@ wrkDetl.setAppeUser(userId); wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); + wrkDetl.setMatType(locDetl.getMatType()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } @@ -948,6 +982,7 @@ wrkDetl.setAppeUser(userId); wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); + wrkDetl.setMatType(locDetl.getMatType()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } @@ -1437,6 +1472,7 @@ wrkDetl.setAppeUser(9527L); wrkDetl.setModiTime(now); wrkDetl.setModiUser(9527L); + wrkDetl.setMatType(locDetl.getMatType()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } -- Gitblit v1.9.1