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 NULLAND 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}