select id, robot_id, create_by, create_time, update_by, update_time, remark, robot_code, robot_name, robot_model, robot_type, ip_address, port, current_map_id, status, battery_level, current_position, connect_status, quic_node_id, quic_session_id, quic_boot_id, observed_ip, software_version, last_heartbeat_time, archived_status from inspection_robot insert into inspection_robot id, robot_id, create_by, create_time, update_by, update_time, remark, robot_code, robot_name, robot_model, robot_type, ip_address, port, current_map_id, status, battery_level, current_position, connect_status, archived_status, #{id}, #{robotId}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{remark}, #{robotCode}, #{robotName}, #{robotModel}, #{robotType}, #{ipAddress}, #{port}, #{currentMapId}, #{status}, #{batteryLevel}, #{currentPosition}, #{connectStatus}, #{archivedStatus}, update inspection_robot create_by = #{createBy}, create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, remark = #{remark}, robot_code = #{robotCode}, robot_name = #{robotName}, robot_model = #{robotModel}, robot_type = #{robotType}, ip_address = #{ipAddress}, port = #{port}, current_map_id = #{currentMapId}, status = #{status}, battery_level = #{batteryLevel}, current_position = #{currentPosition}, where id = #{id} update inspection_robot set ip_address = #{ipAddress}, port = #{port}, connect_status = #{connectStatus}, status = coalesce(#{status}, status), quic_node_id = #{quicNodeId}, quic_session_id = #{quicSessionId}, quic_boot_id = #{quicBootId}, observed_ip = #{observedIp}, software_version = #{softwareVersion}, last_heartbeat_time = #{lastHeartbeatTime}, update_by = 'quic', update_time = #{updateTime} where id = #{id} update inspection_robot set status = coalesce(#{status}, status), battery_level = coalesce(#{batteryLevel}, battery_level), current_position = coalesce(#{currentPosition}, current_position) where id = #{id} update inspection_robot set connect_status = '0', status = '1', update_by = 'heartbeat-timeout', update_time = #{offlineTime} where id = #{id} and connect_status = '1' and (last_heartbeat_time is null or last_heartbeat_time < #{heartbeatCutoff}) update inspection_robot set archived_status = '1', connect_status = '0', update_time = sysdate(), update_by = #{updateBy} where id in #{id} delete from inspection_robot where id = #{id} delete from inspection_robot where id in #{id}