From b9bf1e17c9626aa618ee6c28a7764132a57b915f Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期一, 15 七月 2024 15:12:32 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   79 +++++++++++++++++++++------------------
 1 files changed, 42 insertions(+), 37 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 bee58b2..e7b11bc 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1182,69 +1182,74 @@
             throw new CoolException("鍙傛暟锛氬嚭搴撴暟閲� batchNum涓虹┖");
         }
 
+        Mat mat = matService.selectByMatnr(param.getMatnr());
+        if (Cools.isEmpty(mat)){
+            throw new CoolException("鍝佸彿 matnr,璇峰厛涓嬪彂鍩虹妗f锛侊紒锛�");
+        }
+        if (Cools.isEmpty(mat.getUnits())){
+            throw new CoolException("鍝佸彿 matnr,閲嶉噺鑼冨洿鍋忕Щ鍊间负绌猴紒锛侊紒,璇峰厛涓嬪彂鍩虹妗f锛侊紒锛�");
+        }
+
 
         ArrayList<LocDetl> locDetlArrayList = new ArrayList<>();
-        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()).eq("weight", param.getWeight()));
+        Wrapper<LocDetl> wrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr()).eq("weight", param.getWeight());
+        if (param.getDevNo() == 536) {
+            wrapper.eq("model", param.getModel())
+                    .eq("specs", param.getOrderNo());
+        }
+
+        List<LocDetl> locDetls = locDetlService.selectList(wrapper);
         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 (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")){
+                if (locDetlArrayList.size()<param.getBatchNum()) {//涓�
                     locDetlArrayList.add(locDetl);
-                    break;
                 }
             }
         }
+
         if (locDetlArrayList.isEmpty()){
             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)
+        if (locDetlArrayList.size()<batchNum){//涓�
+            Wrapper<LocDetl> locDetlWrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
+                    .lt("weight", param.getWeight() + mat.getUnits())
                     .and()
                     .gt("weight", param.getWeight())
-                    .orderBy("weight",true));
+                    .orderBy("weight", true);
+            if (param.getDevNo() == 536){
+                locDetlWrapper.eq("model", param.getModel())
+                        .eq("specs", param.getOrderNo());
+            }
+            locDetls = locDetlService.selectList(locDetlWrapper);
             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) {//涓�
+                        locDetlArrayList.add(locDetl);
+                    }
                 }
             }
         }
-        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)
+        if (locDetlArrayList.size()<batchNum){//涓�
+            Wrapper<LocDetl> locDetlWrapper = new EntityWrapper<LocDetl>().eq("matnr", param.getMatnr())
+                    .gt("weight", param.getWeight() - mat.getUnits())
                     .and()
                     .lt("weight", param.getWeight())
-                    .orderBy("weight",false));
+                    .orderBy("weight", false);
+            if (param.getDevNo() == 536){
+                locDetlWrapper.eq("model", param.getModel())
+                        .eq("specs", param.getOrderNo());
+            }
+            locDetls = locDetlService.selectList(locDetlWrapper);
 
             if (locDetls.isEmpty()){
                 locDetls = new ArrayList<LocDetl>();
@@ -1252,8 +1257,9 @@
             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) {//涓�
+                        locDetlArrayList.add(locDetl);
+                    }
                 }
             }
         }
@@ -1439,7 +1445,6 @@
         if (!wrkDetlService.insert(wrkDetl)) {
             throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触==銆嬪皬鏂欑鐩翠緵浜х嚎浠诲姟鏄庣粏鐢熸垚");
         }
-
     }
 
     public Integer getStaEnd(Integer staNo){

--
Gitblit v1.9.1