From afdf7d86cffe39c24b55936321bd3b3133adaf40 Mon Sep 17 00:00:00 2001
From: bfwms <1>
Date: 星期六, 29 三月 2025 16:51:23 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/bfasrs6' into bfasrs6

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  141 ++++++++++++++++++++++++----------------------
 1 files changed, 74 insertions(+), 67 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 10640fe..1bd9ff9 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -161,112 +161,118 @@
     public void startupFullTakeStore(StockOutParam param, Long userId) {
         List<StockOutParam.LocDetl> locDetls = new ArrayList<>();
         List<String> locs = new ArrayList<>();
-        List<SameMatCount> sameMatCounts = new ArrayList<>();
-        for (StockOutParam.LocDetl one : param.getLocDetls()) {
+        for(StockOutParam.LocDetl one : param.getLocDetls()){
+            locs.add(one.getLocNo());
+        }
+
+        for (String loc : locs) {
+            List<LocDetl> detls = locDetlService.selectByLocNo(loc);
+            for (LocDetl detl : detls) {
+                for (StockOutParam.LocDetl paramDetls : param.getLocDetls()) {
+                    if (paramDetls.getMatnr().equals(detl.getMatnr()) && paramDetls.getBatch().equals(detl.getBatch()) && paramDetls.getLocNo().equals(detl.getLocNo())) {
+                        locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), paramDetls.getCount()));
+                    }
+                }
+
+            }
+        }
+
+
+        // 鐩爣绔欑偣鐘舵�佹娴�
+        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+        // 鑾峰彇搴撲綅鏄庣粏
+        List<LocDetlDto> locDetlDtos = new ArrayList<>();
+        for (StockOutParam.LocDetl paramLocDetl : locDetls) {
+            if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+                LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
+                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+            }
+        }
+        for (LocDetlDto locDetlDto:locDetlDtos){
+            if (locs.contains(locDetlDto.getLocDetl().getLocNo())){
+                locDetlDto.setSign(true);
+            }
+        }
+        if (!locDetlDtos.isEmpty()) {
+            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
+            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
+                // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
+                stockOut2(staNo, locDetlDtos, null, userId);
+            }else {
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
+            }
+        } else {
+            throw new CoolException("搴撳瓨涓嶅瓨鍦�");
+        }
+    }
+
+    // 澶囦唤涔嬪墠 startupFullTakeStore 鏂规硶
+    @Override
+    @Transactional
+    public void startupFullTakeStore2(StockOutParam param, Long userId) {
+        List<StockOutParam.LocDetl> locDetls = new ArrayList<>();
+        List<String> locs = new ArrayList<>();
+        for(StockOutParam.LocDetl one : param.getLocDetls()){
             locs.add(one.getLocNo());
         }
 
         List<StockOutParam.LocDetl> stockOutParamLocDetlSort = Utils.getStockOutParamLocDetlSort(param.getLocDetls());
         boolean sign = true;
         boolean isfull = false; // 鏄惁澶熸暟閲�
-        //Double isOut = 0.0;
-        Map<String, Double> isOuts = new HashMap<>();
+        Double isOut = 0.0;
         List<String> locNoWeighting = new ArrayList<>();
-        log.info("canshu:{}", stockOutParamLocDetlSort);
         for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) {
-            if (isOuts.get(locDetl.getMatnr()) == null) {
-                isOuts.put(locDetl.getMatnr(), locDetl.getCount());
-            } else {
-                isOuts.put(locDetl.getMatnr(), isOuts.get(locDetl.getMatnr()) + locDetl.getCount());
-            }
-        }
-        log.info("canshu:{}", JSON.toJSONString(isOuts));
-
-        for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) {
-
-//            SameMatCount smc = new SameMatCount();
-//            if (Cools.isEmpty(sameMatCounts)) {
-//                smc.setMatnr(locDetl.getMatnr());
-//                smc.setNeedOutCount(locDetl.getCount());
-//                sameMatCounts.add(smc);
-//            } else {
-//                for (SameMatCount sameMatCount : sameMatCounts) {
-//                    if (sameMatCount.getMatnr().equals(locDetl.getMatnr())) {
-//                        sameMatCount.setNeedOutCount(locDetl.getCount() + sameMatCount.getNeedOutCount());
-//                        //smc.setMatnr(sameMatCount.getMatnr());
-//                        smc.setNeedOutCount(sameMatCount.getNeedOutCount());
-//                    }
-//                }
-//            }
-
-
-            if (Cools.isEmpty(locNoWeighting)) {
+            if (Cools.isEmpty(locNoWeighting)){
                 locNoWeighting.add(locDetl.getLocNo());
-            } else {
-                if (!Utils.getLocNoWeighting(locNoWeighting, locDetl.getLocNo())) {
+            }else {
+                if (!Utils.getLocNoWeighting(locNoWeighting,locDetl.getLocNo())){
                     locNoWeighting.add(locDetl.getLocNo());
                     sign = true;
                 }
             }
-
-            if (sign) {
+            if (sign){
                 LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
                 //鑾峰彇鍚屼竴搴撲綅缁勭殑澶栦晶搴撲綅鍙�
                 List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo());
-                if (locMast.getLocType2().equals((short) 3)) {
+                if (locMast.getLocType2().equals((short)3)){
                     groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locDetl.getLocNo());
                     sign = false;
                 }
                 for (String locNo : groupOuterSingleLoc) {
                     //姣忎釜搴撲綅鐨勫簱浣嶆槑缁�
-                    if (locs.contains(locNo)) continue;
+                    if(locs.contains(locNo)) continue;
                     LocMast mast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo));
-                    if (mast.getLocSts().equals("P") || mast.getLocSts().equals("Q")) {
+                    if (mast.getLocSts().equals("P") || mast.getLocSts().equals("Q")){
                         throw new CoolException("褰撳墠搴撲綅鐨勬祬搴撲綅鐘舵�佷负" + mast.getLocSts() + "鏆備笉鏀寔鍑哄簱锛�");
                     }
                     for (LocDetl detl : locDetlService.selectByLocNo(locNo)) {
                         if (!detl.getMatnr().equals(locDetl.getMatnr())) {
                             //涓嶆槸鐩稿悓鐗╂枡
-                            if (!sign) {
+                            if (!sign){
                                 locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme()));
-                                System.out.println("1");
                             }
                             continue;
                         }
-                        if (!param.getOutSite().equals(214) && !param.getOutSite().equals(114)) {
-                            if (detl.getAnfme() >= isOuts.get(detl.getMatnr())) {
-                                // if (detl.getAnfme() >= locDetl.getCount()) {
-                                locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), isOuts.get(detl.getMatnr())));
-                                System.out.println("2");
-                                //isOut = locDetl.getCount();
+                        if (!param.getOutSite().equals(214) && !param.getOutSite().equals(114)){
+                            if (detl.getAnfme() >= locDetl.getCount()) {
+                                locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), locDetl.getCount()));
+                                isOut = locDetl.getCount();
                                 isfull = true;
                                 break;
                             } else {
                                 locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme()));
