adapter_id, adapter_code, adapter_name, adapter_type, host, port, poll_interval_ms, timezone_id,
capabilities, (json_extract(capabilities, '$.control') = false) read_only, status,
connection_status, last_error_code, last_error_message, last_attempt_at_utc, last_observed_at_utc,
create_by, create_time, update_by, update_time, remark, del_flag
insert into t_device_adapter(adapter_code, adapter_name, adapter_type, host, port, poll_interval_ms,
timezone_id, capabilities, status, connection_status, create_by, create_time, remark, del_flag)
values(#{adapterCode}, #{adapterName}, #{adapterType}, #{host}, #{port}, #{pollIntervalMs},
#{timezoneId}, #{capabilities}, #{status}, 'DISCONNECTED', #{createBy}, sysdate(), #{remark}, 0)
update t_device_adapter set adapter_name=#{adapterName}, adapter_type=#{adapterType}, host=#{host}, port=#{port},
poll_interval_ms=#{pollIntervalMs}, timezone_id=#{timezoneId}, capabilities=#{capabilities},
connection_status='DISCONNECTED', last_error_code=null, last_error_message=null,
update_by=#{updateBy}, update_time=sysdate()
where adapter_id=#{adapterId} and del_flag=0
update t_device_adapter set status=#{status}, connection_status='DISCONNECTED',
last_error_code=null, last_error_message=null, update_by=#{updateBy}, update_time=sysdate()
where adapter_id=#{adapterId} and del_flag=0
update t_device_adapter set connection_status='CONNECTED', last_error_code=null, last_error_message=null,
last_attempt_at_utc=#{observedAt}, last_observed_at_utc=#{observedAt}, update_time=sysdate()
where adapter_id=#{adapterId} and del_flag=0
update t_device_adapter set connection_status='ERROR', last_error_code=#{errorCode},
last_error_message=left(#{errorMessage}, 500), last_attempt_at_utc=utc_timestamp(3), update_time=sysdate()
where adapter_id=#{adapterId} and del_flag=0
insert into t_detection_cabinet(adapter_id, cabinet_code, cabinet_name, capacity, channel_count,
vendor_device_type, vendor_device_id, ip_address, online_status, last_seen_at_utc, status,
create_by, create_time, del_flag)
values(#{adapterId}, #{cabinetCode}, #{cabinetName}, 1, #{channelCount}, #{vendorDeviceType},
#{vendorDeviceId}, #{ipAddress}, #{onlineStatus}, #{lastSeenAtUtc}, '0', 'system', sysdate(), 0)
update t_detection_cabinet set channel_count=greatest(channel_count, #{channelCount}), ip_address=#{ipAddress},
online_status=#{onlineStatus}, last_seen_at_utc=#{lastSeenAtUtc}, update_by='system', update_time=sysdate()
where cabinet_id=#{cabinetId} and del_flag=0
insert into t_detection_channel(adapter_id, cabinet_id, devtype, devid, subdevid, chlid, display_no,
online_status, work_status, last_seen_at_utc, status, create_time, del_flag)
values(#{adapterId}, #{cabinetId}, #{devtype}, #{devid}, #{subdevid}, #{chlid}, #{displayNo},
#{onlineStatus}, #{workStatus}, #{lastSeenAtUtc}, '0', sysdate(), 0)
on duplicate key update cabinet_id=values(cabinet_id), display_no=values(display_no),
online_status=values(online_status), last_seen_at_utc=values(last_seen_at_utc), update_time=sysdate()