FROM app_user.alarm_data a LEFT JOIN app_user.work_order w ON w.order_id = a.work_order_id LEFT JOIN LATERAL (SELECT b.* FROM app_user.equipment_base b WHERE (a.work_order_id IS NOT NULL AND b.equipment_id = w.device_id) OR (a.work_order_id IS NULL AND b.equipment_code = a.device_code) ORDER BY b.equipment_id LIMIT 1) e ON true LEFT JOIN LATERAL (SELECT s.alarm_status FROM app_user.equipment_status s WHERE s.equipment_id = e.equipment_id AND s.del_flag = '0' ORDER BY s.status_update_time DESC NULLS LAST, s.status_id DESC LIMIT 1) st ON true LEFT JOIN app_user.sys_user u ON u.user_id = w.receive_user AND e.equipment_type_id IN #{typeId} AND 1 = 0 FROM app_user.alarm_data a LEFT JOIN LATERAL (SELECT b.* FROM app_user.equipment_base b WHERE b.equipment_code = a.device_code ORDER BY b.equipment_id LIMIT 1) e ON true LEFT JOIN LATERAL (SELECT s.alarm_status FROM app_user.equipment_status s WHERE s.equipment_id = e.equipment_id AND s.del_flag = '0' ORDER BY s.status_update_time DESC NULLS LAST, s.status_id DESC LIMIT 1) st ON true LEFT JOIN app_user.work_order w ON w.order_id = a.work_order_id LEFT JOIN app_user.sys_user u ON u.user_id = w.receive_user a.*, e.equipment_id, e.equipment_name AS current_device_name, e.equipment_location, e.equipment_type_id, e.equipment_image, e.longitude, e.latitude, st.alarm_status AS device_alarm_status, w.order_no, w.order_status, w.plan_finish_time, COALESCE(u.nick_name,u.user_name) AS receive_user_name, (SELECT wtt.warning_unit FROM app_user.equipment_warning_type ewt JOIN app_user.warning_type wtt ON wtt.id = ewt.warning_type_id WHERE ewt.equipment_type_id = e.equipment_type_id AND wtt.warning_code = a.warning_code LIMIT 1) AS warning_unit AND (a.device_code ILIKE CONCAT('%',#{query.keyword},'%') OR e.equipment_name ILIKE CONCAT('%',#{query.keyword},'%')) AND a.alarm_no ILIKE CONCAT('%',#{query.alarmNo},'%') AND a.device_code = #{query.deviceCode} AND a.alarm_status = #{query.alarmStatus} AND st.alarm_status = #{query.deviceAlarmStatus} AND (CASE WHEN a.audit_status = 2 THEN 4 WHEN a.alarm_status = 1 THEN 3 WHEN a.work_order_id IS NOT NULL THEN 2 ELSE 1 END) = #{query.displayStatus} AND a.actual_value IS NOT NULL AND a.audit_status = #{query.auditStatus} AND a.alarm_level = #{query.alarmLevel} AND a.create_time >= #{query.startTime} AND a.create_time <= #{query.endTime} CASE WHEN trim(CAST(${source.column} AS text)) ~ '^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)([eE][+-]?[0-9]+)?$' THEN trim(CAST(${source.column} AS text))::numeric ELSE NULL END CAST(${source.deviceColumn} AS text) = #{deviceCode} AND node_id = #{source.nodeId} ${source.deviceColumn} = #{deviceCode}