-- ============================================================ -- 迁移:新增设备清警复核留痕表(Gogs #51) -- 数据库:KingbaseES(本项目唯一生产验收真相源),业务表位于 app_user schema -- 目的:留痕每次清警复核的时间、触发来源与判定依据,满足「可追溯到具体报警原因集合」 -- 幂等:IF NOT EXISTS,可重复执行;不改动任何既有表结构与业务数据 -- ============================================================ CREATE TABLE IF NOT EXISTS app_user.alarm_clear_log ( id bigserial NOT NULL, -- 设备编码(equipment_base.equipment_code) device_code varchar(64) NULL, -- 设备主键(equipment_base.equipment_id) equipment_id varchar(64) NULL, -- 触发来源:误报解除 / 工单结案 / 手工复核 trigger_source varchar(50) NULL, -- 判定结果:1-已清警 0-未清警(仍有有效报警原因) decision int2 NOT NULL, -- 复核前后设备报警状态:0-正常 1-报警 alarm_status_before int2 NULL, alarm_status_after int2 NULL, -- 复核后仍有效的报警原因数量 remaining_cause_count int4 NULL, -- 判定依据:仍有效的原因摘要(分号分隔) cause_summary varchar(500) NULL, -- 判定依据:仍有效的报警记录ID(逗号分隔),可追溯到具体报警原因 cause_alarm_ids text NULL, -- 已闭环的报警记录数量 resolved_cause_count int4 NULL, -- 判定依据:被判定为已消除的报警记录ID(逗号分隔),清警时同样可追溯 resolved_alarm_ids text NULL, review_time sys."timestamp" NULL, create_time sys."timestamp" NULL, CONSTRAINT alarm_clear_log_pkey PRIMARY KEY (id) ); CREATE INDEX IF NOT EXISTS idx_alarm_clear_log_device_code ON app_user.alarm_clear_log USING btree (device_code); CREATE INDEX IF NOT EXISTS idx_alarm_clear_log_review_time ON app_user.alarm_clear_log USING btree (review_time); COMMENT ON TABLE app_user.alarm_clear_log IS '设备清警复核留痕表(运行系统清警能力的判定依据)'; COMMENT ON COLUMN app_user.alarm_clear_log.trigger_source IS '触发来源:误报解除 / 工单结案 / 手工复核'; COMMENT ON COLUMN app_user.alarm_clear_log.decision IS '判定结果:1-已清警 0-未清警(仍有有效报警原因)'; COMMENT ON COLUMN app_user.alarm_clear_log.alarm_status_before IS '复核前设备报警状态:0-正常 1-报警'; COMMENT ON COLUMN app_user.alarm_clear_log.alarm_status_after IS '复核后设备报警状态:0-正常 1-报警'; COMMENT ON COLUMN app_user.alarm_clear_log.remaining_cause_count IS '复核后仍有效的报警原因数量'; COMMENT ON COLUMN app_user.alarm_clear_log.cause_summary IS '判定依据:仍有效的原因摘要(分号分隔)'; COMMENT ON COLUMN app_user.alarm_clear_log.cause_alarm_ids IS '判定依据:仍有效的报警记录ID(逗号分隔)'; COMMENT ON COLUMN app_user.alarm_clear_log.resolved_cause_count IS '已闭环的报警记录数量'; COMMENT ON COLUMN app_user.alarm_clear_log.resolved_alarm_ids IS '判定依据:被判定为已消除的报警记录ID(逗号分隔)';