zouyu
2025-03-19 3647aa5008055528f075ee73002542a1399575ae
basic-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -3,7 +3,7 @@
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.basic.mapper.StandardTreeMapper">
    <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.StandardTree">
    <resultMap id="BaseResultMap" type="com.ruoyi.basic.pojo.StandardTree">
        <id property="id" column="id" jdbcType="INTEGER"/>
        <result property="factory" column="factory" jdbcType="VARCHAR"/>
        <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
@@ -16,90 +16,37 @@
        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
    </resultMap>
    <resultMap id="FactoryDto" type="com.ruoyi.inspect.dto.FactoryDto">
    <resultMap id="FactoryDto" type="com.ruoyi.basic.dto.FactoryDto">
        <result property="label" column="factory"/>
        <result property="value" column="factory"/>
        <collection property="children" resultMap="LaboratoryDto"/>
    </resultMap>
    <resultMap id="LaboratoryDto" type="com.ruoyi.inspect.dto.LaboratoryDto">
    <resultMap id="LaboratoryDto" type="com.ruoyi.basic.dto.LaboratoryDto">
        <result property="label" column="laboratory"/>
        <result property="value" column="laboratory"/>
        <collection property="children" resultMap="SampleTypeDto"/>
    </resultMap>
    <resultMap id="SampleTypeDto" type="com.ruoyi.inspect.dto.SampleTypeDto">
    <resultMap id="SampleTypeDto" type="com.ruoyi.basic.dto.SampleTypeDto">
        <result property="label" column="sample_type"/>
        <result property="value" column="sample_type"/>
        <result property="sampleTypeId" column="sample_type_id"/>
        <result property="sort" column="sort"/>
        <result property="partNo" column="part_no"/>
        <result property="sampleTypeEn" column="sample_type_en"/>
        <collection property="children" resultMap="SampleDto"/>
    </resultMap>
    <resultMap id="SampleDto" type="com.ruoyi.inspect.dto.SampleDto">
    <resultMap id="SampleDto" type="com.ruoyi.basic.dto.SampleDto">
        <result property="label" column="sample"/>
        <result property="value" column="sample"/>
        <result property="partNo" column="sample_part_no"/>
        <result property="sampleEn" column="sample_en"/>
        <collection property="children" resultMap="ModelDto"/>
    </resultMap>
    <resultMap id="ModelDto" type="com.ruoyi.inspect.dto.ModelDto">
    <resultMap id="ModelDto" type="com.ruoyi.basic.dto.ModelDto">
        <result property="label" column="model"/>
        <result property="value" column="model"/>
    </resultMap>
    <sql id="selectStandardTree">
        sample    sample2,
               inspection_item,
               inspection_item_en,
               inspection_item_subclass,
               inspection_item_subclass_en,
               inspection_item_class,
               inspection_item_class_en,
               method,
               son_laboratory,
               unit,
               ask_tell  tell,
               ask,
               price,
               man_hour,
               man_hour_group,
               man_day,
               inspection_item_type,
               inspection_value_type,
               bsm,
               template_id,
               laboratory,
               checkout_number,
               section,
               dic,
               0         state,
        #{model}
        model,
        #{sample}
        sample,
        #{trees}
        tree,
        id
        structure_item_parameter_id,
        radius_list,
        rates
    </sql>
    <select id="selectStandardTreeList" resultMap="FactoryDto">
        select '中天科技检测中心'        factory,
               l.laboratory_name laboratory,
               sto.specimen_name sample_type,
               p.name            sample,
               st.model,
               sto.code,
               sto.id  sample_type_id,
               sto.sort,
               sto.specimen_name_en sample_type_en,
               p.name_en sample_en
               sto.code
        from laboratory l
                 left join structure_test_object sto on sto.laboratory_id = l.id
                 left join product p on p.object_id = sto.id
