From 544afa4dabaccb0248bf0b6fcfdc7b9b6c2ea9f2 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 13 一月 2026 17:56:38 +0800
Subject: [PATCH] 合格率统计重构:根据物料属性分类返回对应的合格/不合格数据量

---
 inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml |  492 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 301 insertions(+), 191 deletions(-)

diff --git a/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml b/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
index 6e4e410..3c19453 100644
--- a/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
+++ b/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
@@ -1,195 +1,304 @@
 <?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.inspect.mapper.DataAnalysisMapper">
-    <!-- 鑾峰彇鏈懆鐨勫師鏉愭枡淇℃伅 -->
+
+    <!-- 鑾峰彇鏈懆鐨勭墿鏂欏睘鎬т俊鎭� -->
     <select id="getRawPassRateByBarChartByWeek" resultType="java.util.Map">
-        WITH RECURSIVE AllWeeks AS (SELECT 1 AS week
-                                     UNION ALL
-                                     SELECT week + 1
-                                     FROM AllWeeks
-                                     WHERE week &lt; 7)
-        SELECT COALESCE(sub.sum, 0)      AS sum,
-               CASE am.week
-                   WHEN 1 THEN '鏄熸湡鏃�'
-                   WHEN 2 THEN '鏄熸湡涓�'
-                   WHEN 3 THEN '鏄熸湡浜�'
-                   WHEN 4 THEN '鏄熸湡涓�'
-                   WHEN 5 THEN '鏄熸湡鍥�'
-                   WHEN 6 THEN '鏄熸湡浜�'
-                   WHEN 7 THEN '鏄熸湡鍏�'
-                END                   AS searchTime,
-               COALESCE(sub.passRate, 0) AS passRate
+        WITH RECURSIVE AllWeeks AS (
+        SELECT 1 AS week
+        UNION ALL
+        SELECT week + 1 FROM AllWeeks WHERE week &lt; 7
+        )
+        SELECT
+        COALESCE(sub.qualified, 0) AS qualified,
+        COALESCE(sub.unQualified, 0) AS unQualified,
+        CASE am.week
+        WHEN 1 THEN '鏄熸湡鏃�'
+        WHEN 2 THEN '鏄熸湡涓�'
+        WHEN 3 THEN '鏄熸湡浜�'
+        WHEN 4 THEN '鏄熸湡涓�'
+        WHEN 5 THEN '鏄熸湡鍥�'
+        WHEN 6 THEN '鏄熸湡浜�'
+        WHEN 7 THEN '鏄熸湡鍏�'
+        END AS searchTime
         FROM AllWeeks am
