inspect-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -3,7 +3,6 @@
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.StandardTreeMapper">
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.StandardTree">
        <id property="id" column="id" jdbcType="INTEGER"/>
        <result property="factory" column="factory" jdbcType="VARCHAR"/>
@@ -47,10 +46,10 @@
    </resultMap>
    <select id="selectStandardTreeList" resultMap="FactoryDto">
        select '中天科技检测中心' factory,
               l.laboratory_name  laboratory,
               sto.specimen_name  sample_type,
               p.name             sample,
        select '中天科技检测中心'        factory,
               l.laboratory_name laboratory,
               sto.specimen_name sample_type,
               p.name            sample,
               st.model,
               sto.code
        from laboratory l
@@ -58,7 +57,7 @@
                 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
        order by l.id,CAST(sto.code AS DECIMAL),p.id,ISNULL(st.id),st.id
        order by l.id, CAST(sto.code AS DECIMAL), p.id, ISNULL(st.id), st.id
    </select>
    <select id="selectStandardProductById" resultType="com.yuanchu.mom.pojo.StandardProductList">
@@ -117,10 +116,10 @@
        </if>
    </select>
    <select id="selectStandardTreeList2" resultType="com.yuanchu.mom.pojo.StandardTree">
        select '中天科技检测中心' factory,
               l.laboratory_name  laboratory,
               sto.specimen_name  sample_type,
               p.name             sample
        select '中天科技检测中心'        factory,
               l.laboratory_name laboratory,
               sto.specimen_name sample_type,
               p.name            sample
        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
@@ -131,7 +130,7 @@
        group by sto.specimen_name
    </select>
    <select id="selectStandardProductListByTree" resultType="com.yuanchu.mom.pojo.StandardProductList">
        select sample sample2,
        select sample    sample2,
               inspection_item,
               inspection_item_en,
               inspection_item_subclass,
@@ -141,7 +140,7 @@
               method,
               son_laboratory,
               unit,
               ask_tell tell,
               ask_tell  tell,
               ask,
               price,
               man_hour,
@@ -155,22 +154,35 @@
               checkout_number,
               section,
               dic,
               0 state,
               #{model} model,
               0         state,
               #{model}  model,
               #{sample} sample,
               #{trees} tree,
               id structure_item_parameter_id
               #{trees}  tree,
               id        structure_item_parameter_id
        from structure_item_parameter
        where (
                      sample is NULL
                      OR sample = ''
                      or sample = '[]'
                      OR sample LIKE CONCAT('%[', #{tree}, ']%')
                  )
                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 -- 提取字母后面的数字部分
                , id asc
    </select>
    <select id="selectStandardProductListByTree2" resultType="com.yuanchu.mom.pojo.StandardProductList">
        select sample sample2,
        select sample    sample2,
               inspection_item,
               inspection_item_en,
               inspection_item_subclass,
@@ -180,7 +192,7 @@
               method,
               son_laboratory,
               unit,
               ask_tell tell,
               ask_tell  tell,
               ask,
               price,
               man_hour,
@@ -194,13 +206,26 @@
               checkout_number,
               section,
               dic,
               0 state,
               #{model} model,
               0         state,
               #{model}  model,
               #{sample} sample,
               #{trees} tree,
               id structure_item_parameter_id
               #{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 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">
@@ -213,7 +238,7 @@
            and st.sample = p.name
    </select>
    <select id="selectStandardProductListByTree3" resultType="com.yuanchu.mom.pojo.StandardProductList">
        select sample sample2,
        select sample    sample2,
               inspection_item,
               inspection_item_en,
               inspection_item_subclass,
@@ -223,7 +248,7 @@
               method,
               son_laboratory,
               unit,
               ask_tell tell,
               ask_tell  tell,
               ask,
               price,
               man_hour,
@@ -237,30 +262,104 @@
               checkout_number,
               section,
               dic,
               0 state,
               #{model} model,
               0         state,
               #{model}  model,
               #{sample} sample,
               #{trees} tree,
               id structure_item_parameter_id
               #{trees}  tree,
               id        structure_item_parameter_id
        from structure_item_parameter
        where (
                      sample is NULL
                      OR sample = ''
                      or sample = '[]'
                      OR sample LIKE CONCAT('%', #{tree}, '%')
                  )
                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 -- 提取字母后面的数字部分
                , id asc
    </select>
    <select id="getStandardTree3" resultType="com.yuanchu.mom.dto.SampleDto">
        select model label,
               model value
        from standard_tree
        where sample_type = #{sampleType}
        and sample is null
          and sample is null
    </select>
    <select id="getLaboratory" resultType="java.lang.String">
        select l.laboratory_name
        from structure_test_object sto
        left join laboratory l on sto.laboratory_id = l.id
                 left join laboratory l on sto.laboratory_id = l.id
        where sto.specimen_name = #{str}
    </select>
    <select id="getStructureItemParameterId" resultType="java.lang.Integer">
        select id from structure_item_parameter
        where sample like concat('%', #{sampleType}, '%')
        and inspection_item = #{item}
        <if test="itemChild != null and itemChild != ''">
            and inspection_item_subclass = #{itemChild}
        </if>
        <if test="inspectionItemClass != null and inspectionItemClass != ''">
            and inspection_item_class = #{inspectionItemClass}
        </if>
        <if test="itemChild == null or itemChild == ''">
            and (inspection_item_subclass is null or inspection_item_subclass = '')
        </if>
    </select>
    <select id="selectPList" resultType="com.yuanchu.mom.dto.ProductDto">
        select p.name
        from structure_test_object sto
                 left join product p on p.object_id = sto.id
        where sto.specimen_name = #{name}
        order by p.id
    </select>
    <select id="selSample" resultType="java.lang.String">
        select name
        from product
        where name = #{name}
    </select>
    <select id="exportStandTree" resultType="com.yuanchu.mom.dto.standardTreeDto">
        select
               inspection_item,
               inspection_item_en,
               inspection_item_subclass,
               inspection_item_subclass_en,
               laboratory,
               sample_type,
               sample,
               model,
               son_laboratory,
               unit,
               price,
               man_hour,
               man_hour_group,
               case when inspection_item_type='1' then '采集类型'
                        else  '非采集类型' end  as inspection_item_type ,
               case when inspection_value_type='1' then '数值'
                    when inspection_value_type='2' then '文本'
                    when inspection_value_type='5' then '下拉'
                    else  '/' end  as inspection_value_type,
               method_s,
               man_day,
               bsm,
               ask,
               tell,
               st.name  templateName,
               sml.code standardMethodNo
        from standard_product_list spl
                 left join standard_template st on spl.template_id = st.id
                 left join standard_method sml on spl.standard_method_list_id = sml.id
        where spl.state = 1
        order by spl.sample_type
    </select>
</mapper>