- DO 继承 BaseDO(含 @TableLogic),但建表脚本初版漏了 deleted 列, MyBatis Plus 自动生成的 UPDATE/SELECT 语句会报 "Unknown column 'deleted' in 'where clause'"。 - 同步更新 video.sql 中的建表脚本与段落注释,增量脚本放到 sql/mysql/migrations/2026-04-22_video_media_server_deleted.sql, 已部署库手动执行即可。
966 lines
68 KiB
SQL
966 lines
68 KiB
SQL
/*
|
||
Viewsh AIoT Platform — viewsh-module-video 建表脚本(最终融合版)
|
||
|
||
融合来源:
|
||
- aiot-video.sql(框架字段标准写法:datetime、bigint、creator/updater/deleted/tenant_id)
|
||
- video.sql(业务字段:AI扩展表字段、video_ 表前缀)
|
||
|
||
规范:
|
||
- 业务数据表(23张):ProjectBaseDO,含 project_id + tenant_id + BaseDO 字段
|
||
- 租户字典表(2张):TenantBaseDO,含 tenant_id + BaseDO 字段,不含 project_id
|
||
- 全局共享表(1张):BaseDO,只含 creator/create_time/updater/update_time,不含 tenant_id/deleted
|
||
- 唯一索引包含 deleted 字段支持逻辑删除后重新添加
|
||
- 时间字段统一 datetime,WVP 原 varchar(50) 时间字段移除
|
||
- 不含 wvp_user / wvp_user_role / wvp_user_api_key(由 viewsh-module-system 管理)
|
||
- 不含 wvp_jt_terminal / wvp_jt_channel(JT1078 Phase 2 迁移)
|
||
|
||
表清单(26张):
|
||
业务数据(17张):video_device, video_device_channel, video_device_alarm,
|
||
video_device_mobile_position, video_platform, video_platform_channel,
|
||
video_platform_group, video_platform_region, video_common_gb_channel,
|
||
video_common_group, video_common_region, video_stream_proxy, video_stream_push,
|
||
video_cloud_record, video_record_plan, video_record_plan_item, video_ai_alert
|
||
AI 业务数据(6张):video_ai_edge_device, video_ai_roi, video_ai_roi_algo_bind,
|
||
video_ai_config_log, video_ai_config_snapshot, video_ai_camera_snapshot
|
||
租户字典(2张):video_ai_algorithm, video_ai_algo_template
|
||
全局共享(1张):video_media_server
|
||
|
||
维护者:AI Assistant
|
||
生成日期:2026-04-20
|
||
*/
|
||
|
||
SET NAMES utf8mb4;
|
||
SET FOREIGN_KEY_CHECKS = 0;
|
||
|
||
-- ============================================================================
|
||
-- 一、GB/T 28181 设备与通道
|
||
-- ============================================================================
|
||
|
||
-- ----------------------------
|
||
-- 国标设备基础信息(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_device`;
|
||
CREATE TABLE `video_device` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`device_id` varchar(50) NOT NULL COMMENT '国标设备编号',
|
||
`name` varchar(255) NULL COMMENT '设备名称',
|
||
`manufacturer` varchar(255) NULL COMMENT '设备厂商',
|
||
`model` varchar(255) NULL COMMENT '设备型号',
|
||
`firmware` varchar(255) NULL COMMENT '固件版本号',
|
||
`transport` varchar(50) NULL COMMENT '信令传输协议(TCP/UDP)',
|
||
`stream_mode` varchar(50) NULL COMMENT '拉流方式(主动/被动)',
|
||
`on_line` tinyint(1) NOT NULL DEFAULT 0 COMMENT '在线状态',
|
||
`register_time` varchar(50) NULL COMMENT '注册时间',
|
||
`keepalive_time` varchar(50) NULL COMMENT '最近心跳时间',
|
||
`ip` varchar(50) NULL COMMENT '设备IP地址',
|
||
`port` int NULL COMMENT '信令端口',
|
||
`expires` int NULL COMMENT '注册有效期',
|
||
`subscribe_cycle_for_catalog` int NOT NULL DEFAULT 0 COMMENT '目录订阅周期',
|
||
`subscribe_cycle_for_mobile_position` int NOT NULL DEFAULT 0 COMMENT '移动位置订阅周期',
|
||
`mobile_position_submission_interval` int NOT NULL DEFAULT 5 COMMENT '移动位置上报间隔',
|
||
`subscribe_cycle_for_alarm` int NOT NULL DEFAULT 0 COMMENT '报警订阅周期',
|
||
`host_address` varchar(50) NULL COMMENT '设备域名/主机地址',
|
||
`charset` varchar(50) NULL COMMENT '信令字符集',
|
||
`ssrc_check` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否校验SSRC',
|
||
`geo_coord_sys` varchar(50) NULL COMMENT '坐标系类型',
|
||
`media_server_id` varchar(50) NOT NULL DEFAULT 'auto' COMMENT '绑定的流媒体服务ID',
|
||
`custom_name` varchar(255) NULL COMMENT '自定义显示名称',
|
||
`sdp_ip` varchar(50) NULL COMMENT 'SDP中携带的IP',
|
||
`local_ip` varchar(50) NULL COMMENT '本地局域网IP',
|
||
`password` varchar(255) NULL COMMENT '设备鉴权密码',
|
||
`as_message_channel` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否作为消息通道',
|
||
`heart_beat_interval` int NULL COMMENT '心跳间隔',
|
||
`heart_beat_count` int NULL COMMENT '心跳失败次数',
|
||
`position_capability` int NULL COMMENT '定位能力标识',
|
||
`channel_count` int NOT NULL DEFAULT 0 COMMENT '通道数量',
|
||
`broadcast_push_after_ack` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'ACK后是否自动推流',
|
||
`server_id` varchar(50) NULL COMMENT '所属信令服务器ID',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_device_id_deleted` (`device_id`, `deleted`) COMMENT '设备ID唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='国标设备基础信息';
|
||
|
||
-- ----------------------------
|
||
-- 设备通道信息(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_device_channel`;
|
||
CREATE TABLE `video_device_channel` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`device_id` varchar(50) NULL COMMENT '所属设备ID',
|
||
`name` varchar(255) NULL COMMENT '通道名称',
|
||
`manufacturer` varchar(50) NULL COMMENT '厂商',
|
||
`model` varchar(50) NULL COMMENT '型号',
|
||
`owner` varchar(50) NULL COMMENT '归属单位',
|
||
`civil_code` varchar(50) NULL COMMENT '行政区划代码',
|
||
`block` varchar(50) NULL COMMENT '区域/小区编号',
|
||
`address` varchar(50) NULL COMMENT '安装地址',
|
||
`parental` int NULL COMMENT '是否有子节点',
|
||
`parent_id` varchar(50) NULL COMMENT '父级通道ID',
|
||
`safety_way` int NULL COMMENT '安全防范等级',
|
||
`register_way` int NULL COMMENT '注册方式',
|
||
`cert_num` varchar(50) NULL COMMENT '证书编号',
|
||
`certifiable` int NULL COMMENT '是否可认证',
|
||
`err_code` int NULL COMMENT '故障状态码',
|
||
`end_time` varchar(50) NULL COMMENT '服务截止时间',
|
||
`secrecy` int NULL COMMENT '保密级别',
|
||
`ip_address` varchar(50) NULL COMMENT '设备IP地址',
|
||
`port` int NULL COMMENT '设备端口',
|
||
`password` varchar(255) NULL COMMENT '访问密码',
|
||
`status` varchar(50) NULL COMMENT '在线状态',
|
||
`longitude` double NULL COMMENT '经度',
|
||
`latitude` double NULL COMMENT '纬度',
|
||
`ptz_type` int NULL COMMENT '云台类型',
|
||
`position_type` int NULL COMMENT '点位类型',
|
||
`room_type` int NULL COMMENT '房间类型',
|
||
`use_type` int NULL COMMENT '使用性质',
|
||
`supply_light_type` int NULL COMMENT '补光方式',
|
||
`direction_type` int NULL COMMENT '朝向',
|
||
`resolution` varchar(255) NULL COMMENT '分辨率',
|
||
`business_group_id` varchar(255) NULL COMMENT '业务分组ID',
|
||
`download_speed` varchar(255) NULL COMMENT '下载/码流速率',
|
||
`svc_space_support_mod` int NULL COMMENT '空域SVC能力',
|
||
`svc_time_support_mode` int NULL COMMENT '时域SVC能力',
|
||
`sub_count` int NULL COMMENT '子节点数量',
|
||
`stream_id` varchar(255) NULL COMMENT '绑定的流ID',
|
||
`has_audio` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否有音频',
|
||
`gps_time` varchar(50) NULL COMMENT 'GPS定位时间',
|
||
`stream_identification` varchar(50) NULL COMMENT '流标识',
|
||
`channel_type` int NOT NULL DEFAULT 0 COMMENT '通道类型',
|
||
`map_level` int NOT NULL DEFAULT 0 COMMENT '地图层级',
|
||
`gb_device_id` varchar(50) NULL COMMENT 'GB内的设备ID',
|
||
`gb_name` varchar(255) NULL COMMENT 'GB上报的名称',
|
||
`gb_manufacturer` varchar(255) NULL COMMENT 'GB厂商',
|
||
`gb_model` varchar(255) NULL COMMENT 'GB型号',
|
||
`gb_owner` varchar(255) NULL COMMENT 'GB归属',
|
||
`gb_civil_code` varchar(255) NULL COMMENT 'GB行政区划',
|
||
`gb_block` varchar(255) NULL COMMENT 'GB区域',
|
||
`gb_address` varchar(255) NULL COMMENT 'GB地址',
|
||
`gb_parental` int NULL COMMENT 'GB子节点标识',
|
||
`gb_parent_id` varchar(255) NULL COMMENT 'GB父通道',
|
||
`gb_safety_way` int NULL COMMENT 'GB安全防范',
|
||
`gb_register_way` int NULL COMMENT 'GB注册方式',
|
||
`gb_cert_num` varchar(50) NULL COMMENT 'GB证书编号',
|
||
`gb_certifiable` int NULL COMMENT 'GB认证标志',
|
||
`gb_err_code` int NULL COMMENT 'GB错误码',
|
||
`gb_end_time` varchar(50) NULL COMMENT 'GB截止时间',
|
||
`gb_secrecy` int NULL COMMENT 'GB保密级别',
|
||
`gb_ip_address` varchar(50) NULL COMMENT 'GB IP',
|
||
`gb_port` int NULL COMMENT 'GB端口',
|
||
`gb_password` varchar(50) NULL COMMENT 'GB接入密码',
|
||
`gb_status` varchar(50) NULL COMMENT 'GB状态',
|
||
`gb_longitude` double NULL COMMENT 'GB经度',
|
||
`gb_latitude` double NULL COMMENT 'GB纬度',
|
||
`gb_business_group_id` varchar(50) NULL COMMENT 'GB业务分组',
|
||
`gb_ptz_type` int NULL COMMENT 'GB云台类型',
|
||
`gb_position_type` int NULL COMMENT 'GB点位类型',
|
||
`gb_room_type` int NULL COMMENT 'GB房间类型',
|
||
`gb_use_type` int NULL COMMENT 'GB用途',
|
||
`gb_supply_light_type` int NULL COMMENT 'GB补光',
|
||
`gb_direction_type` int NULL COMMENT 'GB朝向',
|
||
`gb_resolution` varchar(255) NULL COMMENT 'GB分辨率',
|
||
`gb_download_speed` varchar(255) NULL COMMENT 'GB码流速率',
|
||
`gb_svc_space_support_mod` int NULL COMMENT 'GB空域SVC',
|
||
`gb_svc_time_support_mode` int NULL COMMENT 'GB时域SVC',
|
||
`record_plan_id` int NULL COMMENT '绑定的录像计划ID',
|
||
`data_type` int NOT NULL COMMENT '数据类型标识',
|
||
`data_device_id` int NOT NULL COMMENT '数据来源设备主键',
|
||
`gps_speed` double NULL COMMENT 'GPS速度',
|
||
`gps_altitude` double NULL COMMENT 'GPS海拔',
|
||
`gps_direction` double NULL COMMENT 'GPS方向',
|
||
`enable_broadcast` int NOT NULL DEFAULT 0 COMMENT '是否支持广播',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_gb_device_id_deleted` (`gb_device_id`, `deleted`) COMMENT 'GB通道ID唯一(含逻辑删除)',
|
||
INDEX `idx_data_type` (`data_type`),
|
||
INDEX `idx_data_device_id` (`data_device_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备通道信息';
|
||
|
||
-- ----------------------------
|
||
-- 设备报警记录(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_device_alarm`;
|
||
CREATE TABLE `video_device_alarm` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`device_id` varchar(50) NOT NULL COMMENT '国标设备ID',
|
||
`channel_id` varchar(50) NOT NULL COMMENT '报警关联的通道ID',
|
||
`alarm_priority` varchar(50) NULL COMMENT '报警级别',
|
||
`alarm_method` varchar(50) NULL COMMENT '报警方式(视频/语音等)',
|
||
`alarm_time` varchar(50) NULL COMMENT '报警发生时间',
|
||
`alarm_description` varchar(255) NULL COMMENT '报警描述',
|
||
`longitude` double NULL COMMENT '报警经度',
|
||
`latitude` double NULL COMMENT '报警纬度',
|
||
`alarm_type` varchar(50) NULL COMMENT '报警类型',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '数据入库时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `idx_device_id` (`device_id`) COMMENT '设备ID索引'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备报警记录';
|
||
|
||
-- ----------------------------
|
||
-- 移动位置订阅上报数据(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_device_mobile_position`;
|
||
CREATE TABLE `video_device_mobile_position` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`device_id` varchar(50) NOT NULL COMMENT '设备ID',
|
||
`channel_id` bigint NULL COMMENT '通道表主键(FK→video_device_channel.id)',
|
||
`device_name` varchar(255) NULL COMMENT '设备名称',
|
||
`time` varchar(50) NULL COMMENT '上报时间',
|
||
`longitude` double NULL COMMENT '经度',
|
||
`latitude` double NULL COMMENT '纬度',
|
||
`altitude` double NULL COMMENT '海拔',
|
||
`speed` double NULL COMMENT '速度',
|
||
`direction` double NULL COMMENT '方向角',
|
||
`report_source` varchar(50) NULL COMMENT '上报来源',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `idx_device_channel` (`device_id`, `channel_id`) COMMENT '设备+通道索引'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='移动位置订阅上报数据';
|
||
|
||
-- ----------------------------
|
||
-- 通用 GB 通道统一视图(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_common_gb_channel`;
|
||
CREATE TABLE `video_common_gb_channel` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`gb_device_id` varchar(50) NULL COMMENT 'GB通道编号',
|
||
`name` varchar(255) NULL COMMENT '通道名称',
|
||
`manufacturer` varchar(255) NULL COMMENT '厂商',
|
||
`model` varchar(255) NULL COMMENT '型号',
|
||
`owner` varchar(255) NULL COMMENT '归属单位',
|
||
`civil_code` varchar(50) NULL COMMENT '行政区划代码',
|
||
`block` varchar(50) NULL COMMENT '区域/小区编号',
|
||
`address` varchar(255) NULL COMMENT '安装地址',
|
||
`parental` int NULL COMMENT '是否有子节点',
|
||
`parent_id` varchar(50) NULL COMMENT '父级通道ID',
|
||
`safety_way` int NULL COMMENT '安全防范等级',
|
||
`register_way` int NULL COMMENT '注册方式',
|
||
`cert_num` varchar(50) NULL COMMENT '证书编号',
|
||
`certifiable` int NULL COMMENT '是否可认证',
|
||
`err_code` int NULL COMMENT '故障状态码',
|
||
`end_time` varchar(50) NULL COMMENT '服务截止时间',
|
||
`secrecy` int NULL COMMENT '保密级别',
|
||
`ip_address` varchar(50) NULL COMMENT '设备IP地址',
|
||
`port` int NULL COMMENT '设备端口',
|
||
`password` varchar(255) NULL COMMENT '访问密码',
|
||
`status` varchar(50) NULL COMMENT '在线状态',
|
||
`longitude` double NULL COMMENT '经度',
|
||
`latitude` double NULL COMMENT '纬度',
|
||
`ptz_type` int NULL COMMENT '云台类型',
|
||
`position_type` int NULL COMMENT '点位类型',
|
||
`room_type` int NULL COMMENT '房间类型',
|
||
`use_type` int NULL COMMENT '使用性质',
|
||
`supply_light_type` int NULL COMMENT '补光方式',
|
||
`direction_type` int NULL COMMENT '朝向',
|
||
`resolution` varchar(255) NULL COMMENT '分辨率',
|
||
`business_group_id` varchar(255) NULL COMMENT '业务分组ID',
|
||
`download_speed` varchar(255) NULL COMMENT '下载/码流速率',
|
||
`svc_space_support_mod` int NULL COMMENT '空域SVC能力',
|
||
`svc_time_support_mode` int NULL COMMENT '时域SVC能力',
|
||
`has_audio` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否有音频',
|
||
`stream_identification` varchar(50) NULL COMMENT '流标识',
|
||
`data_type` int NOT NULL DEFAULT 0 COMMENT '数据类型(0=GB设备 1=拉流代理 2=推流)',
|
||
`data_device_id` bigint NOT NULL DEFAULT 0 COMMENT '数据来源设备主键',
|
||
`record_plan_id` bigint NULL COMMENT '绑定的录像计划ID',
|
||
`stream_id` varchar(255) NULL COMMENT '绑定的流ID',
|
||
`map_level` int NOT NULL DEFAULT 0 COMMENT '地图层级',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_gb_device_id_deleted` (`gb_device_id`, `deleted`) COMMENT 'GB通道编号唯一(含逻辑删除)',
|
||
INDEX `idx_data_type` (`data_type`),
|
||
INDEX `idx_data_device_id` (`data_device_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通用 GB 通道统一视图';
|
||
|
||
-- ----------------------------
|
||
-- 通用分组表(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_common_group`;
|
||
CREATE TABLE `video_common_group` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`device_id` varchar(50) NOT NULL COMMENT '分组对应的平台或设备ID',
|
||
`name` varchar(255) NOT NULL COMMENT '分组名称',
|
||
`parent_id` bigint NULL COMMENT '父级分组ID',
|
||
`parent_device_id` varchar(50) NULL COMMENT '父级分组对应的设备ID',
|
||
`business_group` varchar(50) NOT NULL COMMENT '业务分组编码',
|
||
`civil_code` varchar(50) NULL COMMENT '行政区划代码',
|
||
`alias` varchar(255) NULL COMMENT '别名',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_device_id_deleted` (`device_id`, `deleted`) COMMENT '分组设备ID唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通用分组表';
|
||
|
||
-- ----------------------------
|
||
-- 通用行政区域表(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_common_region`;
|
||
CREATE TABLE `video_common_region` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`device_id` varchar(50) NOT NULL COMMENT '区域对应的平台或设备ID',
|
||
`name` varchar(255) NOT NULL COMMENT '区域名称',
|
||
`parent_id` bigint NULL COMMENT '父级区域ID',
|
||
`parent_device_id` varchar(50) NULL COMMENT '父级区域的设备ID',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_device_id_deleted` (`device_id`, `deleted`) COMMENT '区域设备ID唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通用行政区域表';
|
||
|
||
-- ============================================================================
|
||
-- 二、上级平台级联
|
||
-- ============================================================================
|
||
|
||
-- ----------------------------
|
||
-- 上级国标平台注册信息(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_platform`;
|
||
CREATE TABLE `video_platform` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`enable` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否启用该平台注册',
|
||
`name` varchar(255) NULL COMMENT '平台名称',
|
||
`server_gb_id` varchar(50) NULL COMMENT '上级平台国标编码',
|
||
`server_gb_domain` varchar(50) NULL COMMENT '上级平台域编码',
|
||
`server_ip` varchar(50) NULL COMMENT '上级平台IP',
|
||
`server_port` int NULL COMMENT '上级平台注册端口',
|
||
`device_gb_id` varchar(50) NULL COMMENT '本平台向上注册的国标编码',
|
||
`device_ip` varchar(50) NULL COMMENT '本平台信令IP',
|
||
`device_port` int NULL COMMENT '本平台信令端口',
|
||
`username` varchar(255) NULL COMMENT '注册用户名',
|
||
`password` varchar(50) NULL COMMENT '注册密码',
|
||
`expires` int NULL COMMENT '注册有效期(秒)',
|
||
`keep_timeout` int NULL COMMENT '心跳超时时间(秒)',
|
||
`transport` varchar(50) NULL COMMENT '传输协议(UDP/TCP)',
|
||
`civil_code` varchar(50) NULL COMMENT '行政区划代码',
|
||
`manufacturer` varchar(255) NULL COMMENT '厂商',
|
||
`model` varchar(255) NULL COMMENT '型号',
|
||
`address` varchar(255) NULL COMMENT '地址',
|
||
`character_set` varchar(50) NULL COMMENT '字符集',
|
||
`ptz` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否支持PTZ',
|
||
`rtcp` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否开启RTCP',
|
||
`status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '注册状态',
|
||
`channel_count` int NOT NULL DEFAULT 0 COMMENT '已同步通道数量',
|
||
`catalog_subscribe` tinyint(1) NOT NULL DEFAULT 0 COMMENT '已被订阅目录信息',
|
||
`alarm_subscribe` tinyint(1) NOT NULL DEFAULT 0 COMMENT '已被订阅报警信息',
|
||
`mobile_position_subscribe` tinyint(1) NOT NULL DEFAULT 0 COMMENT '已被订阅移动位置信息',
|
||
`catalog_group` int NULL COMMENT '目录分组方式',
|
||
`register_way` int NULL COMMENT '注册方式',
|
||
`secrecy` int NULL COMMENT '保密级别',
|
||
`as_message_channel` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否作为消息通道',
|
||
`catalog_with_platform` int NOT NULL DEFAULT 1 COMMENT '是否推送平台目录',
|
||
`catalog_with_group` int NOT NULL DEFAULT 1 COMMENT '是否推送分组目录',
|
||
`catalog_with_region` int NOT NULL DEFAULT 1 COMMENT '是否推送区域目录',
|
||
`auto_push_channel` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否自动推送通道',
|
||
`send_stream_ip` varchar(50) NULL COMMENT '推流时使用的IP',
|
||
`server_id` varchar(50) NULL COMMENT '对应信令服务器ID',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_server_gb_id_deleted` (`server_gb_id`, `deleted`) COMMENT '上级平台国标编码唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='上级国标平台注册信息';
|
||
|
||
-- ----------------------------
|
||
-- 国标平台通道映射关系(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_platform_channel`;
|
||
CREATE TABLE `video_platform_channel` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`platform_id` bigint NULL COMMENT '平台ID',
|
||
`device_channel_id` bigint NULL COMMENT '本地通道表主键',
|
||
`custom_device_id` varchar(50) NULL COMMENT '自定义国标编码',
|
||
`custom_name` varchar(255) NULL COMMENT '自定义名称',
|
||
`custom_manufacturer` varchar(50) NULL COMMENT '自定义厂商',
|
||
`custom_model` varchar(50) NULL COMMENT '自定义型号',
|
||
`custom_owner` varchar(50) NULL COMMENT '自定义归属',
|
||
`custom_civil_code` varchar(50) NULL COMMENT '自定义行政区划',
|
||
`custom_block` varchar(50) NULL COMMENT '自定义区域',
|
||
`custom_address` varchar(50) NULL COMMENT '自定义地址',
|
||
`custom_parental` int NULL COMMENT '自定义父/子标识',
|
||
`custom_parent_id` varchar(50) NULL COMMENT '自定义父节点',
|
||
`custom_safety_way` int NULL COMMENT '自定义安全防范',
|
||
`custom_register_way` int NULL COMMENT '自定义注册方式',
|
||
`custom_cert_num` int NULL COMMENT '自定义证书编号',
|
||
`custom_certifiable` int NULL COMMENT '自定义可认证标志',
|
||
`custom_err_code` int NULL COMMENT '自定义错误码',
|
||
`custom_end_time` int NULL COMMENT '自定义终止时间',
|
||
`custom_secrecy` int NULL COMMENT '自定义保密级别',
|
||
`custom_ip_address` varchar(50) NULL COMMENT '自定义IP',
|
||
`custom_port` int NULL COMMENT '自定义端口',
|
||
`custom_password` varchar(255) NULL COMMENT '自定义密码',
|
||
`custom_status` varchar(50) NULL COMMENT '自定义状态',
|
||
`custom_longitude` double NULL COMMENT '自定义经度',
|
||
`custom_latitude` double NULL COMMENT '自定义纬度',
|
||
`custom_ptz_type` int NULL COMMENT '自定义云台类型',
|
||
`custom_position_type` int NULL COMMENT '自定义点位类型',
|
||
`custom_room_type` int NULL COMMENT '自定义房间类型',
|
||
`custom_use_type` int NULL COMMENT '自定义用途',
|
||
`custom_supply_light_type` int NULL COMMENT '自定义补光',
|
||
`custom_direction_type` int NULL COMMENT '自定义朝向',
|
||
`custom_resolution` varchar(255) NULL COMMENT '自定义分辨率',
|
||
`custom_business_group_id` varchar(255) NULL COMMENT '自定义业务分组',
|
||
`custom_download_speed` varchar(255) NULL COMMENT '自定义码流速率',
|
||
`custom_svc_space_support_mod` int NULL COMMENT '自定义空域SVC',
|
||
`custom_svc_time_support_mode` int NULL COMMENT '自定义时域SVC',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_platform_channel_deleted` (`platform_id`, `device_channel_id`, `deleted`) COMMENT '平台+通道唯一(含逻辑删除)',
|
||
UNIQUE KEY `uk_custom_device_id_deleted` (`custom_device_id`, `deleted`) COMMENT '自定义设备ID唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='国标平台通道映射关系';
|
||
|
||
-- ----------------------------
|
||
-- 平台与分组关联(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_platform_group`;
|
||
CREATE TABLE `video_platform_group` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`platform_id` bigint NULL COMMENT '平台ID',
|
||
`group_id` bigint NULL COMMENT '分组ID',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_platform_group_deleted` (`platform_id`, `group_id`, `deleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台与分组关联';
|
||
|
||
-- ----------------------------
|
||
-- 平台与区域关联(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_platform_region`;
|
||
CREATE TABLE `video_platform_region` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`platform_id` bigint NULL COMMENT '平台ID',
|
||
`region_id` bigint NULL COMMENT '区域ID',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_platform_region_deleted` (`platform_id`, `region_id`, `deleted`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台与区域关联';
|
||
|
||
-- ============================================================================
|
||
-- 三、媒体服务器(全局共享,BaseDO,无 tenant_id / project_id,带逻辑删除)
|
||
-- ============================================================================
|
||
|
||
DROP TABLE IF EXISTS `video_media_server`;
|
||
CREATE TABLE `video_media_server` (
|
||
`id` varchar(255) NOT NULL COMMENT '媒体服务器ID',
|
||
`ip` varchar(50) NULL COMMENT '服务器IP',
|
||
`hook_ip` varchar(50) NULL COMMENT 'hook回调IP',
|
||
`sdp_ip` varchar(50) NULL COMMENT 'SDP中使用的IP',
|
||
`stream_ip` varchar(50) NULL COMMENT '推流使用的IP',
|
||
`http_port` int NULL COMMENT 'HTTP端口',
|
||
`http_ssl_port` int NULL COMMENT 'HTTPS端口',
|
||
`rtmp_port` int NULL COMMENT 'RTMP端口',
|
||
`rtmp_ssl_port` int NULL COMMENT 'RTMPS端口',
|
||
`rtp_proxy_port` int NULL COMMENT 'RTP代理端口',
|
||
`rtsp_port` int NULL COMMENT 'RTSP端口',
|
||
`rtsp_ssl_port` int NULL COMMENT 'RTSPS端口',
|
||
`flv_port` int NULL COMMENT 'FLV端口',
|
||
`flv_ssl_port` int NULL COMMENT 'FLV HTTPS端口',
|
||
`mp4_port` int NULL COMMENT 'MP4点播端口',
|
||
`mp4_ssl_port` int NULL COMMENT 'MP4 HTTPS端口',
|
||
`ws_flv_port` int NULL COMMENT 'WS-FLV端口',
|
||
`ws_flv_ssl_port` int NULL COMMENT 'WS-FLV HTTPS端口',
|
||
`jtt_proxy_port` int NULL COMMENT 'JT/T代理端口',
|
||
`auto_config` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否自动配置',
|
||
`secret` varchar(50) NULL COMMENT 'ZLM校验密钥',
|
||
`type` varchar(50) NOT NULL DEFAULT 'zlm' COMMENT '节点类型',
|
||
`rtp_enable` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否开启RTP',
|
||
`rtp_port_range` varchar(50) NULL COMMENT 'RTP端口范围',
|
||
`send_rtp_port_range` varchar(50) NULL COMMENT '发送RTP端口范围',
|
||
`record_assist_port` int NULL COMMENT '录像辅助端口',
|
||
`default_server` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否默认节点',
|
||
`hook_alive_interval` int NULL COMMENT 'hook心跳间隔',
|
||
`record_path` varchar(255) NULL COMMENT '录像目录',
|
||
`record_day` int NOT NULL DEFAULT 7 COMMENT '录像保留天数',
|
||
`transcode_suffix` varchar(255) NULL COMMENT '转码指令后缀',
|
||
`server_id` varchar(50) NULL COMMENT '对应信令服务器ID',
|
||
`status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '媒体服务器在线状态(0离线,1在线)',
|
||
`last_keepalive_time` datetime NULL COMMENT '最近心跳时间',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_ip_http_port_server_id` (`ip`, `http_port`, `server_id`) COMMENT '节点IP+端口+服务器唯一'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='媒体服务器节点配置(全局共享,带逻辑删除)';
|
||
|
||
-- ============================================================================
|
||
-- 四、流媒体 / 云录像
|
||
-- ============================================================================
|
||
|
||
-- ----------------------------
|
||
-- 拉流代理/转推配置(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_stream_proxy`;
|
||
CREATE TABLE `video_stream_proxy` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`type` varchar(50) NULL COMMENT '代理类型(拉流/推流)',
|
||
`app` varchar(255) NULL COMMENT '应用名',
|
||
`stream` varchar(255) NULL COMMENT '流ID',
|
||
`src_url` varchar(255) NULL COMMENT '源地址',
|
||
`timeout` int NULL COMMENT '拉流超时时间',
|
||
`ffmpeg_cmd_key` varchar(255) NULL COMMENT 'FFmpeg命令模板键',
|
||
`rtsp_type` varchar(50) NULL COMMENT 'RTSP拉流方式',
|
||
`media_server_id` varchar(50) NULL COMMENT '指定媒体服务器ID',
|
||
`enable_audio` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否启用音频',
|
||
`enable_mp4` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否录制MP4',
|
||
`pulling` tinyint(1) NOT NULL DEFAULT 0 COMMENT '当前是否在拉流',
|
||
`enable` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否启用该代理',
|
||
`name` varchar(255) NULL COMMENT '代理名称',
|
||
`stream_key` varchar(255) NULL COMMENT '唯一流标识',
|
||
`server_id` varchar(50) NULL COMMENT '信令服务器ID',
|
||
`enable_disable_none_reader` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否无人观看时自动停流',
|
||
`relates_media_server_id` varchar(50) NULL COMMENT '关联的媒体服务器ID',
|
||
`camera_code` varchar(64) NOT NULL DEFAULT '' COMMENT '摄像头编码',
|
||
`camera_name` varchar(100) NULL COMMENT '摄像头名称',
|
||
`area_id` bigint NULL COMMENT '所属区域ID',
|
||
`edge_device_id` varchar(64) NULL COMMENT '绑定的边缘设备ID',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_app_stream_deleted` (`app`, `stream`, `deleted`) COMMENT '应用+流ID唯一(含逻辑删除)',
|
||
UNIQUE KEY `uk_camera_code_deleted` (`camera_code`, `deleted`) COMMENT '摄像头编码唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='拉流代理/转推配置';
|
||
|
||
-- ----------------------------
|
||
-- 推流会话记录(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_stream_push`;
|
||
CREATE TABLE `video_stream_push` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`app` varchar(255) NULL COMMENT '应用名',
|
||
`stream` varchar(255) NULL COMMENT '流ID',
|
||
`media_server_id` varchar(50) NULL COMMENT '推流所在媒体服务器',
|
||
`server_id` varchar(50) NULL COMMENT '信令服务器ID',
|
||
`push_time` varchar(50) NULL COMMENT '推流开始时间',
|
||
`status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '推流状态',
|
||
`pushing` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否正在推流',
|
||
`self` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否本地发起',
|
||
`start_offline_push` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否离线后自动重推',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_app_stream_deleted` (`app`, `stream`, `deleted`) COMMENT '应用+流ID唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='推流会话记录';
|
||
|
||
-- ----------------------------
|
||
-- 云端录像记录(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_cloud_record`;
|
||
CREATE TABLE `video_cloud_record` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`app` varchar(255) NULL COMMENT '应用名',
|
||
`stream` varchar(255) NULL COMMENT '流ID',
|
||
`call_id` varchar(255) NULL COMMENT '会话ID',
|
||
`start_time` bigint NULL COMMENT '录像开始时间',
|
||
`end_time` bigint NULL COMMENT '录像结束时间',
|
||
`media_server_id` varchar(50) NULL COMMENT '媒体服务器ID',
|
||
`server_id` varchar(50) NULL COMMENT '信令服务器ID',
|
||
`file_name` varchar(255) NULL COMMENT '文件名',
|
||
`folder` varchar(500) NULL COMMENT '目录',
|
||
`file_path` varchar(500) NULL COMMENT '完整路径',
|
||
`collect` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否收藏',
|
||
`reserve` tinyint(1) NULL DEFAULT 0 COMMENT '是否保留(保留的文件不自动清除)',
|
||
`file_size` bigint NULL COMMENT '文件大小',
|
||
`time_len` double NULL COMMENT '时长',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `idx_app_stream` (`app`, `stream`) COMMENT '应用+流ID索引',
|
||
INDEX `idx_call_id` (`call_id`) COMMENT '会话ID索引'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='云端录像记录';
|
||
|
||
-- ============================================================================
|
||
-- 五、录像计划
|
||
-- ============================================================================
|
||
|
||
-- ----------------------------
|
||
-- 录像计划基础信息(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_record_plan`;
|
||
CREATE TABLE `video_record_plan` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`snap` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否抓图计划',
|
||
`name` varchar(255) NOT NULL COMMENT '计划名称',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='录像计划基础信息';
|
||
|
||
-- ----------------------------
|
||
-- 录像计划条目(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_record_plan_item`;
|
||
CREATE TABLE `video_record_plan_item` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`start` int NULL COMMENT '开始时间(分钟)',
|
||
`stop` int NULL COMMENT '结束时间(分钟)',
|
||
`week_day` int NULL COMMENT '星期(0-6)',
|
||
`plan_id` bigint NULL COMMENT '所属录像计划ID',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `idx_plan_id` (`plan_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='录像计划条目';
|
||
|
||
-- ============================================================================
|
||
-- 六、AI 智能视频分析
|
||
-- ============================================================================
|
||
|
||
-- ----------------------------
|
||
-- AI 告警记录(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_alert`;
|
||
CREATE TABLE `video_ai_alert` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`alert_id` varchar(128) NOT NULL COMMENT '告警唯一ID',
|
||
`camera_id` varchar(64) NOT NULL COMMENT '摄像头ID(通道国标编号)',
|
||
`roi_id` varchar(64) NOT NULL COMMENT 'ROI 区域ID',
|
||
`bind_id` varchar(64) NULL COMMENT '绑定ID',
|
||
`alert_type` varchar(50) NOT NULL COMMENT '告警类型(leave_post/intrusion/crowd_detection)',
|
||
`target_class` varchar(50) NULL COMMENT '目标类别',
|
||
`confidence` double NULL COMMENT '置信度',
|
||
`bbox` varchar(255) NULL COMMENT 'JSON: [x1,y1,x2,y2]',
|
||
`message` text NULL COMMENT '告警消息',
|
||
`image_path` varchar(255) NULL COMMENT '告警图片路径',
|
||
`duration_minutes` double NULL COMMENT '持续时长(分钟)',
|
||
`extra_data` text NULL COMMENT 'JSON 扩展',
|
||
`received_at` datetime NULL COMMENT '接收时间',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_alert_id_deleted` (`alert_id`, `deleted`) COMMENT '告警UUID唯一(含逻辑删除)',
|
||
INDEX `idx_camera_id` (`camera_id`),
|
||
INDEX `idx_alert_type` (`alert_type`),
|
||
INDEX `idx_received_at` (`received_at`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 告警记录';
|
||
|
||
-- ----------------------------
|
||
-- AI 边缘设备状态(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_edge_device`;
|
||
CREATE TABLE `video_ai_edge_device` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`device_id` varchar(64) NOT NULL COMMENT '设备唯一ID',
|
||
`status` varchar(20) NOT NULL DEFAULT 'offline' COMMENT '状态:online/offline',
|
||
`last_heartbeat` datetime NULL COMMENT '最后心跳时间',
|
||
`uptime_seconds` bigint NULL COMMENT '运行时长(秒)',
|
||
`frames_processed` bigint NULL COMMENT '已处理帧数',
|
||
`alerts_generated` bigint NULL COMMENT '已生成告警数',
|
||
`stream_stats` text NULL COMMENT '流统计 JSON',
|
||
`stream_count` int NULL COMMENT '活跃视频流数量',
|
||
`config_version` varchar(64) NULL COMMENT '当前配置版本',
|
||
`updated_at` datetime NULL COMMENT '更新时间',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_device_id_deleted` (`device_id`, `deleted`) COMMENT '边缘设备ID唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 边缘设备状态';
|
||
|
||
-- ----------------------------
|
||
-- ROI 区域配置(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_roi`;
|
||
CREATE TABLE `video_ai_roi` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`roi_id` varchar(50) NOT NULL COMMENT 'UUID,与 FastAPI 端同步用',
|
||
`camera_id` varchar(50) NOT NULL COMMENT '通道国标编号',
|
||
`channel_db_id` int NULL COMMENT '视频通道表 ID',
|
||
`device_id` varchar(50) NULL COMMENT '设备国标编号',
|
||
`name` varchar(100) NULL COMMENT 'ROI 名称',
|
||
`roi_type` varchar(20) NOT NULL DEFAULT 'rectangle' COMMENT '形状:rectangle/polygon',
|
||
`coordinates` text NOT NULL COMMENT '归一化坐标 JSON',
|
||
`color` varchar(20) NULL DEFAULT '#FF0000' COMMENT '显示颜色',
|
||
`priority` int NOT NULL DEFAULT 0 COMMENT '优先级',
|
||
`enabled` tinyint(1) NOT NULL DEFAULT 1 COMMENT '启用状态',
|
||
`extra_params` text NULL COMMENT '扩展参数 JSON',
|
||
`description` varchar(500) NULL COMMENT '描述',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_roi_id_deleted` (`roi_id`, `deleted`) COMMENT 'ROI UUID唯一(含逻辑删除)',
|
||
INDEX `idx_camera_id` (`camera_id`),
|
||
INDEX `idx_device_id` (`device_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI ROI 区域配置';
|
||
|
||
-- ----------------------------
|
||
-- ROI-算法绑定(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_roi_algo_bind`;
|
||
CREATE TABLE `video_ai_roi_algo_bind` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`bind_id` varchar(50) NOT NULL COMMENT 'UUID,同步用',
|
||
`roi_id` varchar(50) NOT NULL COMMENT 'ROI 的 UUID',
|
||
`algo_code` varchar(100) NOT NULL COMMENT '算法编码',
|
||
`params` text NULL COMMENT '自定义参数 JSON',
|
||
`priority` int NOT NULL DEFAULT 0 COMMENT '优先级',
|
||
`enabled` tinyint(1) NOT NULL DEFAULT 1 COMMENT '启用状态',
|
||
`template_id` varchar(64) NULL COMMENT '引用的模板 ID',
|
||
`param_override` text NULL COMMENT '覆盖模板的局部参数 JSON',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_bind_id_deleted` (`bind_id`, `deleted`) COMMENT '绑定UUID唯一(含逻辑删除)',
|
||
INDEX `idx_roi_id` (`roi_id`),
|
||
INDEX `idx_algo_code` (`algo_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI ROI-算法绑定';
|
||
|
||
-- ----------------------------
|
||
-- 配置变更日志(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_config_log`;
|
||
CREATE TABLE `video_ai_config_log` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`config_type` varchar(30) NOT NULL COMMENT '类型:ROI/ALGORITHM/BIND',
|
||
`config_id` varchar(50) NOT NULL COMMENT '目标ID',
|
||
`old_value` text NULL COMMENT '变更前 JSON',
|
||
`new_value` text NULL COMMENT '变更后 JSON',
|
||
`updated_by` varchar(100) NULL COMMENT '操作人',
|
||
`updated_at` datetime NULL COMMENT '操作时间',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `idx_config_type` (`config_type`),
|
||
INDEX `idx_config_id` (`config_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 配置变更日志';
|
||
|
||
-- ----------------------------
|
||
-- AI 配置版本快照(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_config_snapshot`;
|
||
CREATE TABLE `video_ai_config_snapshot` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`version` int NOT NULL COMMENT '自增版本号',
|
||
`scope_type` varchar(20) NOT NULL COMMENT 'CAMERA | ROI | BIND',
|
||
`scope_id` varchar(64) NOT NULL COMMENT 'camera_id / roi_id / bind_id',
|
||
`camera_id` varchar(64) NOT NULL COMMENT '所属摄像头',
|
||
`snapshot` longtext NOT NULL COMMENT '完整 JSON 快照',
|
||
`change_type` varchar(20) NOT NULL COMMENT 'CREATE | UPDATE | DELETE | ROLLBACK | PUSH',
|
||
`change_desc` varchar(255) NULL COMMENT '变更描述',
|
||
`created_by` varchar(64) NULL COMMENT '操作人',
|
||
`created_at` datetime NULL COMMENT '创建时间',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
INDEX `idx_scope` (`scope_type`, `scope_id`),
|
||
INDEX `idx_camera` (`camera_id`),
|
||
INDEX `idx_version` (`scope_type`, `scope_id`, `version` DESC)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 配置版本快照';
|
||
|
||
-- ----------------------------
|
||
-- AI 摄像头截图持久化(ProjectBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_camera_snapshot`;
|
||
CREATE TABLE `video_ai_camera_snapshot` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`camera_code` varchar(64) NOT NULL COMMENT '摄像头编码',
|
||
`cos_key` varchar(512) NOT NULL COMMENT 'COS 对象键(永久有效)',
|
||
`updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
`project_id` bigint NOT NULL DEFAULT 0 COMMENT '项目编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_camera_code_deleted` (`camera_code`, `deleted`) COMMENT '摄像头编码唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 摄像头截图持久化';
|
||
|
||
-- ============================================================================
|
||
-- 七、租户级字典(TenantBaseDO,无 project_id)
|
||
-- ============================================================================
|
||
|
||
-- ----------------------------
|
||
-- AI 算法注册表(TenantBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_algorithm`;
|
||
CREATE TABLE `video_ai_algorithm` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`algo_code` varchar(100) NOT NULL COMMENT '算法编码',
|
||
`algo_name` varchar(200) NULL COMMENT '算法名称',
|
||
`target_class` varchar(50) NULL COMMENT '目标类别',
|
||
`param_schema` text NULL COMMENT '参数模板 JSON',
|
||
`global_params` text NULL COMMENT '用户自定义的全局默认参数 JSON',
|
||
`description` varchar(500) NULL COMMENT '描述',
|
||
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否可用',
|
||
`sync_time` datetime NULL COMMENT '最后同步时间',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_algo_code_deleted` (`algo_code`, `deleted`) COMMENT '算法编码唯一(含逻辑删除)'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 算法注册表';
|
||
|
||
-- ----------------------------
|
||
-- AI 算法参数模板(TenantBaseDO)
|
||
-- ----------------------------
|
||
DROP TABLE IF EXISTS `video_ai_algo_template`;
|
||
CREATE TABLE `video_ai_algo_template` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`template_id` varchar(64) NOT NULL COMMENT '模板唯一ID',
|
||
`template_name` varchar(100) NOT NULL COMMENT '模板名称',
|
||
`algo_code` varchar(50) NOT NULL COMMENT '关联算法编码',
|
||
`params` text NOT NULL COMMENT 'JSON 参数',
|
||
`description` varchar(255) NULL COMMENT '描述',
|
||
`creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者',
|
||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updater` varchar(64) NOT NULL DEFAULT '' COMMENT '更新者',
|
||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
|
||
`tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
|
||
PRIMARY KEY (`id`) USING BTREE,
|
||
UNIQUE KEY `uk_template_id_deleted` (`template_id`, `deleted`) COMMENT '模板ID唯一(含逻辑删除)',
|
||
INDEX `idx_algo_code` (`algo_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI 算法参数模板';
|
||
|
||
-- ============================================================================
|
||
-- 初始数据
|
||
-- ============================================================================
|
||
|
||
-- 预置算法(与 FastAPI 边缘端保持一致)
|
||
-- 幂等:已存在则更新 name/target_class/param_schema/description,保持 is_active 与用户设置
|
||
INSERT INTO `video_ai_algorithm` (`algo_code`, `algo_name`, `target_class`, `param_schema`, `description`, `is_active`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES
|
||
('leave_post', '离岗检测', 'person',
|
||
'{"leave_countdown_sec":{"type":"int","default":300,"min":0},"working_hours":{"type":"list","default":[]}}',
|
||
'检测人员是否在岗,支持工作时间段配置。算法抽帧频率:3帧/秒(固定)',
|
||
1, '1', NOW(), '1', NOW(), b'0', 0),
|
||
('intrusion', '周界入侵检测', 'person',
|
||
'{"cooldown_seconds":{"type":"int","default":300,"min":0},"confirm_seconds":{"type":"int","default":5,"min":1},"confirm_intrusion_seconds":{"type":"int","default":5,"min":1},"confirm_clear_seconds":{"type":"int","default":180,"min":1}}',
|
||
'检测人员进入指定区域。算法抽帧频率:1帧/秒(固定)。持续检测到人5秒触发告警,持续无人180秒自动结束告警。消失确认期间短暂有人(<5秒)不影响倒计时。',
|
||
1, '1', NOW(), '1', NOW(), b'0', 0),
|
||
('illegal_parking', '车辆违停检测', 'car,truck,bus,motorcycle',
|
||
'{"confirm_vehicle_sec":{"type":"int","default":15,"min":5},"parking_countdown_sec":{"type":"int","default":300,"min":60},"confirm_clear_sec":{"type":"int","default":30,"min":10},"cooldown_sec":{"type":"int","default":600,"min":0}}',
|
||
'检测禁停区域内是否有车辆违规停放。确认车辆停留15秒后开始5分钟倒计时,超时触发告警。车辆离开30秒后自动结束告警。',
|
||
1, '1', NOW(), '1', NOW(), b'0', 0),
|
||
('vehicle_congestion', '车辆拥堵检测', 'car,truck,bus,motorcycle',
|
||
'{"count_threshold":{"type":"int","default":3,"min":1},"confirm_congestion_sec":{"type":"int","default":60,"min":10},"confirm_clear_sec":{"type":"int","default":120,"min":10},"cooldown_sec":{"type":"int","default":600,"min":0}}',
|
||
'检测区域内车辆是否拥堵。当平均车辆数达到阈值并持续60秒触发告警,车辆减少并持续120秒后自动结束告警。',
|
||
1, '1', NOW(), '1', NOW(), b'0', 0)
|
||
ON DUPLICATE KEY UPDATE
|
||
`algo_name` = VALUES(`algo_name`),
|
||
`target_class` = VALUES(`target_class`),
|
||
`param_schema` = VALUES(`param_schema`),
|
||
`description` = VALUES(`description`),
|
||
`updater` = VALUES(`updater`),
|
||
`update_time` = NOW();
|
||
|
||
SET FOREIGN_KEY_CHECKS = 1;
|