From 98d88ac8caf7f0991d741079474c262f1e252927 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期五, 06 三月 2026 08:14:54 +0800
Subject: [PATCH] 拣货过程中的出库库存匹配

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java |   29 +++++++++++++++++++----------
 1 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
index b107cee..a1c7793 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
@@ -302,10 +302,13 @@
                 //鑾峰彇搴撳瓨涓鍗曞簱浣�
                 Set<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toSet());
 
-                Stock stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
-                        .in(Stock::getId, longSet)
-                        .eq(Stock::getType, OrderType.ORDER_IN.type)
-                        .eq(Stock::getSourceCode, order.getCode()));
+                Stock stocks = null;
+                if (!longSet.isEmpty()) {
+                    stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
+                            .in(Stock::getId, longSet)
+                            .eq(Stock::getType, OrderType.ORDER_IN.type)
+                            .eq(Stock::getSourceCode, order.getCode()));
+                }
                 if (!Objects.isNull(stocks)) {
                     param.setZone(stocks.getLocCode());
                 }
@@ -319,7 +322,7 @@
                         .setItemCode(orderItem.getMatnrCode())
                         .setEditUser(nickName)
                         .setEditDate(order.getUpdateTime())
-                        .setZone(stocks.getLocCode())
+                        .setZone(stocks != null ? stocks.getLocCode() : null)
                         // .setGoodsNO(fields.get("crushNo"))  // 绁ㄥ彿鏆備笉浣跨敤
                         .setMemoDtl(order.getMemo());
 
@@ -393,6 +396,9 @@
                 //杩囨护鎷h揣鍏ュ簱鏄庣粏锛岄伩鍏嶄笂鎶�
                 List<Stock> stockList = stocks.stream().filter(stock -> stock.getType().equals(OrderType.ORDER_OUT.type) && !Objects.isNull(stock.getSourceCode())).collect(Collectors.toList());
                 List<Long> list = stockList.stream().map(Stock::getId).collect(Collectors.toList());
+                if (list.isEmpty()) {
+                    return;
+                }
                 List<StockItem> stockItems1 = stockItemService.list(new LambdaQueryWrapper<StockItem>().in(StockItem::getStockId, list));
                 String finalNickName = nickName;
                 stockItems1.forEach(stockItem -> {
@@ -500,11 +506,14 @@
                     .eq(StockItem::getFieldsIndex, orderItem.getFieldsIndex()));
             //鑾峰彇搴撳瓨涓鍗曞簱浣�
             List<Long> longSet = stockItems.stream().map(StockItem::getStockId).collect(Collectors.toList());
-            //鑾峰彇搴撳瓨搴撲綅淇℃伅
-            Stock stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
-                    .in(Stock::getId, longSet)
-                    .eq(Stock::getType, OrderType.ORDER_IN.type)
-                    .eq(Stock::getSourceCode, order.getCode()));
+            //鑾峰彇搴撳瓨搴撲綅淇℃伅锛堥伩鍏� longSet 涓虹┖鏃剁敓鎴� stock_id IN () 瀵艰嚧 SQL 寮傚父锛�
+            Stock stocks = null;
+            if (!longSet.isEmpty()) {
+                stocks = stockService.getOne(new LambdaQueryWrapper<Stock>()
+                        .in(Stock::getId, longSet)
+                        .eq(Stock::getType, OrderType.ORDER_IN.type)
+                        .eq(Stock::getSourceCode, order.getCode()));
+            }
             if (!Objects.isNull(stocks)) {
                 param.setZone(stocks.getLocCode());
             }

--
Gitblit v1.9.1