From 00c23dd7d4a8f229d5c7fbe3439c6ea230fa7f48 Mon Sep 17 00:00:00 2001
From: chenrui <1187576398@qq.com>
Date: 星期三, 09 四月 2025 16:20:21 +0800
Subject: [PATCH] 成品检验查询功能开发

---
 inspect-server/src/main/resources/mapper/InsSampleMapper.xml |  144 ++++++++++++++++++++---------------------------
 1 files changed, 62 insertions(+), 82 deletions(-)

diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index 84af8bb..a918f7b 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -164,88 +164,68 @@
 
 
     <select id="findInsSampleAndOrder" resultType="com.ruoyi.inspect.vo.InsOrderPlanVO">
-        select * from(select * from(
-        SELECT
-        a.*,ios.ins_state,ios.verify_tell,verify_user
-        FROM
-        (
-        SELECT
-        io.id,
-        io.entrust_code,
-        io.type,
-        io.appointed,
-        io.send_time,
-        io.order_type,
-        case when
-            io.type_source = 0
-            then io.sample_view
-            else io.sample end sample,
-        GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
-        userName,
-        checkName,
-        ip.son_laboratory,
-        io.ins_time,
-        io.laboratory,
-        io.type_source,
-        io.ifs_inventory_id,
-        ira.id ins_report_id,
-        ira.url,
-        ira.url_s,
-        ira.temp_url_pdf,
-        iiq.is_copper
-        FROM
-        ins_order io
-        LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
-        LEFT JOIN ins_report ira ON ira.ins_order_id = io.id
-        LEFT JOIN ifs_inventory_quantity iiq ON iiq.id = io.ifs_inventory_id
-        LEFT JOIN (
-        SELECT ins_sample_id,GROUP_CONCAT( DISTINCT uu.name SEPARATOR ',') AS userName
-        FROM ins_sample_user u LEFT JOIN  user uu ON u.user_id = uu.id
-        WHERE u.state=0
-        <if test="sonLaboratory!= null and sonLaboratory != ''">
-           and son_laboratory=#{sonLaboratory}
-        </if>
-        GROUP BY ins_sample_id
-        ORDER BY ins_sample_id
-        ) isu ON isu.ins_sample_id = io.id
-        LEFT JOIN (
-        SELECT ins_sample_id,uu.name checkName
-        FROM ins_sample_user u LEFT JOIN  user uu ON u.user_id = uu.id
-        WHERE u.state=1
-        <if test="sonLaboratory!= null and sonLaboratory != ''">
-            and son_laboratory=#{sonLaboratory}
-        </if>
-        GROUP BY ins_sample_id
-        ORDER BY ins_sample_id
-        )isu2 ON isu2.ins_sample_id = io.id
-        LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id
-        WHERE io.state = 1 and send_time is not null
-        <if test="isCheck != null">
-            <if test="userName !=null and userName!=''">
-                and checkName like CONCAT ('%', #{userName},'%')
-            </if>
-        </if>
-        <if test="isCheck == null">
-            <if test="userName !=null and userName!=''">
-                and userName like CONCAT ('%', #{userName},'%')
-            </if>
-        </if>
-        <if test="sonLaboratory!= null and sonLaboratory != ''">
-            and ip.son_laboratory = #{sonLaboratory}
-        </if>
-        GROUP BY
-        ip.son_laboratory,
-        io.id
-        ) a
-        LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
-        ORDER BY
-        a.type DESC,
-        a.id
-        ) b
-        where ins_state is not null
-        <if test="laboratory!=null and laboratory!=''">
-            and laboratory=#{laboratory}
-        </if>
+        select * from(
+            select * from(
+                SELECT a.*,ios.ins_state,ios.verify_tell,verify_user
+                FROM
+                    (
+                    SELECT
+                        io.id,
+                        io.entrust_code,
+                        io.type,
+                        io.appointed,
+                        io.send_time,
+                        io.order_type,
+                        case when
+                            io.type_source = 0
+                            then io.sample_view
+                            else io.sample end sample,
+                        GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
+                        T4.userName,
+                        ip.son_laboratory,
+                        io.ins_time,
+                        io.laboratory,
+                        io.type_source,
+                        io.ifs_inventory_id,
+                        ira.id ins_report_id,
+                        ira.url,
+                        ira.url_s,
+                        ira.temp_url_pdf,
+                        iiq.is_copper
+                    FROM
+                        ins_order io
+                    LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
+                    LEFT JOIN ins_report ira ON ira.ins_order_id = io.id
+                    LEFT JOIN ifs_inventory_quantity iiq ON iiq.id = io.ifs_inventory_id
+                    LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id
+                    LEFT JOIN ins_sample_user isu ON isa.id = isu.user_id
+                    LEFT JOIN user uu ON ip.check_user_id = uu.id
+                    LEFT JOIN (
+                        SELECT T1.ins_order_id,GROUP_CONCAT( DISTINCT T3.name SEPARATOR ', ' ) AS userName FROM ins_sample T1 LEFT JOIN ins_product T2 ON T1.id = T2.ins_sample_id LEFT JOIN user T3 ON T2.check_user_id = T3.id GROUP BY T1.ins_order_id
+                    ) T4 ON T4.ins_order_id = io.id
+                    WHERE io.state = 1 and send_time is not null
+                    --  闈炴娴嬬鐞嗗憳
+                    <if test="otherParam.testAdminFlag != null and !otherParam.testAdminFlag">
+                        <if test="otherParam.checkUserFlag != null and otherParam.checkUserFlag">
+                            AND (
+                                isu.user_id = #{otherParam.userId} OR ip.check_user_id = #{otherParam.userId}
+                            )
+                        </if>
+                    </if>
+                    --  鏄娴嬬鐞嗗憳
+                    <if test="otherParam.testAdminFlag != null and otherParam.testAdminFlag">
+                        <if test="otherParam.viewMySelfFlag != null and otherParam.viewMySelfFlag">
+                            AND (
+                                isu.user_id = #{otherParam.userId} OR ip.check_user_id = #{otherParam.userId}
+                            )
+                        </if>
+                    </if>
+                    GROUP BY io.id
+                ) a
+                LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
+                ORDER BY a.type DESC,a.id
+                ) b
+            where ins_state is not null
         )A
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}

--
Gitblit v1.9.3