Files
wvp-platform/数据库/aiot/初始化-mysql-aiot.sql
16337 d7bf969694 新增AIoT边缘智能模块:摄像头ROI配置、算法管理、配置推送
- 后端:新增aiot模块(bean/dao/service/controller),支持ROI区域CRUD、
  算法注册表管理、ROI-算法绑定、配置推送到FastAPI边缘端、变更日志
- 前端:新增摄像头配置页(列表+ROI子页面)、算法配置页、Canvas绘图组件
  (矩形/多边形)、动态算法参数编辑器、ZLM截图作为ROI编辑背景
- 数据库:新建4张表(wvp_ai_roi/algorithm/roi_algo_bind/config_log)
  字段与FastAPI端SQLite兼容,含2个预置算法
- 路由裁剪:隐藏无关菜单(地图/部标/推流/录制计划等)
- 修复cameraId含/导致REST路径解析错误(改用query参数)
- 新增ai.service配置项(边缘端地址/超时/开关)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 08:59:20 +08:00

78 lines
4.8 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

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

-- ============================================================
-- AIoT 智能视频管理平台 - MySQL 初始化脚本
-- 字段名与 FastAPI 端保持一致snake_case
-- ============================================================
-- 1. ROI 区域配置(对应 FastAPI 端 roi_configs
CREATE TABLE IF NOT EXISTS wvp_ai_roi (
id INT AUTO_INCREMENT PRIMARY KEY,
roi_id VARCHAR(50) NOT NULL COMMENT 'UUID与FastAPI端同步用',
camera_id VARCHAR(50) NOT NULL COMMENT '通道国标编号',
channel_db_id INT 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 '描述',
create_time VARCHAR(50) NULL COMMENT '创建时间',
update_time VARCHAR(50) NULL COMMENT '更新时间',
UNIQUE KEY uk_roi_id (roi_id),
INDEX idx_camera_id (camera_id),
INDEX idx_device_id (device_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI区域配置';
-- 2. 算法注册表(对应 FastAPI 端 algorithm_registry
CREATE TABLE IF NOT EXISTS wvp_ai_algorithm (
id INT AUTO_INCREMENT PRIMARY KEY,
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 '最后同步时间',
create_time VARCHAR(50) NULL COMMENT '创建时间',
update_time VARCHAR(50) NULL COMMENT '更新时间',
UNIQUE KEY uk_algo_code (algo_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='算法注册表';
-- 3. ROI 算法绑定(对应 FastAPI 端 roi_algo_bind
CREATE TABLE IF NOT EXISTS wvp_ai_roi_algo_bind (
id INT AUTO_INCREMENT PRIMARY KEY,
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 '启用状态',
create_time VARCHAR(50) NULL COMMENT '创建时间',
update_time VARCHAR(50) NULL COMMENT '更新时间',
UNIQUE KEY uk_bind_id (bind_id),
INDEX idx_roi_id (roi_id),
INDEX idx_algo_code (algo_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='ROI算法绑定';
-- 4. 配置变更日志(对应 FastAPI 端 config_update_log
CREATE TABLE IF NOT EXISTS wvp_ai_config_log (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
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 '操作时间',
INDEX idx_config_type (config_type),
INDEX idx_config_id (config_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置变更日志';
-- ============================================================
-- 初始数据预置算法2个不含人群聚集检测
-- ============================================================
INSERT INTO wvp_ai_algorithm (algo_code, algo_name, target_class, param_schema, description, is_active, create_time, update_time) VALUES
('leave_post', '离岗检测', 'person', '{"confirm_on_duty_sec":{"type":"int","default":10,"min":1},"confirm_leave_sec":{"type":"int","default":10,"min":1},"cooldown_sec":{"type":"int","default":300,"min":0},"working_hours":{"type":"list","default":[]}}', '检测人员是否在岗,支持工作时间段配置', 1, NOW(), NOW()),
('intrusion', '周界入侵检测', 'person', '{"cooldown_seconds":{"type":"int","default":120,"min":0},"confirm_seconds":{"type":"int","default":5,"min":1}}', '检测人员进入指定区域', 1, NOW(), NOW());