From 7a58bc3ae9cccf4ee69821a3c7e45f98f1b41114 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 12 十月 2026 13:09:04 +0800
Subject: [PATCH] feat(stock): 出库批次下拉增加客户与合同号信息展示

---
 src/main/resources/mapper/stock/StockInventoryMapper.xml |   34 ++++++++++++++++++++++++++++++++--
 1 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index 487000b..54bc56b 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -604,13 +604,25 @@
                 AND create_time &lt;= #{endDate}) AS combined_counts
     </select>
 
+    <!-- 鍑哄叆搴撹秼鍔匡細浜у搧鍒嗙被蹇呴』閫掑綊鍙栨暣妫靛瓙鏍戙��
+         浜у搧鏍戞槸銆屽ぇ绫� -> 鍝佺被 -> 鍏蜂綋浜у搧銆嶄笁灞傦紝浜у搧鍨嬪彿锛坧roduct_model锛夋寕鍦ㄥ彾瀛愪骇鍝佷笂锛�
+         鍙瘮瀵圭洿鎺ュ瓙鑺傜偣锛坧.parent_id = root锛夋案杩滃懡涓笉鍒板瀷鍙凤紝瓒嬪娍鍥炬亽涓虹┖銆�
+         閫掑綊 CTE 鍐欏湪鎷彿鍐咃紝璁╄鍙ヤ粛浠� SELECT 寮�澶达紝鏁版嵁鏉冮檺鎷︽埅鍣ㄧ収甯稿 stock_in_record 鐢熸晥 -->
     <select id="selectDailyStockInCounts" resultType="java.util.Map">
         SELECT DATE(sir.create_time) AS date,
                SUM(sir.stock_in_num) AS count
         FROM stock_in_record sir
                  JOIN product_model pm ON sir.product_model_id = pm.id
                  JOIN product p ON pm.product_id = p.id
-        WHERE (p.parent_id = #{rootCategoryId} OR p.id = #{rootCategoryId})
+        WHERE p.id IN (WITH RECURSIVE product_tree AS (SELECT id
+                                                       FROM product
+                                                       WHERE id = #{rootCategoryId}
+                                                       UNION ALL
+                                                       SELECT p2.id
+                                                       FROM product p2
+                                                                JOIN product_tree pt ON p2.parent_id = pt.id)
+                       SELECT id
+                       FROM product_tree)
           AND sir.create_time &gt;= #{startDate}
           AND sir.create_time &lt;= #{endDate}
         GROUP BY DATE(sir.create_time)
@@ -623,7 +635,15 @@
         FROM stock_out_record sor
                  JOIN product_model pm ON sor.product_model_id = pm.id
                  JOIN product p ON pm.product_id = p.id
-        WHERE (p.parent_id = #{rootCategoryId} OR p.id = #{rootCategoryId})
+        WHERE p.id IN (WITH RECURSIVE product_tree AS (SELECT id
+                                                       FROM product
+                                                       WHERE id = #{rootCategoryId}
+                                                       UNION ALL
+                                                       SELECT p2.id
+                                                       FROM product p2
+                                                                JOIN product_tree pt ON p2.parent_id = pt.id)
+                       SELECT id
+                       FROM product_tree)
           AND sor.create_time &gt;= #{startDate}
           AND sor.create_time &lt;= #{endDate}
         GROUP BY DATE(sor.create_time)
@@ -716,6 +736,16 @@
         order by sir.id desc
         limit 1
         ) as oil_product,
+        <!-- 鎵规鏉ユ簮鐨勫悎鍚岋細鍏ュ簱璁板綍缁戝畾鐨勯攢鍞彴璐︼紙sales_ledger_id锛夊悎鍚屽彿锛涘鎴峰悕绉颁笂鏂� customer_name 宸插甫鍑� -->
+        (
+        select sl.sales_contract_no
+        from stock_in_record sir
+        inner join sales_ledger sl on sl.id = sir.sales_ledger_id
+        where sir.product_model_id = combined.product_model_id
+        and (sir.batch_no = combined.batch_no or (combined.batch_no is null and sir.batch_no is null))
+        order by sir.id desc
+        limit 1
+        ) as sales_contract_no,
         (
         select sir.tank_inspection_status
         from stock_in_record sir

--
Gitblit v1.9.3