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 | 322 ++++++++++++++++++++---------------------------------
1 files changed, 122 insertions(+), 200 deletions(-)
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 2eb8e88..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 (
@@ -178,60 +233,7 @@
${ew.customSqlSegment}
</if>
</select>
- <select id="selectCostStatistics" resultType="com.ruoyi.inspect.dto.CostStatisticsDto">
- select * from (
- SELECT A.id,
- A.entrust_code,
- A.create_time,
- A.sample,
- A.model,
- A.inspection_item,
- A.company,
- A.`name`,
- COUNT(1) num,
- SUM(A.price) price,
- SUM(A.cost) cost
- FROM
- (SELECT
- i.id,
- i.entrust_code,
- i.create_time,
- isa.sample,
- isa.sample_code,
- isa.model,
- c.price,
- c.cost,
- c.inspection_item,
- i.company,
- u.`name`,
- i.create_user,
- c.ins_sample_id
- FROM
- ins_order i
- LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id
- LEFT JOIN `user` u ON u.id = i.user_id
- left join custom cus on cus.id = u.company
- LEFT JOIN (select SUM(b.price) price, sum(b.man_hour) cost,b.ins_sample_id,
- GROUP_CONCAT(b.inspection_item2
- SEPARATOR ',')
- inspection_item from (select * ,
- GROUP_CONCAT(CONCAT(inspection_item,'@',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP
- BY b.ins_sample_id) c ON c.ins_sample_id = isa.id
- where (i.state = 1 or i.state = 3 or i.state = 4) and c.ins_sample_id IS not NULL)A
- GROUP BY
- A.id,
- A.entrust_code,
- A.create_time,
- A.sample,
- A.model,
- A.inspection_item,
- A.company,
- A.`name`
- ) B
- <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
- ${ew.customSqlSegment}
- </if>
- </select>
+
<select id="selectDeviceList" resultType="java.util.Map">
select device_name,
en_device_name,
@@ -272,28 +274,6 @@
</if>
</select>
- <select id="getCount" resultType="long">
- select count(1)
- from (
- SELECT io.entrust_code,sam.sample,ip.inspection_item,u.name,b.create_time, sam.id
- from ins_order io
- left JOIN ins_sample sam on io.id=sam.ins_order_id
- LEFT JOIN ins_product ip on ip.ins_sample_id=sam.id
- LEFT JOIN
- (SELECT create_time,create_user,ins_product_id FROM (select * FROM ins_product_user ORDER BY
- ins_product_user.create_time DESC) a GROUP BY a.ins_product_id) b
- on b.ins_product_id=ip.id
- left JOIN `user` u on u.id=b.create_user
- where (ip.ins_result=0 OR ip.state=0)
- <if test="inspectionItems != null and inspectionItems != ''">
- and inspection_item like concat('%', #{inspectionItems}, '%')
- </if>
- <if test="orderNumber != null and orderNumber != ''">
- and io.entrust_code like concat('%', #{orderNumber}, '%')
- </if>
- ) temp
- </select>
-
<select id="getStandardMethodCode" resultType="java.lang.String">
select code
from standard_method
@@ -312,77 +292,6 @@
where son_laboratory = #{laboratory}
and ins_sample_id in
(select id from ins_sample where ins_order_id = #{id}))
- </select>
-
- <select id="selectCostStatistics2" resultType="com.ruoyi.inspect.dto.CostStatisticsDto">
- select * from (
- SELECT A.id,
- A.entrust_code,
- A.create_time,
- A.sample,
- A.model,
- A.inspection_item,
- A.company,
- A.`name`,
- production,
- engineering,
- COUNT(1) num,
- SUM(A.price) price,
- SUM(A.cost) cost
- FROM
- (SELECT
- i.id,
- i.entrust_code,
- i.create_time,
- isa.sample,
- isa.sample_code,
- isa.model,
- c.price,
- c.cost,
- c.inspection_item,
- i.company,
- u.`name`,
- i.create_user,
- c.ins_sample_id,
- production,
- engineering
- FROM
- ins_order i
- LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id
- LEFT JOIN `user` u ON u.id = i.user_id
- left join custom cus on cus.id = u.company
- LEFT JOIN (select SUM(b.price) price, sum(b.man_hour) cost,b.ins_sample_id,
- GROUP_CONCAT(b.inspection_item2
- SEPARATOR ',')
- inspection_item from (select * ,
- GROUP_CONCAT(CONCAT(inspection_item,'@',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP
- BY b.ins_sample_id) c ON c.ins_sample_id = isa.id
- where (i.state = 1 or i.state = 3 or i.state = 4) and c.ins_sample_id IS not NULL)A
- GROUP BY
- A.id,
- A.entrust_code,
- A.create_time,
- A.sample,
- A.model,
- A.inspection_item,
- A.company,
- A.`name`,
- production,
- engineering
- ORDER BY
- A.id,
- A.entrust_code,
- A.create_time,
- A.sample,
- A.model,
- A.inspection_item,
- A.company,
- A.`name`,
- production,
- engineering) B
- <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
- ${ew.customSqlSegment}
- </if>
</select>
<select id="seldepLimsId" resultType="java.lang.String">
@@ -410,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
@@ -501,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)
@@ -585,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