CMVR-IOT/sql/inspection_module.sql
lixiaolong 68b2698614 feat(flow): 集成流程引擎控制巡检任务执行
- 在 GlobalException 中添加对原始异常的支持,实现错误链路追踪
- 为巡检任务和任务实例实体增加任务配置ID和检测任务ID字段
- 更新数据映射文件以同步数据库结构变更
- 在任务实例服务中注入流程控制服务并实现执行、暂停、停止和恢复功能
- 优化任务上下文管理器中的终端ID空值处理逻辑
- 移除终端ID非空校验并调整相关业务逻辑
- 重构任务执行VO类以支持流程引擎调用参数传递
2026-06-02 16:53:07 +08:00

146 lines
7.7 KiB
SQL
Raw 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 `inspection_robot`;
CREATE TABLE `inspection_robot` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`robot_code` varchar(64) DEFAULT NULL COMMENT '机器人编码',
`robot_name` varchar(100) NOT NULL COMMENT '机器人名称',
`robot_model` varchar(100) DEFAULT NULL COMMENT '机器人型号',
`robot_type` varchar(50) DEFAULT NULL COMMENT '机器人类型',
`ip_address` varchar(50) DEFAULT NULL COMMENT 'IP地址',
`port` int(11) DEFAULT NULL COMMENT '端口号',
`current_map_id` varchar(64) DEFAULT NULL COMMENT '当前地图ID',
`status` char(1) DEFAULT '0' COMMENT '状态(0在线 1离线 2充电中 3巡检中)',
`battery_level` int(3) DEFAULT NULL COMMENT '电量百分比',
`current_position` varchar(200) DEFAULT NULL COMMENT '当前位置',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_robot_code` (`robot_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检机器人表';
-- 2. 巡检地图表
DROP TABLE IF EXISTS `inspection_map`;
CREATE TABLE `inspection_map` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`map_name` varchar(100) NOT NULL COMMENT '地图名称',
`map_source_robot_id` varchar(64) DEFAULT NULL COMMENT '地图来源的机器人id',
`map_source_name` varchar(100) DEFAULT NULL COMMENT '地图来源的地图名称',
`map_file_path` varchar(500) DEFAULT NULL COMMENT '地图文件路径',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`map_desc` varchar(500) DEFAULT NULL COMMENT '地图描述',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检地图表';
-- 3. 巡检任务表(不再包含机器人信息)
DROP TABLE IF EXISTS `inspection_task`;
CREATE TABLE `inspection_task` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`task_code` varchar(64) DEFAULT NULL COMMENT '任务编码',
`task_name` varchar(100) NOT NULL COMMENT '任务名称',
`task_type` char(1) DEFAULT '1' COMMENT '任务类型(1巡检任务 2讲解任务)',
`task_config_id` varchar(64) DEFAULT NULL COMMENT '任务配置ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_code` (`task_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检任务表';
-- 4. 巡检点位表不再包含任务ID通过关联表关联
DROP TABLE IF EXISTS `inspection_waypoint`;
CREATE TABLE `inspection_waypoint` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`waypoint_name` varchar(100) NOT NULL COMMENT '点位名称',
`enabled` char(1) DEFAULT '0' COMMENT '是否启用(0启用 1禁用)',
`sort_order` int(11) DEFAULT '0' COMMENT '排序号',
`detect_item_id` varchar(64) DEFAULT NULL COMMENT '检测项ID',
`map_id` varchar(64) DEFAULT NULL COMMENT '地图ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检点位表';
-- 4.1 任务与点位关联表(多对多)
DROP TABLE IF EXISTS `inspection_task_waypoint`;
CREATE TABLE `inspection_task_waypoint` (
`task_id` varchar(64) NOT NULL COMMENT '任务ID',
`waypoint_id` varchar(64) NOT NULL COMMENT '点位ID',
`sort_order` int(11) DEFAULT '0' COMMENT '排序号',
PRIMARY KEY (`task_id`, `waypoint_id`),
KEY `idx_task_id` (`task_id`),
KEY `idx_waypoint_id` (`waypoint_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务与点位关联表';
-- 4.2 巡检任务执行实例表
DROP TABLE IF EXISTS `inspection_task_instance`;
CREATE TABLE `inspection_task_instance` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`task_id` varchar(64) NOT NULL COMMENT '任务ID',
`robot_id` varchar(64) DEFAULT NULL COMMENT '机器人ID',
`status` char(1) DEFAULT '0' COMMENT '执行状态(0待执行 1执行中 2已完成 3已取消 4执行失败 5已暂停)',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_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_robot_id` (`robot_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检任务执行实例表';
-- 5. 巡检告警表增加任务执行实例ID
DROP TABLE IF EXISTS `inspection_alarm`;
CREATE TABLE `inspection_alarm` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`alarm_code` varchar(64) 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 '任务名称',
`robot_id` varchar(64) DEFAULT NULL COMMENT '机器人ID',
`robot_name` varchar(100) DEFAULT NULL COMMENT '机器人名称',
`alarm_level` char(1) DEFAULT '2' COMMENT '告警级别(1提示 2警告 3严重)',
`alarm_type` char(1) DEFAULT NULL 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 '图片证据',
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_robot_id` (`robot_id`),
KEY `idx_alarm_time` (`alarm_time`),
KEY `idx_handle_status` (`handle_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检告警表';