From 6f507a2a6ff037346b052b2b7ce96ab2910c9735 Mon Sep 17 00:00:00 2001
From: deslrey <deslre0381@gmail.com>
Date: 星期一, 12 一月 2026 11:53:35 +0800
Subject: [PATCH] 外购订单的标签打印功能查询接口及查询

---
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml |  211 +++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 158 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..18f7a41 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
@@ -352,62 +408,47 @@
         </foreach>
     </select>
 
+    <!-- 澶栬喘涓嬪崟鎴愬搧鏍囩鎵撳嵃 -->
+    <select id="labelOutsideOrderPrinting" resultType="com.ruoyi.basic.dto.InventoryDetailDTO">
+        SELECT
+        iiq.id,
+        iiq.part_desc,
+        iiq.lot_batch_no,
+        iiq.part_no,
+        ippr.insulation_color,
+        ippr.outer_color,
+        ippr.drum_no,
+        ippr.start_meter_mark,
+        ippr.end_meter_mark,
+        io.update_time,
+        io.ins_state,
+        -- 妫�楠屼汉鏌ヨ锛氫紭鍏堝彇鎸囨淳鐨勮礋璐d汉锛屽鏋滄病鏈夊垯鍙栬鍗曞垱寤轰汉
+        COALESCE(isu.userName, u.name) AS inspector_name
+        FROM ifs_inventory_quantity iiq
+        LEFT JOIN ifs_part_props_record ippr ON ippr.ifs_inventory_id = iiq.id
+        LEFT JOIN ins_order io ON io.ifs_inventory_id = iiq.id AND io.state != -1
+        -- 鍏宠仈鐢ㄦ埛琛紝鐢ㄤ簬鑾峰彇璁㈠崟鍒涘缓浜哄鍚�
+        LEFT JOIN user u ON io.create_user = u.id
+        -- 鍏宠仈瀛愭煡璇紝鐢ㄤ簬鑾峰彇 ins_sample_user 琛ㄤ腑鎸囨淳鐨勬楠岃礋璐d汉
+        LEFT JOIN (
+        SELECT
+        ins_sample_id,
+        GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS userName
+        FROM ins_sample_user isu_inner
+        LEFT JOIN user uu ON isu_inner.user_id = uu.id
+        WHERE isu_inner.state = 0
+        GROUP BY ins_sample_id
+        ) isu ON isu.ins_sample_id = io.id
+        WHERE iiq.id IN
+        <foreach collection="ids" index="index" open="(" separator="," close=")" item="val">
+            #{val}
+        </foreach>
+    </select>
+
     <!-- 鏌ヨ妫�楠屽崟鏁版嵁 -->
     <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 +480,68 @@
                  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>
+    <select id="selectOrderInfoById" resultType="com.ruoyi.inspect.vo.IfsOrderVO">
+        select  io.*,
+                iiq.is_split_order,
+                iiq.order_type AS ifs_order_type,
+                iiq.part_no,
+                iiq.update_batch_no AS lot_batch_no,
+                ipps.id AS lot_part_id,
+                case
+                    when ipps.drum_no is not null and ipps.drum_no!='' then ipps.drum_no
+                    else isor.drum_no
+                    end AS drum_no,
+                case
+                    when ipps.insulation_color is not null and ipps.insulation_color!='' then ipps.insulation_color
+                    else isor.insulation_color
+                    end AS insulation_color,
+                case
+                    when ipps.outer_color is not null and ipps.outer_color!='' then ipps.outer_color
+                    else isor.outer_color
+                    end AS outer_color,
+                case
+                    when ipps.lettering_info is not null and ipps.lettering_info!='' then ipps.lettering_info
+                    else isor.lettering_info
+                    end AS lettering_info,
+                ipps.start_meter_mark,
+                ipps.end_meter_mark
+        from ins_order io left join ifs_inventory_quantity iiq on io.ifs_inventory_id=iiq.id
+                          left join ifs_split_order_record isor
+                                    on iiq.order_no=isor.order_no
+                                        and iiq.line_no=isor.line_no
+                                        and iiq.release_no=isor.release_no
+                                        and iiq.receipt_no=isor.receipt_no
+                                        and iiq.part_no=isor.part_no
+                                        AND iiq.update_batch_no = isor.lot_batch_no
+            LEFT JOIN ifs_part_props_record ipps ON iiq.id = ipps.ifs_inventory_id
+        where io.state !=-1
+        AND io.id = #{id}
+        LIMIT 1
+    </select>
 </mapper>

--
Gitblit v1.9.3