From 444409ba734d4457f9109f0b71422b83fed60cd6 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 24 九月 2026 11:14:20 +0800
Subject: [PATCH] refactor(inspect): 重构设备列表查询和报告生成逻辑

---
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml |   47 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index d4aa9a2..798924f 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -115,12 +115,14 @@
         GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
         u.name,
         testing_name,
-        ip.son_laboratory
+        ip.son_laboratory,
+        isr.reject_remark AS sample_reject_remark
         FROM
         ins_order io
         LEFT JOIN
         ins_sample isa ON io.id = isa.ins_order_id
         left join ins_product ip on ip.ins_sample_id = isa.id
+        LEFT JOIN ins_sample_receipt isr ON isr.ins_order_id = io.id
         LEFT JOIN
         ins_sample_user isau ON isau.ins_sample_id = io.id
         LEFT JOIN
@@ -136,13 +138,13 @@
         (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
+        WHERE ins_product.state = 1 and is_binding !=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
+        WHERE ins_product.state = 1 and is_binding !=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
@@ -152,7 +154,10 @@
         ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
         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)
+            AND io.state in (1, 4, 5)
+        </if>
+        <if test="receiptSubmitted != null and receiptSubmitted != ''">
+            AND isr.status = 1
         </if>
         <if test="laboratory!=null and laboratory!=''">
             AND io.laboratory=#{laboratory}
@@ -181,6 +186,8 @@
         type,
         entrust_code,
         company,
+        sample,
+        sample_view,
         remark,
         create_time,
         state
@@ -234,7 +241,7 @@
         </if>
     </select>
 
-    <select id="selectDeviceList" resultType="java.util.Map">
+    <select id="selectDeviceListByIds" resultType="java.util.Map">
         select device_name,
                en_device_name,
                specification_model,
@@ -242,10 +249,14 @@
                date_format(activation_date,'%Y-%m-%d')
         latest_traceability
         from device
-        where device.management_number in
-        <foreach collection="managementNumbers" index="index" open="(" separator="," close=")" item="val">
+        where device.id in
+        <foreach collection="deviceIds" index="index" open="(" separator="," close=")" item="val">
             #{val}
         </foreach>
+        order by field(device.id,
+        <foreach collection="deviceIds" index="index" separator="," item="val">
+            #{val}
+        </foreach>)
     </select>
 
     <update id="updateStatus">
@@ -278,6 +289,23 @@
         select code
         from standard_method
         where id = #{id}
+    </select>
+    <select id="getStandardMethodReportText" resultType="java.lang.String">
+        select case
+                   when name is null or trim(name) = '' then code
+                   else concat(code, '銆�', name, '銆�')
+               end
+        from standard_method
+        where id = #{id}
+    </select>
+    <select id="getStandardMethodReportTextByCode" resultType="java.lang.String">
+        select case
+                   when name is null or trim(name) = '' then code
+                   else concat(code, '銆�', name, '銆�')
+               end
+        from standard_method
+        where code = #{code}
+        limit 1
     </select>
     <select id="selLaboratoryCode" resultType="java.lang.String">
         select laboratory_code
@@ -392,6 +420,7 @@
                      GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
                      io2.prepare_user,
                      io2.entrust_code,
+                     GROUP_CONCAT(DISTINCT isa.sample_code SEPARATOR ' ') AS sample_code,
                      io2.test_quantity,
                      io2.ins_state,
                      JSON_OBJECT(
@@ -400,7 +429,7 @@
                      )                                                 labelBarCode
               from ins_order io2
                        LEFT JOIN ins_sample isa ON io2.id = isa.ins_order_id
-              where type_source = 0
+              where type_source = -1
               GROUP BY io2.id) a
         where insOrderId in
         <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
@@ -414,7 +443,7 @@
         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)
+            AND io.state in (1, 4, 5)
         </if>
         <if test="laboratory!=null and laboratory!=''">
             AND io.laboratory=#{laboratory}

--
Gitblit v1.9.3