From f201f17d7e25e71d22b9c8b821e387bdc8fba52d Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期一, 12 五月 2025 16:42:07 +0800
Subject: [PATCH] 添加判断当前时间是否没有该检测项的抽样计划功能

---
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml |  136 +++++++++++++++++++++++++++-----------------
 1 files changed, 83 insertions(+), 53 deletions(-)

diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 01a3ecf..78234d5 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -45,6 +45,61 @@
         ip.cable_tag
     </sql>
 
+    <sql id="selectInsOrderExport">
+        SELECT
+            io.*,
+            isau.user_id assign,
+            ir.id report_id,
+            ir.url,
+            ir.url_s,
+            sample_counts.sample_num,
+            CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
+            io.sample_view AS sample_name,
+            GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
+            u.name,
+            testing_name,
+            case when io.type = 0 then '鏅��'
+                 when io.type = 1 then '浼樺厛'
+                 when io.type = 2 then '绱ф��'
+                end typeString,
+            case when io.ins_result = 1 then '鍚堟牸'
+                 when io.ins_result = 0 then '涓嶅悎鏍�'
+                 else '寰呮楠�' end insResultString
+        FROM
+            ins_order io
+                LEFT JOIN
+            ins_sample isa ON io.id = isa.ins_order_id
+                LEFT JOIN
+            ins_sample_user isau ON isau.ins_sample_id = io.id
+                LEFT JOIN
+            (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
+                LEFT JOIN
+            user u ON io.create_user = u.id
+                LEFT JOIN
+            (SELECT ins_order_id, COUNT(*) AS sample_num
+             FROM ins_sample
+             WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
+             GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id
+                LEFT JOIN
+            (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
+             FROM ins_product
+                      JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
+             WHERE ins_product.state = 1
+             GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id
+                LEFT JOIN
+            (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
+             FROM ins_product
+                      JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
+             WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL
+             GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id
+                LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name
+                           FROM ins_sample_user u
+                                    LEFT JOIN user uu ON u.user_id = uu.id
+                           WHERE u.state = 0
+                           GROUP BY ins_sample_id
+                           ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
+    </sql>
+
     <select id="selectInsOrderPage" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
         select *
         from (
@@ -264,6 +319,7 @@
                  LEFT JOIN ins_product ip ON isa.id = ip.ins_sample_id
         WHERE ip.state = 1
           AND isa.id = #{id}
+          and ip.is_binding != 1
         GROUP BY ip.inspection_item,
                  ip.inspection_item_subclass,
                  ip.inspection_item_class
@@ -355,59 +411,7 @@
     <!-- 鏌ヨ妫�楠屽崟鏁版嵁 -->
     <select id="rawAllInsOrderExport" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
         select *
-        from (
-        SELECT
-        io.*,
-        isau.user_id assign,
-        ir.id report_id,
-        ir.url,
-        ir.url_s,
-        sample_counts.sample_num,
-        CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
-        io.sample_view AS sample_name,
-        GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
-        u.name,
-        testing_name,
-        case when io.type = 0 then '鏅��'
-        when io.type = 1 then '浼樺厛'
-        when io.type = 2 then '绱ф��'
-            end typeString,
-        case when io.ins_result = 1 then '鍚堟牸'
-        when io.ins_result = 0 then '涓嶅悎鏍�'
-        else '寰呮楠�' end insResultString
-        FROM
-        ins_order io
-        LEFT JOIN
-        ins_sample isa ON io.id = isa.ins_order_id
-        LEFT JOIN
-        ins_sample_user isau ON isau.ins_sample_id = io.id
-        LEFT JOIN
-        (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
-        LEFT JOIN
-        user u ON io.create_user = u.id
-        LEFT JOIN
-        (SELECT ins_order_id, COUNT(*) AS sample_num
-        FROM ins_sample
-        WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
-        GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id
-        LEFT JOIN
-        (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
-        FROM ins_product
-        JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
-        WHERE ins_product.state = 1
-        GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id
-        LEFT JOIN
-        (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
-        FROM ins_product
-        JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
-        WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL
-        GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id
-        LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name
-        FROM ins_sample_user u
-        LEFT JOIN user uu ON u.user_id = uu.id
-        WHERE u.state = 0
-        GROUP BY ins_sample_id
-        ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
+        from ( <include refid="selectInsOrderExport"/>
         where (io.ifs_inventory_id IS NULL OR TRIM(io.ifs_inventory_id)  = '')
         <if test="isOrderAll != null and isOrderAll != ''">
             AND io.state in (1, 4)
@@ -439,4 +443,30 @@
                  left join ins_sample is2 on is2.ins_order_id = io.id
         where is2.id = #{insSampleId}
     </select>
+
+    <!-- 鏍规嵁璁㈠崟id鏌ヨ璁㈠崟瀵煎嚭淇℃伅 -->
+    <select id="getInsOrderExportByIds" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
+        <include refid="selectInsOrderExport"/>
+        where (io.ifs_inventory_id IS NULL OR TRIM(io.ifs_inventory_id)  = '')
+        and io.id in
+        <foreach item="id" collection="orderIds" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+        GROUP BY io.id,type
+        order by type desc,io.id desc
+    </select>
+
+    <!-- 鏌ヨ褰撳墠鏃堕棿鏄惁鏈夎妫�娴嬮」鐨勬娊鏍疯鍒掕鍗� -->
+    <select id="selectNotSpotCheckOrder" resultType="java.lang.Integer">
+        select count(*)
+        from (select io.id
+              from ins_product ip
+                       left join ins_sample is2 on is2.id = ip.ins_sample_id
+                       left join ins_order io on io.id = is2.ins_order_id
+                       left join spot_check_quarter_item scqi on scqi.quarter_item_id = io.quarter_item_id
+              where io.quarter_item_id is not null
+                and scqi.spot_check_time between #{startTime} and #{endTime}
+                and ip.structure_item_parameter_id = #{itmeId}
+              group by io.id) a
+    </select>
 </mapper>

--
Gitblit v1.9.3