From 10b88a7ff17caf92f3d4e8a550c1085a70c2517a Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 28 五月 2026 17:43:26 +0800
Subject: [PATCH] Merge dev_New_pro into dev_山西_晋和园_pro

---
 src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
index 61aac8b..2dfbbe7 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -71,9 +71,56 @@
             throw new BaseException("璇ュ叆搴撹褰曚笉瀛樺湪,鏃犳硶鏇存柊!!!");
         }
 
+        // 璁板綍淇敼鍓嶇殑 batch_no
+        String oldBatchNo = stockInRecord.getBatchNo();
+        String newBatchNo = stockInRecordDto.getBatchNo();
+
         String[] ignoreProperties = {"id", "inbound_batches"};//鎺掗櫎id灞炴��
         BeanUtils.copyProperties(stockInRecordDto, stockInRecord, ignoreProperties);
-        return stockInRecordMapper.updateById(stockInRecord);
+        int result = stockInRecordMapper.updateById(stockInRecord);
+
+        // 濡傛灉 batch_no 鍙戠敓鍙樺寲锛岄渶瑕佸悓姝ユ洿鏂板叧鑱旇〃
+        if (newBatchNo != null && !newBatchNo.equals(oldBatchNo)) {
+            updateRelatedBatchNo(stockInRecord, oldBatchNo, newBatchNo);
+        }
+
+        return result;
+    }
+
+    /**
+     * 鍚屾鏇存柊鍏宠仈琛ㄧ殑 batch_no
+     * @param stockInRecord 鍏ュ簱璁板綍
+     * @param oldBatchNo 淇敼鍓嶇殑鎵瑰彿
+     * @param newBatchNo 淇敼鍚庣殑鎵瑰彿
+     */
+    private void updateRelatedBatchNo(StockInRecord stockInRecord, String oldBatchNo, String newBatchNo) {
+        // 1. 鏇存柊 stock_inventory 琛紙鍚堟牸搴撳瓨锛�
+        LambdaQueryWrapper<StockInventory> inventoryEq = new LambdaQueryWrapper<StockInventory>()
+                .eq(StockInventory::getProductModelId, stockInRecord.getProductModelId());
+        if (StringUtils.isEmpty(oldBatchNo)) {
+            inventoryEq.isNull(StockInventory::getBatchNo);
+        } else {
+            inventoryEq.eq(StockInventory::getBatchNo, oldBatchNo);
+        }
+        StockInventory stockInventory = stockInventoryMapper.selectOne(inventoryEq);
+        if (stockInventory != null) {
+            stockInventory.setBatchNo(newBatchNo);
+            stockInventoryMapper.updateById(stockInventory);
+        }
+
+        // 2. 鏇存柊 stock_uninventory 琛紙涓嶅悎鏍煎簱瀛橈級
+        LambdaQueryWrapper<StockUninventory> uninventoryEq = new LambdaQueryWrapper<StockUninventory>()
+                .eq(StockUninventory::getProductModelId, stockInRecord.getProductModelId());
+        if (StringUtils.isEmpty(oldBatchNo)) {
+            uninventoryEq.isNull(StockUninventory::getBatchNo);
+        } else {
+            uninventoryEq.eq(StockUninventory::getBatchNo, oldBatchNo);
+        }
+        StockUninventory stockUninventory = stockUninventoryMapper.selectOne(uninventoryEq);
+        if (stockUninventory != null) {
+            stockUninventory.setBatchNo(newBatchNo);
+            stockUninventoryMapper.updateById(stockUninventory);
+        }
     }
 
     @Override
@@ -240,10 +287,12 @@
                     stockInventoryDto.setBatchNo(stockInRecord.getBatchNo());
                     stockInventoryDto.setQualitity(stockInRecord.getStockInNum());
                     stockInventoryDto.setRemark(stockInRecord.getRemark());
+                    stockInventoryDto.setWarnNum(stockInRecord.getWarnNum());
                     if (stockInventory == null) {
                         stockInventoryMapper.insert(new StockInventory() {{
                             setProductModelId(stockInRecord.getProductModelId());
                             setQualitity(stockInRecord.getStockInNum());
+                            setWarnNum(stockInRecord.getWarnNum());
                             setBatchNo(stockInRecord.getBatchNo());
                             setRemark(stockInRecord.getRemark());
                             setWarnNum(stockInRecord.getWarnNum());

--
Gitblit v1.9.3