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