-- ===================================================================== -- 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);