migration_alarm_lifecycle_log.sql 1.7 KB

123456789101112131415161718192021222324
  1. -- 报警触发/自动解除日志补丁,KingbaseES PostgreSQL 兼容模式。
  2. -- 已部署 migration_alarm_case_work_order_id.sql、migration_alarm_review.sql、
  3. -- migration_alarm_operations.sql 的环境只需执行本补丁,不改菜单、不回填历史数据。
  4. -- 日志字典共用 AlarmLogOperTypeEnum:0=报警触发,1=确认报警,2=误报警,3=报警处理。
  5. -- 新增、审核、自动解除、人工处理日志由 Java 在业务事务内写入;工单操作仅写 work_order_log。
  6. -- 日志类型约束收敛另执行 migration_alarm_review_log.sql;确认日志直接包含实际工单号。
  7. -- 停止相关写入,执行本脚本并同步部署管理端和 zk-api-service 后恢复服务。
  8. BEGIN;
  9. LOCK TABLE app_user.alarm_data, app_user.work_order_log IN SHARE ROW EXCLUSIVE MODE;
  10. COMMENT ON COLUMN app_user.alarm_data.alarm_no IS '报警单号:程序生成 BJyyyyMMddHHmmss + 4位随机数,北京时间,唯一且不回填历史';
  11. CREATE UNIQUE INDEX IF NOT EXISTS uk_alarm_data_alarm_no ON app_user.alarm_data(alarm_no);
  12. -- 防止旧数据库赋号机制覆盖程序提供的新格式;不改写已有号码。
  13. DROP TRIGGER IF EXISTS trg_alarm_number ON app_user.alarm_data;
  14. DROP FUNCTION IF EXISTS app_user.assign_alarm_number();
  15. ALTER TABLE app_user.alarm_data ALTER COLUMN alarm_no DROP DEFAULT;
  16. DROP SEQUENCE IF EXISTS app_user.alarm_no_seq;
  17. -- 报警日志完全由业务代码写入;删除旧触发器/自定义函数,避免重复日志。
  18. DROP TRIGGER IF EXISTS trg_alarm_lifecycle_log ON app_user.alarm_data;
  19. DROP TRIGGER IF EXISTS trg_work_order_alarm_log ON app_user.work_order_log;
  20. DROP FUNCTION IF EXISTS app_user.record_alarm_lifecycle();
  21. DROP FUNCTION IF EXISTS app_user.record_alarm_work_order_log();
  22. COMMIT;