From 26f5c141829cecd1c1987b6f104e144336e407ff Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期五, 29 五月 2026 16:20:04 +0800
Subject: [PATCH] feat: 库存管理出库 显示对应信息

---
 src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java                    |   10 ++++++++++
 src/main/resources/mapper/stock/StockOutRecordMapper.xml                    |   30 ++++++++++++++++++++++++++++--
 src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java |    1 +
 src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java   |    1 +
 src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java           |    2 ++
 5 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java b/src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java
index 3e3abf9..f32ffa6 100644
--- a/src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java
+++ b/src/main/java/com/ruoyi/stock/dto/StockOutRecordDto.java
@@ -25,4 +25,14 @@
     private String timeStr;
 
     private String createBy;
+
+    /**
+     * 鏉ユ簮鍗曞彿锛堝叧鑱旂殑鍗曟嵁缂栧彿锛�
+     * 鐢熶骇鎶ュ伐锛氭姤宸ュ崟鍙�
+     * 閿�鍞嚭搴擄細閿�鍞悎鍚屽彿
+     * 閲囪喘閫�璐э細閫�璐у崟鍙�
+     * 閿�鍞彂璐э細鍙戣揣鍗曞彿
+     * 鍚堟牸鑷畾涔夊嚭搴擄細澶囨敞
+     */
+    private String sourceNo;
 }
diff --git a/src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java b/src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java
index f120817..b0f45a3 100644
--- a/src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java
+++ b/src/main/java/com/ruoyi/stock/execl/StockOutRecordExportData.java
@@ -19,6 +19,8 @@
     private String unit;
     @Excel(name = "鍑哄簱鏉ユ簮")
     private String recordType;
+    @Excel(name = "鏉ユ簮鍗曞彿")
+    private String sourceNo;
     @Excel(name = "鍑哄簱鏁伴噺")
     private String stockInNum;
     @Excel(name = "鍑哄簱鏃堕棿")
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 c5b4136..6f6e114 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -103,6 +103,7 @@
         stockOutRecordDto.setStockOutNum(stockInventoryDto.getQualitity());
         stockOutRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
         stockOutRecordDto.setType("0");
+        stockOutRecordDto.setRemark(stockInventoryDto.getRemark());
         stockOutRecordService.add(stockOutRecordDto);
         StockInventory oldStockInventory = stockInventoryMapper.selectOne(new QueryWrapper<StockInventory>().lambda().eq(StockInventory::getProductModelId, stockInventoryDto.getProductModelId()));
         if (ObjectUtils.isEmpty(oldStockInventory)) {
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
index 0c586b3..dcb9229 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -83,6 +83,7 @@
         stockOutRecordDto.setStockOutNum(stockUninventoryDto.getQualitity());
         stockOutRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
         stockOutRecordDto.setType("1");
+        stockOutRecordDto.setRemark(stockUninventoryDto.getRemark());
         stockOutRecordService.add(stockOutRecordDto);
         StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
         if (ObjectUtils.isEmpty(oldStockInventory)) {
diff --git a/src/main/resources/mapper/stock/StockOutRecordMapper.xml b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
index a441de9..9222529 100644
--- a/src/main/resources/mapper/stock/StockOutRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockOutRecordMapper.xml
@@ -23,11 +23,24 @@
         p.product_name as productName,
         pm.model,
         pm.unit,
-        u.nick_name as createBy
+        u.nick_name as createBy,
+        CASE sor.record_type
+            WHEN '3' THEN ppm.product_no
+            WHEN '8' THEN sl.sales_contract_no
+            WHEN '9' THEN pr.no
+            WHEN '13' THEN si.shipping_no
+            WHEN '1' THEN sor.remark
+            WHEN '10' THEN sor.remark
+            ELSE NULL
+        END as sourceNo
         FROM stock_out_record as sor
         LEFT JOIN product_model as pm on sor.product_model_id = pm.id
         LEFT JOIN product as p on pm.product_id = p.id
         LEFT JOIN sys_user as u on sor.create_user = u.user_id
+        LEFT JOIN production_product_main as ppm on sor.record_type = '3' and sor.record_id = ppm.id
+        LEFT JOIN sales_ledger as sl on sor.record_type = '8' and sor.record_id = sl.id
+        LEFT JOIN purchase_return_orders as pr on sor.record_type = '9' and sor.record_id = pr.id
+        LEFT JOIN shipping_info as si on sor.record_type = '13' and sor.record_id = si.id
         <where>
             <if test="params.timeStr != null and params.timeStr != ''">
                 and sor.create_time like concat('%',#{params.timeStr},'%')
@@ -50,11 +63,24 @@
         p.product_name as productName,
         pm.model,
         pm.unit,
-        u.nick_name as createBy
+        u.nick_name as createBy,
+        CASE sor.record_type
+            WHEN '3' THEN ppm.product_no
+            WHEN '8' THEN sl.sales_contract_no
+            WHEN '9' THEN pr.no
+            WHEN '13' THEN si.shipping_no
+            WHEN '1' THEN sor.remark
+            WHEN '10' THEN sor.remark
+            ELSE NULL
+        END as sourceNo
         FROM stock_out_record as sor
         LEFT JOIN product_model as pm on sor.product_model_id = pm.id
         LEFT JOIN product as p on pm.product_id = p.id
         LEFT JOIN sys_user as u on sor.create_user = u.user_id
+        LEFT JOIN production_product_main as ppm on sor.record_type = '3' and sor.record_id = ppm.id
+        LEFT JOIN sales_ledger as sl on sor.record_type = '8' and sor.record_id = sl.id
+        LEFT JOIN purchase_return_orders as pr on sor.record_type = '9' and sor.record_id = pr.id
+        LEFT JOIN shipping_info as si on sor.record_type = '13' and sor.record_id = si.id
         <where>
             <if test="params.timeStr != null and params.timeStr != ''">
                 and sor.create_time like concat('%',#{params.timeStr},'%')

--
Gitblit v1.9.3