-                 LEFT JOIN (select COUNT(*)                 sum,
-                                   DAYOFWEEK(io1.send_time) searchTime,
-                                   ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) *
-                                         100,
-                                         2)                 passRate
-                            from ifs_inventory_quantity iiq
-                                     LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id
-                                and io1.order_type = #{dto.orderType}
-                                and io1.state != -1
-                                     left join (select is2.ins_order_id,
-                                                       is2.sample_type,
-                                                       is2.model,
-                                                       is2.sample
-                                                from ins_sample is2
-                                                group by is2.ins_order_id) ins on ins.ins_order_id = io1.id
-                            where iiq.is_finish = 1
-                              and iiq.inspect_status not in (0, 3)
-                              and (io1.send_time between #{dto.beginDate} and #{dto.endDate})
-        <if test="dto.sampleName != null and dto.sampleName != ''">
-            and ins.sample like concat('%', #{dto.sampleName}, '%')
+        LEFT JOIN (
+        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
+        FROM ifs_inventory_quantity iiq
+        INNER JOIN ins_order io1
+        ON io1.ifs_inventory_id = iiq.id
+        LEFT JOIN (
+        SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
+        FROM ins_sample
+        GROUP BY ins_order_id
+        ) ins ON ins.ins_order_id = io1.id
+        WHERE
+        iiq.is_finish = 1
+        AND iiq.inspect_status IN (1, 2)
+        AND io1.order_type = #{dto.orderType}
+        AND io1.state != -1
+        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
+
+        <if test="dto.materialProp != null and dto.materialProp.trim() != ''">
+            AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
         </if>
-        <if test="dto.modelName != null and dto.modelName != ''">
-            and ins.model like concat('%', #{dto.modelName}, '%')
+        <if test="dto.sampleName != null and dto.sampleName.trim() != ''">
+            AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
         </if>
-        <if test="dto.supplierName != null and dto.supplierName != ''">
-            and iiq.supplier_name like concat('%', #{dto.supplierName}, '%')
+        <if test="dto.modelName != null and dto.modelName.trim() != ''">
+            AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%')
         </if>
-                            GROUP BY DAYOFWEEK(io1.send_time)
-                            having searchTime is not null) sub ON am.week = sub.searchTime
-        WHERE am.week BETWEEN 1 AND 7
+        <if test="dto.supplierName != null and dto.supplierName.trim() != ''">
+            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
+        </if>
+
+        GROUP BY DAYOFWEEK(io1.send_time)
+        ) sub ON am.week = sub.week
         ORDER BY am.week
+
     </select>
 
-    <!-- 鑾峰彇鏈湀鐨勫師鏉愭枡淇℃伅 -->
+
+    <!-- 鑾峰彇鏈湀鐨勭墿鏂欏睘鎬т俊鎭� -->
+    <!-- 鑾峰彇鏈湀鐨勭墿鏂欏睘鎬т俊鎭紙鎸夊ぉ锛岃ˉ鍏ㄦ棩鏈燂級 -->
     <select id="getRawPassRateByBarChartByDay" resultType="java.util.Map">
-        select COUNT(*)                         sum,
-               DATE_FORMAT(io1.send_time, '%Y-%m-%d') searchTime,
-               ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) * 100,
-                     2)                         passRate
-        from ifs_inventory_quantity iiq
-                 LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id
-            and io1.order_type = #{dto.orderType}
-            and io1.state != -1
-                 left join (select is2.ins_order_id,
-                                   is2.sample_type,
-                                   is2.model,
-                                   is2.sample
-                            from ins_sample is2
-                            group by is2.ins_order_id) ins on ins.ins_order_id = io1.id
-        where iiq.is_finish = 1
-          and iiq.inspect_status not in (0, 3)
-        and (io1.send_time between #{dto.beginDate} and #{dto.endDate})
+        WITH RECURSIVE AllDays AS (
+        SELECT DATE(#{dto.beginDate}) AS day
+        UNION ALL
+        SELECT DATE_ADD(day, INTERVAL 1 DAY)
+        FROM AllDays
+        WHERE day &lt; DATE(#{dto.endDate})
+        )
+        SELECT
+        DATE_FORMAT(ad.day,'%Y-%m-%d') AS searchTime,
+        COALESCE(sub.qualified,0) AS qualified,
+        COALESCE(sub.unQualified,0) AS unQualified,
+        CASE
+        WHEN COALESCE(sub.total,0) = 0 THEN 0
+        ELSE ROUND(sub.qualified / sub.total * 100, 2)
+        END AS passRate
+        FROM AllDays ad
+        LEFT JOIN (
+        SELECT
+        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
+        FROM ifs_inventory_quantity iiq
+        LEFT JOIN ins_order io1
+        ON io1.ifs_inventory_id = iiq.id
+        AND io1.order_type = #{dto.orderType}
+        AND io1.state != -1
+        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
+        LEFT JOIN (
+        SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
+        FROM ins_sample
+        GROUP BY ins_order_id
+        ) ins ON ins.ins_order_id = io1.id
+        WHERE
+        iiq.is_finish = 1
+        AND iiq.inspect_status IN (1,2)
+
+        <if test="dto.materialProp != null and dto.materialProp != ''">
+            AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
+        </if>
         <if test="dto.sampleName != null and dto.sampleName != ''">
-            and ins.sample like concat('%', #{dto.sampleName}, '%')
+            AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
         </if>
         <if test="dto.modelName != null and dto.modelName != ''">
-            and ins.model like concat('%', #{dto.modelName}, '%')
+            AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%')
         </if>
         <if test="dto.supplierName != null and dto.supplierName != ''">
-            and iiq.supplier_name like concat('%', #{dto.supplierName}, '%')
+            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
-        GROUP BY DATE_FORMAT(io1.send_time, '%Y-%m-%d')
-        having searchTime is not null
-        order by searchTime
+
+        GROUP BY DATE(io1.send_time)
+        ) sub ON ad.day = sub.day
+        ORDER BY ad.day
     </select>
 
-    <!-- 鑾峰彇鏈勾鐨勫師鏉愭枡淇℃伅 -->
+
+    <!-- 鑾峰彇鏈勾鐨勭墿鏂欏睘鎬т俊鎭� -->
+    <!-- 鑾峰彇鏈勾鐨勭墿鏂欏睘鎬т俊鎭� -->
     <select id="getRawPassRateByBarChartByYear" resultType="java.util.Map">
-        WITH RECURSIVE AllMonths AS (SELECT 1 AS month
-                                     UNION ALL
-                                     SELECT month + 1
-                                     FROM AllMonths
-                                     WHERE month &lt; 12)
-        SELECT COALESCE(sub.sum, 0)      AS sum,
-               CASE am.month
-                   WHEN 1 THEN '1鏈�'
-                   WHEN 2 THEN '2鏈�'
-                   WHEN 3 THEN '3鏈�'
-                   WHEN 4 THEN '4鏈�'
-                   WHEN 5 THEN '5鏈�'
-                   WHEN 6 THEN '6鏈�'
-                   WHEN 7 THEN '7鏈�'
-                   WHEN 8 THEN '8鏈�'
-                   WHEN 9 THEN '9鏈�'
-                   WHEN 10 THEN '10鏈�'
-                   WHEN 11 THEN '11鏈�'
-                   WHEN 12 THEN '12鏈�'
-                END                   AS searchTime,
-               COALESCE(sub.passRate, 0) AS passRate
+        WITH RECURSIVE AllMonths AS (
+        SELECT 1 AS month
+        UNION ALL
+        SELECT month + 1 FROM AllMonths WHERE month
+        &lt;
+        12
+        )
+        SELECT
+        CASE am.month
+        WHEN 1 THEN '1鏈�'
+        WHEN 2 THEN '2鏈�'
+        WHEN 3 THEN '3鏈�'
+        WHEN 4 THEN '4鏈�'
+        WHEN 5 THEN '5鏈�'
+        WHEN 6 THEN '6鏈�'
+        WHEN 7 THEN '7鏈�'
+        WHEN 8 THEN '8鏈�'
+        WHEN 9 THEN '9鏈�'
+        WHEN 10 THEN '10鏈�'
+        WHEN 11 THEN '11鏈�'
+        WHEN 12 THEN '12鏈�'
+        END AS searchTime,
+        COALESCE(sub.qualified,0) AS qualified,
+        COALESCE(sub.unQualified,0) AS unQualified,
+        CASE
+        WHEN COALESCE(sub.total,0) = 0 THEN 0
+        ELSE ROUND(sub.qualified / sub.total * 100, 2)
+        END AS passRate
         FROM AllMonths am
-                 LEFT JOIN (select COUNT(*)                         sum,
-                                   DATE_FORMAT(io1.send_time, '%m') searchTime,
-                                   ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) /
-                                         COUNT(*) * 100,
-                                         2)                         passRate
-                            from ifs_inventory_quantity iiq
-                                     LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id
-                                and io1.order_type = #{dto.orderType}
-                                and io1.state != -1
-                                     left join (select is2.ins_order_id,
-                                                       is2.sample_type,
-                                                       is2.model,
-                                                       is2.sample
-                                                from ins_sample is2
-                                                group by is2.ins_order_id) ins on ins.ins_order_id = io1.id
-                            where iiq.is_finish = 1
-                              and iiq.inspect_status not in (0, 3)
-                              and (io1.send_time between #{dto.beginDate} and #{dto.endDate})
+        LEFT JOIN (
+        SELECT
+        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
+        FROM ifs_inventory_quantity iiq
+        LEFT JOIN ins_order io1
+        ON io1.ifs_inventory_id = iiq.id
+        AND io1.order_type = #{dto.orderType}
+        AND io1.state != -1
+        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
+        LEFT JOIN (
+        SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
+        FROM ins_sample
+        GROUP BY ins_order_id
+        ) ins ON ins.ins_order_id = io1.id
+        WHERE
+        iiq.is_finish = 1
+        AND iiq.inspect_status IN (1,2)
+
+        <if test="dto.materialProp != null and dto.materialProp != ''">
+            AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
+        </if>
         <if test="dto.sampleName != null and dto.sampleName != ''">
-            and ins.sample like concat('%', #{dto.sampleName}, '%')
+            AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
         </if>
         <if test="dto.modelName != null and dto.modelName != ''">
-            and ins.model like concat('%', #{dto.modelName}, '%')
+            AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%')
         </if>
         <if test="dto.supplierName != null and dto.supplierName != ''">
-            and iiq.supplier_name like concat('%', #{dto.supplierName}, '%')
+            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
-                            GROUP BY DATE_FORMAT(io1.send_time, '%Y-%m')
-                            having searchTime is not null) sub ON am.month = sub.searchTime
-        WHERE am.month BETWEEN 1 AND 12
+
+        GROUP BY MONTH(io1.send_time)
+        ) sub ON am.month = sub.month
         ORDER BY am.month
     </select>
 
-    <!-- 鏌ョ湅鍘熸潗鏂欓ゼ鐘跺浘 -->
+
+    <!-- 鏌ョ湅鐗╂枡灞炴�чゼ鐘跺浘 -->
     <select id="getRawPassRateByCake" resultType="java.util.Map">
-        select COUNT(*)                                                                                             sum,
-               (COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END))                               qualified,
-               (COUNT(*) - SUM(CASE WHEN inspect_status = 1 THEN 1 ELSE 0 END))                                     unQualified,
-               ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) * 100,
-                     2) AS passRate
-        from ifs_inventory_quantity iiq
-                 LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id
-            and io1.order_type = #{dto.orderType}
-            and io1.state != -1
-                 left join (select is2.ins_order_id,
-                                   is2.sample_type,
-                                   is2.model,
-                                   is2.sample
-                            from ins_sample is2
-                            group by is2.ins_order_id) ins on ins.ins_order_id = io1.id
-        where iiq.is_finish = 1
-          and iiq.inspect_status not in (0, 3)
-          and (io1.send_time between #{dto.beginDate} and #{dto.endDate})
+        SELECT
+        COUNT(*) AS sum,
+        /* 鍚堟牸 */
+        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,
+        ROUND(
+        SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END)
+        / COUNT(*) * 100,
+        2
+        ) AS passRate
+        FROM ifs_inventory_quantity iiq
+        INNER JOIN ins_order io1
+        ON io1.ifs_inventory_id = iiq.id
+        LEFT JOIN (
+        SELECT
+        is2.ins_order_id,
+        MAX(is2.sample_type) AS sample_type,
+        MAX(is2.model) AS model,
+        MAX(is2.sample) AS sample
+        FROM ins_sample is2
+        GROUP BY is2.ins_order_id
+        ) ins ON ins.ins_order_id = io1.id
+        WHERE
+        iiq.is_finish = 1
+        AND iiq.inspect_status IN (1, 2)
+        AND io1.order_type = #{dto.orderType}
+        AND io1.state != -1
+        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
+
+        <if test="dto.materialProp != null and dto.materialProp.trim() != ''">
+            AND IFNULL(iiq.material_prop, '') LIKE CONCAT('%', #{dto.materialProp}, '%')
+        </if>
+        <if test="dto.sampleName != null and dto.sampleName.trim() != ''">
+            AND IFNULL(ins.sample, '') LIKE CONCAT('%', #{dto.sampleName}, '%')
+        </if>
+        <if test="dto.modelName != null and dto.modelName.trim() != ''">
+            AND IFNULL(ins.model, '') LIKE CONCAT('%', #{dto.modelName}, '%')
+        </if>
+        <if test="dto.supplierName != null and dto.supplierName.trim() != ''">
+            AND IFNULL(iiq.supplier_name, '') LIKE CONCAT('%', #{dto.supplierName}, '%')
+        </if>
+    </select>
+
+    <select id="getMaterialPropTable" resultType="com.ruoyi.inspect.dto.MaterialPropTableDTO">
+        SELECT
+        iiq.update_batch_no AS updateBatchNo, -- 淇敼鍚庢壒娆″彿
+        iiq.qty_arrived AS qtyArrived, -- 鎶佃揪鐨勯噰璐暟閲�
+        iiq.part_desc AS partDesc, -- 闆朵欢鎻忚堪
+        iiq.inspect_status AS inspectStatus, -- 鍚堟牸鐘舵��
+        io1.send_time AS sendTime -- 涓嬪彂鏃堕棿
+        FROM ifs_inventory_quantity iiq
+        INNER JOIN ins_order io1
+        ON io1.ifs_inventory_id = iiq.id
+        AND io1.order_type = #{dto.orderType}
+        AND io1.state != -1
+        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
+        LEFT JOIN (
+        SELECT
+        ins_order_id,
+        MAX(sample) AS sample,
+        MAX(model) AS model
+        FROM ins_sample
+        GROUP BY ins_order_id
+        ) ins ON ins.ins_order_id = io1.id
+        WHERE
+        iiq.is_finish = 1
+        AND iiq.inspect_status IN (1,2)
+
+        <if test="dto.materialProp != null and dto.materialProp != ''">
+            AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
+        </if>
+
         <if test="dto.sampleName != null and dto.sampleName != ''">
-            and ins.sample like concat('%', #{dto.sampleName}, '%')
+            AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
         </if>
+
         <if test="dto.modelName != null and dto.modelName != ''">
-            and ins.model like concat('%', #{dto.modelName}, '%')
+            AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%')
         </if>
+
         <if test="dto.supplierName != null and dto.supplierName != ''">
-            and iiq.supplier_name like concat('%', #{dto.supplierName}, '%')
+            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
+
+        ORDER BY io1.send_time DESC
     </select>
 
     <select id="getRawProductAnalysisAllSample" resultType="com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto">
         select iiq.*,
-               io1.entrust_code,
-               io1.id     enter_order_id,
-               ins.id     sample_id,
-               ins.sample_type,
-               ins.sample sample_name,
-               ins.model  sample_model,
-               io1.send_time
+        io1.entrust_code,
+        io1.id enter_order_id,
+        ins.id sample_id,
+        ins.sample_type,
+        ins.sample sample_name,
+        ins.model sample_model,
+        io1.send_time
         from ifs_inventory_quantity iiq
-                 LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id
-            and io1.order_type = #{dto.orderType}
-            and io1.state != -1
-                 left join ins_sample  ins on ins.ins_order_id = io1.id
+        LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id
+        and io1.order_type = #{dto.orderType}
+        and io1.state != -1
+        left join ins_sample ins on ins.ins_order_id = io1.id
         where iiq.is_finish = 1
-          and iiq.inspect_status not in (0, 3)
+        and iiq.inspect_status not in (0, 3)
         <if test="dto.beginDate != null and dto.beginDate != '' and dto.endDate != null and dto.endDate != ''">
             and (io1.send_time between #{dto.beginDate} and #{dto.endDate})
         </if>
@@ -207,29 +316,29 @@
     <!-- 鏌ヨ妫�娴嬮」闆嗗悎 -->
     <select id="getRawProductAnalysisList" resultType="com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto">
         select iiq.*,
-               io1.entrust_code,
-               io1.id     enter_order_id,
-               ins.id     sample_id,
-               ins.sample_type,
-               ins.sample sample_name,
-               ins.model  sample_model,
-               u.name     user_name,
-               io1.send_time
+        io1.entrust_code,
+        io1.id enter_order_id,
+        ins.id sample_id,
+        ins.sample_type,
+        ins.sample sample_name,
+        ins.model sample_model,
+        u.name user_name,
+        io1.send_time
         from ifs_inventory_quantity iiq
-                 LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id
-            and io1.order_type = #{dto.orderType}
-            and io1.state != -1
-                 left join user u on io1.create_user = u.id
-                 left join (select is2.ins_order_id,
-                                   is2.sample_type,
-                                   is2.sample_code,
-                                   is2.model,
-                                   is2.sample,
-                                   is2.id
-                            from ins_sample is2
-                            group by is2.ins_order_id) ins on ins.ins_order_id = io1.id
+        LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id
+        and io1.order_type = #{dto.orderType}
+        and io1.state != -1
+        left join user u on io1.create_user = u.id
+        left join (select is2.ins_order_id,
+        is2.sample_type,
+        is2.sample_code,
+        is2.model,
+        is2.sample,
+        is2.id
+        from ins_sample is2
+        group by is2.ins_order_id) ins on ins.ins_order_id = io1.id
         where iiq.is_finish = 1
-          and iiq.inspect_status not in (0, 3)
+        and iiq.inspect_status not in (0, 3)
         <if test="dto.beginDate != null and dto.beginDate != '' and dto.endDate != null and dto.endDate != ''">
             and (io1.send_time between #{dto.beginDate} and #{dto.endDate})
         </if>
@@ -244,26 +353,26 @@
         </if>
     </select>
     <select id="getItemValueByOrderIds" resultType="com.ruoyi.inspect.vo.RawMaterialSupplierVo">
-        select io2.id                   orderId,
-               io2.entrust_code,
-               ins.sample,
-               ins.model,
-               iiq.supplier_name,
-               (select ip.`last_value`
-                from ins_product ip
-                where concat(ip.inspection_item, ip.inspection_item_subclass) = #{itemName}
-                  and ip.ins_sample_id = ins.id
-                limit 1) lastValue
+        select io2.id orderId,
+        io2.entrust_code,
+        ins.sample,
+        ins.model,
+        iiq.supplier_name,
+        (select ip.`last_value`
+        from ins_product ip
+        where concat(ip.inspection_item, ip.inspection_item_subclass) = #{itemName}
+        and ip.ins_sample_id = ins.id
+        limit 1) lastValue
         from ins_order io2
-                 left join ifs_inventory_quantity iiq on io2.ifs_inventory_id = iiq.id
-                 left join (select is2.ins_order_id,
-                                   is2.sample_type,
-                                   is2.sample_code,
-                                   is2.model,
-                                   is2.sample,
-                                   is2.id
-                            from ins_sample is2
-                            group by is2.ins_order_id) ins on ins.ins_order_id = io2.id
+        left join ifs_inventory_quantity iiq on io2.ifs_inventory_id = iiq.id
+        left join (select is2.ins_order_id,
+        is2.sample_type,
+        is2.sample_code,
+        is2.model,
+        is2.sample,
+        is2.id
+        from ins_sample is2
+        group by is2.ins_order_id) ins on ins.ins_order_id = io2.id
         where io2.id in
         <foreach collection="insOrderIds" index="index" open="(" separator="," close=")" item="val">
             #{val}
@@ -272,7 +381,7 @@
 
     <!-- 鏌ヨ鏈湀涓庝笂鏈堝悎鏍肩巼瀵规瘮 -->
     <select id="getRawUpMonth" resultType="java.util.Map">
-        select DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') as month,
+        select DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') as                           month,
                (select ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) *
                              100,
                              2) passRate
@@ -282,10 +391,11 @@
                     and io1.state != -1
                 where iiq.is_finish = 1
                   and iiq.inspect_status not in (0, 3)
-                  and (io1.send_time between DATE_FORMAT(DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 1 MONTH), '%Y-%m-%d %H:%i:%s')
+                  and (io1.send_time between DATE_FORMAT(DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 1 MONTH),
+                                                         '%Y-%m-%d %H:%i:%s')
                     and DATE_FORMAT(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)), '%Y-%m-%d 23:59:59'))) passRate
         UNION ALL
-        select DATE_FORMAT(CURRENT_DATE, '%Y-%m') as month,
+        select DATE_FORMAT(CURRENT_DATE, '%Y-%m') as                            month,
                (select ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) *
                              100,
                              2) passRate

--
Gitblit v1.9.3