From 10ea62595d0fe28ec5d62f4774becd521e4b7599 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 22 八月 2026 13:02:40 +0800
Subject: [PATCH] fix: 原材料更名为原料

---
 src/main/resources/mapper/quality/QualityInspectMapper.xml |  120 ++++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 84 insertions(+), 36 deletions(-)

diff --git a/src/main/resources/mapper/quality/QualityInspectMapper.xml b/src/main/resources/mapper/quality/QualityInspectMapper.xml
index 0efab8c..112be1a 100644
--- a/src/main/resources/mapper/quality/QualityInspectMapper.xml
+++ b/src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -1,32 +1,71 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.ruoyi.quality.mapper.QualityInspectMapper">
-    <select id="qualityInspectListPage" resultType="com.ruoyi.quality.pojo.QualityInspect">
+    <select id="qualityInspectListPage" resultType="com.ruoyi.quality.dto.QualityInspectDto">
         SELECT
-        *
-        FROM quality_inspect
-        where
+        qi.*,
+        <choose>
+            <when test="qualityInspect.inspectType == 0">
+                pl.purchase_contract_number as purchase_contract_no
+            </when>
+            <otherwise>
+                pot.work_order_no,
+                po_sales.sales_contract_no
+            </otherwise>
+        </choose>
+        FROM
+        quality_inspect qi
+        <choose>
+            <when test="qualityInspect.inspectType == 0 ">
+                LEFT JOIN purchase_ledger pl ON pl.id = qi.purchase_ledger_id
+            </when>
+            <otherwise>
+                LEFT JOIN production_product_main ppm ON qi.product_main_id = ppm.id
+                LEFT JOIN production_operation_task pot ON ppm.production_operation_task_id = pot.id
+                left join production_order po ON po.id = pot.production_order_id
+                left join (
+                    select po2.id as order_id,
+                           group_concat(distinct sl2.sales_contract_no order by sl2.sales_contract_no separator ',') as sales_contract_no
+                    from production_order po2
+                             left join production_plan pp2
+                                       on find_in_set(pp2.id, replace(replace(replace(po2.production_plan_ids, '[', ''), ']', ''), ' ', '')) > 0
+                             left join sales_ledger sl2 on sl2.id = pp2.sales_ledger_id
+                    group by po2.id
+                ) po_sales ON po_sales.order_id = po.id
+            </otherwise>
+        </choose>
+        WHERE
         inspect_type=#{qualityInspect.inspectType}
         <if test="qualityInspect.supplier != null and qualityInspect.supplier != '' ">
