Crunchy
2024-08-19 dd01f5db07017762c900c88b01752d442569a502
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,-->
@@ -269,9 +272,16 @@
                 left join ins_product_result ipr on ip.id = ipr.ins_product_id
        where ins_order_id = #{id}
          and state = 1
          and ins_fiber_id is null
          and ins_fibers_id is null
          and isa.sample_code NOT REGEXP '/'
--           and ins_fiber_id is null
--           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.*,
@@ -326,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
@@ -384,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">
@@ -411,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">