exists (
select 1 from t_test_channel_binding binding
join t_detection_channel channel_fact on channel_fact.channel_id = binding.channel_id
join t_test test_fact on test_fact.test_id = binding.test_id
where channel_fact.cabinet_id = t_detection_cabinet.cabinet_id
and channel_fact.del_flag = 0 and test_fact.del_flag = 0
and test_fact.test_status in ('RUNNING', 'PAUSED', 'RUNNING_ABNORMAL')
)
select cabinet_id, adapter_id, adapter_code, cabinet_code, cabinet_name, ip_address, mac_address,
manufacturer, model, capacity, channel_count,
case when upper(online_status) = 'ONLINE' or online_status = '0' then '0' else '1' end as online_status,
case when then '1' else '0' end as test_status,
case when then '待确认' else null end as current_test,
status, create_by, create_time, update_by, update_time, remark, del_flag, registration_status
from t_detection_cabinet
insert into t_detection_cabinet
(adapter_id, adapter_code, cabinet_code, cabinet_name, manufacturer, model, capacity, channel_count,
vendor_device_type, vendor_device_id, ip_address, mac_address, online_status, last_seen_at_utc,
registration_status, status, create_by, create_time, remark, del_flag)
values
(#{adapterId}, #{adapterCode}, #{cabinetCode}, #{cabinetName}, #{manufacturer}, #{model}, #{capacity},
#{channelCount}, #{vendorDeviceType}, #{vendorDeviceId}, #{ipAddress}, #{macAddress}, #{onlineStatus},
#{lastSeenAtUtc}, 'REGISTERED', #{status}, #{createBy}, sysdate(), #{remark}, 0)
insert into t_detection_channel
(adapter_id, adapter_code, cabinet_id, devtype, devid, subdevid, chlid, display_no,
online_status, work_status, last_seen_at_utc, status, create_time, del_flag)
values
(#{adapterId}, #{adapterCode}, #{cabinetId}, #{devtype}, #{devid}, #{subdevid}, #{chlid}, #{displayNo},
#{onlineStatus}, #{workStatus}, #{lastSeenAtUtc}, '0', sysdate(), 0)
update t_detection_cabinet
cabinet_code = #{cabinetCode},
cabinet_name = #{cabinetName},
ip_address = #{ipAddress},
mac_address = #{macAddress},
manufacturer = #{manufacturer},
model = #{model},
capacity = #{capacity},
channel_count = #{channelCount},
remark = #{remark},
update_by = #{updateBy}, update_time = sysdate()
where cabinet_id = #{cabinetId} and del_flag = 0 and registration_status = 'REGISTERED'
update t_detection_cabinet set status = #{status}, update_by = #{updateBy}, update_time = sysdate()
where cabinet_id = #{cabinetId} and del_flag = 0 and registration_status = 'REGISTERED'
update t_detection_channel set del_flag = channel_id, update_time = sysdate()
where cabinet_id = #{cabinetId} and del_flag = 0
update t_detection_cabinet
set del_flag = cabinet_id, update_by = #{updateBy}, update_time = sysdate()
where cabinet_id = #{cabinetId} and del_flag = 0 and registration_status = 'REGISTERED'