From 12de000e79c094471e0a5b55cb49b966d5b93721 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 02 八月 2024 13:13:09 +0800 Subject: [PATCH] 检验下单优化查询语句 --- inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 100 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 82 insertions(+), 18 deletions(-) diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index e822231..f16e99f 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -27,7 +27,7 @@ <select id="findInsSampleAndOrder" resultType="com.yuanchu.mom.vo.InsOrderPlanVO"> select * from(select * from( SELECT - a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,(ios.verify_user = #{userId}) verify_user + a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,<!--(ios.verify_user = #{userId})--> verify_user FROM ( SELECT @@ -38,32 +38,58 @@ io.send_time, group_concat(distinct isa.sample,' ') sample, isu.user_id, + user.name userName, ip.son_laboratory, - io.ins_time + io.ins_time, + io.laboratory FROM ins_order io LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id - LEFT JOIN ( SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id ) isu ON isu.ins_sample_id = io.id + LEFT JOIN ( <!--SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id --> + SELECT * + FROM ins_sample_user u + WHERE son_laboratory=#{sonLaboratory} and (ins_sample_id, id) IN ( + SELECT ins_sample_id, MAX(id) + FROM ins_sample_user + WHERE son_laboratory=#{sonLaboratory} + GROUP BY ins_sample_id + ) + ORDER BY ins_sample_id, id + ) isu ON isu.ins_sample_id = io.id LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id + LEFT JOIN user ON isu.user_id = user.id WHERE io.state = 1 # AND io.ins_state != 5 and send_time is not null - and (isu.user_id = #{userId} OR isu.user_id is NULL) + <if test="userId !=null and userId!=''"> + and (isu.user_id = #{userId} OR isu.user_id is NULL ) + </if> + OR isu.user_id is NULL + 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 left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM - ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id and user_id = #{userId}) isu2 on + ins_sample_user where son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id) md where td.id = md.id + <if test="userId !=null and userId!=''"> + and user_id = #{userId} OR user_id is NULL + </if> + OR user_id is NULL + ) isu2 on isu2.ins_sample_id = a.id ORDER BY - a.user_id DESC, + <!--a.user_id DESC,--> a.type DESC, a.id ) b - where ins_state is not null)A + where ins_state is not null + <if test="laboratory!=null and laboratory!=''"> + and laboratory=#{laboratory} + </if> + )A <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> @@ -72,7 +98,7 @@ <select id="inspectionOrderDetailsTaskSwitching" resultType="com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo"> select * from( SELECT - a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,(ios.verify_user = #{userId}) verify_user + a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,<!--(ios.verify_user = #{userId})--> verify_user FROM ( SELECT @@ -81,33 +107,60 @@ io.type, io.appointed, io.send_time, - io.sample_type, + group_concat(distinct isa.sample,' ') sample, isu.user_id, + user.name userName, ip.son_laboratory, - io.ins_time + io.ins_time, + io.laboratory FROM ins_order io LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id - LEFT JOIN ( SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id ) isu ON isu.ins_sample_id = io.id + LEFT JOIN ( <!--SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id --> + SELECT * + FROM ins_sample_user u + WHERE son_laboratory=#{sonLaboratory} and (ins_sample_id, id) IN ( + SELECT ins_sample_id, MAX(id) + FROM ins_sample_user + WHERE son_laboratory=#{sonLaboratory} + GROUP BY ins_sample_id + ) + ORDER BY ins_sample_id, id + ) isu ON isu.ins_sample_id = io.id LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id + LEFT JOIN user ON isu.user_id = user.id WHERE io.state = 1 # AND io.ins_state != 5 and send_time is not null - and (isu.user_id = #{userId} OR isu.user_id is NULL) + <if test="userId !=null and userId!=''"> + and (isu.user_id = #{userId} OR isu.user_id is NULL ) + </if> + OR isu.user_id is NULL + 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 left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM - ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id and user_id = #{userId}) isu2 on + ins_sample_user where son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id) md where td.id = md.id + <if test="userId !=null and userId!=''"> + and user_id = #{userId} OR user_id is NULL + </if> + OR user_id is NULL + ) isu2 on isu2.ins_sample_id = a.id ORDER BY - a.user_id DESC, + <!--a.user_id DESC,--> a.type DESC, a.id ) b + where ins_state is not null + <if test="laboratory!=null and laboratory!=''"> + and laboratory=#{laboratory} + </if> + )A <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> @@ -163,7 +216,7 @@ and state = 1 and ins_fiber_id is null and ins_fibers_id is null - and isa.sample_code NOT REGEXP '/' + and isa.sample_code NOT REGEXP '/' </select> <select id="getInsOrderAndSample" resultMap="sampleDto"> select isa.*, @@ -225,6 +278,7 @@ select name_en from `center-lims`.product where name = #{sample} + limit 1 </select> <select id="selectSampleProductListByOrderId2" resultMap="sampleDto"> select isa.*, @@ -254,7 +308,8 @@ method, man_day, bsm, - tell as ask, + ask, + tell , `last_value`, ip.ins_result ip_ins_result, state, @@ -272,7 +327,7 @@ left join ins_product ip on isa.id = ip.ins_sample_id left join ins_product_result ipr on ip.id = ipr.ins_product_id where ins_order_id = #{id} - and template_id is not null + and ip.standard_method_list_id is not null and state = 1 </select> @@ -353,6 +408,7 @@ and ip.son_laboratory = #{laboratory} and ins_fiber_id is null and ins_fibers_id is null + and standard_method_list_id is not null </select> <select id="getInsProduct2" resultMap="product"> select ip.id ip_id, @@ -403,6 +459,7 @@ where ins_fibers_id = #{id} and state = 1 and ins_fiber_id is null + and standard_method_list_id is not null </select> <select id="getInsProduct3" resultMap="product"> select ip.id ip_id, @@ -453,6 +510,7 @@ where ins_fiber_id = #{id} and state = 1 and ins_fibers_id is null + and standard_method_list_id is not null </select> <select id="getReportModel" resultType="java.util.Map"> </select> @@ -590,6 +648,12 @@ code methodName from ins_sample is2 inner join standard_method sm on standard_method_list_id = sm.id - where is2.id=#{sampleId} + where is2.id = #{sampleId} + </select> + + <select id="selMethodById" resultType="java.lang.String"> + select code + from standard_method + where id = (select standard_method_list_id from ins_sample where id = #{sampleId}) </select> </mapper> -- Gitblit v1.9.3