20261028_alarm_event_query.sql 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. -- =====================================================
  2. -- [26110201] 事件查询优化(幂等,可重复执行)
  3. -- 1. alarm_event_record 增加告警类别字段 alarm_category(数据后续由外部补充)
  4. -- 2. 字典配置:告警类别(alarm_category)、告警等级(alarm_level, 颜色值配置在 css_class)
  5. -- 告警等级颜色: 一级红/二级橙/三级黄(gold)/四级蓝
  6. -- 3. 统计分析 下增加 事件查询 菜单
  7. -- =====================================================
  8. -- 1. 增加告警类别字段(幂等)
  9. ALTER TABLE alarm_event_record ADD COLUMN IF NOT EXISTS alarm_category VARCHAR(50);
  10. COMMENT ON COLUMN alarm_event_record.alarm_category IS '告警类别';
  11. -- 2.1 字典类型: 告警类别
  12. INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, remark)
  13. SELECT
  14. nextval(pg_get_serial_sequence('sys_dict_type', 'dict_id')),
  15. '告警类别', 'alarm_category', '0', 'admin', now(), '事件查询-告警类别'
  16. WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type t WHERE t.dict_type = 'alarm_category');
  17. -- 2.2 字典类型: 告警等级
  18. INSERT INTO sys_dict_type (dict_id, dict_name, dict_type, status, create_by, create_time, remark)
  19. SELECT
  20. nextval(pg_get_serial_sequence('sys_dict_type', 'dict_id')),
  21. '告警等级', 'alarm_level', '0', 'admin', now(), '事件查询-告警等级'
  22. WHERE NOT EXISTS (SELECT 1 FROM sys_dict_type t WHERE t.dict_type = 'alarm_level');
  23. -- 2.3 告警类别字典数据(先删后插,保证幂等)
  24. DELETE FROM sys_dict_data WHERE dict_type = 'alarm_category';
  25. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
  26. VALUES
  27. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 1, '通信异常', '1', 'alarm_category', '', '', 'N', '0', 'admin', now(), '事件查询-告警类别'),
  28. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 2, '数据异常', '2', 'alarm_category', '', '', 'N', '0', 'admin', now(), '事件查询-告警类别'),
  29. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 3, '气象预报异常', '3', 'alarm_category', '', '', 'N', '0', 'admin', now(), '事件查询-告警类别'),
  30. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 4, '功率预测异常', '4', 'alarm_category', '', '', 'N', '0', 'admin', now(), '事件查询-告警类别'),
  31. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 5, '数据上报异常', '5', 'alarm_category', '', '', 'N', '0', 'admin', now(), '事件查询-告警类别'),
  32. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 6, '系统运行异常', '6', 'alarm_category', '', '', 'N', '0', 'admin', now(), '事件查询-告警类别');
  33. -- 2.4 告警等级字典数据(颜色值配置在 css_class,页面按等级值渲染颜色;先删后插,保证幂等)
  34. DELETE FROM sys_dict_data WHERE dict_type = 'alarm_level';
  35. INSERT INTO sys_dict_data (dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark)
  36. VALUES
  37. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 1, '紧急告警', '1', 'alarm_level', 'red', '', 'N', '0', 'admin', now(), '事件查询-告警等级'),
  38. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 2, '重要告警', '2', 'alarm_level', 'orange', '', 'N', '0', 'admin', now(), '事件查询-告警等级'),
  39. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 3, '一般告警', '3', 'alarm_level', 'gold', '', 'N', '0', 'admin', now(), '事件查询-告警等级'),
  40. (nextval(pg_get_serial_sequence('sys_dict_data', 'dict_code')), 4, '提示信息', '4', 'alarm_level', 'blue', '', 'N', '0', 'admin', now(), '事件查询-告警等级');
  41. -- 3. 增加 事件查询 二级菜单(挂在 统计分析 下)
  42. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, query, route_name, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
  43. SELECT
  44. (SELECT COALESCE(MAX(menu_id), 0) + 1 FROM sys_menu),
  45. '事件查询',
  46. (SELECT menu_id FROM sys_menu t WHERE t.menu_name = '统计分析' AND t.parent_id = 0),
  47. 5, 'event-query', 'ufo/electricity/statanalysis/eventQuery', '', 'EventQuery', 1, 0, 'C', '0', '0', 'alarm:eventRecord:list', 'AlertOutlined', 'admin', now(), '', NULL, '事件查询页面'
  48. WHERE NOT EXISTS (SELECT 1 FROM sys_menu t WHERE t.menu_name = '事件查询');