| | |
| | | GROUP BY pt.root_id, pt.root_name |
| | | </select> |
| | | |
| | | <select id="getPassRateStatistics" resultType="com.ruoyi.quality.dto.QualityPassRateDto"> |
| | | <select id="getRawPassRateStatistics" resultType="com.ruoyi.quality.pojo.QualityInspect"> |
| | | WITH RECURSIVE product_tree AS (SELECT id, |
| | | product_name, |
| | | CASE product_name |
| | |
| | | FROM product p |
| | | INNER JOIN product_tree pt ON p.parent_id = pt.id) |
| | | |
| | | SELECT base.modelType, |
| | | COALESCE(SUM(qi.quantity), 0) AS totalCount, |
| | | COALESCE(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END), 0) AS completedCount, |
| | | COALESCE(SUM(CASE |
| | | WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity, |
| | | CASE WHEN qi.check_result = '合格' THEN IFNULL(qi.quantity, 0) ELSE 0 END) |
| | | ELSE 0 END), 0) AS qualifiedCount, |
| | | COALESCE(SUM(CASE |
| | | WHEN qi.inspect_state = 1 THEN IFNULL(qi.unqualified_quantity, |
| | | CASE WHEN qi.check_result IN ('不合格', '部分合格') THEN IFNULL(qi.quantity, 0) ELSE 0 END) |
| | | ELSE 0 END), 0) AS unqualifiedCount, |
| | | |
| | | IF(COALESCE(SUM(qi.quantity), 0) = 0, 0, |
| | | ROUND(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) |
| | | / SUM(qi.quantity) * 100, 2) |
| | | ) AS completionRate, |
| | | |
| | | IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0, |
| | | ROUND(SUM(CASE |
| | | WHEN qi.inspect_state = 1 THEN IFNULL(qi.qualified_quantity, |
| | | CASE WHEN qi.check_result = '合格' THEN IFNULL(qi.quantity, 0) ELSE 0 END) |
| | | ELSE 0 END) |
| | | / SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) * 100, 2) |
| | | ) AS passRate |
| | | |
| | | FROM (SELECT 0 AS modelType |
| | | UNION ALL |
| | | SELECT 1 |
| | | UNION ALL |
| | | SELECT 2) base |
| | | LEFT JOIN product_tree pt ON base.modelType = pt.modelType |
| | | LEFT JOIN product_model pm ON pm.product_id = pt.id |
| | | LEFT JOIN quality_inspect qi ON qi.product_model_id = pm.id |
| | | |
| | | GROUP BY base.modelType |
| | | ORDER BY base.modelType |
| | | SELECT pt.modelType AS inspectType, |
| | | qi.quantity, |
| | | qi.inspect_state AS inspectState, |
| | | qi.check_result AS checkResult, |
| | | qi.qualified_quantity AS qualifiedQuantity, |
| | | qi.unqualified_quantity AS unqualifiedQuantity |
| | | FROM product_tree pt |
| | | INNER JOIN product_model pm ON pm.product_id = pt.id |
| | | INNER JOIN quality_inspect qi ON qi.product_model_id = pm.id |
| | | </select> |
| | | |
| | | <select id="getMonthlyPassRateStatistics" resultType="com.ruoyi.quality.dto.QualityMonthlyPassRateDto"> |