@@ -107,8 +54,7 @@
            and st.sample = p.name
        order by l.id, CAST(sto.code AS DECIMAL), p.id, ISNULL(st.id), st.id
    </select>
    <select id="selectStandardProductById" resultType="com.ruoyi.inspect.pojo.StandardProductList">
    <select id="selectStandardProductById" resultType="com.ruoyi.basic.pojo.StandardProductList">
        select inspection_item,
               inspection_item_subclass,
               laboratory,
@@ -128,7 +74,7 @@
        from structure_item_parameter
        where id = #{id}
    </select>
    <select id="getStandardProductListBySample" resultType="com.ruoyi.inspect.pojo.StandardProductList">
    <select id="getStandardProductListBySample" resultType="com.ruoyi.basic.pojo.StandardProductList">
        select inspection_item,
               inspection_item_subclass,
               laboratory,
@@ -154,7 +100,7 @@
           or sp.sample = ''
           or sp.sample = '[]'
    </select>
    <select id="getStandardMethodListBySample" resultType="com.ruoyi.inspect.pojo.StandardMethodList">
    <select id="getStandardMethodListBySample" resultType="com.ruoyi.basic.pojo.StandardMethodList">
        select sm.code,sm.name,sm.remark from standard_method sm
        left join structure_test_object sto on sm.structure_test_object_id = sto.id
        where is_use = 1
@@ -163,7 +109,7 @@
            and sto.specimen_name = #{sampleType}
        </if>
    </select>
    <select id="selectStandardTreeList2" resultType="com.ruoyi.inspect.pojo.StandardTree">
    <select id="selectStandardTreeList2" resultType="com.ruoyi.basic.pojo.StandardTree">
        select '中天科技检测中心'        factory,
               l.laboratory_name laboratory,
               sto.specimen_name sample_type,
