Files
aiot-platform-cloud/sql/mysql/aiot-video.sql
lzh 9ecb63a568 feat(video): Phase 5-9 编译修复、Controller 路径、数据库 SQL
Phase 5: 全局编译修复 — Security 引用清理、JT1078 引用移除
         PageInfo shim 兼容类(后续迁移到 PageResult)
         web/custom 和 web/gb28181 补充迁移
Phase 6: SecurityConfiguration 更新放行 Hook/SSE 路径
Phase 7: 32 个 Controller 路径 /api/ → /video/
Phase 8: aiot-video 数据库 SQL(25 张表,含多租户 tenant_id + 逻辑删除 deleted)
Phase 9: mvn compile BUILD SUCCESS

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 00:57:44 +08:00

844 lines
58 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.

/*
* aiot-video 模块数据库初始化脚本
*
* 基于 WVP-Platform 2.7.4 + AIoT 扩展表
* 适配 viewsh 框架规范:
* - 业务表:含 tenant_id, creator, create_time, updater, update_time, deleted
* - 共享表wvp_media_server无 tenant_id不含 deleted
* - 唯一索引包含 deleted 字段以支持逻辑删除
* - 时间字段统一改为 datetime 类型
* - WVP 原 serial 改为 bigint AUTO_INCREMENT
* - 不含 wvp_user / wvp_user_role / wvp_user_api_key由 viewsh-module-system 管理)
* - 不含 wvp_jt_terminal / wvp_jt_channelJT1078 Phase 2 迁移)
*
* 维护者AI Assistant
* 生成日期2026-04-05
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- 国标设备基础信息
-- ----------------------------
DROP TABLE IF EXISTS `wvp_device`;
CREATE TABLE `wvp_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 '定位能力标识',
`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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_device_id_deleted` (`device_id`, `deleted`) COMMENT '设备ID唯一含逻辑删除'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='国标设备基础信息';
-- ----------------------------
-- 设备报警记录
-- ----------------------------
DROP TABLE IF EXISTS `wvp_device_alarm`;
CREATE TABLE `wvp_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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_device_id` (`device_id`) COMMENT '设备ID索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备报警记录';
-- ----------------------------
-- 移动位置订阅上报数据
-- ----------------------------
DROP TABLE IF EXISTS `wvp_device_mobile_position`;
CREATE TABLE `wvp_device_mobile_position` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`device_id` varchar(50) NOT NULL COMMENT '设备ID',
`channel_id` varchar(50) NOT NULL COMMENT '通道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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_device_channel` (`device_id`, `channel_id`) COMMENT '设备+通道索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='移动位置订阅上报数据';
-- ----------------------------
-- 设备通道信息
-- ----------------------------
DROP TABLE IF EXISTS `wvp_device_channel`;
CREATE TABLE `wvp_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 '租户编号',
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='设备通道信息';
-- ----------------------------
-- 媒体服务器节点配置(共享表,不含 tenant_id/deleted
-- ----------------------------
DROP TABLE IF EXISTS `wvp_media_server`;
CREATE TABLE `wvp_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',
`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 '更新时间',
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='媒体服务器节点配置(不含租户隔离)';
-- ----------------------------
-- 上级国标平台注册信息
-- ----------------------------
DROP TABLE IF EXISTS `wvp_platform`;
CREATE TABLE `wvp_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` varchar(50) NULL COMMENT '本平台信令端口',
`username` varchar(255) NULL COMMENT '注册用户名',
`password` varchar(50) NULL COMMENT '注册密码',
`expires` varchar(50) NULL COMMENT '注册有效期',
`keep_timeout` varchar(50) 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 '注册状态',
`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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_server_gb_id_deleted` (`server_gb_id`, `deleted`) COMMENT '上级平台国标编码唯一(含逻辑删除)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='上级国标平台注册信息';
-- ----------------------------
-- 国标平台通道映射关系
-- ----------------------------
DROP TABLE IF EXISTS `wvp_platform_channel`;
CREATE TABLE `wvp_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` varchar(50) NULL COMMENT '自定义证书编号',
`custom_certifiable` int NULL COMMENT '自定义可认证标志',
`custom_err_code` int NULL COMMENT '自定义错误码',
`custom_end_time` varchar(50) 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 '租户编号',
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='国标平台通道映射关系';
-- ----------------------------
-- 平台与分组关联
-- ----------------------------
DROP TABLE IF EXISTS `wvp_platform_group`;
CREATE TABLE `wvp_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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_platform_group_deleted` (`platform_id`, `group_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台与分组关联';
-- ----------------------------
-- 平台与区域关联
-- ----------------------------
DROP TABLE IF EXISTS `wvp_platform_region`;
CREATE TABLE `wvp_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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_platform_region_deleted` (`platform_id`, `region_id`, `deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台与区域关联';
-- ----------------------------
-- 拉流代理/转推配置
-- ----------------------------
DROP TABLE IF EXISTS `wvp_stream_proxy`;
CREATE TABLE `wvp_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',
`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_app_stream_deleted` (`app`, `stream`, `deleted`) COMMENT '应用+流ID唯一含逻辑删除'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='拉流代理/转推配置';
-- ----------------------------
-- 推流会话记录
-- ----------------------------
DROP TABLE IF EXISTS `wvp_stream_push`;
CREATE TABLE `wvp_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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_app_stream_deleted` (`app`, `stream`, `deleted`) COMMENT '应用+流ID唯一含逻辑删除'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='推流会话记录';
-- ----------------------------
-- 云端录像记录
-- ----------------------------
DROP TABLE IF EXISTS `wvp_cloud_record`;
CREATE TABLE `wvp_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 '是否收藏',
`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 '租户编号',
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='云端录像记录';
-- ----------------------------
-- 通用分组表(行业/组织结构)
-- ----------------------------
DROP TABLE IF EXISTS `wvp_common_group`;
CREATE TABLE `wvp_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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_device_id_deleted` (`device_id`, `deleted`) COMMENT '分组设备ID唯一含逻辑删除'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通用分组表';
-- ----------------------------
-- 通用行政区域表
-- ----------------------------
DROP TABLE IF EXISTS `wvp_common_region`;
CREATE TABLE `wvp_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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_device_id_deleted` (`device_id`, `deleted`) COMMENT '区域设备ID唯一含逻辑删除'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通用行政区域表';
-- ----------------------------
-- 通用 GB 通道视图表(跨来源统一)
-- ----------------------------
DROP TABLE IF EXISTS `wvp_common_gb_channel`;
CREATE TABLE `wvp_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 '租户编号',
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 通道统一视图';
-- ----------------------------
-- 录像计划基础信息
-- ----------------------------
DROP TABLE IF EXISTS `wvp_record_plan`;
CREATE TABLE `wvp_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 '租户编号',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='录像计划基础信息';
-- ----------------------------
-- 录像计划条目
-- ----------------------------
DROP TABLE IF EXISTS `wvp_record_plan_item`;
CREATE TABLE `wvp_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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_plan_id` (`plan_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='录像计划条目';
-- ============================================================
-- AIoT 智能视频分析扩展表
-- ============================================================
-- ----------------------------
-- ROI 区域配置
-- ----------------------------
DROP TABLE IF EXISTS `wvp_ai_roi`;
CREATE TABLE `wvp_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` bigint NULL COMMENT 'WVP通道表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 '租户编号',
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='ROI区域配置';
-- ----------------------------
-- 算法注册表
-- ----------------------------
DROP TABLE IF EXISTS `wvp_ai_algorithm`;
CREATE TABLE `wvp_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',
`description` varchar(500) NULL COMMENT '描述',
`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否可用',
`sync_time` 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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_algo_code_deleted` (`algo_code`, `deleted`) COMMENT '算法编码唯一(含逻辑删除)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='算法注册表';
-- ----------------------------
-- 算法模板表
-- ----------------------------
DROP TABLE IF EXISTS `wvp_ai_algo_template`;
CREATE TABLE `wvp_ai_algo_template` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`algo_code` varchar(100) NOT NULL COMMENT '算法编码',
`name` varchar(200) NOT NULL COMMENT '模板名称',
`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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_algo_code` (`algo_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='算法模板表';
-- ----------------------------
-- ROI-算法绑定
-- ----------------------------
DROP TABLE IF EXISTS `wvp_ai_roi_algo_bind`;
CREATE TABLE `wvp_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 '启用状态',
`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_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='ROI算法绑定';
-- ----------------------------
-- 配置变更日志
-- ----------------------------
DROP TABLE IF EXISTS `wvp_ai_config_log`;
CREATE TABLE `wvp_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` 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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_config_type` (`config_type`),
INDEX `idx_config_id` (`config_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置变更日志';
-- ----------------------------
-- 配置快照(下发前生成)
-- ----------------------------
DROP TABLE IF EXISTS `wvp_ai_config_snapshot`;
CREATE TABLE `wvp_ai_config_snapshot` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`camera_id` varchar(50) NOT NULL COMMENT '通道国标编号',
`snapshot` longtext NULL COMMENT '快照JSONROI+算法绑定组合)',
`version` 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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_camera_id` (`camera_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI配置快照';
-- ----------------------------
-- 边缘设备状态
-- ----------------------------
DROP TABLE IF EXISTS `wvp_ai_edge_device`;
CREATE TABLE `wvp_ai_edge_device` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`edge_id` varchar(100) NOT NULL COMMENT '边缘设备唯一标识',
`name` varchar(200) NULL COMMENT '设备名称',
`ip` varchar(50) NULL COMMENT '设备IP',
`status` varchar(20) NOT NULL DEFAULT 'offline' COMMENT '状态online/offline',
`last_heartbeat` datetime NULL COMMENT '最近心跳时间',
`uptime_seconds` bigint NOT NULL DEFAULT 0 COMMENT '累计运行时长(秒)',
`frame_count` bigint NOT NULL DEFAULT 0 COMMENT '已处理帧数',
`alert_count` bigint NOT NULL DEFAULT 0 COMMENT '累计告警次数',
`extra_info` 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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_edge_id_deleted` (`edge_id`, `deleted`) COMMENT '边缘设备ID唯一含逻辑删除'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='边缘设备状态';
-- ----------------------------
-- 告警记录
-- ----------------------------
DROP TABLE IF EXISTS `wvp_ai_alert`;
CREATE TABLE `wvp_ai_alert` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`alert_id` varchar(50) NOT NULL COMMENT '告警UUID',
`camera_id` varchar(50) NOT NULL COMMENT '通道国标编号',
`camera_code` varchar(50) NULL COMMENT '摄像头自定义编号',
`roi_id` varchar(50) NULL COMMENT '触发告警的ROI UUID',
`algo_code` varchar(100) NOT NULL COMMENT '算法编码',
`alert_type` varchar(50) NOT NULL COMMENT '告警类型',
`image_path` varchar(500) NULL COMMENT '告警图片COS路径',
`confidence` double NULL COMMENT '置信度0-1',
`start_time` datetime NULL COMMENT '告警开始时间',
`end_time` datetime NULL COMMENT '告警结束时间',
`duration_ms` bigint NOT NULL DEFAULT 0 COMMENT '持续时长(毫秒)',
`extra_data` text NULL COMMENT '额外数据JSON',
`resolved` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否已处理',
`edge_device_id` varchar(100) 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 '租户编号',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_alert_id_deleted` (`alert_id`, `deleted`) COMMENT '告警UUID唯一含逻辑删除',
INDEX `idx_camera_id` (`camera_id`),
INDEX `idx_algo_code` (`algo_code`),
INDEX `idx_start_time` (`start_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI告警记录';
-- ============================================================
-- 初始数据
-- ============================================================
-- 预置算法(与 FastAPI 边缘端保持一致)
INSERT INTO `wvp_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',
'{"confirm_on_duty_sec":{"type":"int","default":10,"min":1},"confirm_leave_sec":{"type":"int","default":30,"min":1},"leave_countdown_sec":{"type":"int","default":300,"min":0},"cooldown_sec":{"type":"int","default":600,"min":0},"working_hours":{"type":"list","default":[]}}',
'检测人员是否在岗,支持工作时间段配置', 1, 'system', NOW(), 'system', NOW(), b'0', 0),
('intrusion', '周界入侵检测', 'person',
'{"cooldown_seconds":{"type":"int","default":120,"min":0},"confirm_seconds":{"type":"int","default":5,"min":1}}',
'检测人员进入指定区域', 1, 'system', NOW(), 'system', NOW(), b'0', 0);
SET FOREIGN_KEY_CHECKS = 1;