From a76e1d17d67641993dea6335cb8e1465a94df58d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 21 五月 2026 15:39:05 +0800
Subject: [PATCH] feat(stock): 优化库存管理和成品树结构功能 1- 为ApproveProcessMapper.xml和ProductBomMapper.xml添加排序功能 2- 在ProductionProductMainDto中新增bomInputQty字段用于产品结构投入数量 3- 修改ProductionProductMainServiceImpl中投入数量计算逻辑,使用前端传入的bomInputQty值 4- 在ProductWorkOrderDto中添加bomInputQty字段并在服务实现中计算标准投入数量 5- 更新SalesLedgerMapper.xml查询逻辑,从product_summary获取电压信息 6- 为SalesLedgerProduct添加stockId字段并修改库存扣减逻辑使用具体库存ID 7- 重构StockInventoryController中的成品库存树查询接口和导入导出功能 8- 新增成品和非成品库存导入导出的数据模型和Excel工具类 9- 优化StockInventoryServiceImpl中的库存扣减逻辑,支持按特定库存ID操作 10- 更新库存导入导出功能,区分成品和非成品类型并提供相应模板

---
 src/main/resources/mapper/sales/SalesLedgerMapper.xml |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index c5d7aed..243b400 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -31,6 +31,7 @@
         T1.execution_date,
         T2.nick_name AS entry_person_name,
         T1.payment_method,
+        T1.is_produce AS produce,
         DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff
         FROM
         sales_ledger T1
@@ -42,7 +43,7 @@
         </where>
     </select>
 
-    <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.pojo.SalesLedger">
+    <select id="selectSalesLedgerListPage" resultType="com.ruoyi.sales.dto.SalesLedgerDto">
         SELECT T1.id,
         T1.sales_contract_no,
         T1.customer_contract_no,
@@ -51,6 +52,10 @@
         T1.salesman,
         T1.customer_id,
         T1.customer_name,
+        T3.company_address,
+        T3.contact_phone,
+        T3.contact_person,
+        T3.company_phone,
         T1.entry_person,
         T1.remarks,
         T1.attachment_materials,
@@ -60,8 +65,12 @@
         T1.execution_date,
         T2.nick_name                          AS entry_person_name,
         T1.payment_method,
+        T1.is_produce AS produce,
         T1.delivery_date,
         DATEDIFF(T1.delivery_date, CURDATE()) AS delivery_days_diff,
+        product_summary.model,
+        product_summary.voltage,
+        product_summary.qty,
         CASE
         WHEN shipping_status_counts.total_count = 0 THEN false
         WHEN shipping_status_counts.unshipped_count = 0 THEN true
@@ -69,6 +78,7 @@
         END AS is_fh
         FROM sales_ledger T1
         LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id
+        LEFT JOIN customer T3 ON T1.customer_id = T3.id
         LEFT JOIN (
         SELECT sales_ledger_id,
         COUNT(*) as total_count,
@@ -76,6 +86,16 @@
         FROM shipping_info
         GROUP BY sales_ledger_id
         ) shipping_status_counts ON T1.id = shipping_status_counts.sales_ledger_id
+        LEFT JOIN (
+        SELECT
+        sales_ledger_id,
+        GROUP_CONCAT(IFNULL(specification_model, '') ORDER BY id SEPARATOR ',') AS model,
+        GROUP_CONCAT(IFNULL(CAST(quantity AS CHAR), '') ORDER BY id SEPARATOR ',') AS qty,
+        GROUP_CONCAT(IFNULL(SUBSTRING_INDEX(specification_model, '-', -1), '') ORDER BY id SEPARATOR ',') AS voltage
+        FROM sales_ledger_product
+        WHERE type = 1
+        GROUP BY sales_ledger_id
+        ) product_summary ON T1.id = product_summary.sales_ledger_id
         <where>
             <if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
                 AND  T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%')
@@ -111,4 +131,4 @@
         FROM sales_ledger
         GROUP BY customer_name
     </select>
-</mapper>
\ No newline at end of file
+</mapper>

--
Gitblit v1.9.3