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