From b453fa6c987210616dfab066cc097cf9f742999e Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 25 十月 2024 09:24:29 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   41 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 36 insertions(+), 5 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 d6ee4b8..528ac3f 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -170,6 +170,8 @@
 
         List<StockOutParam.LocDetl> stockOutParamLocDetlSort = Utils.getStockOutParamLocDetlSort(param.getLocDetls());
         boolean sign = true;
+        boolean isfull = false; // 鏄惁澶熸暟閲�
+        Double isOut = 0.0;
         List<String> locNoWeighting = new ArrayList<>();
         for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) {
             if (Cools.isEmpty(locNoWeighting)){
@@ -191,6 +193,10 @@
                 for (String locNo : groupOuterSingleLoc) {
                     //姣忎釜搴撲綅鐨勫簱浣嶆槑缁�
                     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")){
+                        throw new CoolException("褰撳墠搴撲綅鐨勬祬搴撲綅鐘舵�佷负" + mast.getLocSts() + "鏆備笉鏀寔鍑哄簱锛�");
+                    }
                     for (LocDetl detl : locDetlService.selectByLocNo(locNo)) {
                         if (!detl.getMatnr().equals(locDetl.getMatnr())) {
                             //涓嶆槸鐩稿悓鐗╂枡
@@ -199,11 +205,28 @@
                             }
                             continue;
                         }
-                        locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme()));
+                        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()));
+                                isOut = detl.getAnfme();
+                            }
+                        } else {
+                            //寮哄埗涓嶆槸鐩稿悓鐗╂枡
+                            locDetls.add(new StockOutParam.LocDetl(detl.getLocNo(), detl.getMatnr(), detl.getBatch(), detl.getAnfme()));
+                        }
                     }
                 }
             }
-            locDetls.add(locDetl);
+            if (!isfull) {
+
+                locDetls.add(new StockOutParam.LocDetl(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(), locDetl.getCount() - isOut));
+//                locDetls.add(locDetl);
+            }
         }
         //鍑哄簱鏃讹紝濡傛灉褰撳墠搴撲綅缁勬湁鐩稿悓鐨勭墿鏂欙紝鍒欏厛鍑哄渚х墿鏂� 6.30鏃� 娉ㄩ噴
         //for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
@@ -794,8 +817,17 @@
             if (locNos.contains(locNo)) {
                 for (OutLocDto dto : dtos) {
                     if (dto.getLocNo().equals(locNo)) {
-                        dto.getLocDetlDtos().add(locDetlDto);
-                        break;
+                        boolean signDto = false;
+                        for (LocDetlDto locDetlDto1 : dto.getLocDetlDtos()){
+                            if (locDetlDto1.getLocDetl().getBatch().equals(locDetlDto.getLocDetl().getBatch())
+                                    && locDetlDto1.getLocDetl().getMatnr().equals(locDetlDto.getLocDetl().getMatnr())){
+                                signDto = true;
+                            }
+                        }
+                        if (!signDto){
+                            dto.getLocDetlDtos().add(locDetlDto);
+                            break;
+                        }
                     }
                 }
             } else {
@@ -813,7 +845,6 @@
                     continue;
                 }
             }
-
             //-----------------2023.5.31涓婃灦鍖哄煙鐗堟湰鍏煎浠g爜-----------------------
             //鍒ゆ柇褰撳墠搴撲綅缁勬槸鍚﹀潎涓哄悓涓�绉嶇墿鏂欙紝濡備笉鏄紝鍒欒瀹氶渶瑕佹墽琛屽吋瀹逛唬鐮�
             //闇�瑕佸皢寰呭嚭搴撳簱浣嶅墠渚у簱浣�(涓嶅寘鍚渶澶栦晶楂橀搴撲綅)鎵ц101鍏ㄦ澘鍑哄簱

--
Gitblit v1.9.1