From 9b9de7f44d91d9a5cfe78d07a20e504a921921ff Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 13 二月 2026 15:44:39 +0800
Subject: [PATCH] fix: 投入需要乘以单位产出需要数量

---
 src/main/resources/mapper/production/ProductionProductInputMapper.xml |   41 +++++++++++++++++++++++++++++++++--------
 1 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/src/main/resources/mapper/production/ProductionProductInputMapper.xml b/src/main/resources/mapper/production/ProductionProductInputMapper.xml
index bc1fdcf..65e2b96 100644
--- a/src/main/resources/mapper/production/ProductionProductInputMapper.xml
+++ b/src/main/resources/mapper/production/ProductionProductInputMapper.xml
@@ -40,14 +40,39 @@
 
     <select id="selectInputStats" resultType="java.util.Map">
         SELECT
-            DATE_FORMAT(create_time, '%Y-%m-%d') as date,
-            SUM(quantity) as quantity
-        FROM
-            production_product_input
-        WHERE
-            create_time &gt;= #{startDate}
-            AND create_time &lt;= #{endDate}
+        DATE_FORMAT(ppi.create_time, '%Y-%m-%d') AS date,
+        -- 鎶ュ伐鏁伴噺 * 鏈�灏忕郴鏁�
+        SUM(ppi.quantity * IFNULL(distinct_ps.unit_quantity, 1)) AS quantity
+        FROM production_product_input ppi
+        INNER JOIN production_product_main ppm ON ppm.id = ppi.product_main_id
+        INNER JOIN product_process_route_item ppri ON ppri.id = ppm.product_process_route_item_id
+        INNER JOIN product_process_route ppr ON ppr.id = ppri.product_route_id
+        INNER JOIN product_model pm ON pm.id = ppi.product_model_id
+        INNER JOIN (
+        SELECT
+        bom_id,
+        process_id,
+        product_model_id,
+        CAST(SUBSTRING_INDEX(GROUP_CONCAT(unit_quantity ORDER BY id ASC), ',', 1) AS DECIMAL(16, 4)) AS unit_quantity
+        FROM product_structure
+        GROUP BY bom_id, process_id, product_model_id
+        ) distinct_ps ON distinct_ps.bom_id = ppr.bom_id
+        AND distinct_ps.process_id = ppri.process_id
+        AND distinct_ps.product_model_id = ppi.product_model_id
+        <where>
+            <if test="startDate != null">
+                AND ppi.create_time &gt;= #{startDate}
+            </if>
+            <if test="endDate != null">
+                AND ppi.create_time &lt;= #{endDate}
+            </if>
+        </where>
         GROUP BY
-            DATE_FORMAT(create_time, '%Y-%m-%d')
+        DATE_FORMAT(ppi.create_time, '%Y-%m-%d'),
+        pm.id,
+        pm.model
+        ORDER BY
+        date DESC,
+        pm.id ASC
     </select>
 </mapper>

--
Gitblit v1.9.3