From 4ba399c0159d7dceff8f95beb05fb1a92dbda049 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 11 十月 2026 22:41:45 +0800
Subject: [PATCH] 天津-奇缘恒艺 录数据需求修改
---
src/main/resources/mapper/quality/QualityInspectMapper.xml | 101 +++++++++++---------------------------------------
1 files changed, 23 insertions(+), 78 deletions(-)
diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index ed01cad..3089c6e 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -95,11 +95,8 @@
</delete>
<select id="getInspectStatistics" resultType="com.ruoyi.quality.dto.QualityInspectStatDto">
- SELECT CASE pp.product_name
- WHEN '鍘熸潗鏂�' THEN 0
- WHEN '鍗婃垚鍝�' THEN 1
- WHEN '鎴愬搧' THEN 2
- END AS modelType,
+ <!-- 妫�楠岀被鍨嬩笌浜у搧澶х被涓�涓�瀵瑰簲锛�0-鍘熸潗鏂� 1-鍗婃垚鍝� 2-鎴愬搧锛岀洿鎺ュ彇 quality_inspect.inspect_type 鍒嗘《 -->
+ SELECT t.modelType,
IFNULL(SUM(qi.quantity), 0) AS totalCount,
@@ -108,17 +105,16 @@
ELSE 0
END), 0) AS completedCount
- FROM product p
- INNER JOIN product pp
- ON p.parent_id = pp.id
- LEFT JOIN product_model pm
- ON pm.product_id = p.id
+ FROM (SELECT 0 AS modelType
+ UNION ALL
+ SELECT 1
+ UNION ALL
+ SELECT 2) t
LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
+ ON qi.inspect_type = t.modelType
- WHERE pp.product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
-
- GROUP BY pp.product_name
+ GROUP BY t.modelType
+ ORDER BY t.modelType
</select>
@@ -191,19 +187,8 @@
SELECT 1
UNION ALL
SELECT 2) t
- LEFT JOIN product p
- ON 1 = 1
- LEFT JOIN product pp
- ON p.parent_id = pp.id
- LEFT JOIN product_model pm
- ON pm.product_id = p.id
LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
- AND (
- (pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0) OR
- (pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1) OR
- (pp.product_name = '鎴愬搧' AND t.modelType = 2)
- )
+ ON qi.inspect_type = t.modelType
GROUP BY t.modelType
ORDER BY t.modelType;
@@ -298,18 +283,10 @@
) AS passRate
FROM base b
- LEFT JOIN product p ON 1 = 1
- LEFT JOIN product pp ON p.parent_id = pp.id
- LEFT JOIN product_model pm ON pm.product_id = p.id
LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
+ ON qi.inspect_type = b.modelType
AND YEAR(qi.check_time) = #{year}
AND MONTH(qi.check_time) = b.month_num
- AND (
- (pp.product_name = '鍘熸潗鏂�' AND b.modelType = 0)
- OR (pp.product_name = '鍗婃垚鍝�' AND b.modelType = 1)
- OR (pp.product_name = '鎴愬搧' AND b.modelType = 2)
- )
GROUP BY b.month_num, b.modelType
ORDER BY b.month_num, b.modelType;
@@ -318,40 +295,16 @@
<select id="getYearlyPassRateStatistics" resultType="com.ruoyi.quality.dto.QualityPassRateDto">
SELECT t.modelType,
- COALESCE(SUM(
- CASE
- WHEN pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0 THEN qi.quantity
- WHEN pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1 THEN qi.quantity
- WHEN pp.product_name = '鎴愬搧' AND t.modelType = 2 THEN qi.quantity
- ELSE 0
- END
- ), 0) AS totalCount,
- COALESCE(SUM(
- CASE
- WHEN pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0 THEN qi.qualified_quantity
- WHEN pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1 THEN qi.qualified_quantity
- WHEN pp.product_name = '鎴愬搧' AND t.modelType = 2 THEN qi.qualified_quantity
- ELSE 0
- END
- ), 0) AS qualifiedCount,
- COALESCE(SUM(
- CASE
- WHEN pp.product_name = '鍘熸潗鏂�' AND t.modelType = 0 THEN qi.unqualified_quantity
- WHEN pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1 THEN qi.unqualified_quantity
- WHEN pp.product_name = '鎴愬搧' AND t.modelType = 2 THEN qi.unqualified_quantity
- ELSE 0
- END
- ), 0) AS unqualifiedCount
+ COALESCE(SUM(qi.quantity), 0) AS totalCount,
+ COALESCE(SUM(qi.qualified_quantity), 0) AS qualifiedCount,
+ COALESCE(SUM(qi.unqualified_quantity), 0) AS unqualifiedCount
FROM (SELECT 0 AS modelType
UNION ALL
SELECT 1
UNION ALL
SELECT 2) t
- LEFT JOIN product p ON 1 = 1
- LEFT JOIN product pp ON p.parent_id = pp.id
- LEFT JOIN product_model pm ON pm.product_id = p.id
LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
+ ON qi.inspect_type = t.modelType
AND YEAR(qi.check_time) = #{year}
AND qi.inspect_state = 1
GROUP BY t.modelType
@@ -384,7 +337,7 @@
/* 鍘熸潗鏂� */
COALESCE(SUM(
CASE
- WHEN pp.product_name = '鍘熸潗鏂�'
+ WHEN qi.inspect_type = 0
THEN qi.quantity
ELSE 0
END
@@ -393,7 +346,7 @@
/* 鍗婃垚鍝� */
COALESCE(SUM(
CASE
- WHEN pp.product_name = '鍗婃垚鍝�'
+ WHEN qi.inspect_type = 1
THEN qi.quantity
ELSE 0
END
@@ -402,19 +355,15 @@
/* 鎴愬搧 */
COALESCE(SUM(
CASE
- WHEN pp.product_name = '鎴愬搧'
+ WHEN qi.inspect_type = 2
THEN qi.quantity
ELSE 0
END
), 0) AS outgoingCount
FROM months m
- LEFT JOIN product p ON 1 = 1
- LEFT JOIN product pp ON p.parent_id = pp.id
- LEFT JOIN product_model pm ON pm.product_id = p.id
LEFT JOIN quality_inspect qi
- ON qi.product_model_id = pm.id
- AND qi.inspect_state = 1
+ ON qi.inspect_state = 1
AND YEAR(qi.check_time) = #{year}
AND MONTH(qi.check_time) = m.month_num
@@ -429,15 +378,11 @@
FROM quality_inspect_param qip
JOIN quality_inspect qi
ON qip.inspect_id = qi.id
- JOIN product p
- ON qi.product_id = p.id
- JOIN product pp
- ON p.parent_id = pp.id
WHERE qi.inspect_state = 1
AND (
- (#{modelType} = 1 AND pp.product_name = '鍘熸潗鏂�')
- OR (#{modelType} = 2 AND pp.product_name = '鍗婃垚鍝�')
- OR (#{modelType} = 3 AND pp.product_name = '鎴愬搧')
+ (#{modelType} = 1 AND qi.inspect_type = 0)
+ OR (#{modelType} = 2 AND qi.inspect_type = 1)
+ OR (#{modelType} = 3 AND qi.inspect_type = 2)
)
GROUP BY qip.parameter_item),
ranked AS (SELECT name,
--
Gitblit v1.9.3