zss
2025-01-13 8d85246f061e3da623c7b9eb4e323ee724b4de0b
cnas-server/src/main/resources/mapper/DeviceMapper.xml
@@ -107,7 +107,14 @@
        device d
        LEFT JOIN `user` u ON u.id = d.equipment_manager
        LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id
        LEFT JOIN device_metric_record cmr ON d.id = cmr.device_id
        LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids)
        <where>
            <if test="laboratoryNameIsNull != null and laboratoryNameIsNull == true">
                l.laboratory_name is null
            </if>
            AND cmr.type = 'calibrate' or cmr.type is null or cmr.type = ''
        </where>
        GROUP BY
        d.id,
        u.name, l.laboratory_name
@@ -127,23 +134,35 @@
    <resultMap id="treeDeviceDto" type="map">
        <result property="largeCategory" column="large_category"/>
        <collection property="children" resultMap="DeviceDto" javaType="List"/>
        <result property="label" column="laboratory_name"/>
        <result property="value" column="value" />
        <collection property="children" resultMap="storagePointMap" javaType="List"/>
    </resultMap>
    <resultMap id="DeviceDto" type="map">
        <id property="id" column="id"/>
        <result property="deviceName" column="device_name"/>
    <resultMap id="storagePointMap" type="map">
        <result property="value" column="value"/>
        <result property="label" column="storage_point"/>
        <collection property="children" resultMap="deviceNameMap" javaType="List"/>
    </resultMap>
    <resultMap id="deviceNameMap" type="map">
        <result property="value" column="id"/>
        <result property="label" column="device_name"/>
    </resultMap>
    <select id="treeDevice" resultMap="treeDeviceDto">
        select id,
        case  when large_category is null || large_category ='' then '其他'
        else large_category end  as large_category, device_name
        from device
        select
        d.id,
        case when l.laboratory_name is null || l.laboratory_name ='' then '其他' else l.laboratory_name end as laboratory_name,
        case when d.large_category is null || d.large_category ='' then '其他' else d.large_category end as storage_point,
        d.device_name,
        null as value
        from device d
        LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id
        <where>
            <if test="deviceName!=null and deviceName!=''">
                and device_name like concat('%',#{deviceName},'%')
            </if>
        </where>
        order by l.laboratory_name desc, d.large_category desc
    </select>
</mapper>