@@ -177,8 +123,36 @@
        where sto.specimen_name = #{sampleType}
        group by sto.specimen_name
    </select>
    <select id="selectStandardProductListByTree" resultType="com.ruoyi.inspect.pojo.StandardProductList">
        select <include refid="selectStandardTree"/>
    <select id="selectStandardProductListByTree" resultType="com.ruoyi.basic.pojo.StandardProductList">
        select sample    sample2,
               inspection_item,
               inspection_item_en,
               inspection_item_subclass,
               inspection_item_subclass_en,
               inspection_item_class,
               inspection_item_class_en,
               method,
               son_laboratory,
               unit,
               ask_tell  tell,
               ask,
               price,
               man_hour,
               man_hour_group,
               man_day,
               inspection_item_type,
               inspection_value_type,
               bsm,
               template_id,
               laboratory,
               checkout_number,
               section,
               dic,
               0         state,
               #{model}  model,
               #{sample} sample,
               #{trees}  tree,
               id        structure_item_parameter_id
        from structure_item_parameter
        where (
                sample is NULL
@@ -189,19 +163,63 @@
          and (laboratory is null
            or laboratory = ''
            or laboratory = #{laboratory})
        order by inspection_item_class, inspection_item, id asc
    </select>
        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 -- 提取字母后面的数字部分
    <select id="selectStandardProductListByTree2" resultType="com.ruoyi.inspect.pojo.StandardProductList">
        select <include refid="selectStandardTree"/>
                , id asc
    </select>
    <select id="selectStandardProductListByTree2" resultType="com.ruoyi.basic.pojo.StandardProductList">
        select sample    sample2,
               inspection_item,
               inspection_item_en,
               inspection_item_subclass,
               inspection_item_subclass_en,
               inspection_item_class,
               inspection_item_class_en,
               method,
               son_laboratory,
               unit,
               ask_tell  tell,
               ask,
               price,
               man_hour,
               man_hour_group,
               man_day,
               inspection_item_type,
               inspection_value_type,
               bsm,
               template_id,
               laboratory,
               checkout_number,
               section,
               dic,
               0         state,
               #{model}  model,
               #{sample} sample,
               #{trees}  tree,
               id        structure_item_parameter_id
        from structure_item_parameter
        where sample LIKE CONCAT('%[', #{tree}, ']%')
          and (laboratory is null
            or laboratory = ''
            or laboratory = #{laboratory})
        order by inspection_item_class, inspection_item, id asc
    </select>
        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="getStandardTree2" resultMap="SampleTypeDto">
        select sto.specimen_name sample_type,
               p.name            sample,
@@ -211,15 +229,64 @@
                 left join standard_tree st on st.sample_type = sto.specimen_name
            and st.sample = p.name
    </select>
    <select id="selectStandardProductListByTree3" resultType="com.ruoyi.basic.pojo.StandardProductList">
        select sample    sample2,
               inspection_item,
               inspection_item_en,
               inspection_item_subclass,
               inspection_item_subclass_en,
               inspection_item_class,
               inspection_item_class_en,
               method,
               son_laboratory,
               unit,
               ask_tell  tell,
               ask,
               price,
               man_hour,
               man_hour_group,
               man_day,
               inspection_item_type,
               inspection_value_type,
               bsm,
               template_id,
               laboratory,
               checkout_number,
               section,
               dic,
               0         state,
               #{model}  model,
               #{sample} sample,
               #{trees}  tree,
               id        structure_item_parameter_id
        from structure_item_parameter
        where (
                sample is NULL
                OR sample = ''
                or sample = '[]'
                OR sample LIKE CONCAT('%', #{tree}, '%')
            )
          and (laboratory is null
            or laboratory = ''
            or laboratory = #{laboratory})
        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 -- 提取字母后面的数字部分
    <select id="getStandardTree3" resultType="com.ruoyi.inspect.dto.SampleDto">
                , id asc
    </select>
    <select id="getStandardTree3" resultType="com.ruoyi.basic.dto.SampleDto">
        select model label,
               model value
        from standard_tree
        where sample_type = #{sampleType}
          and sample is null
    </select>
    <select id="getLaboratory" resultType="java.lang.String">
        select l.laboratory_name
        from structure_test_object sto
@@ -240,7 +307,7 @@
            and (inspection_item_subclass is null or inspection_item_subclass = '')
        </if>
    </select>
    <select id="selectPList" resultType="com.ruoyi.inspect.dto.ProductDto">
    <select id="selectPList" resultType="com.ruoyi.basic.dto.ProductDto">
        select p.name
        from structure_test_object sto
                 left join product p on p.object_id = sto.id
@@ -251,38 +318,5 @@
        select name
        from product
        where name = #{name}
    </select>
    <select id="selectStandardTreeListByPartNo" resultMap="FactoryDto">
        select '中天科技检测中心' factory,
               l.laboratory_name  laboratory,
               sto.specimen_name  sample_type,
               p.name             sample,
               st.model,
               CASE
                   WHEN p.id = (SELECT pp.product_id
                                FROM product_part pp
                                WHERE pp.part_no = #{partNo})
                       THEN #{partNo}
                   ELSE NULL
                   END AS sample_part_no,
               CASE
                   WHEN sto.id = (SELECT sto.test_object_id
                                  FROM structure_test_object_part sto
                                  WHERE sto.part_no = #{partNo})
                       THEN #{partNo}
                   ELSE NULL
                   END AS part_no
        from laboratory l
                 left join structure_test_object sto on sto.laboratory_id = l.id
                 left join product p on p.object_id = sto.id
                 left join standard_tree st on st.sample_type = sto.specimen_name
            and st.sample = p.name
        where (p.id = (select pp.product_id
                       from product_part pp
                       where pp.part_no = #{partNo})
            or sto.id = (select sto.test_object_id
                         from structure_test_object_part sto
                         where sto.part_no = #{partNo}))
        order by l.id, CAST(sto.code AS DECIMAL), p.id, ISNULL(st.id), st.id
    </select>
</mapper>