From 7b6741f6ccf11d0043ad94914d41a9bd23452d00 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 29 五月 2026 15:13:24 +0800
Subject: [PATCH] feat(sales): 添加销售台账审核反审功能 1.在销售台账下新增子级菜单:未审批订单和反审核数据。分别进行订单审 核和查看反审核的历史数据。 2.在销售台账页面,新增一个编辑按钮,可以对已审核的订单进行单价修 改。 3.新增反审核按钮,对已审核的订单进行反审核,反审核之后会保存当前订 单的数据快照,便于在反审核菜单进行查看。反审核的订单重新生成一条销 售订单数据进行编辑。
---
src/main/resources/mapper/quality/QualityInspectMapper.xml | 48 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 35 insertions(+), 13 deletions(-)
diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index 6f84cc0..9c064b4 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -15,6 +15,9 @@
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,
@@ -177,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)
@@ -188,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
@@ -249,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,
@@ -261,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
@@ -306,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
--
Gitblit v1.9.3