From 72bfde62dc418ef66bb259bb17a7226b7eb17d30 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期日, 24 五月 2026 17:24:25 +0800
Subject: [PATCH] fix: 入库根据创建日期排序
---
src/main/resources/mapper/stock/StockInRecordMapper.xml | 4 ++--
src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 50 insertions(+), 3 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 a84374c..5207cc9 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -69,9 +69,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
diff --git a/src/main/resources/mapper/stock/StockInRecordMapper.xml b/src/main/resources/mapper/stock/StockInRecordMapper.xml
index a3bf3f9..89ba5aa 100644
--- a/src/main/resources/mapper/stock/StockInRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -132,7 +132,7 @@
and p.id in (select id from product_tree)
</if>
</where>
- order by sir.id desc
+ order by sir.create_time desc
</select>
<select id="listStockInRecordExportData" resultType="com.ruoyi.stock.execl.StockInRecordExportData">
SELECT
@@ -159,7 +159,7 @@
and sir.record_type = #{params.recordType}
</if>
</where>
- order by sir.id desc
+ order by sir.create_time desc
</select>
<select id="listPageAccountPurchase" resultType="com.ruoyi.account.bean.vo.purchase.PurchaseInboundVo">
SELECT
--
Gitblit v1.9.3