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 |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 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 c6a34ec..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
@@ -53,7 +53,7 @@
  * @create 2025/3/12 17:08
  */
 @Slf4j
-@Service
+@Service("reportMsgService")
 public class ReportMsgServiceImpl implements ReportMsgService {
 
     @Autowired
@@ -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,8 +322,8 @@
                         .setItemCode(orderItem.getMatnrCode())
                         .setEditUser(nickName)
                         .setEditDate(order.getUpdateTime())
-                        .setZone(stocks.getLocCode())
-                        .setGoodsNO(fields.get("crushNo"))
+                        .setZone(stocks != null ? stocks.getLocCode() : null)
+                        // .setGoodsNO(fields.get("crushNo"))  // 绁ㄥ彿鏆備笉浣跨敤
                         .setMemoDtl(order.getMemo());
 
                 if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
@@ -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 -> {
@@ -407,7 +413,7 @@
                             .setItemCode(stockItem.getMatnrCode())
                             .setEditUser(finalNickName)
                             .setEditDate(order.getUpdateTime())
-                            .setGoodsNO(fields.get("crushNo"))
+                            // .setGoodsNO(fields.get("crushNo"))  // 绁ㄥ彿鏆備笉浣跨敤
                             .setMemoDtl(order.getMemo());
                     if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
                         //閲囪喘鍏ュ簱鍗�
@@ -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());
             }
@@ -520,7 +529,7 @@
                 .setItemCode(orderItem.getMatnrCode())
                 .setEditUser(nickName)
                 .setEditDate(order.getUpdateTime())
-                .setGoodsNO(fields.get("crushNo"))
+                // .setGoodsNO(fields.get("crushNo"))  // 绁ㄥ彿鏆備笉浣跨敤
                 .setMemoDtl(order.getMemo());
 
         if (order.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {

--
Gitblit v1.9.1