From 7205e7bf193621f5eeac1f217604488116a6bff4 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 22 八月 2025 13:36:50 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OutController.java |   48 +++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 37 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index a9f8f5d..52c88b4 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -7,6 +7,7 @@
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.R;
+import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.LocMast;
@@ -270,6 +271,7 @@
             List<LocDetl> locDetls = new ArrayList<>();
             locDetls = locDetlService.queryStockMinAnfme(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
             for (LocDetl locDetl : locDetls) {
+                List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_No", locDetl.getLocNo()));
                 if (issued > 0) {
                     ExistDto existDto = new ExistDto();
                     existDto.setLocNo(locDetl.getLocNo());
@@ -278,7 +280,7 @@
                     if (existDtos.add(existDto)) {
                         LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
                                 issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() && locDetlList.size() ==1? 101 : 103);
                         List<LocDto.staListDto> maps = new ArrayList<>();
                         for (Integer staNo : staNos) {
                             LocDto.staListDto staListDto = new LocDto.staListDto();
@@ -331,6 +333,7 @@
             List<LocDetl> locDetls = new ArrayList<>();
             locDetls = locDetlService.queryStockCrn(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
             for (LocDetl locDetl : locDetls) {
+                List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_No", locDetl.getLocNo()));
                 if (issued > 0) {
                     ExistDto existDto = new ExistDto();
                     existDto.setLocNo(locDetl.getLocNo());
@@ -339,7 +342,7 @@
                     if (existDtos.add(existDto)) {
                         LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
                                 issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
+                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() && locDetlList.size() ==1? 101 : 103);
                         List<LocDto.staListDto> maps = new ArrayList<>();
                         for (Integer staNo : staNos) {
                             LocDto.staListDto staListDto = new LocDto.staListDto();
@@ -383,6 +386,7 @@
             List<LocDetl> locDetls = new ArrayList<>();
             locDetls = locDetlService.queryStockCrn(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
             for (LocDetl locDetl : locDetls) {
+
                 if (issued > 0) {
                     ExistDto existDto = new ExistDto();
                     existDto.setLocNo(locDetl.getLocNo());
@@ -391,15 +395,7 @@
                     if (existDtos.add(existDto)) {
                         LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
                                 issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
-                        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
-                        List<LocDto.staListDto> maps = new ArrayList<>();
-                        for (Integer staNo : staNos) {
-                            LocDto.staListDto staListDto = new LocDto.staListDto();
-                            staListDto.setStaNo(staNo);
-                            staListDto.setStaName(Utils.getStaName(staNo));
-                            maps.add(staListDto);
-                        }
-                        locDto.setStaNos(maps);
+
                         locDtos.add(locDto);
                         // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
                         issued = issued - locDetl.getAnfme();
@@ -408,6 +404,17 @@
                     break;
                 }
             }
+            for (LocDto locDto : locDtos){
+                List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDto.getLocNo(),Judge101or103(locDto,locDtos)? 101 : 103);
+                List<LocDto.staListDto> maps = new ArrayList<>();
+                for (Integer staNo : staNos) {
+                    LocDto.staListDto staListDto = new LocDto.staListDto();
+                    staListDto.setStaNo(staNo);
+                    staListDto.setStaName(Utils.getStaName(staNo));
+                    maps.add(staListDto);
+                }
+                locDto.setStaNos(maps);
+            }
             if (issued > 0) {
                 LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
                 locDto.setLack(Boolean.TRUE);
@@ -416,6 +423,25 @@
         }
         return R.ok().add(locDtos);
     }
+    public boolean Judge101or103(LocDto locDto,List<LocDto> locDtos){
+        List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_No", locDto.getLocNo()));
+        List<LocDto> dtos = locDtos.stream().filter(item -> !Cools.isEmpty(item.getLocNo()) && item.getLocNo().equals(locDto.getLocNo())).collect(Collectors.toList());
+        if (locDetlList.size() != dtos.size()){
+            return false;
+        }
+        boolean is = true;
+        for (LocDto locDto1 :dtos){
+            List<LocDetl> list = locDetlList.stream().filter(item -> item.getLocNo().equals(locDto1.getLocNo()) && item.getBatch().equals(locDto1.getBatch())).collect(Collectors.toList());
+            if (list.size() != 1){
+                throw new CoolException("鍒ゆ柇绔欑偣鏁版嵁閿欒");
+            }
+            if (!locDto1.getAnfme().equals(list.get(0).getAnfme())){
+                is = false;
+            }
+
+        }
+        return is;
+    }
 
 
 

--
Gitblit v1.9.1