From e9ad9d2e525ba7693bb088b0b635a3b17b5378ba Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 02 六月 2023 16:52:53 +0800 Subject: [PATCH] 2023.06.02兼容代码,后期库位规则符合要求后可删除(优化) --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 115 ++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 85 insertions(+), 30 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 3c0d63a..da84811 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -161,40 +161,90 @@ 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()); + List<String> outerSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo()); + outerSingleLoc.add(locDetl.getLocNo()); + boolean flag = false; + Double useCount = 0D; + for (String locNo : outerSingleLoc) { + for (LocDetl locDetl0 : locDetlService.selectByLocNo(locNo)) { + if (!locDetl0.getMatnr().equals(locDetl.getMatnr())) { + //涓嶆槸鐩稿悓鐗╂枡 + continue; + } + double lastCount = locDetl.getCount() - useCount;//鍓╀綑鎵�闇�鏁伴噺 + double realCount = 0;//瀹為檯鎻愪緵鏁伴噺 + if (locDetl0.getAnfme() >= lastCount) {//瀹為檯鏁伴噺澶т簬鎵�闇�鏁伴噺锛屾寜鎵�闇�鏁伴噺鎻愪緵 + realCount = lastCount; + } else { + //瀹為檯灏忎簬鎵�闇�鏁伴噺锛屾寜瀹為檯鏁伴噺鎻愪緵 + realCount = locDetl0.getAnfme(); + } + useCount += realCount;//宸蹭娇鐢ㄧ殑鏁伴噺 - //1.鏍规嵁鐗╂枡鍙峰厛鎼滅储楂橀鍖哄煙鏄惁鏈夊簱瀛� - List<StockOutParam.LocDetl> locNoStep1 = this.findLocNoStep1(locDetl); - if (locNoStep1 != null) { - locDetls.addAll(locNoStep1); - continue; + locDetls.add(new StockOutParam.LocDetl(locDetl0.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), realCount)); + flag = true; + if (useCount >= locDetl.getCount()) { + //鎵惧埌鐨勫簱瀛� >= 鎵�闇�搴撳瓨锛屾弧瓒虫潯浠� + break; + } } - - //楂橀娣锋斁鍖哄煙娌℃湁婊¤冻鐨勫簱浣嶏紝鍦ㄥ崟鍝佸尯鍩熻繘琛屾悳绱� - 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; - } - } + + if (!flag) { + locDetls.add(locDetl); + } + } - for (StockOutParam.LocDetl locDetl : locDetls) { - if (!locNos.contains(locDetl.getLocNo())) { - locNos.add(locDetl.getLocNo()); - } - } +// ArrayList<String> locNos = new ArrayList<>(); +// 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); @@ -403,9 +453,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; } -- Gitblit v1.9.1