From 09361264d6d87b8ce57b61a26c5507dbc0a01031 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期五, 28 八月 2026 23:16:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_天津_建诚恒商贸' into dev_天津_玮苓乐器

---
 src/main/resources/mapper/sales/SalesLedgerProductMapper.xml |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 53 insertions(+), 2 deletions(-)

diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index 2ae23b1..acd074c 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -33,7 +33,8 @@
         WHEN (IFNULL(t2.qualitity, 0) - IFNULL(t2.locked_quantity, 0)) >0 THEN 1
         ELSE 0
         END as has_sufficient_stock,
-        (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0)) as no_quantity,
+        (IFNULL(T1.quantity, 0) - IFNULL(t3.shipped_quantity, 0) - IFNULL(t5.pending_approval_quantity, 0)) as no_quantity,
+        IFNULL(t6.return_quantity, 0) as return_quantity,
         IFNULL(t5.pending_approval_quantity, 0) as pending_approval_quantity,
         CASE
          WHEN IFNULL(t3.shipped_quantity, 0) = 0 AND IFNULL(t5.pending_approval_quantity, 0) = 0 THEN '寰呭彂璐�'
@@ -113,6 +114,14 @@
            ))
         GROUP BY si.sales_ledger_product_id
         ) t5 ON t5.sales_ledger_product_id = T1.id
+        LEFT JOIN (
+        SELECT si.sales_ledger_product_id, IFNULL(SUM(rsp.num), 0) AS return_quantity
+        FROM return_management rm
+        INNER JOIN return_sale_product rsp ON rm.id = rsp.return_management_id
+        INNER JOIN shipping_info si ON rm.shipping_id = si.id
+        WHERE rm.status = 1
+        GROUP BY si.sales_ledger_product_id
+        ) t6 ON t6.sales_ledger_product_id = T1.id
         left join product_model pm ON T1.product_model_id = pm.id
         left join product p ON pm.product_id = p.id
         <where>
@@ -219,7 +228,29 @@
         LIMIT 5
     </select>
 
+    <select id="selectProductSalesAnalysisByDate" resultType="java.util.Map">
+        SELECT
+            product_category as name,
+            SUM( tax_inclusive_total_price ) AS value
+        FROM
+            sales_ledger_product
+        WHERE
+            type = 1
+            AND register_date &gt;= #{startDate}
+            AND register_date &lt;= #{endDate}
+        GROUP BY
+            product_category
+        ORDER BY
+            value DESC
+        LIMIT 5
+    </select>
+
     <select id="selectRawMaterialPurchaseAnalysis" resultType="java.util.Map">
+        WITH RECURSIVE raw_material_tree AS (
+            SELECT id FROM product WHERE product_name = '鍘熸潗鏂�' AND parent_id IS NULL
+            UNION ALL
+            SELECT p.id FROM product p INNER JOIN raw_material_tree rmt ON p.parent_id = rmt.id
+        )
         SELECT
             pr.product_name AS name,
             SUM( slp.tax_inclusive_total_price ) AS value
@@ -228,6 +259,26 @@
             JOIN product pr ON slp.product_id = pr.id
         WHERE
             slp.type = 2
+            AND pr.id IN (SELECT id FROM raw_material_tree)
+        GROUP BY
+            pr.id,
+            pr.product_name
+        ORDER BY
+            value DESC
+        LIMIT 5
+    </select>
+
+    <select id="selectRawMaterialPurchaseAnalysisByDate" resultType="java.util.Map">
+        SELECT
+            pr.product_name AS name,
+            SUM( slp.tax_inclusive_total_price ) AS value
+        FROM
+            sales_ledger_product slp
+            JOIN product pr ON slp.product_id = pr.id
+        WHERE
+            slp.type = 2
+            AND slp.register_date &gt;= #{startDate}
+            AND slp.register_date &lt;= #{endDate}
             AND pr.parent_id = ( SELECT id FROM product WHERE product_name = '鍘熸潗鏂�' )
         GROUP BY
             pr.id,
@@ -252,7 +303,7 @@
     <select id="selectRawMaterialExpense" resultType="java.math.BigDecimal">
         WITH RECURSIVE product_tree AS (SELECT id
                                         FROM product
-                                        WHERE product_name = '鍘熸潗鏂�'
+                                        WHERE product_name = '鍘熸潗鏂�' AND parent_id IS NULL
 
                                         UNION ALL
 

--
Gitblit v1.9.3