From 52a7c9b093bcb05ee128b3ad8338007aad2cfccb Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 27 一月 2026 17:09:26 +0800
Subject: [PATCH] 业务管理:问题修复

---
 inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml b/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
index 749041b..40c572b 100644
--- a/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
+++ b/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
@@ -26,7 +26,7 @@
         SELECT
         DAYOFWEEK(io1.send_time) AS week,
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
         FROM ifs_inventory_quantity iiq
         INNER JOIN ins_order io1
         ON io1.ifs_inventory_id = iiq.id
@@ -37,7 +37,7 @@
         ) ins ON ins.ins_order_id = io1.id
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1, 2)
+        AND iiq.inspect_status IN (1, 2,4)
         AND io1.order_type = #{dto.orderType}
         AND io1.state != -1
         AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
@@ -86,7 +86,7 @@
         DATE(io1.send_time) AS day,
         COUNT(*) AS total,
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
         FROM ifs_inventory_quantity iiq
         LEFT JOIN ins_order io1
         ON io1.ifs_inventory_id = iiq.id
@@ -100,7 +100,7 @@
         ) ins ON ins.ins_order_id = io1.id
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1,2)
+        AND iiq.inspect_status IN (1,2,4)
 
         <if test="dto.materialProp != null and dto.materialProp != ''">
             AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
@@ -114,7 +114,9 @@
         <if test="dto.supplierName != null and dto.supplierName != ''">
             AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
-
+        <if test="dto.contract != null and dto.contract != ''">
+            AND IFNULL(iiq.contract,'') = #{dto.contract}
+        </if>
         GROUP BY DATE(io1.send_time)
         ) sub ON ad.day = sub.day
         ORDER BY ad.day
@@ -158,7 +160,7 @@
         MONTH(io1.send_time) AS month,
         COUNT(*) AS total,
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
         FROM ifs_inventory_quantity iiq
         LEFT JOIN ins_order io1
         ON io1.ifs_inventory_id = iiq.id
@@ -172,7 +174,7 @@
         ) ins ON ins.ins_order_id = io1.id
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1,2)
+        AND iiq.inspect_status IN (1,2,4)
 
         <if test="dto.materialProp != null and dto.materialProp != ''">
             AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
@@ -186,7 +188,9 @@
         <if test="dto.supplierName != null and dto.supplierName != ''">
             AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
-
+        <if test="dto.contract != null and dto.contract != ''">
+            AND IFNULL(iiq.contract,'') = #{dto.contract}
+        </if>
         GROUP BY MONTH(io1.send_time)
         ) sub ON am.month = sub.month
         ORDER BY am.month
@@ -200,7 +204,7 @@
         /* 鍚堟牸 */
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
         /* 涓嶅悎鏍� */
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified,
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified,
         ROUND(
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END)
         / COUNT(*) * 100,
@@ -220,7 +224,7 @@
         ) ins ON ins.ins_order_id = io1.id
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1, 2)
+        AND iiq.inspect_status IN (1, 2,4)
         AND io1.order_type = #{dto.orderType}
         AND io1.state != -1
         AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
@@ -237,13 +241,16 @@
         <if test="dto.supplierName != null and dto.supplierName.trim() != ''">
             AND IFNULL(iiq.supplier_name, '') LIKE CONCAT('%', #{dto.supplierName}, '%')
         </if>
+        <if test="dto.contract != null and dto.contract != ''">
+            AND IFNULL(iiq.contract,'') = #{dto.contract}
+        </if>
     </select>
 
     <select id="getMaterialPropTable" resultType="com.ruoyi.inspect.dto.MaterialPropTableDTO">
         SELECT
         iiq.supplier_name AS supplierName,
         COUNT(*) AS totalBatch,
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unqualifiedBatch,
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unqualifiedBatch,
         ROUND(SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) / COUNT(*)* 100, 2 ) AS passRate
 
         FROM ifs_inventory_quantity iiq
@@ -264,7 +271,7 @@
 
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1,2)
+        AND iiq.inspect_status IN (1,2,4)
 
         <if test="dto.materialProp != null and dto.materialProp != ''">
             AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
@@ -281,7 +288,9 @@
         <if test="dto.supplierName != null and dto.supplierName != ''">
             AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
-
+        <if test="dto.contract != null and dto.contract != ''">
+            AND IFNULL(iiq.contract,'') = #{dto.contract}
+        </if>
         GROUP BY
         iiq.supplier_name
 

--
Gitblit v1.9.3