8. 数据库表设计
说明:以下表结构按运维端主库设计,命名采用 robot_ops_ 前缀。第 6 章括号内字段为前端/接口字段,采用 camelCase;第 8 章字段为数据库字段,采用 snake_case,例如 robotName 对应 robot_name。机器人基础信息、实时运行状态、资源占用状态、模块状态、视频流状态等由机器人侧实时接口提供,一期不建设 robot_ops_robot_info 和 robot_ops_device_status_snapshot 两张表。
数据库建表语句以 MySQL 8.x 为基线,字段中文说明通过 COMMENT 标注。若项目实际使用 RuoYi 默认字段规范,可在开发时结合 create_by、create_time、update_by、update_time、remark 等公共字段做统一封装。
问答分类使用 RuoYi 系统字典能力维护,不单独建设 robot_ops_faq_category 表。建议在 RuoYi 字典中新增字典类型 robot_faq_category,字典项可配置为:接待问候、业务咨询、场馆介绍、访客引导、安防提示、设备说明、其他。
8.1 基础与权限表
8.1.1 本地账号表 robot_ops_user
CREATE TABLE `robot_ops_user` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` VARCHAR(50) NOT NULL COMMENT '登录账号',
`password` VARCHAR(100) NOT NULL COMMENT '登录密码,加密存储',
`nick_name` VARCHAR(50) DEFAULT NULL COMMENT '用户姓名/昵称',
`role_code` VARCHAR(50) DEFAULT NULL COMMENT '角色编码:ADMIN、OPS、VIEWER',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '账号状态:0停用,1启用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`last_login_time` DATETIME DEFAULT NULL COMMENT '最近登录时间',
`create_by` VARCHAR(64) DEFAULT NULL COMMENT '创建人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` VARCHAR(64) DEFAULT NULL COMMENT '更新人',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_robot_ops_user_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='本地后台账号表';
8.1.2 系统基础配置表 robot_ops_system_config
CREATE TABLE `robot_ops_system_config` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`system_name` VARCHAR(100) DEFAULT NULL COMMENT '后台系统名称',
`system_logo` VARCHAR(255) DEFAULT NULL COMMENT '后台系统Logo地址',
`footer_text` VARCHAR(255) DEFAULT NULL COMMENT '页脚文案',
`record_no` VARCHAR(100) DEFAULT NULL COMMENT '备案号/版权信息',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统基础配置表';
8.2 内容管理表
8.2.1 欢迎语配置表 robot_ops_welcome_config
CREATE TABLE `robot_ops_welcome_config` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`welcome_text` VARCHAR(500) NOT NULL COMMENT '欢迎语文本',
`voice_enabled` CHAR(1) NOT NULL DEFAULT '1' COMMENT '是否启用语音播报:0否,1是',
`cooldown_seconds` INT DEFAULT 30 COMMENT '触发冷却时间,单位秒',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='欢迎语配置表';
8.2.2 问答库表 robot_ops_faq
CREATE TABLE `robot_ops_faq` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`category_type` VARCHAR(50) DEFAULT NULL COMMENT '问题分类字典值,字典类型:robot_faq_category',
`question` VARCHAR(500) NOT NULL COMMENT '标准问题',
`answer` TEXT NOT NULL COMMENT '答案内容',
`sort_no` INT DEFAULT 0 COMMENT '排序号,数字越小越靠前',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_faq_category_type` (`category_type`),
KEY `idx_robot_ops_faq_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='问答库主表';
8.2.3 相似问表 robot_ops_faq_similar
CREATE TABLE `robot_ops_faq_similar` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`faq_id` BIGINT NOT NULL COMMENT '问答ID,关联robot_ops_faq.id',
`similar_question` VARCHAR(500) NOT NULL COMMENT '相似问文本',
`sort_no` INT DEFAULT 0 COMMENT '排序号,数字越小越靠前',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_faq_similar_faq_id` (`faq_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='问答相似问表';
8.2.4 素材资源表 robot_ops_media_asset
CREATE TABLE `robot_ops_media_asset` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`asset_name` VARCHAR(100) NOT NULL COMMENT '素材名称',
`asset_type` VARCHAR(20) NOT NULL COMMENT '素材类型:image图片,video视频',
`file_url` VARCHAR(255) NOT NULL COMMENT '素材文件地址',
`thumbnail_url` VARCHAR(255) DEFAULT NULL COMMENT '缩略图地址',
`file_size` BIGINT DEFAULT NULL COMMENT '文件大小,单位字节',
`file_format` VARCHAR(20) DEFAULT NULL COMMENT '文件格式,如jpg、png、webp、mp4',
`duration_seconds` INT DEFAULT NULL COMMENT '视频时长,单位秒;图片为空',
`resolution` VARCHAR(50) DEFAULT NULL COMMENT '分辨率,如1920x1080',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`quoted_flag` CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否被播放方案引用:0否,1是',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间/上传时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_media_asset_type` (`asset_type`),
KEY `idx_robot_ops_media_asset_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='素材资源表';
8.2.5 播放方案表 robot_ops_play_plan
CREATE TABLE `robot_ops_play_plan` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`plan_name` VARCHAR(100) NOT NULL COMMENT '播放方案名称',
`loop_mode` VARCHAR(20) DEFAULT 'loop' COMMENT '循环方式:loop循环播放,once播放一次',
`is_default` CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否默认方案:0否,1是',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_play_plan_default` (`is_default`),
KEY `idx_robot_ops_play_plan_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='播放方案主表';
8.2.6 播放方案素材明细表 robot_ops_play_plan_item
CREATE TABLE `robot_ops_play_plan_item` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`plan_id` BIGINT NOT NULL COMMENT '播放方案ID,关联robot_ops_play_plan.id',
`asset_id` BIGINT NOT NULL COMMENT '素材ID,关联robot_ops_media_asset.id',
`play_order` INT DEFAULT 0 COMMENT '播放顺序,数字越小越靠前',
`stay_seconds` INT DEFAULT NULL COMMENT '停留时长,图片必填,视频可为空',
`transition_type` VARCHAR(50) DEFAULT NULL COMMENT '转场方式',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_play_plan_item_plan_id` (`plan_id`),
KEY `idx_robot_ops_play_plan_item_asset_id` (`asset_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='播放方案素材明细表';
8.2.7 播报内容表 robot_ops_broadcast_content
CREATE TABLE `robot_ops_broadcast_content` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`content_name` VARCHAR(100) NOT NULL COMMENT '播报内容名称',
`content_type` VARCHAR(50) DEFAULT NULL COMMENT '内容分类:通知、宣传、提示、安防提醒、自定义',
`broadcast_text` VARCHAR(2000) NOT NULL COMMENT '播报文本',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_broadcast_content_type` (`content_type`),
KEY `idx_robot_ops_broadcast_content_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='播报内容表';
8.2.8 播报任务表 robot_ops_broadcast_task
CREATE TABLE `robot_ops_broadcast_task` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`task_name` VARCHAR(100) NOT NULL COMMENT '播报任务名称',
`content_id` BIGINT NOT NULL COMMENT '播报内容ID,关联robot_ops_broadcast_content.id',
`start_time` VARCHAR(8) DEFAULT NULL COMMENT '开始时间,格式HH:mm:ss',
`end_time` VARCHAR(8) DEFAULT NULL COMMENT '结束时间,格式HH:mm:ss',
`frequency_minutes` INT DEFAULT NULL COMMENT '播报频率,单位分钟',
`cycle_type` VARCHAR(20) DEFAULT NULL COMMENT '循环类型字典值,字典类型:broadcast_task_cycle_type,1按星期,2按日期',
`cycle_value` VARCHAR(255) DEFAULT NULL COMMENT '循环取值:cycle_type=1时保存星期值,如1,2,3,4,5;cycle_type=2时保存日期值,如2026-03-20,2026-03-21',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_broadcast_task_content_id` (`content_id`),
KEY `idx_robot_ops_broadcast_task_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='播报任务表';
播报任务循环类型使用 RuoYi 字典 broadcast_task_cycle_type,字典项建议配置为:1=按星期,2=按日期。按星期时,cycle_value 中 1-7 分别代表星期一到星期日。
8.2.9 展示主题表 robot_ops_theme
CREATE TABLE `robot_ops_theme` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`theme_name` VARCHAR(100) NOT NULL COMMENT '主题名称',
`logo_url` VARCHAR(255) DEFAULT NULL COMMENT 'Logo地址',
`background_type` VARCHAR(20) DEFAULT NULL COMMENT '背景类型:image图片,video视频,color纯色',
`background_url` VARCHAR(255) DEFAULT NULL COMMENT '背景资源地址',
`primary_color` VARCHAR(20) DEFAULT NULL COMMENT '主题主色',
`secondary_color` VARCHAR(20) DEFAULT NULL COMMENT '辅助色',
`welcome_title` VARCHAR(200) DEFAULT NULL COMMENT '欢迎标题',
`welcome_sub_title` VARCHAR(500) DEFAULT NULL COMMENT '欢迎副标题',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`current_enabled` CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否当前启用主题:0否,1是',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_theme_current_enabled` (`current_enabled`),
KEY `idx_robot_ops_theme_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='机器人展示主题表';
8.3 访客管理表
8.3.1 访客记录表 robot_ops_visitor_record
CREATE TABLE `robot_ops_visitor_record` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`visitor_name` VARCHAR(100) NOT NULL COMMENT '访客姓名',
`mobile` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
`id_card_no` VARCHAR(50) DEFAULT NULL COMMENT '身份证号',
`visit_type` VARCHAR(50) NOT NULL COMMENT '到访类型:APPOINTMENT预约到访,WALK_IN现场登记',
`register_type` VARCHAR(50) NOT NULL COMMENT '登记方式:SCREEN机器人端,H5手机端',
`visitor_source` VARCHAR(100) DEFAULT NULL COMMENT '访客来源,如公司、单位、亲友、外卖、快递、供应商等',
`visit_reason` VARCHAR(200) DEFAULT NULL COMMENT '来访事由,如业务接洽、走亲访友、酒店入住、配送、维修、参观等',
`visitor_photo` VARCHAR(255) DEFAULT NULL COMMENT '访客照片地址,由机器人端采集上传',
`appointment_no` VARCHAR(100) DEFAULT NULL COMMENT '关联预约单号,现场登记可为空',
`visited_person` VARCHAR(100) DEFAULT NULL COMMENT '被访对象,可为被访人、房号、部门、接待单位等',
`visit_time` DATETIME NOT NULL COMMENT '来访/登记时间',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_visitor_record_name` (`visitor_name`),
KEY `idx_robot_ops_visitor_record_mobile` (`mobile`),
KEY `idx_robot_ops_visitor_record_id_card_no` (`id_card_no`),
KEY `idx_robot_ops_visitor_record_visit_type` (`visit_type`),
KEY `idx_robot_ops_visitor_record_register_type` (`register_type`),
KEY `idx_robot_ops_visitor_record_appointment_no` (`appointment_no`),
KEY `idx_robot_ops_visitor_record_visit_time` (`visit_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='访客记录表';
说明:访客记录表只保存已完成登记的到访记录,不保存登记失败结果。登记失败、扫码失败、身份证读取失败、预约匹配失败等异常,进入日志中心或后续扩展的登记异常日志。
说明:visit_type 建议使用 RuoYi 字典 visitor_visit_type,字典项为 APPOINTMENT=预约到访,WALK_IN=现场登记。
说明:register_type 建议使用 RuoYi 字典 visitor_register_type,字典项为 SCREEN=机器人端,H5=手机端。机器人端指访客在机器人屏幕完成登记;手机端指访客扫码后在 H5 页面完成登记。
说明:visitor_source 和 visit_reason 为通用文本字段,用于适配公司、酒店、小区、园区、展厅等多种场景,不强制做枚举。
8.3.2 预约记录表 robot_ops_appointment_record
CREATE TABLE `robot_ops_appointment_record` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`appointment_no` VARCHAR(50) NOT NULL COMMENT '预约单号',
`visitor_name` VARCHAR(100) DEFAULT NULL COMMENT '访客姓名',
`mobile` VARCHAR(20) DEFAULT NULL COMMENT '访客手机号',
`visited_person` VARCHAR(100) DEFAULT NULL COMMENT '被访人/被访对象',
`appointment_time` DATETIME DEFAULT NULL COMMENT '预约到访时间',
`status` VARCHAR(20) DEFAULT NULL COMMENT '预约状态:待到访、已到访、已取消、已过期',
`sync_time` DATETIME DEFAULT NULL COMMENT '同步到本地时间',
`source_platform` VARCHAR(50) DEFAULT NULL COMMENT '来源平台',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_robot_ops_appointment_no` (`appointment_no`),
KEY `idx_robot_ops_appointment_time` (`appointment_time`),
KEY `idx_robot_ops_appointment_mobile` (`mobile`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='访客预约记录表';
8.3.3 白名单表 robot_ops_whitelist
CREATE TABLE `robot_ops_whitelist` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(100) NOT NULL COMMENT '姓名',
`mobile` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
`id_card_no` VARCHAR(50) DEFAULT NULL COMMENT '身份证号',
`whitelist_type` VARCHAR(50) DEFAULT NULL COMMENT '人员类型字典值,如internal内部人员、visitor访客、vip VIP、other其他',
`face_image_url` VARCHAR(255) DEFAULT NULL COMMENT '人脸照片地址,用于机器人侧照片比对',
`source_type` VARCHAR(50) DEFAULT NULL COMMENT '来源类型字典值:1本地录入,2平台同步,3机器人采集',
`valid_start_time` DATETIME DEFAULT NULL COMMENT '有效开始时间,不填表示立即生效',
`valid_end_time` DATETIME DEFAULT NULL COMMENT '有效结束时间,不填表示长期有效',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_whitelist_mobile` (`mobile`),
KEY `idx_robot_ops_whitelist_id_card_no` (`id_card_no`),
KEY `idx_robot_ops_whitelist_type` (`whitelist_type`),
KEY `idx_robot_ops_whitelist_source_type` (`source_type`),
KEY `idx_robot_ops_whitelist_status` (`status`),
KEY `idx_robot_ops_whitelist_valid_time` (`valid_start_time`, `valid_end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='白名单表';
说明:whitelist_type 当前页面显示为"人员类型",用于描述人员身份,不表示识别方式。建议字典项为 internal=内部人员、visitor=访客、vip=VIP、other=其他。
说明:白名单不设置 recognition_type / auth_type 字段,因为同一人员可同时支持人脸照片、身份证号、手机号多种匹配方式。机器人侧根据实际采集到的信息选择对应字段进行匹配。
说明:一期不建设 face_feature_id 字段。当前人脸白名单采用照片比对方式,仅保存 face_image_url。
说明:source_type 使用 RuoYi 字典 source_type,当前字典项为 1=本地录入、2=平台同步、3=机器人采集。运维后台新增和导入的数据默认写入 1,平台同步和机器人采集数据由对应接口写入。
8.4 监控与日志表
8.4.1 远程喊话记录表 robot_ops_shout_record
CREATE TABLE `robot_ops_shout_record` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`shout_text` VARCHAR(1000) NOT NULL COMMENT '喊话文本',
`volume` INT DEFAULT NULL COMMENT '音量,0-100',
`play_times` INT DEFAULT 1 COMMENT '播放次数',
`interrupt_flag` CHAR(1) DEFAULT '0' COMMENT '是否打断当前播报:0否,1是',
`result_status` VARCHAR(20) DEFAULT NULL COMMENT '执行状态:SUCCESS成功,FAIL失败,RUNNING执行中',
`result_msg` VARCHAR(500) DEFAULT NULL COMMENT '执行结果信息/失败原因',
`operate_by` VARCHAR(64) DEFAULT NULL COMMENT '操作人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间/喊话时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_shout_record_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='远程喊话记录表';
8.4.2 对话日志表 robot_ops_dialogue_log
CREATE TABLE `robot_ops_dialogue_log` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`session_id` VARCHAR(100) DEFAULT NULL COMMENT '会话ID',
`ask_time` DATETIME DEFAULT NULL COMMENT '提问时间',
`question` VARCHAR(1000) DEFAULT NULL COMMENT '用户问题',
`answer` TEXT COMMENT '机器人回答',
`hit_type` VARCHAR(50) DEFAULT NULL COMMENT '命中方式:FAQ命中、未命中、其他',
`scene_type` VARCHAR(50) DEFAULT NULL COMMENT '来源场景:欢迎接待、咨询问答、其他',
`result_status` VARCHAR(20) DEFAULT NULL COMMENT '结果状态:SUCCESS成功,FAIL失败,TIMEOUT超时',
`raw_request` TEXT COMMENT '原始请求内容',
`raw_response` TEXT COMMENT '原始响应内容',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_dialogue_log_session_id` (`session_id`),
KEY `idx_robot_ops_dialogue_log_ask_time` (`ask_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='人机对话日志表';
8.4.3 安防告警日志表 robot_ops_alarm_log
CREATE TABLE `robot_ops_alarm_log` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`alarm_time` DATETIME DEFAULT NULL COMMENT '告警时间',
`alarm_type` VARCHAR(50) DEFAULT NULL COMMENT '告警类型',
`alarm_level` VARCHAR(20) DEFAULT NULL COMMENT '告警级别:LOW低,MEDIUM中,HIGH高,CRITICAL紧急',
`source_position` VARCHAR(100) DEFAULT NULL COMMENT '来源位置/区域/模块',
`handle_status` VARCHAR(20) DEFAULT 'UNHANDLED' COMMENT '处理状态:UNHANDLED未处理,CONFIRMED已确认,IGNORED已忽略',
`description` VARCHAR(1000) DEFAULT NULL COMMENT '告警描述',
`snapshot_url` VARCHAR(255) DEFAULT NULL COMMENT '抓拍图地址',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_alarm_log_time` (`alarm_time`),
KEY `idx_robot_ops_alarm_log_level` (`alarm_level`),
KEY `idx_robot_ops_alarm_log_status` (`handle_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='安防告警日志表';
8.4.4 系统日志表 robot_ops_sys_log
CREATE TABLE `robot_ops_sys_log` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`log_time` DATETIME DEFAULT NULL COMMENT '日志时间',
`log_type` VARCHAR(50) DEFAULT NULL COMMENT '日志类型:系统日志、设备日志、升级日志、服务日志',
`log_level` VARCHAR(20) DEFAULT NULL COMMENT '日志级别:INFO、WARN、ERROR',
`module_name` VARCHAR(100) DEFAULT NULL COMMENT '模块名称',
`content` TEXT COMMENT '日志内容',
`result_status` VARCHAR(20) DEFAULT NULL COMMENT '结果状态',
`trace_id` VARCHAR(100) DEFAULT NULL COMMENT '链路追踪ID',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_sys_log_time` (`log_time`),
KEY `idx_robot_ops_sys_log_type` (`log_type`),
KEY `idx_robot_ops_sys_log_level` (`log_level`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统日志表';
8.4.5 操作日志表 robot_ops_operate_log
CREATE TABLE `robot_ops_operate_log` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`operate_time` DATETIME DEFAULT NULL COMMENT '操作时间',
`operate_user` VARCHAR(64) DEFAULT NULL COMMENT '操作人',
`module_name` VARCHAR(100) DEFAULT NULL COMMENT '操作模块',
`operate_type` VARCHAR(50) DEFAULT NULL COMMENT '操作类型:新增、编辑、删除、控制、升级等',
`operate_content` VARCHAR(1000) DEFAULT NULL COMMENT '操作内容',
`result_status` VARCHAR(20) DEFAULT NULL COMMENT '操作结果:SUCCESS成功,FAIL失败',
`result_msg` VARCHAR(500) DEFAULT NULL COMMENT '结果信息/失败原因',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_operate_log_time` (`operate_time`),
KEY `idx_robot_ops_operate_log_user` (`operate_user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='后台操作日志表';
8.5 运维与升级表
8.5.1 参数分组表 robot_ops_param_group
CREATE TABLE `robot_ops_param_group` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_code` VARCHAR(50) NOT NULL COMMENT '参数分组编码',
`group_name` VARCHAR(100) NOT NULL COMMENT '参数分组名称',
`sort_no` INT DEFAULT 0 COMMENT '排序号,数字越小越靠前',
`status` CHAR(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0停用,1启用',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_robot_ops_param_group_code` (`group_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运行参数分组表';
8.5.2 设备控制记录表 robot_ops_control_record
CREATE TABLE `robot_ops_control_record` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`control_type` VARCHAR(50) NOT NULL COMMENT '控制类型:充电、停止充电、重启、关机、重启服务、音频测试、屏幕测试等',
`control_name` VARCHAR(100) DEFAULT NULL COMMENT '控制名称',
`task_id` VARCHAR(100) DEFAULT NULL COMMENT '机器人侧返回的任务ID',
`request_param` TEXT COMMENT '请求参数JSON',
`result_status` VARCHAR(20) DEFAULT NULL COMMENT '执行状态:SUCCESS成功,FAIL失败,RUNNING执行中,PENDING等待中',
`result_msg` VARCHAR(500) DEFAULT NULL COMMENT '执行结果信息/失败原因',
`operate_by` VARCHAR(64) DEFAULT NULL COMMENT '操作人',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间/下发时间',
`finish_time` DATETIME DEFAULT NULL COMMENT '完成时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_control_record_task_id` (`task_id`),
KEY `idx_robot_ops_control_record_type` (`control_type`),
KEY `idx_robot_ops_control_record_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备控制记录表';
8.5.3 运行参数表 robot_ops_param
CREATE TABLE `robot_ops_param` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`group_code` VARCHAR(50) NOT NULL COMMENT '参数分组编码,关联robot_ops_param_group.group_code',
`param_code` VARCHAR(100) NOT NULL COMMENT '参数编码',
`param_name` VARCHAR(100) NOT NULL COMMENT '参数名称',
`param_value` VARCHAR(2000) DEFAULT NULL COMMENT '参数值',
`value_type` VARCHAR(20) DEFAULT NULL COMMENT '值类型:string、int、float、boolean、enum、json',
`unit` VARCHAR(20) DEFAULT NULL COMMENT '单位',
`editable` CHAR(1) NOT NULL DEFAULT '1' COMMENT '是否可编辑:0否,1是',
`required_flag` CHAR(1) NOT NULL DEFAULT '0' COMMENT '是否必填:0否,1是',
`min_value` VARCHAR(50) DEFAULT NULL COMMENT '最小值',
`max_value` VARCHAR(50) DEFAULT NULL COMMENT '最大值',
`enum_options` VARCHAR(2000) DEFAULT NULL COMMENT '枚举项JSON',
`remark` VARCHAR(500) DEFAULT NULL COMMENT '参数说明/备注',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_robot_ops_param_code` (`group_code`,`param_code`),
KEY `idx_robot_ops_param_group_code` (`group_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运行参数配置表';
8.5.4 系统诊断项表 robot_ops_diagnosis_item
CREATE TABLE `robot_ops_diagnosis_item` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`item_code` VARCHAR(50) NOT NULL COMMENT '诊断项编码',
`item_name` VARCHAR(100) NOT NULL COMMENT '诊断项名称',
`result_status` VARCHAR(20) DEFAULT NULL COMMENT '检查结果:NORMAL正常,WARN告警,FAIL失败',
`detail_msg` VARCHAR(1000) DEFAULT NULL COMMENT '详情描述',
`last_check_time` DATETIME DEFAULT NULL COMMENT '最后检查时间',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_robot_ops_diagnosis_item_code` (`item_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统诊断项表';
说明:一期仅保留各诊断项的最新诊断结果;如后续需要追踪每次诊断历史,可在二期扩展诊断记录表和诊断明细表。
8.5.5 软件版本信息表 robot_ops_version_info
CREATE TABLE `robot_ops_version_info` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`module_code` VARCHAR(50) NOT NULL COMMENT '模块编码',
`module_name` VARCHAR(100) NOT NULL COMMENT '模块名称',
`current_version` VARCHAR(50) DEFAULT NULL COMMENT '当前版本号',
`install_time` DATETIME DEFAULT NULL COMMENT '安装时间',
`run_status` VARCHAR(20) DEFAULT NULL COMMENT '运行状态:RUNNING运行中,STOPPED已停止,ERROR异常',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_robot_ops_version_module_code` (`module_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='软件版本信息表';
8.5.6 升级包表 robot_ops_upgrade_package
CREATE TABLE `robot_ops_upgrade_package` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`package_name` VARCHAR(100) NOT NULL COMMENT '安装包名称',
`module_code` VARCHAR(50) NOT NULL COMMENT '升级模块编码',
`target_version` VARCHAR(50) NOT NULL COMMENT '目标版本号',
`file_url` VARCHAR(255) NOT NULL COMMENT '升级包文件地址',
`file_size` BIGINT DEFAULT NULL COMMENT '文件大小,单位字节',
`upload_by` VARCHAR(64) DEFAULT NULL COMMENT '上传人',
`upload_time` DATETIME DEFAULT NULL COMMENT '上传完成时间',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_upgrade_package_module` (`module_code`),
KEY `idx_robot_ops_upgrade_package_version` (`target_version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OTA升级包表';
8.5.7 升级记录表 robot_ops_upgrade_record
CREATE TABLE `robot_ops_upgrade_record` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`module_code` VARCHAR(50) NOT NULL COMMENT '模块编码',
`module_name` VARCHAR(100) DEFAULT NULL COMMENT '模块名称',
`current_version` VARCHAR(50) DEFAULT NULL COMMENT '原版本号',
`target_version` VARCHAR(50) DEFAULT NULL COMMENT '目标版本号',
`package_id` BIGINT DEFAULT NULL COMMENT '升级包ID,关联robot_ops_upgrade_package.id',
`execute_by` VARCHAR(64) DEFAULT NULL COMMENT '执行人',
`start_time` DATETIME DEFAULT NULL COMMENT '升级开始时间',
`end_time` DATETIME DEFAULT NULL COMMENT '升级结束时间',
`result_status` VARCHAR(20) DEFAULT NULL COMMENT '升级状态:SUCCESS成功,FAIL失败,RUNNING升级中,PENDING等待中',
`result_msg` VARCHAR(1000) DEFAULT NULL COMMENT '升级结果信息/失败原因',
`progress_percent` INT DEFAULT 0 COMMENT '升级进度百分比,0-100',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_robot_ops_upgrade_record_module` (`module_code`),
KEY `idx_robot_ops_upgrade_record_status` (`result_status`),
KEY `idx_robot_ops_upgrade_record_start_time` (`start_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OTA升级记录表';
一期不建设机器人基础信息表和设备状态快照表。首页总览、设备状态页、视频预览页的数据以机器人侧实时接口为准;如二期需要状态历史趋势、离线查看最近状态、故障追溯统计,再扩展设备状态快照表。