QAUP_Management/sql/migrate_to_unmanned_vehicle_only.sql
Tian jianyong 5e1e9f4507 统一了前后端到一个项目,实现了无人车的位置和超速检测,并发送到前端。
管理端在 Ruoyi 框架的基础上,对菜单进行了修改,并添加了司机信息、车辆信息和车辆类型管理。
2025-07-08 20:04:14 +08:00

108 lines
4.7 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.

-- 迁移到无人车专用系统
-- 将复杂的通用规则违规系统简化为专门针对无人车的系统
-- 作者: AI Assistant
-- 创建日期: 2025-01-17
-- 版本: 1.0
-- ===========================================
-- 第一步:创建新的简化表
-- ===========================================
-- 如果新表不存在,创建它
CREATE TABLE IF NOT EXISTS unmanned_vehicle_violations (
-- 主键ID
id BIGSERIAL PRIMARY KEY,
-- 无人车车牌号
vehicle_license VARCHAR(20) NOT NULL,
-- 违规规则名称
rule_name VARCHAR(100) NOT NULL,
-- 违规类型SPEED-超速, ACCESS-未授权进入, HEIGHT-超高, WEIGHT-超重)
violation_type VARCHAR(10) NOT NULL CHECK (violation_type IN ('SPEED', 'ACCESS', 'HEIGHT', 'WEIGHT', 'OTHER')),
-- 违规描述
description VARCHAR(150),
-- 违规位置PostGIS几何点
location GEOMETRY(Point, 4326),
-- 实际值如实际速度19.8
actual_value DOUBLE PRECISION,
-- 限制值如限速5.0
limit_value DOUBLE PRECISION,
-- 违规发生时间
violation_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-- 记录创建时间
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- ===========================================
-- 第二步:创建索引
-- ===========================================
-- 创建索引以提高查询性能
CREATE INDEX IF NOT EXISTS idx_uv_violations_vehicle ON unmanned_vehicle_violations(vehicle_license);
CREATE INDEX IF NOT EXISTS idx_uv_violations_rule ON unmanned_vehicle_violations(rule_name);
CREATE INDEX IF NOT EXISTS idx_uv_violations_time ON unmanned_vehicle_violations(violation_time);
CREATE INDEX IF NOT EXISTS idx_uv_violations_type ON unmanned_vehicle_violations(violation_type);
-- 创建复合索引用于常见查询组合
CREATE INDEX IF NOT EXISTS idx_uv_violations_vehicle_time ON unmanned_vehicle_violations(vehicle_license, violation_time DESC);
CREATE INDEX IF NOT EXISTS idx_uv_violations_type_time ON unmanned_vehicle_violations(violation_type, violation_time DESC);
-- 如果启用了PostGIS创建空间索引
CREATE INDEX IF NOT EXISTS idx_uv_violations_location ON unmanned_vehicle_violations USING GIST(location);
-- ===========================================
-- 第三步:清理旧表(谨慎操作)
-- ===========================================
-- 注释掉,需要手动执行以确保安全
-- DROP TABLE IF EXISTS rule_violation_events CASCADE;
-- ===========================================
-- 第四步:添加表注释
-- ===========================================
COMMENT ON TABLE unmanned_vehicle_violations IS '无人车违规事件表 - 专门记录机场无人车的各种违规行为(简化版本)';
COMMENT ON COLUMN unmanned_vehicle_violations.id IS '主键ID自增';
COMMENT ON COLUMN unmanned_vehicle_violations.vehicle_license IS '无人车车牌号';
COMMENT ON COLUMN unmanned_vehicle_violations.rule_name IS '违规的规则名称';
COMMENT ON COLUMN unmanned_vehicle_violations.violation_type IS '违规类型SPEED超速/ACCESS未授权进入/HEIGHT超高/WEIGHT超重';
COMMENT ON COLUMN unmanned_vehicle_violations.description IS '违规描述,如"超速: 19.8km/h"';
COMMENT ON COLUMN unmanned_vehicle_violations.location IS '违规发生的地理位置PostGIS Point';
COMMENT ON COLUMN unmanned_vehicle_violations.actual_value IS '实际测量值如实际速度19.8';
COMMENT ON COLUMN unmanned_vehicle_violations.limit_value IS '规则限制值如限速5.0';
COMMENT ON COLUMN unmanned_vehicle_violations.violation_time IS '违规发生的时间';
COMMENT ON COLUMN unmanned_vehicle_violations.created_at IS '记录创建时间';
-- ===========================================
-- 第五步:验证迁移结果
-- ===========================================
-- ===========================================
-- 总结和建议
-- ===========================================
/*
迁移完成后的系统优势:
1. 🚗 专门针对无人车:表结构和字段名直观易懂
2. 📉 大幅简化从20+个字段减少到10个核心字段
3. 🔧 易于维护没有复杂的JSON字段和多对象类型支持
4. ⚡ 性能更好:简化的索引策略,专门优化的查询
5. 💡 业务聚焦:只关注无人车的违规检测,符合实际需求
建议的后续操作:
1. 在代码中完全移除对 RuleViolationEventRepository 的依赖
2. 只使用 SimpleRuleViolationEventRepository
3. 清理所有不必要的复杂事件处理逻辑
4. 在确认新系统工作正常后,删除旧的 rule_violation_events 表
注意:在删除旧表之前,请确保新系统已经完全测试并正常工作!
*/