zss
2023-08-07 78c62a33671bdcfb0f2019c520f807a4c56fc741
standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -10,4 +10,61 @@
        order by create_time desc
            limit #{num1},#{num2}
    </select>
    <select id="selectMaterialById" resultType="Map">
        select m.id,
               m.num,
               m.supplier,
               m.name,
               m.location,
               m.batch,
               m.reel_number                reelNumber,
               concat(s.name, '/', sn.name) specificationSerialNum,
               s.voltage_level              voltageLevel,
               s.cross_section              crossSection,
               s.number_of_cores            numberOfCores,
               s.instruct
        from lims_laboratory.material m,
             lims_laboratory.specifications s,
             lims_laboratory.serial_number sn
        where m.specifications_id = s.id
          and s.serial_id = sn.id
          and m.id=#{materialId}
    </select>
    <resultMap id="OneLevelTreeMap" type="Map">
        <id property="id" column="materialId"/>
        <result property="name" column="materialName"/>
        <collection property="children" resultMap="TwoLevelTreeMap" javaType="List"/>
    </resultMap>
    <resultMap id="TwoLevelTreeMap" type="Map">
        <id property="id" column="standardId"/>
        <result property="name" column="standardName"/>
        <collection property="children" resultMap="ThreeLevelTreeMap" javaType="List"/>
    </resultMap>
    <resultMap id="ThreeLevelTreeMap" type="Map">
        <id property="id" column="specificationsId"/>
        <result property="name" column="specificationsName"/>
        <collection property="children" resultMap="FourLevelTreeMap" javaType="List"/>
    </resultMap>
    <resultMap id="FourLevelTreeMap" type="Map">
        <id property="id" column="productId"/>
        <result property="name" column="productName"/>
    </resultMap>
    <select id="FourTree" resultMap="OneLevelTreeMap">
        SELECT m.`id` materialId, m.`name` materialName, s.`id` standardId, s.`name` standardName,
               f.`id` specificationsId, f.`name` specificationsName, p.`id` productId, p.`name` productName
        FROM material m
                 LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM standard s WHERE s.`state` = 1) s ON m.id = s.`material_id`
                 LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM specifications f WHERE f.`state` = 1
                                                                                             <if test="specificationsName != null and specificationsName != ''">
                                                                                                 AND f.`name` = #{specificationsName}
                                                                                             </if>
                                                                                           ) f ON s.`id` = f.`standard_id`
                 LEFT JOIN (SELECT p.`id`, p.`name`, p.`specifications_id` FROM product p WHERE p.`state` = 1) p ON f.`id` = p.`specifications_id`
        WHERE m.`state` = 1
    </select>
</mapper>