From 7828b982da116070fe11526733609ecce23631b6 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 15 五月 2026 19:55:28 +0800
Subject: [PATCH] feat: 设备维修新增报修人、验收人、维修人
---
src/main/resources/mapper/quality/QualityInspectMapper.xml | 124 +++++++++++++++++++++++++++++++----------
1 files changed, 94 insertions(+), 30 deletions(-)
diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index 99d6df1..9c064b4 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -3,10 +3,43 @@
<mapper namespace="com.ruoyi.quality.mapper.QualityInspectMapper">
<select id="qualityInspectListPage" resultType="com.ruoyi.quality.pojo.QualityInspect">
SELECT
- qi.*,
+ qi.id,
+ qi.inspect_type,
+ qi.check_time,
+ qi.supplier,
+ qi.customer,
+ qi.process,
+ qi.check_name,
+ qi.product_id,
+ qi.product_name,
+ qi.model,
+ ifnull(pm.unit, qi.unit) as unit,
+ qi.quantity,
+ qi.qualified_quantity,
+ qi.unqualified_quantity,
+ qi.pass_rate,
+ qi.check_company,
+ qi.check_result,
+ qi.create_time,
+ qi.create_user,
+ qi.update_time,
+ qi.update_user,
+ qi.tenant_id,
+ qi.inspect_state,
+ qi.approval_status,
+ qi.approve_user_ids,
+ qi.purchase_ledger_id,
+ qi.product_main_id,
+ qi.defective_phenomena,
+ qi.product_model_id,
+ qi.test_standard_id,
<choose>
<when test="qualityInspect.inspectType == 0">
pl.purchase_contract_number as purchase_contract_no,
+ pm.thickness
+ </when>
+ <when test="qualityInspect.inspectType == 1">
+ pwo.work_order_no,
pm.thickness
</when>
<otherwise>
@@ -47,6 +80,12 @@
<if test="qualityInspect.entryDateEnd != null and qualityInspect.entryDateEnd != '' ">
AND qi.check_time <= DATE_FORMAT(#{qualityInspect.entryDateEnd},'%Y-%m-%d')
</if>
+ <if test="qualityInspect.approvalStatus != null">
+ AND qi.approval_status = #{qualityInspect.approvalStatus}
+ </if>
+ <if test="qualityInspect.approveUserIds != null and qualityInspect.approveUserIds != '' ">
+ AND qi.approve_user_ids like concat('%',#{qualityInspect.approveUserIds},'%')
+ </if>
ORDER BY qi.id DESC
</select>
@@ -68,6 +107,12 @@
<if test="qualityInspect.productName != null and qualityInspect.productName != '' ">
AND product_name = #{qualityInspect.productName}
</if>
+ <if test="qualityInspect.approvalStatus != null">
+ AND approval_status = #{qualityInspect.approvalStatus}
+ </if>
+ <if test="qualityInspect.approveUserIds != null and qualityInspect.approveUserIds != '' ">
+ AND approve_user_ids like concat('%',#{qualityInspect.approveUserIds},'%')
+ </if>
</select>
<delete id="deleteByProductMainIds">
@@ -85,7 +130,7 @@
id AS root_id,
product_name AS root_name
FROM product
- WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+ WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
UNION ALL
SELECT p.id,
p.parent_id,
@@ -95,7 +140,7 @@
FROM product p
INNER JOIN product_tree pt ON p.parent_id = pt.id)
SELECT CASE pt.root_name
- WHEN '鍘熸枡' THEN 0
+ WHEN '鍘熸潗鏂�' THEN 0
WHEN '鍗婃垚鍝�' THEN 1
WHEN '鎴愬搧' THEN 2
END AS modelType,
@@ -117,12 +162,12 @@
WITH RECURSIVE product_tree AS (SELECT id,
product_name,
CASE product_name
- WHEN '鍘熸枡' THEN 0
+ WHEN '鍘熸潗鏂�' THEN 0
WHEN '鍗婃垚鍝�' THEN 1
WHEN '鎴愬搧' THEN 2
END AS modelType
FROM product
- WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+ WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
UNION ALL
@@ -135,10 +180,14 @@
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 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END),
- 0) AS qualifiedCount,
- COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '涓嶅悎鏍�' THEN qi.quantity ELSE 0 END),
- 0) AS unqualifiedCount,
+ 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)
@@ -146,7 +195,10 @@
) 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 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END)
+ 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
@@ -173,12 +225,12 @@
product_tree AS (SELECT id,
product_name,
CASE product_name
- WHEN '鍘熸枡' THEN 0
+ WHEN '鍘熸潗鏂�' THEN 0
WHEN '鍗婃垚鍝�' THEN 1
WHEN '鎴愬搧' THEN 2
END AS modelType
FROM product
- WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+ WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
UNION ALL
@@ -207,10 +259,14 @@
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 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END),
- 0) AS qualifiedCount,
- COALESCE(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '涓嶅悎鏍�' THEN qi.quantity ELSE 0 END),
- 0) AS unqualifiedCount,
+ 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,
@@ -219,7 +275,10 @@
/* 鍚堟牸鐜� */
IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0,
- ROUND(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END)
+ 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
@@ -241,12 +300,12 @@
product_tree AS (SELECT id,
product_name,
CASE product_name
- WHEN '鍘熸枡' THEN 0
+ WHEN '鍘熸潗鏂�' THEN 0
WHEN '鍗婃垚鍝�' THEN 1
WHEN '鎴愬搧' THEN 2
END AS modelType
FROM product
- WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+ WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
UNION ALL
@@ -264,11 +323,16 @@
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 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END),
- 0) AS qualifiedCount,
+ 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,
IF(SUM(CASE WHEN qi.inspect_state = 1 THEN qi.quantity ELSE 0 END) = 0, 0,
- ROUND(SUM(CASE WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸' THEN qi.quantity ELSE 0 END)
+ 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
@@ -291,7 +355,7 @@
WHERE month_num < 12),
product_tree AS (SELECT id, product_name AS root_name
FROM product
- WHERE product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
+ WHERE product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
UNION ALL
@@ -313,7 +377,7 @@
WHEN 12 THEN '鍗佷簩鏈�'
END AS month,
- COALESCE(SUM(CASE WHEN pt.root_name = '鍘熸枡' THEN qi.quantity ELSE 0 END), 0) AS rawMaterialCount,
+ COALESCE(SUM(CASE WHEN pt.root_name = '鍘熸潗鏂�' THEN qi.quantity ELSE 0 END), 0) AS rawMaterialCount,
COALESCE(SUM(CASE WHEN pt.root_name = '鍗婃垚鍝�' THEN qi.quantity ELSE 0 END), 0) AS processCount,
@@ -338,7 +402,7 @@
root_node AS (SELECT id, product_name
FROM product
WHERE (
- (#{modelType} = 1 AND product_name = '鍘熸枡')
+ (#{modelType} = 1 AND product_name = '鍘熸潗鏂�')
OR (#{modelType} = 2 AND product_name = '鍗婃垚鍝�')
OR (#{modelType} = 3 AND product_name = '鎴愬搧')
)),
@@ -350,11 +414,11 @@
INNER JOIN target_ids ti ON p.parent_id = ti.id),
parameter_counts AS (SELECT qip.parameter_item AS name,
COUNT(*) AS count
- FROM quality_inspect_param qip
- JOIN quality_inspect qi ON qip.inspect_id = qi.id
- WHERE qi.inspect_state = 1
- AND qi.product_id IN (SELECT id FROM target_ids)
- GROUP BY qip.parameter_item),
+ FROM quality_inspect_param qip
+ JOIN quality_inspect qi ON qip.inspect_id = qi.id
+ WHERE qi.inspect_state = 1
+ AND qi.product_id IN (SELECT id FROM target_ids)
+ GROUP BY qip.parameter_item),
ranked AS (SELECT name, count, ROW_NUMBER() OVER (ORDER BY count DESC) AS rn
FROM parameter_counts),
total AS (SELECT SUM(count) AS total_count
--
Gitblit v1.9.3