migration_water_supply_alarm_clear_log.sql 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. -- ============================================================
  2. -- 迁移:新增设备清警复核留痕表(Gogs #51)
  3. -- 数据库:KingbaseES(本项目唯一生产验收真相源),业务表位于 app_user schema
  4. -- 目的:留痕每次清警复核的时间、触发来源与判定依据,满足「可追溯到具体报警原因集合」
  5. -- 幂等:IF NOT EXISTS,可重复执行;不改动任何既有表结构与业务数据
  6. -- ============================================================
  7. CREATE TABLE IF NOT EXISTS app_user.alarm_clear_log (
  8. id bigserial NOT NULL,
  9. -- 设备编码(equipment_base.equipment_code)
  10. device_code varchar(64) NULL,
  11. -- 设备主键(equipment_base.equipment_id)
  12. equipment_id varchar(64) NULL,
  13. -- 触发来源:误报解除 / 工单结案 / 手工复核
  14. trigger_source varchar(50) NULL,
  15. -- 判定结果:1-已清警 0-未清警(仍有有效报警原因)
  16. decision int2 NOT NULL,
  17. -- 复核前后设备报警状态:0-正常 1-报警
  18. alarm_status_before int2 NULL,
  19. alarm_status_after int2 NULL,
  20. -- 复核后仍有效的报警原因数量
  21. remaining_cause_count int4 NULL,
  22. -- 判定依据:仍有效的原因摘要(分号分隔)
  23. cause_summary varchar(500) NULL,
  24. -- 判定依据:仍有效的报警记录ID(逗号分隔),可追溯到具体报警原因
  25. cause_alarm_ids text NULL,
  26. -- 已闭环的报警记录数量
  27. resolved_cause_count int4 NULL,
  28. -- 判定依据:被判定为已消除的报警记录ID(逗号分隔),清警时同样可追溯
  29. resolved_alarm_ids text NULL,
  30. review_time sys."timestamp" NULL,
  31. create_time sys."timestamp" NULL,
  32. CONSTRAINT alarm_clear_log_pkey PRIMARY KEY (id)
  33. );
  34. CREATE INDEX IF NOT EXISTS idx_alarm_clear_log_device_code
  35. ON app_user.alarm_clear_log USING btree (device_code);
  36. CREATE INDEX IF NOT EXISTS idx_alarm_clear_log_review_time
  37. ON app_user.alarm_clear_log USING btree (review_time);
  38. COMMENT ON TABLE app_user.alarm_clear_log IS '设备清警复核留痕表(运行系统清警能力的判定依据)';
  39. COMMENT ON COLUMN app_user.alarm_clear_log.trigger_source IS '触发来源:误报解除 / 工单结案 / 手工复核';
  40. COMMENT ON COLUMN app_user.alarm_clear_log.decision IS '判定结果:1-已清警 0-未清警(仍有有效报警原因)';
  41. COMMENT ON COLUMN app_user.alarm_clear_log.alarm_status_before IS '复核前设备报警状态:0-正常 1-报警';
  42. COMMENT ON COLUMN app_user.alarm_clear_log.alarm_status_after IS '复核后设备报警状态:0-正常 1-报警';
  43. COMMENT ON COLUMN app_user.alarm_clear_log.remaining_cause_count IS '复核后仍有效的报警原因数量';
  44. COMMENT ON COLUMN app_user.alarm_clear_log.cause_summary IS '判定依据:仍有效的原因摘要(分号分隔)';
  45. COMMENT ON COLUMN app_user.alarm_clear_log.cause_alarm_ids IS '判定依据:仍有效的报警记录ID(逗号分隔)';
  46. COMMENT ON COLUMN app_user.alarm_clear_log.resolved_cause_count IS '已闭环的报警记录数量';
  47. COMMENT ON COLUMN app_user.alarm_clear_log.resolved_alarm_ids IS '判定依据:被判定为已消除的报警记录ID(逗号分隔)';