cnas-device/src/main/resources/mapper/DeviceMapper.xml
@@ -89,13 +89,8 @@
             , #{createUser}
             , #{createTime})
    </select>
    <select id="selectDevicePrincipal" resultType="com.ruoyi.device.pojo.Device">
        select id,
               equipment_manager
        from device
    </select>
    <select id="selectDeviceParameterPage" resultType="com.ruoyi.device.pojo.Device">
    <select id="selectDeviceParameterPage" resultType="com.ruoyi.device.dto.DeviceDto">
        select * from(
        SELECT
        d.*,
@@ -103,22 +98,22 @@
        cmr.next_calibration_date as next_calibration_date_two,
        GROUP_CONCAT(distinct inspection_item SEPARATOR ';') AS insProductItem,
        u.name ,
        l.laboratory_name
        sd.dept_name AS laboratory_name
        FROM
        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 sys_dept sd ON sd.dept_id = d.subordinate_departments_id AND sd.del_flag = '0'
        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
                sd.dept_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
        u.name, sd.dept_name
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
@@ -147,43 +142,55 @@
    <resultMap id="deviceNameMap" type="map">
        <result property="value" column="id"/>
        <result property="label" column="device_name"/>
        <result property="activationDate" column="activation_date"/>
        <result property="managementNumber" column="management_number"/>
    </resultMap>
    <select id="treeDevice" resultMap="treeDeviceDto">
        select
        d.id,
        case when l.laboratory_name is null || l.laboratory_name ='' then '其他' else l.laboratory_name end as laboratory_name,
        case when sd.dept_name is null || sd.dept_name ='' then '其他' else sd.dept_name end as laboratory_name,
        case when d.storage_point is null || d.storage_point ='' then '其他' else d.storage_point end as storage_point,
        d.device_name,
        d.management_number,
        null as value
        null as value,
        d.activation_date
        from device d
        LEFT JOIN laboratory l ON l.id = d.subordinate_departments_id
        LEFT JOIN sys_dept sd ON sd.dept_id = d.subordinate_departments_id AND sd.del_flag = '0'
        <where>
            <if test="deviceName!=null and deviceName!=''">
                and device_name like concat('%',#{deviceName},'%')
            </if>
        </where>
        order by l.laboratory_name desc, d.storage_point desc
    </select>
    <select id="selectDeviceByCode" resultType="com.ruoyi.device.dto.DeviceDto">
        SELECT d.*,
               GROUP_CONCAT(DISTINCT inspection_item SEPARATOR ';') AS ins_product_item,
               l.laboratory_name,
               sd.dept_name AS laboratory_name,
               u1.name                                                 equipmentManager_name,
               u2.name                                                 authorized_person_name
        FROM device d
                 LEFT JOIN structure_item_parameter sip ON FIND_IN_SET(sip.id, d.ins_product_ids)
                 LEFT JOIN laboratory l ON d.subordinate_departments_id = l.id
                 LEFT JOIN sys_dept sd ON d.subordinate_departments_id = sd.dept_id AND sd.del_flag = '0'
                 LEFT JOIN user u1 ON u1.id = d.equipment_manager
                 LEFT JOIN user u2 ON u2.id = d.authorized_person
        WHERE d.id = #{id}
        GROUP BY d.id,
                 l.laboratory_name,
                 sd.dept_name,
                 u1.name,
                 u2.name
    </select>
    <!-- 查询到达校准有效期的设备-提前5天 -->
    <select id="selectOverdueDevice" resultType="com.ruoyi.device.pojo.Device">
        SELECT *
        FROM device
        WHERE
        -- 筛选出 activation_date 在当前日期前五天内的数据
        activation_date BETWEEN now() AND now() + INTERVAL 5 DAY
        -- 筛选出 activation_date 已经超过当前日期的数据
        OR activation_date &lt; now()
    </select>
</mapper>