From e4265f964201bb0c4a6e80152c25018e618f3bcc Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期二, 15 七月 2025 11:51:45 +0800 Subject: [PATCH] 检验任务数据重复处理 --- inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 169 ++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 110 insertions(+), 59 deletions(-) diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index e80e958..fc3d7da 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -164,11 +164,14 @@ <select id="findInsSampleAndOrder" resultType="com.ruoyi.inspect.vo.InsOrderPlanVO"> - select * from(select * from( + SELECT * + FROM ( SELECT - a.*,ios.ins_state,ios.verify_tell,verify_user - FROM - ( + a.*, + ios.ins_state, + ios.verify_tell, + ios.verify_user + FROM ( SELECT io.id, io.entrust_code, @@ -176,81 +179,125 @@ io.appointed, io.send_time, io.order_type, - case when - io.type_source = 0 - then io.sample_view - else io.sample end sample, + CASE WHEN io.type_source = 0 THEN io.sample_view ELSE io.sample END AS sample, GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model, - userName, - checkName, - ip.son_laboratory, + MAX(isu.userName) AS userName, + MAX(isu2.checkName) AS checkName, + GROUP_CONCAT(DISTINCT ip.son_laboratory) AS 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 + MAX(ira.id) AS ins_report_id, + MAX(ira.url) AS url, + MAX(ira.url_s) AS url_s, + MAX(ira.temp_url_pdf) AS temp_url_pdf, + MAX(iiq.is_copper) AS is_copper + FROM ins_order io + INNER 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} + SELECT + ins_sample_id, + GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS userName + FROM ins_sample_user u + INNER JOIN user uu ON u.user_id = uu.id + WHERE u.state = 0 + <if test="sonLaboratory != null and sonLaboratory != ''"> + AND u.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} + SELECT + ins_sample_id, + MAX(uu.name) AS checkName + FROM ins_sample_user u + INNER JOIN user uu ON u.user_id = uu.id + WHERE u.state = 1 + <if test="sonLaboratory != null and sonLaboratory != ''"> + AND u.son_laboratory = #{sonLaboratory} </if> GROUP BY ins_sample_id - ORDER BY ins_sample_id - )isu2 ON isu2.ins_sample_id = io.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 + + WHERE io.state = 1 + AND io.send_time IS NOT NULL + <if test="isCheck != null"> - <if test="userName !=null and userName!=''"> - and checkName like CONCAT ('%', #{userName},'%') + <if test="userName != null and userName != ''"> + AND EXISTS ( + SELECT 1 + FROM ins_sample_user iu + JOIN user u ON iu.user_id = u.id + WHERE iu.ins_sample_id = io.id + AND iu.state = 1 + AND u.name LIKE CONCAT('%', #{userName}, '%') + <if test="sonLaboratory != null and sonLaboratory != ''"> + AND iu.son_laboratory = #{sonLaboratory} + </if> + ) </if> </if> + <if test="isCheck == null"> - <if test="userName !=null and userName!=''"> - and userName like CONCAT ('%', #{userName},'%') + <if test="userName != null and userName != ''"> + AND EXISTS ( + SELECT 1 + FROM ins_sample_user iu + JOIN user u ON iu.user_id = u.id + WHERE iu.ins_sample_id = io.id + AND iu.state = 0 + AND u.name LIKE CONCAT('%', #{userName}, '%') + <if test="sonLaboratory != null and sonLaboratory != ''"> + AND iu.son_laboratory = #{sonLaboratory} + </if> + ) </if> </if> - <if test="sonLaboratory!= null and sonLaboratory != ''"> - and ip.son_laboratory = #{sonLaboratory} + + <if test="sonLaboratory != null and sonLaboratory != ''"> + AND EXISTS ( + SELECT 1 + FROM ins_product ip2 + WHERE ip2.ins_sample_id = isa.id + AND ip2.son_laboratory = #{sonLaboratory} + ) </if> - GROUP BY - ip.son_laboratory, - io.id + + 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 - <if test="laboratory!=null and laboratory!=''"> - and laboratory=#{laboratory} + + LEFT JOIN ( + SELECT * + FROM ( + SELECT *, + ROW_NUMBER() OVER (PARTITION BY ins_order_id ORDER BY update_time DESC, id DESC) AS rn + FROM ins_order_state + ) ios + WHERE ios.rn = 1 + <if test="sonLaboratory != null and sonLaboratory != ''"> + AND ios.laboratory = #{sonLaboratory} </if> - )A + ) ios ON ios.ins_order_id = a.id + + WHERE ios.ins_state IS NOT NULL + + <if test="laboratory != null and laboratory != ''"> + AND a.laboratory = #{laboratory} + </if> + + ORDER BY a.type DESC, a.id + ) A + <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> - ORDER BY A.ins_time DESC + + ORDER BY send_time ASC + </select> <select id="inspectionOrderDetailsTaskSwitching" resultType="com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo"> @@ -463,7 +510,8 @@ ifs.id inventoryQuantityId, ifs.buy_unit_meas buyUnitMeas, io.test_quantity testQuantity, - ifs.buy_unit_meas buyUnitMeas + ifs.buy_unit_meas buyUnitMeas, + ifs.declare_date declareDate FROM ifs_inventory_quantity ifs LEFT JOIN ins_order io ON ifs.id = io.ifs_inventory_id @@ -555,9 +603,6 @@ <if test="repetitionTag != null and repetitionTag != ''"> and ip.repetition_tag = #{repetitionTag} </if> - <if test="isDisqualification != null and isDisqualification != ''"> - and ip.ins_result = 0 - </if> order by sort asc </select> @@ -572,9 +617,6 @@ and ins_fibers_id is null and standard_method_list_id is not null and ip.raw_material_tag = #{rawMaterialTag} - <if test="isDisqualification != null and isDisqualification != ''"> - and ip.ins_result = 0 - </if> order by sort asc </select> @@ -697,4 +739,13 @@ order by ip.sort asc </select> + <!-- 鏍规嵁璁㈠崟id鏌ヨ鏍峰搧 --> + <select id="getSampleByOrderId" resultType="com.ruoyi.inspect.pojo.InsSample"> + select is2.*, + sml.name standard_method_name + from ins_sample is2 + left join standard_method sml on sml.id = is2.standard_method_list_id + where is2.ins_order_id = #{insOrderId} + </select> + </mapper> -- Gitblit v1.9.3