/* * 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_channel(JT1078 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 '快照JSON(ROI+算法绑定组合)', `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;