-                                isOuts.put(detl.getMatnr(), isOuts.get(detl.getMatnr()) - detl.getAnfme());
-                                System.out.println(isOuts.get(locDetl.getMatnr()));
+                                isOut = detl.getAnfme();
                             }
                         } else {
                             //寮哄埗涓嶆槸鐩稿悓鐗╂枡
                             locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme()));
-//                            System.out.println("4");
                         }
                     }
                 }
             }
-            if (!isfull && isOuts.get(locDetl.getMatnr()) != null && isOuts.get(locDetl.getMatnr()) > 0) {
-                if (locDetl.getCount() >= isOuts.get(locDetl.getMatnr())) {
-                    locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), isOuts.get(locDetl.getMatnr())));
-                    isOuts.put(locDetl.getMatnr(), isOuts.get(locDetl.getMatnr()) - locDetl.getCount());
-//                    System.out.println(23);
-                } else {
-                    locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount()));
-                    isOuts.put(locDetl.getMatnr(), isOuts.get(locDetl.getMatnr()) - locDetl.getCount());
-//                    System.out.println("1222");
-                }
+            if (!isfull) {
 
-
-                //locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount() - isOut));
+                locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount() - isOut));
 //                locDetls.add(locDetl);
             }
         }
@@ -331,6 +337,7 @@
 //        List<StockOutParam.LocDetl> locDetls = param.getLocDetls();
 
 
+
 //        ArrayList<String> locNos = new ArrayList<>();
 //        List<StockOutParam.LocDetl> locDetls = new ArrayList<>();
 //        ArrayList<String> matnrs = new ArrayList<>();//鐩殑鍋氭暟鎹幓閲�
@@ -381,18 +388,18 @@
                 if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
             }
         }
-        for (LocDetlDto locDetlDto : locDetlDtos) {
-            if (locs.contains(locDetlDto.getLocDetl().getLocNo())) {
+        for (LocDetlDto locDetlDto:locDetlDtos){
+            if (locs.contains(locDetlDto.getLocDetl().getLocNo())){
                 locDetlDto.setSign(true);
             }
         }
         if (!locDetlDtos.isEmpty()) {
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
-            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")) {
+            if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
                 // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
                 stockOut2(staNo, locDetlDtos, null, userId);
-            } else {
-                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
+            }else {
+                throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篎銆丏鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$());
             }
         } else {
             throw new CoolException("搴撳瓨涓嶅瓨鍦�");

--
Gitblit v1.9.1