From 0531316b080ca77616387c1f86c0399e6f2d2875 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 08 二月 2023 10:29:00 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OutController.java |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 8cbcbed..0d2ba7d 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -14,11 +14,11 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2022/3/26
@@ -42,6 +42,14 @@
     @Autowired
     private BasDevpService basDevpService;
 
+
+    @PostMapping("/out/pakout/orderDetlIds/auth")
+    @ManagerAuth
+    public R pakoutOrderDetlIds(@RequestParam Long orderId) throws InterruptedException {
+        Thread.sleep(200);
+        return R.ok().add(orderDetlService.selectByOrderId(orderId).stream().map(OrderDetl::getId).distinct().collect(Collectors.toList()));
+    }
+
     @PostMapping("/out/pakout/preview/auth")
     @ManagerAuth
     public R pakoutPreview(@RequestBody List<Long> ids) {
@@ -50,10 +58,13 @@
         }
         List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids);
         List<LocDto> locDtos = new ArrayList<>();
+
+        Set<String> exist = new HashSet<>();
+
         for (OrderDetl orderDetl : orderDetls) {
             double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
             if (issued <= 0.0D) { continue; }
-            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null);
+            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
             for (LocDetl locDetl : locDetls) {
                 if (issued > 0) {
                     LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
@@ -61,6 +72,7 @@
                     List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
                     locDto.setStaNos(staNos);
                     locDtos.add(locDto);
+                    exist.add(locDetl.getLocNo());
                     // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
                     issued = issued - locDetl.getAnfme();
                 } else {

--
Gitblit v1.9.1