deslrey
6 分钟以前 1c8ab7e48b85ab6ee54cebc691467041fbf2799b
inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -162,13 +162,15 @@
               ip.structure_item_parameter_id
    </sql>
    <select id="findInsSampleAndOrder" resultType="com.ruoyi.inspect.vo.InsOrderPlanVO">
        select * from(select * from(
        SELECT * FROM (
        SELECT * FROM (
        SELECT
        a.*,ios.ins_state,ios.verify_tell,verify_user
        FROM
        (
        a.*,
        ios.ins_state,
        ios.verify_tell,
        verify_user
        FROM (
        SELECT
        io.id,
        io.entrust_code,
@@ -176,10 +178,7 @@
        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,
@@ -188,51 +187,81 @@
        io.laboratory,
        io.type_source,
        io.ifs_inventory_id,
        ira.id ins_report_id,
        ira.id AS ins_report_id,
        ira.url,
        ira.url_s,
        ira.temp_url_pdf,
        iiq.is_copper
        iiq.is_copper,
        iiq.is_split_order,
        CASE
        WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.update_batch_no
        ELSE io.update_batch_no
        END AS update_batch_no,
        CASE
        WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.part_desc
        ELSE io.part_desc
        END AS part_desc,
        CASE
        WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.supplier_name
        ELSE io.supplier_name
        END AS supplier_name,
        iiq.material_prop AS material_prop
        FROM
        ins_order io
        LEFT 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
        LEFT JOIN user uu ON u.user_id = uu.id
        WHERE u.state = 0
        <if test="sonLaboratory != null and sonLaboratory != ''">
            AND 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,
        uu.name AS 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}
        </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="materialProp != null and materialProp != ''">
            AND iiq.material_prop LIKE CONCAT('%', #{materialProp}, '%')
        </if>
        <if test="sonLaboratory != null and sonLaboratory != ''">
            AND ip.son_laboratory = #{sonLaboratory}
        </if>
        <if test="isCheck != null">
            <if test="userName !=null and userName!=''">
                and checkName like CONCAT ('%', #{userName},'%')
            <if test="userName != null and userName != ''">
                AND checkName LIKE CONCAT('%', #{userName}, '%')
            </if>
        </if>
        <if test="isCheck == null">
            <if test="userName !=null and userName!=''">
                and userName like CONCAT ('%', #{userName},'%')
            <if test="userName != null and userName != ''">
                AND userName LIKE CONCAT('%', #{userName}, '%')
            </if>
        </if>
        <if test="sonLaboratory!= null and sonLaboratory != ''">
            and ip.son_laboratory = #{sonLaboratory}
        </if>
        GROUP BY
        ip.son_laboratory,
        io.id
@@ -242,14 +271,15 @@
        a.type DESC,
        a.id
        ) b
        where ins_state is not null
        <if test="laboratory!=null and laboratory!=''">
            and laboratory=#{laboratory}
        WHERE ins_state IS NOT NULL
        <if test="laboratory != null and laboratory != ''">
            AND laboratory = #{laboratory}
        </if>
        )A
        ) A
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
        ORDER BY send_time ASC
    </select>
    <select id="inspectionOrderDetailsTaskSwitching" resultType="com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo">
@@ -288,7 +318,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 )
@@ -323,59 +353,60 @@
    <select id="selectSampleProductListByOrderId" resultMap="sampleDto">
        select isa.*,
               ip.id          ip_id,
               inspection_item,
               inspection_item_en,
               inspection_item_class,
               inspection_item_class_en,
               inspection_item_subclass,
               inspection_item_subclass_en,
               ip.factory     ip_factory,
               ip.laboratory  ip_laboratory,
               ip.sample_type ip_sample_type,
               ip.sample      ip_sample,
               ip.model       ip_model,
               son_laboratory,
               ip.unit        ip_unit,
               price,
               man_hour,
               man_hour_group,
               inspection_item_type,
               inspection_value_type,
               device_group,
               checkout_number,
               section,
               value_type,
               method,
               man_day,
               bsm,
               ask,
               tell,
               `last_value`,
               ip.ins_result  ip_ins_result,
               state,
               ins_sample_id,
               ip.create_user ip_create_user,
               ip.update_user ip_update_user,
               ip.create_time ip_create_time,
               ip.update_time ip_update_time,
               template_id,
               ipr.ins_value,
               ipr.com_value,
               ipr.equip_value,
               ip.method_s
        ip.id ip_id,
        inspection_item,
        inspection_item_en,
        inspection_item_class,
        inspection_item_class_en,
        inspection_item_subclass,
        inspection_item_subclass_en,
        ip.factory ip_factory,
        ip.laboratory ip_laboratory,
        ip.sample_type ip_sample_type,
        ip.sample ip_sample,
        ip.model ip_model,
        son_laboratory,
        ip.unit ip_unit,
        price,
        man_hour,
        man_hour_group,
        inspection_item_type,
        inspection_value_type,
        device_group,
        checkout_number,
        section,
        value_type,
        method,
        man_day,
        bsm,
        ask,
        tell,
        `last_value`,
        ip.ins_result ip_ins_result,
        state,
        ins_sample_id,
        ip.create_user ip_create_user,
        ip.update_user ip_update_user,
        ip.create_time ip_create_time,
        ip.update_time ip_update_time,
        template_id,
        ipr.ins_value,
        ipr.com_value,
        ipr.equip_value,
        ip.method_s
        from ins_sample isa
                 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
        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 state = 1
--           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 )
        and state = 1
        -- 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 ip.sort asc,
            case when man_hour_group is NULL then 1
        when man_hour_group ='' then 1  else 0 end,
        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 -- 提取字母后面的数字部分
@@ -448,26 +479,24 @@
        limit 1
    </select>
    <select id="selectInsOrder" resultType="map">
        SELECT
            ifs.order_no AS orderNo,
            ifs.supplier_id AS supplierId,
            ifs.supplier_name AS supplierName,
            ifs.part_no AS partNo,
            ifs.qty_arrived AS qtyArrived,
            ifs.receiver_date AS receiverDate,
            ifs.update_batch_no AS updateBatchNo,
            ifs.part_desc AS partDesc,
            io.send_time AS sendTime,
            ifs.declare_user declareUser,
            ifs.id inventoryQuantityId,
            ifs.buy_unit_meas buyUnitMeas,
            io.test_quantity testQuantity,
            ifs.buy_unit_meas buyUnitMeas
        FROM
            ifs_inventory_quantity ifs
                LEFT JOIN ins_order io ON ifs.id = io.ifs_inventory_id
        WHERE
            io.id = #{id}
        SELECT ifs.order_no        AS orderNo,
               ifs.supplier_id     AS supplierId,
               ifs.supplier_name   AS supplierName,
               ifs.part_no         AS partNo,
               ifs.qty_arrived     AS qtyArrived,
               ifs.receiver_date   AS receiverDate,
               ifs.update_batch_no AS updateBatchNo,
               ifs.part_desc       AS partDesc,
               io.send_time        AS sendTime,
               ifs.declare_user       declareUser,
               ifs.id                 inventoryQuantityId,
               ifs.buy_unit_meas      buyUnitMeas,
               io.test_quantity       testQuantity,
               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
        WHERE io.id = #{id}
    </select>
    <select id="selectSampleProductListByOrderId2" resultMap="sampleDto">
        select isa.*,
@@ -522,24 +551,28 @@
          and state = 1
          and ip.is_binding != 1
        order by ip.sort asc,
            case when man_hour_group is NULL then 1
                      when man_hour_group ='' then 1  else 0 end,
                 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
                     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">
        select <include refid="getInsProducSql"/>
        select
        <include refid="getInsProducSql"/>
        from ins_product ip
                 left join ins_product_result ipr on ip.id = ipr.ins_product_id
        left join ins_product_result ipr on ip.id = ipr.ins_product_id
        where ins_sample_id = #{id}
          and state = 1
          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
        and state = 1
        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
        /* 电缆配置标识 */
        <if test="cableTag == null or cableTag == ''">
            and ip.cable_tag is null
@@ -554,14 +587,12 @@
        <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>
    <select id="getInsProduct6" resultMap="product">
        select <include refid="getInsProducSql"/>
        select
        <include refid="getInsProducSql"/>
        from ins_product ip
        left join ins_product_result ipr on ip.id = ipr.ins_product_id
        where ins_sample_id = #{id}
@@ -571,9 +602,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>
@@ -598,7 +626,7 @@
                   WHEN COUNT(ip.last_value) = 0 THEN '0'
                   WHEN COUNT(CASE WHEN ip.last_value = '' OR ip.last_value IS NULL THEN 1 END) = 0 THEN '2'
                   ELSE '2'
                   END AS status
                   END AS   status
        from ins_product ip
        where ins_sample_id = #{id}
          and state = 1
@@ -617,7 +645,7 @@
                   WHEN COUNT(ip.last_value) = 0 THEN '0'
                   WHEN COUNT(CASE WHEN ip.last_value = '' OR ip.last_value IS NULL THEN 1 END) = 0 THEN '2'
                   ELSE '1'
                   END AS status
                   END AS          status
        from ins_product ip
        where ins_sample_id = #{id}
          and state = 1
@@ -632,20 +660,20 @@
    <!-- 查看重复标识 -->
    <select id="getRepetitionTag" resultType="java.util.Map">
        select ip.repetition_tag repetitionTag,
               CASE
                   WHEN COUNT(ip.last_value) = 0 THEN '0'
                   WHEN COUNT(CASE WHEN ip.last_value = '' OR ip.last_value IS NULL THEN 1 END) = 0 THEN '2'
                   ELSE '1'
                   END AS status,
               GROUP_CONCAT(DISTINCT ip.radius SEPARATOR ',') AS radius
        CASE
        WHEN COUNT(ip.last_value) = 0 THEN '0'
        WHEN COUNT(CASE WHEN ip.last_value = '' OR ip.last_value IS NULL THEN 1 END) = 0 THEN '2'
        ELSE '1'
        END AS status,
        GROUP_CONCAT(DISTINCT ip.radius SEPARATOR ',') AS radius
        from ins_product ip
        where ins_sample_id = #{id}
          and state = 1
          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
          and ip.repetition_tag is not null
        and state = 1
        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
        and ip.repetition_tag is not null
        /* 电缆配置标识 */
        <if test="cableTag == null or cableTag == ''">
            and ip.cable_tag is null
@@ -686,7 +714,8 @@
    <!-- 查询检验项检验结果 -->
    <select id="selectProductResult" resultMap="product">
        select <include refid="getInsProducSql"/>
        select
        <include refid="getInsProducSql"/>
        from ins_product ip
        left join ins_product_result ipr on ip.id = ipr.ins_product_id
        where ip.id in
@@ -696,4 +725,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>