From bb1d7eeda426e66393cf4403cb3ef082db696bd9 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 07 八月 2026 15:42:19 +0800
Subject: [PATCH] feat(report): 新增会计报表功能并完善设备维护和首页统计

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

diff --git a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
index ec5cca2..6059825 100644
--- a/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
@@ -219,7 +219,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 +250,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 +294,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