From 995bb063a3ac765c53447320e450fb6fc835c9d2 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 24 四月 2026 13:29:23 +0800
Subject: [PATCH] fix: 库存导入新增厚度,库存管理返回厚度字段
---
src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java | 5 +++--
src/main/resources/mapper/stock/StockInventoryMapper.xml | 5 ++++-
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java | 21 +++++++++++++++++----
3 files changed, 24 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java b/src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java
index a5cec35..2f22998 100644
--- a/src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java
+++ b/src/main/java/com/ruoyi/stock/execl/StockInventoryExportData.java
@@ -8,8 +8,6 @@
@Data
public class StockInventoryExportData {
-
-
@Excel(name = "浜у搧鍚嶇О")
private String productName;
@@ -19,6 +17,9 @@
@Excel(name = "鍗曚綅")
private String unit;
+ @Excel(name = "鍘氬害(mm)")
+ private BigDecimal thickness;
+
@Excel(name = "鍚堟牸搴撳瓨鏁伴噺")
private BigDecimal qualifiedQuantity;
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index c0b752d..48f3082 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -152,8 +152,8 @@
List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectProduct();
Map<String, SalesLedgerProduct> productMap = new HashMap<>();
for (SalesLedgerProduct product : salesLedgerProducts) {
- // 浣跨敤浜у搧绫诲埆鍜岃鏍煎瀷鍙蜂綔涓洪敭
- String key = product.getProductCategory() + "|" + product.getSpecificationModel();
+ // 浣跨敤浜у搧鍚嶇О + 瑙勬牸鍨嬪彿 + 鍘氬害浣滀负閿�
+ String key = buildProductKey(product.getProductCategory(), product.getSpecificationModel(), product.getThickness());
productMap.put(key, product);
}
@@ -166,7 +166,7 @@
for (StockInventoryExportData dto : list) {
// 鏋勫缓鏌ユ壘閿�
- String key = dto.getProductName() + "|" + dto.getModel();
+ String key = buildProductKey(dto.getProductName(), dto.getModel(), dto.getThickness());
SalesLedgerProduct matchedProduct = productMap.get(key);
if (matchedProduct != null) {
@@ -217,7 +217,7 @@
}
} else {
// 璁板綍鏈尮閰嶇殑浜у搧
- String unmatchedRecord = "浜у搧鍚嶇О锛�" + dto.getProductName() + "锛屽瀷鍙凤細" + dto.getModel();
+ String unmatchedRecord = "浜у搧鍚嶇О锛�" + dto.getProductName() + "锛屽瀷鍙凤細" + dto.getModel() + "锛屽帤搴︼細" + normalizeThickness(dto.getThickness());
unmatchedRecords.add(unmatchedRecord);
}
}
@@ -281,4 +281,17 @@
stockInventory.setLockedQuantity(stockInventory.getLockedQuantity().subtract(stockInventoryDto.getLockedQuantity()));
return this.updateById(stockInventory);
}
+
+ private String buildProductKey(String productName, String model, BigDecimal thickness) {
+ String safeProductName = productName == null ? "" : productName.trim();
+ String safeModel = model == null ? "" : model.trim();
+ return safeProductName + "|" + safeModel + "|" + normalizeThickness(thickness);
+ }
+
+ private String normalizeThickness(BigDecimal thickness) {
+ if (thickness == null) {
+ return "";
+ }
+ return thickness.stripTrailingZeros().toPlainString();
+ }
}
\ No newline at end of file
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 6428e9c..3fd669c 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -107,6 +107,7 @@
MAX(warn_num) as warn_num,
MAX(version) as version,
model,
+ thickness,
MAX(remark) as remark,
unit,
product_name,
@@ -128,6 +129,7 @@
si.version,
(si.qualitity - COALESCE(si.locked_quantity, 0)) as un_locked_quantity,
pm.model,
+ pm.thickness,
si.remark,
pm.unit,
p.product_name,
@@ -153,6 +155,7 @@
su.version,
(su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity,
pm.model,
+ pm.thickness,
su.remark,
pm.unit,
p.product_name,
@@ -172,7 +175,7 @@
and combined.product_id in (select id from product_tree)
</if>
</where>
- group by product_model_id, model, unit, product_name, product_id
+ group by product_model_id, model, thickness, unit, product_name, product_id
</select>
<select id="listStockInventoryExportData" resultType="com.ruoyi.stock.execl.StockInventoryExportData">
WITH RECURSIVE product_tree AS (
--
Gitblit v1.9.3