From 276878563d3f2ce73ad16f4150e7b40a8e62f499 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期一, 15 七月 2024 14:42:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   73 +++++++++++++++++++++++++++++++++++-
 1 files changed, 71 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 25784b6..bee58b2 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1178,7 +1178,10 @@
             throw new CoolException("鍙傛暟锛氬搧鍙� matnr涓虹┖");
         }else if (Cools.isEmpty(param.getWeight())){
             throw new CoolException("鍙傛暟锛氱墿鏂欓噸閲� wright涓虹┖");
+        }else if (Cools.isEmpty(param.getBatchNum())){
+            throw new CoolException("鍙傛暟锛氬嚭搴撴暟閲� batchNum涓虹┖");
         }
+
 
         ArrayList<LocDetl> locDetlArrayList = new ArrayList<>();
         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()).eq("weight", param.getWeight()));
@@ -1192,13 +1195,79 @@
                 break;
             }
         }
+
+        if (param.getDevNo() == 536){
+            locDetlArrayList = new ArrayList<>();
+            locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
+                    .eq("weight", param.getWeight())
+                    .eq("specs", param.getOrderNo())
+                    .eq("model", param.getTaskNo()));
+            if (locDetls.isEmpty()){
+                locDetls = new ArrayList<LocDetl>();
+            }
+            for (LocDetl locDetl:locDetls){
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                if (locMast.getLocSts().equals("F")){
+                    locDetlArrayList.add(locDetl);
+                    break;
+                }
+            }
+        }
         if (locDetlArrayList.isEmpty()){
-            throw new CoolException("鏈壘鍒扮鍚堟潯浠剁殑鐗╂枡鏄庣粏锛氬搧鍙�==銆媘atnr:"+param.getMatnr()+"锛涢噸閲�==銆媤right:"+param.getWeight()+"锛涢鑹�==銆媍olor:"+param.getColor());
+            throw new CoolException("鏈壘鍒扮鍚堟潯浠剁殑鐗╂枡鏄庣粏锛氬搧鍙�==銆媘atnr:"+param.getMatnr()+"锛涢噸閲�==銆媤right:"+param.getWeight());
+        }
+        Integer batchNum = param.getBatchNum();
+        if (locDetlArrayList.size()<batchNum){//涓�5
+            locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
+                    .eq("specs", param.getOrderNo())
+                    .eq("model", param.getTaskNo())
+                    .lt("weight", param.getWeight()+5)
+                    .and()
+                    .gt("weight", param.getWeight())
+                    .orderBy("weight",true));
+            if (locDetls.isEmpty()){
+                locDetls = new ArrayList<LocDetl>();
+            }
+            for (LocDetl locDetl:locDetls){
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                if (locMast.getLocSts().equals("F")){
+                    locDetlArrayList.add(locDetl);
+                    break;
+                }
+            }
+        }
+        if (locDetlArrayList.size()<batchNum){//涓�5
+            locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
+
+                    .eq("specs", param.getOrderNo())
+                    .eq("model", param.getTaskNo())
+                    .gt("weight", param.getWeight()-5)
+                    .and()
+                    .lt("weight", param.getWeight())
+                    .orderBy("weight",false));
+
+            if (locDetls.isEmpty()){
+                locDetls = new ArrayList<LocDetl>();
+            }
+            for (LocDetl locDetl:locDetls){
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                if (locMast.getLocSts().equals("F")){
+                    locDetlArrayList.add(locDetl);
+                    break;
+                }
+            }
+        }
+
+        if (locDetlArrayList.size()<batchNum){
+            throw new CoolException("搴撳瓨鏁伴噺:"+locDetlArrayList.size()+"锛涘皬浜庨渶姹傛暟閲�:"+param.getBatchNum());
         }
         for (LocDetl locDetl : locDetlArrayList){
+            if (batchNum <= 0){
+                return;
+            }
             StockOutParam stockOutParam = new StockOutParam(param,locDetl);
             workService.startupFullTakeStore(stockOutParam, userId);
-            return;
+            batchNum --;
         }
     }
 

--
Gitblit v1.9.1