智慧水务管理系统 - 精河县供水工程综合管理平台

V3__video_monitor.sql 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. -- =============================================
  2. -- 智慧水务管理系统 - 视频监控集成 + AI人员闯入检测 DDL
  3. -- 版本: V3
  4. -- =============================================
  5. -- ==================== 视频监控摄像头 ====================
  6. CREATE TABLE IF NOT EXISTS prod_video_camera (
  7. id BIGSERIAL PRIMARY KEY,
  8. camera_id VARCHAR(50) NOT NULL UNIQUE,
  9. name VARCHAR(100) NOT NULL,
  10. area VARCHAR(50),
  11. stream_url_rtsp VARCHAR(500),
  12. stream_url_hls VARCHAR(500),
  13. stream_url_flv VARCHAR(500),
  14. status INTEGER DEFAULT 0,
  15. manufacturer VARCHAR(50),
  16. model VARCHAR(50),
  17. lng DOUBLE PRECISION,
  18. lat DOUBLE PRECISION,
  19. install_location VARCHAR(200),
  20. install_date DATE,
  21. last_online_time TIMESTAMP,
  22. ai_enabled INTEGER DEFAULT 0,
  23. remark VARCHAR(500),
  24. created_time TIMESTAMP DEFAULT NOW(),
  25. updated_time TIMESTAMP DEFAULT NOW(),
  26. deleted INTEGER DEFAULT 0
  27. );
  28. COMMENT ON TABLE prod_video_camera IS '视频监控摄像头表';
  29. COMMENT ON COLUMN prod_video_camera.camera_id IS '摄像头唯一编号';
  30. COMMENT ON COLUMN prod_video_camera.status IS '状态: 0=离线, 1=在线, 2=故障';
  31. COMMENT ON COLUMN prod_video_camera.ai_enabled IS '是否启用AI检测: 0=未启用, 1=已启用';
  32. COMMENT ON COLUMN prod_video_camera.stream_url_rtsp IS 'RTSP视频流地址';
  33. COMMENT ON COLUMN prod_video_camera.stream_url_hls IS 'HLS视频流地址';
  34. COMMENT ON COLUMN prod_video_camera.stream_url_flv IS 'FLV视频流地址';
  35. CREATE INDEX IF NOT EXISTS idx_video_camera_area ON prod_video_camera(area);
  36. CREATE INDEX IF NOT EXISTS idx_video_camera_status ON prod_video_camera(status);
  37. -- ==================== AI闯入检测事件 ====================
  38. CREATE TABLE IF NOT EXISTS prod_intrusion_event (
  39. id BIGSERIAL PRIMARY KEY,
  40. camera_id BIGINT NOT NULL,
  41. camera_name VARCHAR(100),
  42. area VARCHAR(50),
  43. event_type VARCHAR(30) NOT NULL,
  44. confidence NUMERIC(6, 4),
  45. snapshot_url VARCHAR(500),
  46. video_clip_url VARCHAR(500),
  47. alert_level VARCHAR(20),
  48. alert_status INTEGER DEFAULT 0,
  49. detected_at TIMESTAMP NOT NULL,
  50. handle_result TEXT,
  51. handled_by BIGINT,
  52. handler_name VARCHAR(50),
  53. handled_time TIMESTAMP,
  54. alert_record_id BIGINT,
  55. remark VARCHAR(500),
  56. created_time TIMESTAMP DEFAULT NOW(),
  57. updated_time TIMESTAMP DEFAULT NOW(),
  58. deleted INTEGER DEFAULT 0
  59. );
  60. COMMENT ON TABLE prod_intrusion_event IS 'AI人员闯入检测事件表';
  61. COMMENT ON COLUMN prod_intrusion_event.event_type IS '事件类型: person_intrusion=人员闯入, person_loitering=人员徘徊, zone_breach=区域越界';
  62. COMMENT ON COLUMN prod_intrusion_event.confidence IS 'AI识别置信度(0~1)';
  63. COMMENT ON COLUMN prod_intrusion_event.alert_level IS '报警等级: info, warning, critical';
  64. COMMENT ON COLUMN prod_intrusion_event.alert_status IS '报警状态: 0=待处理, 1=已确认, 2=已处理, 3=已忽略';
  65. CREATE INDEX IF NOT EXISTS idx_intrusion_camera ON prod_intrusion_event(camera_id);
  66. CREATE INDEX IF NOT EXISTS idx_intrusion_area ON prod_intrusion_event(area);
  67. CREATE INDEX IF NOT EXISTS idx_intrusion_detected_at ON prod_intrusion_event(detected_at DESC);
  68. CREATE INDEX IF NOT EXISTS idx_intrusion_alert_status ON prod_intrusion_event(alert_status);
  69. -- ==================== 视频录像记录 ====================
  70. CREATE TABLE IF NOT EXISTS prod_video_recording (
  71. id BIGSERIAL PRIMARY KEY,
  72. camera_id BIGINT NOT NULL,
  73. camera_name VARCHAR(100),
  74. area VARCHAR(50),
  75. start_time TIMESTAMP NOT NULL,
  76. end_time TIMESTAMP,
  77. duration_sec INTEGER,
  78. file_size_mb NUMERIC(10, 2),
  79. storage_path VARCHAR(500),
  80. playback_url VARCHAR(500),
  81. record_type VARCHAR(20) NOT NULL,
  82. event_id BIGINT,
  83. remark VARCHAR(500),
  84. created_time TIMESTAMP DEFAULT NOW(),
  85. updated_time TIMESTAMP DEFAULT NOW(),
  86. deleted INTEGER DEFAULT 0
  87. );
  88. COMMENT ON TABLE prod_video_recording IS '视频录像记录表';
  89. COMMENT ON COLUMN prod_video_recording.record_type IS '录像类型: scheduled=计划录像, event_triggered=事件触发, manual=手动录像';
  90. COMMENT ON COLUMN prod_video_recording.event_id IS '关联闯入事件ID(事件触发时有值)';
  91. CREATE INDEX IF NOT EXISTS idx_recording_camera ON prod_video_recording(camera_id);
  92. CREATE INDEX IF NOT EXISTS idx_recording_start_time ON prod_video_recording(start_time DESC);
  93. CREATE INDEX IF NOT EXISTS idx_recording_record_type ON prod_video_recording(record_type);
  94. CREATE INDEX IF NOT EXISTS idx_recording_event ON prod_video_recording(event_id);
  95. -- ==================== 初始化测试数据 ====================
  96. INSERT INTO prod_video_camera (camera_id, name, area, stream_url_rtsp, stream_url_hls, stream_url_flv,
  97. status, manufacturer, model, lng, lat, install_location, install_date, ai_enabled, last_online_time)
  98. VALUES
  99. ('CAM-001', '一体化水厂-沉淀池', '一体化水厂', 'rtsp://192.168.1.100/stream1', 'http://192.168.1.100/hls/stream1.m3u8', 'http://192.168.1.100/flv/stream1.flv',
  100. 1, '海康威视', 'DS-2CD2T26FWDA3-IS', 87.5712, 43.7928, '一体化水厂沉淀池北侧', '2024-03-15', 1, NOW()),
  101. ('CAM-002', '一体化水厂-清水池', '一体化水厂', 'rtsp://192.168.1.101/stream1', 'http://192.168.1.101/hls/stream1.m3u8', 'http://192.168.1.101/flv/stream1.flv',
  102. 1, '海康威视', 'DS-2CD2T26FWDA3-IS', 87.5715, 43.7930, '一体化水厂清水池入口', '2024-03-15', 1, NOW()),
  103. ('CAM-003', '查村调压站-入口', '八家户片区', 'rtsp://192.168.1.102/stream1', 'http://192.168.1.102/hls/stream1.m3u8', 'http://192.168.1.102/flv/stream1.flv',
  104. 1, '大华', 'DH-IPC-HFW5442T-ASE', 87.5680, 43.7890, '查村调压站大门', '2024-04-10', 1, NOW()),
  105. ('CAM-004', '精芒片区-管网节点1', '精芒片区', 'rtsp://192.168.1.103/stream1', 'http://192.168.1.103/hls/stream1.m3u8', 'http://192.168.1.103/flv/stream1.flv',
  106. 0, '大华', 'DH-IPC-HFW5442T-ASE', 87.5650, 43.7860, '精芒片区管网节点井', '2024-05-20', 0, '2025-06-10 08:30:00'),
  107. ('CAM-005', '八家户泵站-机房', '八家户片区', 'rtsp://192.168.1.104/stream1', 'http://192.168.1.104/hls/stream1.m3u8', 'http://192.168.1.104/flv/stream1.flv',
  108. 2, '宇视', 'IPC3612SB-ADZK-I0', 87.5670, 43.7880, '八家户泵站机房入口', '2024-06-01', 1, '2025-06-01 12:00:00');