From 18fd6957fcbcd6e798b737a08d7c62cf58dad881 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期二, 13 八月 2024 14:34:48 +0800 Subject: [PATCH] 检验任务:任务切换sql调整 --- inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 121 +++++++++++++++++++++++----------------- 1 files changed, 70 insertions(+), 51 deletions(-) diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index 9e80068..08ee5e4 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -25,66 +25,72 @@ </resultMap> <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,verify_user - FROM - ( + <!--SELECT * + FROM ( + SELECT * + FROM ( SELECT io.id, io.entrust_code, io.type, io.appointed, io.send_time, - group_concat(distinct isa.sample,' ') sample, - isu.user_id, - user.name userName, + GROUP_CONCAT(DISTINCT isa.sample SEPARATOR ' ') AS sample, + isu.userName, + isu2.checkName, ip.son_laboratory, io.ins_time, - io.laboratory + io.laboratory, + ios.ins_state, + ios.verify_tell, + ios.verify_user FROM ins_order io LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id LEFT JOIN ( - 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 + 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 + son_laboratory = #{sonLaboratory} AND u.state = 0 + GROUP BY + ins_sample_id ) isu ON isu.ins_sample_id = io.id + LEFT JOIN ( + SELECT + ins_sample_id, + uu.name AS checkName + FROM + ins_sample_user u + LEFT JOIN user uu ON u.user_id = uu.id + WHERE + son_laboratory = #{sonLaboratory} AND u.state = 1 + GROUP BY + ins_sample_id + ) isu2 ON isu2.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 + LEFT JOIN ins_order_state ios ON ios.ins_order_id = io.id AND ios.laboratory = ip.son_laboratory WHERE io.state = 1 - and send_time is not null - <if test="userId !=null and userId!=''"> - and (isu.user_id = #{userId} OR isu.user_id is NULL ) + AND io.send_time IS NOT NULL + AND (ip.son_laboratory = #{sonLaboratory} OR isu.userName IS NULL OR isu2.checkName IS NULL) + <if test="userName != null and userName != ''"> + AND (isu.userName LIKE CONCAT('%', #{userName}, '%') OR isu2.checkName LIKE CONCAT('%', #{userName}, '%')) </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 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 + io.id, ip.son_laboratory ORDER BY - a.type DESC, - a.id - ) b - where ins_state is not null--> - + io.type DESC, io.id + ) a + WHERE + a.ins_state IS NOT NULL + <if test="laboratory != null and laboratory != ''"> + AND a.laboratory = #{laboratory} + </if> + ) b--> select * from(select * from( SELECT a.*,ios.ins_state,ios.verify_tell,verify_user @@ -105,7 +111,6 @@ FROM ins_order io LEFT JOIN ins_sample isa ON isa.ins_order_id = io.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 @@ -114,6 +119,7 @@ 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 @@ -122,7 +128,6 @@ GROUP BY ins_sample_id ORDER BY ins_sample_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 <if test="userName !=null and userName!=''"> @@ -134,15 +139,13 @@ 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 - ORDER BY a.type DESC, a.id ) b where ins_state is not null + and son_laboratory=#{sonLaboratory} <if test="laboratory!=null and laboratory!=''"> and laboratory=#{laboratory} </if> @@ -188,7 +191,7 @@ LEFT JOIN user ON isu.user_id = user.id WHERE io.state = 1 - # AND io.ins_state != 5 +-- # AND io.ins_state != 5 and send_time is not null <if test="userId !=null and userId!=''"> and (isu.user_id = #{userId} OR isu.user_id is NULL ) @@ -208,8 +211,8 @@ ) isu2 on isu2.ins_sample_id = a.id where ins_state is not null - <if test="laboratory != null and laboratory!=''"> - and laboratory=#{laboratory} + <if test="laboratory != null and laboratory != ''"> + and a.laboratory=#{laboratory} </if> ORDER BY <!--a.user_id DESC,--> @@ -273,6 +276,12 @@ and ins_fibers_id is null and <!--isa.sample_code NOT REGEXP '/'--> isa.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 ) + order by case when man_hour_group is NULL then 1 + when man_hour_group ='' then 1 else 0 end, + CASE + WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴� + WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒� + ,id asc </select> <select id="getInsOrderAndSample" resultMap="sampleDto"> select isa.*, @@ -327,8 +336,6 @@ where ins_order_id = #{id} and state = 1 and ip.son_laboratory = #{laboratory} - and ins_fiber_id is null - and ins_fibers_id is null </select> <select id="getSampleEn" resultType="java.lang.String"> select name_en @@ -385,6 +392,12 @@ where ins_order_id = #{id} and ip.standard_method_list_id is not null and state = 1 + order by case when man_hour_group is NULL then 1 + when man_hour_group ='' then 1 else 0 end, + CASE + WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴� + WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒� + ,id asc </select> <select id="selectSampleProductListByOrderId3" resultMap="sampleDto3"> @@ -412,6 +425,12 @@ <foreach collection="ids" open="(" close=")" item="id" separator=","> #{id} </foreach> + order by case when man_hour_group is NULL then 1 + when man_hour_group ='' then 1 else 0 end, + CASE + WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴� + WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒� + ,id asc </select> <select id="getInsProduct1" resultMap="product"> -- Gitblit v1.9.3