-            AND supplier like concat('%',#{qualityInspect.supplier},'%')
+            AND qi.supplier like concat('%',#{qualityInspect.supplier},'%')
         </if>
         <if test="qualityInspect.customer != null and qualityInspect.customer != '' ">
-            AND customer like concat('%',#{qualityInspect.customer},'%')
+            AND qi.customer like concat('%',#{qualityInspect.customer},'%')
         </if>
         <if test="qualityInspect.process != null and qualityInspect.process != '' ">
-            AND process like concat('%',#{qualityInspect.process},'%')
+            AND qi.process like concat('%',#{qualityInspect.process},'%')
         </if>
         <if test="qualityInspect.productName != null and qualityInspect.productName != '' ">
-            AND product_name like concat('%',#{qualityInspect.productName},'%')
+            AND qi.product_name like concat('%',#{qualityInspect.productName},'%')
         </if>
         <if test="qualityInspect.entryDateStart != null and qualityInspect.entryDateStart != '' ">
-            AND check_time &gt;= DATE_FORMAT(#{qualityInspect.entryDateStart},'%Y-%m-%d')
+            AND qi.check_time &gt;= DATE_FORMAT(#{qualityInspect.entryDateStart},'%Y-%m-%d')
         </if>
         <if test="qualityInspect.entryDateEnd != null and qualityInspect.entryDateEnd != '' ">
-            AND check_time &lt;= DATE_FORMAT(#{qualityInspect.entryDateEnd},'%Y-%m-%d')
+            AND qi.check_time &lt;= DATE_FORMAT(#{qualityInspect.entryDateEnd},'%Y-%m-%d')
         </if>
-        ORDER BY check_time DESC
+        <if test="qualityInspect.purchaseContractNo != null and qualityInspect.purchaseContractNo != '' ">
+            AND pl.purchase_contract_number like concat('%',#{qualityInspect.purchaseContractNo},'%')
+        </if>
+        <if test="qualityInspect.workOrderNo != null and qualityInspect.workOrderNo != '' ">
+            AND pot.work_order_no like concat('%',#{qualityInspect.workOrderNo},'%')
+        </if>
+        <if test="qualityInspect.salesContractNo != null and qualityInspect.salesContractNo != '' ">
+            AND po_sales.sales_contract_no like concat('%',#{qualityInspect.salesContractNo},'%')
+        </if>
+        ORDER BY qi.check_time DESC
     </select>
+
     <select id="qualityInspectExport" resultType="com.ruoyi.quality.pojo.QualityInspect">
         SELECT
         *
@@ -57,7 +96,7 @@
 
     <select id="getInspectStatistics" resultType="com.ruoyi.quality.dto.QualityInspectStatDto">
         SELECT CASE pp.product_name
-                   WHEN '鍘熸潗鏂�' THEN 0
+                   WHEN '鍘熸枡' THEN 0
                    WHEN '鍗婃垚鍝�' THEN 1
                    WHEN '鎴愬搧' THEN 2
                    END                     AS modelType,
@@ -77,7 +116,7 @@
                  LEFT JOIN quality_inspect qi
                            ON qi.product_model_id = pm.id
 
-        WHERE pp.product_name IN ('鍘熸潗鏂�', '鍗婃垚鍝�', '鎴愬搧')
+        WHERE pp.product_name IN ('鍘熸枡', '鍗婃垚鍝�', '鎴愬搧')
 
         GROUP BY pp.product_name
 
@@ -98,8 +137,7 @@
                COALESCE(SUM(
                                 CASE
                                     WHEN qi.inspect_state = 1
-                                        AND qi.check_result = '鍚堟牸'
-                                        THEN qi.quantity
+                                        THEN qi.qualified_quantity
                                     ELSE 0
                                     END
                         ), 0)                AS qualifiedCount,
@@ -107,8 +145,7 @@
                COALESCE(SUM(
                                 CASE
                                     WHEN qi.inspect_state = 1
-                                        AND qi.check_result = '涓嶅悎鏍�'
-                                        THEN qi.quantity
+                                        THEN qi.unqualified_quantity
                                     ELSE 0
                                     END
                         ), 0)                AS unqualifiedCount,
@@ -136,8 +173,7 @@
                           COALESCE(SUM(
                                            CASE
                                                WHEN qi.inspect_state = 1
-                                                   AND qi.check_result = '鍚堟牸'
-                                                   THEN qi.quantity
+                                                   THEN qi.qualified_quantity
                                                ELSE 0
                                                END
                                    ), 0)
@@ -164,7 +200,7 @@
                  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 = 0) OR
                                   (pp.product_name = '鍗婃垚鍝�' AND t.modelType = 1) OR
                                   (pp.product_name = '鎴愬搧' AND t.modelType = 2)
                                   )
@@ -218,8 +254,8 @@
             /* 鍚堟牸 */
                COALESCE(SUM(
                                 CASE
-                                    WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸'
-                                        THEN qi.quantity
+                                    WHEN qi.inspect_state = 1
+                                        THEN qi.qualified_quantity
                                     ELSE 0
                                     END
                         ), 0)                AS qualifiedCount,
@@ -227,8 +263,8 @@
             /* 涓嶅悎鏍� */
                COALESCE(SUM(
                                 CASE
-                                    WHEN qi.inspect_state = 1 AND qi.check_result = '涓嶅悎鏍�'
-                                        THEN qi.quantity
+                                    WHEN qi.inspect_state = 1
+                                        THEN qi.unqualified_quantity
                                     ELSE 0
                                     END
                         ), 0)                AS unqualifiedCount,
@@ -249,8 +285,8 @@
                   ROUND(
                           COALESCE(SUM(
                                            CASE
-                                               WHEN qi.inspect_state = 1 AND qi.check_result = '鍚堟牸'
-                                                   THEN qi.quantity
+                                               WHEN qi.inspect_state = 1
+                                                   THEN qi.qualified_quantity
                                                ELSE 0
                                                END
                                    ), 0)
@@ -270,7 +306,7 @@
                                AND YEAR(qi.check_time) = #{year}
                                AND MONTH(qi.check_time) = b.month_num
                                AND (
-                                  (pp.product_name = '鍘熸潗鏂�' AND b.modelType = 0)
+                                  (pp.product_name = '鍘熸枡' AND b.modelType = 0)
                                       OR (pp.product_name = '鍗婃垚鍝�' AND b.modelType = 1)
                                       OR (pp.product_name = '鎴愬搧' AND b.modelType = 2)
                                   )
@@ -282,16 +318,30 @@
 
     <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 = 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
-
+                        ), 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
         FROM (SELECT 0 AS modelType
               UNION ALL
               SELECT 1
@@ -304,8 +354,6 @@
                            ON qi.product_model_id = pm.id
                                AND YEAR(qi.check_time) = #{year}
                                AND qi.inspect_state = 1
-                               AND qi.check_result = '鍚堟牸'
-
         GROUP BY t.modelType
         ORDER BY t.modelType;
     </select>
@@ -333,10 +381,10 @@
                    WHEN 12 THEN '鍗佷簩鏈�'
                    END        AS month,
 
-            /* 鍘熸潗鏂� */
+            /* 鍘熸枡 */
                COALESCE(SUM(
                                 CASE
-                                    WHEN pp.product_name = '鍘熸潗鏂�'
+                                    WHEN pp.product_name = '鍘熸枡'
                                         THEN qi.quantity
                                     ELSE 0
                                     END
@@ -387,7 +435,7 @@
                                                 ON p.parent_id = pp.id
                                   WHERE qi.inspect_state = 1
                                     AND (
-                                      (#{modelType} = 1 AND pp.product_name = '鍘熸潗鏂�')
+                                      (#{modelType} = 1 AND pp.product_name = '鍘熸枡')
                                           OR (#{modelType} = 2 AND pp.product_name = '鍗婃垚鍝�')
                                           OR (#{modelType} = 3 AND pp.product_name = '鎴愬搧')
                                       )

--
Gitblit v1.9.3