From 3793ba4a9b6be8faa6df0d4a76c06763ac03f873 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 29 十月 2025 15:06:04 +0800
Subject: [PATCH] 外购成品报检相关问题调整
---
inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 173 ++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 120 insertions(+), 53 deletions(-)
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 214e7fa..0a64bc3 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 (
@@ -356,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)
@@ -440,4 +443,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