feat(project): 实现临期逾期告警功能

- 新增告警记录表 rdms_due_alert_record 用于去重控制
- 添加告警相关常量类 DueAlertConstants 和对象类型枚举
- 在各数据访问层增加告警候选查询方法
- 实现告警候选服务类和站内信等级功能
- 添加临期逾期告警模板常量定义
- 扩展站内信发送接口支持消息等级
- 新增未读消息批量查询功能用于重复发送判定
This commit is contained in:
2026-06-13 15:00:36 +08:00
parent 635c18767e
commit 896ef0f127
41 changed files with 1650 additions and 18 deletions

View File

@@ -0,0 +1,19 @@
-- 临期/逾期告警发送记录表(去重凭证)
-- 设计见 docs/domains/project/2026-06-12-临期逾期告警-设计.html
-- 临期档:同(object_type,object_id,planned_end_date快照)只发一次,改期=新快照=重新告警
-- 逾期档:按(object_type,object_id,alert_date)每天一条
CREATE TABLE IF NOT EXISTS rdms_due_alert_record (
id BIGINT NOT NULL COMMENT '主键Java 侧 MyBatis-Plus 雪花生成,无 AUTO_INCREMENT',
object_type VARCHAR(32) NOT NULL COMMENT '告警域对象类型project/project_requirement/product_requirement/execution/task/personal_item',
object_id BIGINT NOT NULL COMMENT '对象主键',
alert_type VARCHAR(16) NOT NULL COMMENT '告警档approaching=临期/overdue=逾期',
planned_end_date DATE NOT NULL COMMENT '判定时计划完成日快照(临期档去重键)',
alert_date DATE NOT NULL COMMENT '告警发送日(逾期档每天一条的去重键)',
creator VARCHAR(64) DEFAULT '' COMMENT '创建者',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updater VARCHAR(64) DEFAULT '' COMMENT '更新者',
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (id),
UNIQUE KEY uk_due_alert (object_type, object_id, alert_type, planned_end_date, alert_date)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '临期/逾期告警发送记录(去重凭证,只增不删)';