问题描述:
- 离岗检测算法param_schema缺少leave_countdown_sec参数
- 部分默认值不符合业务需求
修改内容:
1. 初始化-mysql-aiot.sql (Line 76)
- leave_post算法新增参数:
"leave_countdown_sec": {"type":"int","default":300,"min":0}
- 修正默认值:
confirm_leave_sec: 10 → 30秒
cooldown_sec: 300 → 600秒
2. 新增迁移脚本:迁移-添加离岗倒计时参数.sql
- UPDATE wvp_ai_algorithm表的param_schema
- 适用于已部署的生产环境数据库升级
参数说明:
- confirm_on_duty_sec: 上岗确认期(默认10秒)
- confirm_leave_sec: 离岗确认期(默认30秒)
- leave_countdown_sec: 离岗倒计时(默认300秒=5分钟)
- cooldown_sec: 告警冷却期(默认600秒=10分钟)
业务流程:
人离开 → 30s确认离岗 → 300s倒计时 → 触发告警
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
78 lines
4.9 KiB
SQL
78 lines
4.9 KiB
SQL
-- ============================================================
|
||
-- 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":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, NOW(), NOW()),
|
||
('intrusion', '周界入侵检测', 'person', '{"cooldown_seconds":{"type":"int","default":120,"min":0},"confirm_seconds":{"type":"int","default":5,"min":1}}', '检测人员进入指定区域', 1, NOW(), NOW());
|