From e012a72a5660566d698c93ca4f29b6e5ffe997b0 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 29 十月 2025 16:47:35 +0800
Subject: [PATCH] 3077,3106只有合格能出,2041 只有待判能出
---
 src/main/java/com/zy/asrs/controller/OutController.java |   60 ++++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 44 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 81a5510..c6eb583 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -83,12 +83,22 @@
             return R.parse("璁㈠崟鏁版嵁涓虹┖");
         }
 
-        // 鎸夊寘瑁呯粍鍙峰垎缁勫鐞�
-        Map<String, List<OrderDetl>> brandGroup = orderDetls.stream()
-                .collect(Collectors.groupingBy(o -> {
-                    String brand = o.getBrand();
-                    return brand != null ? brand : "璺ㄥ贩閬�";
-                }));
+        Map<String, List<OrderDetl>> brandGroup;
+        if (order.getDocType() == 27) {
+            // 鎸夊寘瑁呯粍鍙峰垎缁勫鐞�
+            brandGroup = orderDetls.stream()
+                    .collect(Collectors.groupingBy(o -> {
+                        String brand = o.getModel();
+                        return brand != null ? brand : "璺ㄥ贩閬�";
+                    }));
+        } else {
+            // 鎸夊寘瑁呯粍鍙峰垎缁勫鐞�
+            brandGroup = orderDetls.stream()
+                    .collect(Collectors.groupingBy(o -> {
+                        String brand = o.getBrand();
+                        return brand != null ? brand : "璺ㄥ贩閬�";
+                    }));
+        }
 
 
         List<LocDto> locDtos = new ArrayList<>();
@@ -97,11 +107,18 @@
         for (Map.Entry<String, List<OrderDetl>> entry : brandGroup.entrySet()) {
             String brand = entry.getKey();
             List<OrderDetl> brandOrderDetls = entry.getValue();
+            List<LocDetl> locDetls;
+            if (order.getDocType() == 27) {
+                locDetls = locDetlService.selectList(
+                        new EntityWrapper<LocDetl>().eq("model", brand)
+                );
+            } else {
+                // 鏌ヨ繖涓寘瑁呯粍瀵瑰簲鐨勬墍鏈夊簱瀛�
+                locDetls = locDetlService.selectList(
+                        new EntityWrapper<LocDetl>().eq("brand", brand)
+                );
+            }
 
-            // 鏌ヨ繖涓寘瑁呯粍瀵瑰簲鐨勬墍鏈夊簱瀛�
-            List<LocDetl> locDetls = locDetlService.selectList(
-                    new EntityWrapper<LocDetl>().eq("brand", brand)
-            );
             if (locDetls.isEmpty()) continue;
 
             // 鑾峰彇鍑哄簱鍙�
@@ -133,7 +150,7 @@
                 locDto.setUnit(locDetl.getUnit());
                 locDto.setModel(locDetl.getModel());
                 locDto.setThreeCode(locDetl.getThreeCode());
-                locDto.setBrand(brand);
+                locDto.setBrand(locDetl.getBrand());
                 locDto.setOrderNo(firstDetl.getOrderNo());
                 locDto.setStaNos(staNos);
                 locDto.setOrderDetlId(firstDetl.getId());
@@ -246,8 +263,13 @@
                                 throw new CoolException(one.getModel() + "鍗锋槸鍚堟牸: " + one.getThreeCode());
                             }
                         } else {
-                            if (!"鍚堟牸".equals(one.getThreeCode())) {
-                                throw new CoolException(one.getModel() + "鍗蜂笉鍚堟牸: " + one.getThreeCode());
+                            // 3077 3106 鍙湁鍚堟牸鑳藉嚭
+                            if((stockOutParam.getOutSite() == 3077 || stockOutParam.getOutSite() == 3106) && !"鍚堟牸".equals(one.getThreeCode())) {
+                                throw new CoolException(one.getModel() + "鍗蜂笉鍚堟牸:" + one.getThreeCode());
+                            }
+                            // 2041 鍙湁寰呭垽鑳藉嚭
+                            if(stockOutParam.getOutSite() == 2041 && null != one.getThreeCode()) {
+                                throw new CoolException(one.getModel() + "鍗蜂笉涓哄緟鍒�:" + one.getThreeCode());
                             }
                         }
                     }
@@ -269,9 +291,15 @@
                             ioWorkType = IoWorkType.ALL_OUT;
                         }
                     }
-                    workService.stockOut(staNo, locDetlDtos,
-                            ioWorkType,
-                            getUserId(), optionValue);
+                    if (order.getDocType() == 27) {
+                        workService.stockOut2(staNo, locDetlDtos,
+                                ioWorkType,
+                                getUserId(), optionValue);
+                    }else {
+                        workService.stockOut(staNo, locDetlDtos,
+                                ioWorkType,
+                                getUserId(), optionValue);
+                    }
                 } else {
                     throw new CoolException("鎵�閫夊簱浣嶇姸鎬佷笉涓篎/D锛屽簱浣嶅彿锛�" +
                             locMast.getLocNo() + "锛屽綋鍓嶇姸鎬侊細" +
--
Gitblit v1.9.1