CMVR-IOT/sql/aima_module.sql
lixiaolong 05992d1980 feat(aima): 实现智能测试任务执行队列和媒体录制功能
- 新增 SYSTEM_EXECUTE_ACTION_QUEUE 枚举值支持边缘设备动作队列执行
- 修改 aima_task_test_case 表主键为 task_id 和 sort_order 组合
- 添加 AimaFlowExecutionListener 监听器实现任务执行进度跟踪
- 引入并发安全的 Map 结构存储任务执行状态避免并发问题
- 实现测试用例绑定顺序管理和执行进度计算逻辑
- 集成 FlowMediaParamResolver 处理图像和视频媒体参数
- 完善 AimaTaskInstanceService 支持测试用例顺序执行
- 添加 AimaTestLog 记录实际执行结果、截图和视频链接
- 更新 EdgeCameraService 支持工作流录像会话管理
- 实现后端本地录像功能包括开始/停止录制操作
- 添加定时清理过期录像会话和 WebSocket 实时推送支持
2026-08-12 17:58:44 +08:00

215 lines
11 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ----------------------------
-- 爱玛电动车测试模块数据库表设计
-- ----------------------------
-- ----------------------------
-- 1、手机管理表
-- ----------------------------
DROP TABLE IF EXISTS `aima_phone`;
CREATE TABLE `aima_phone` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`phone_name` varchar(100) DEFAULT NULL COMMENT '手机名称',
`phone_model` varchar(100) DEFAULT NULL COMMENT '手机型号',
`os_system` varchar(50) DEFAULT NULL COMMENT '操作系统(Android/iOS)',
`os_version` varchar(50) DEFAULT NULL COMMENT '系统版本',
`specifications` varchar(500) DEFAULT NULL COMMENT '规格参数',
`manufacturer` varchar(100) DEFAULT NULL COMMENT '厂商',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='爱玛手机管理表';
-- ----------------------------
-- 2、车辆管理表
-- ----------------------------
DROP TABLE IF EXISTS `aima_vehicle`;
CREATE TABLE `aima_vehicle` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`vin` varchar(50) DEFAULT NULL COMMENT '车架号(VIN)',
`vehicle_model` varchar(100) DEFAULT NULL COMMENT '车型',
`vehicle_name` varchar(100) DEFAULT NULL COMMENT '车辆名称',
`color` varchar(50) DEFAULT NULL COMMENT '颜色',
`production_date` date DEFAULT NULL COMMENT '生产日期',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_vin` (`vin`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='爱玛车辆管理表';
-- ----------------------------
-- 3、测试用例管理表(对标巡检点位)
-- ----------------------------
DROP TABLE IF EXISTS `aima_test_case`;
CREATE TABLE `aima_test_case` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`case_code` varchar(50) DEFAULT NULL COMMENT '用例编码',
`case_name` varchar(100) DEFAULT NULL COMMENT '用例名称',
`case_category` varchar(50) DEFAULT NULL COMMENT '用例分类(功能测试/性能测试/安全测试等)',
`test_description` text COMMENT '测试描述',
`precondition` text COMMENT '前置条件',
`test_steps` text COMMENT '测试步骤',
`expected_result` text COMMENT '预期结果',
`priority` char(1) DEFAULT '2' COMMENT '优先级(1高 2中 3低)',
`enabled` char(1) DEFAULT '0' COMMENT '是否启用(0启用 1禁用)',
`sort_order` int DEFAULT '0' COMMENT '排序号',
`estimated_duration` int DEFAULT NULL COMMENT '预计执行时长(秒)',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`detect_item_id` varchar(64) DEFAULT NULL COMMENT '检测项ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_case_code` (`case_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='爱玛测试用例表';
-- ----------------------------
-- 4、任务管理表
-- ----------------------------
DROP TABLE IF EXISTS `aima_task`;
CREATE TABLE `aima_task` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`task_code` varchar(50) DEFAULT NULL COMMENT '任务编码',
`task_name` varchar(100) DEFAULT NULL COMMENT '任务名称',
`task_type` char(1) DEFAULT '1' COMMENT '任务类型(1常规测试 2回归测试 3专项测试)',
`phone_id` varchar(64) DEFAULT NULL COMMENT '手机ID',
`vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID',
`test_case_count` int DEFAULT '0' COMMENT '测试用例数量',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`task_config_id` varchar(64) DEFAULT NULL COMMENT '任务配置ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_code` (`task_code`),
KEY `idx_phone_id` (`phone_id`),
KEY `idx_vehicle_id` (`vehicle_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='爱玛任务管理表';
-- ----------------------------
-- 5、任务与测试用例关联表
-- ----------------------------
DROP TABLE IF EXISTS `aima_task_test_case`;
CREATE TABLE `aima_task_test_case` (
`task_id` varchar(64) NOT NULL COMMENT '任务ID',
`test_case_id` varchar(64) NOT NULL COMMENT '测试用例ID',
`sort_order` int(11) DEFAULT '0' COMMENT '排序号',
PRIMARY KEY (`task_id`, `sort_order`),
KEY `idx_task_id` (`task_id`),
KEY `idx_test_case_id` (`test_case_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='爱玛任务与测试用例关联表';
-- ----------------------------
-- 6、任务执行实例表
-- ----------------------------
DROP TABLE IF EXISTS `aima_task_instance`;
CREATE TABLE `aima_task_instance` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`task_id` varchar(64) DEFAULT NULL COMMENT '任务ID',
`phone_id` varchar(64) DEFAULT NULL COMMENT '手机ID',
`vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID',
`execution_number` int DEFAULT '1' COMMENT '第几次执行',
`status` int DEFAULT '0' COMMENT '执行状态(0待执行 1执行中 2已完成 3已取消 4执行失败 5已暂停)',
`total_cases` int DEFAULT '0' COMMENT '总用例数',
`completed_cases` int DEFAULT '0' COMMENT '已完成用例数',
`passed_cases` int DEFAULT '0' COMMENT '通过用例数',
`failed_cases` int DEFAULT '0' COMMENT '失败用例数',
`progress` decimal(5,2) DEFAULT '0.00' COMMENT '执行进度(百分比,保留2位小数)',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`task_ins_id` varchar(64) DEFAULT NULL COMMENT '任务执行实例ID',
PRIMARY KEY (`id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_phone_id` (`phone_id`),
KEY `idx_vehicle_id` (`vehicle_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='爱玛任务执行实例表';
-- ----------------------------
-- 6、日志管理表(单独存表)
-- ----------------------------
DROP TABLE IF EXISTS `aima_test_log`;
CREATE TABLE `aima_test_log` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`task_instance_id` varchar(64) DEFAULT NULL COMMENT '任务执行实例ID',
`task_id` varchar(64) DEFAULT NULL COMMENT '任务ID',
`task_name` varchar(100) DEFAULT NULL COMMENT '任务名称',
`test_case_id` varchar(64) DEFAULT NULL COMMENT '测试用例ID',
`case_name` varchar(100) DEFAULT NULL COMMENT '用例名称',
`log_level` varchar(20) DEFAULT 'INFO' COMMENT '日志级别(DEBUG/INFO/WARN/ERROR)',
`log_type` varchar(50) DEFAULT NULL COMMENT '日志类型(执行日志/系统日志/异常日志)',
`log_content` varchar(255) COMMENT '日志内容',
`log_time` datetime DEFAULT NULL COMMENT '日志时间',
`execution_step` varchar(100) DEFAULT NULL COMMENT '执行步骤',
`actual_result` text COMMENT '实际结果',
`test_status` char(1) DEFAULT NULL COMMENT '测试结果(0未执行 1通过 2失败 3跳过)',
`screenshot_url` varchar(500) DEFAULT NULL COMMENT '截图URL',
`video_url` varchar(500) DEFAULT NULL COMMENT '视频URL',
`error_stack` text COMMENT '错误堆栈',
`duration_ms` bigint DEFAULT NULL COMMENT '执行耗时(毫秒)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`progress` decimal(5,2) DEFAULT '0.00' COMMENT '执行进度(百分比,保留2位小数)',
`status` char(1) DEFAULT '0' COMMENT '执行状态(0进行中 1已完成 2已暂停 3已取消 4已失败)',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `idx_task_instance_id` (`task_instance_id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_test_case_id` (`test_case_id`),
KEY `idx_log_time` (`log_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='爱玛测试日志表';
-- ----------------------------
-- 7、告警管理表
-- ----------------------------
DROP TABLE IF EXISTS `aima_alarm`;
CREATE TABLE `aima_alarm` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`alarm_code` varchar(50) DEFAULT NULL COMMENT '告警编码',
`task_instance_id` varchar(64) DEFAULT NULL COMMENT '任务执行实例ID',
`task_id` varchar(64) DEFAULT NULL COMMENT '任务ID',
`task_name` varchar(100) DEFAULT NULL COMMENT '任务名称',
`phone_id` varchar(64) DEFAULT NULL COMMENT '手机ID',
`phone_name` varchar(100) DEFAULT NULL COMMENT '手机名称',
`vehicle_id` varchar(64) DEFAULT NULL COMMENT '车辆ID',
`vin` varchar(50) DEFAULT NULL COMMENT '车架号',
`test_case_id` varchar(64) DEFAULT NULL COMMENT '测试用例ID',
`case_name` varchar(100) DEFAULT NULL COMMENT '用例名称',
`alarm_level` char(1) DEFAULT '2' COMMENT '告警级别(1提示 2警告 3严重)',
`alarm_type` char(1) DEFAULT '1' COMMENT '告警类型(1设备异常 2测试异常 3通信异常 4性能异常)',
`alarm_title` varchar(200) DEFAULT NULL COMMENT '告警标题',
`alarm_content` text COMMENT '告警内容',
`alarm_location` varchar(200) DEFAULT NULL COMMENT '告警位置/步骤',
`alarm_time` datetime DEFAULT NULL COMMENT '告警时间',
`handle_status` char(1) DEFAULT '0' COMMENT '处理状态(0未处理 1处理中 2已处理 3已忽略)',
`handler` varchar(64) DEFAULT NULL COMMENT '处理人',
`handle_time` datetime DEFAULT NULL COMMENT '处理时间',
`handle_remark` varchar(500) DEFAULT NULL COMMENT '处理说明',
`evidence_image` varchar(500) DEFAULT NULL COMMENT '图片证据',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_alarm_code` (`alarm_code`),
KEY `idx_task_instance_id` (`task_instance_id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_alarm_time` (`alarm_time`),
KEY `idx_handle_status` (`handle_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='爱玛告警管理表';