dispatch_notify.sql 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. -- =====================================================================
  2. -- dispatch_notify.sql
  3. -- 应急与指挥调度:催办系统消息通知表
  4. -- ---------------------------------------------------------------------
  5. -- 背景:工作催办勾选「系统消息」时,系统向事件的责任处置人推送一条
  6. -- 站内催办消息(催办内容 + 事件上下文),用户在调度首页铃铛面板查看。
  7. -- 设计要点:
  8. -- 1. 消息按 user_id 隔离,read_flag 区分未读/已读;
  9. -- 2. event_id / event_no 冗余事件上下文,通知本身不阻塞事件生命周期;
  10. -- 3. 幂等:CREATE TABLE IF NOT EXISTS / CREATE INDEX IF NOT EXISTS,
  11. -- 可重复执行。
  12. -- 执行方式:KingbaseES 客户端逐段执行(注意 || 不是拼接符的方言红线)。
  13. -- =====================================================================
  14. CREATE TABLE IF NOT EXISTS app_user.dispatch_notify (
  15. id int8 GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
  16. user_id int8 NOT NULL,
  17. event_id int8,
  18. event_no varchar(64),
  19. title varchar(128) NOT NULL,
  20. content text,
  21. urging_user varchar(64),
  22. read_flag int2 NOT NULL DEFAULT 0,
  23. create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  24. del_flag char(1) NOT NULL DEFAULT '0'
  25. );
  26. COMMENT ON TABLE app_user.dispatch_notify IS '催办系统消息通知表:工作催办勾选「系统消息」时按用户落一条站内消息';
  27. COMMENT ON COLUMN app_user.dispatch_notify.id IS '主键';
  28. COMMENT ON COLUMN app_user.dispatch_notify.user_id IS '接收人用户ID(sys_user.user_id)';
  29. COMMENT ON COLUMN app_user.dispatch_notify.event_id IS '关联事件ID(dis_event.id)';
  30. COMMENT ON COLUMN app_user.dispatch_notify.event_no IS '关联事件编号(冗余)';
  31. COMMENT ON COLUMN app_user.dispatch_notify.title IS '消息标题(如:催办提醒:SJ20261015...)';
  32. COMMENT ON COLUMN app_user.dispatch_notify.content IS '消息内容(= 催办内容)';
  33. COMMENT ON COLUMN app_user.dispatch_notify.urging_user IS '催办人姓名快照';
  34. COMMENT ON COLUMN app_user.dispatch_notify.read_flag IS '已读标记:0未读 1已读';
  35. COMMENT ON COLUMN app_user.dispatch_notify.create_time IS '推送时间';
  36. COMMENT ON COLUMN app_user.dispatch_notify.del_flag IS '删除标志:0正常 1删除';
  37. CREATE INDEX IF NOT EXISTS idx_dispatch_notify_user_read ON app_user.dispatch_notify(user_id, read_flag);
  38. CREATE INDEX IF NOT EXISTS idx_dispatch_notify_event ON app_user.dispatch_notify(event_id);