1
0
forked from erp-dev/erp
Files
erpnew/docs/admin_mission_unreplied_notification_guide_2026-04-17.md

115 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Admin 说明:任务未回复提醒
本文档面向后台管理员,说明如何启用和排查“任务未回复提醒”。
## 这个功能是什么
当一个任务开启“未回复提醒”后,如果在设定时间内一直没有任何有效回复,系统会按该任务设置的间隔持续发送提醒。
这里的“有效回复”指:
- 存在 `MissionReply`
- 且该回复没有被撤销(`is_rejected = false`
如果任务已有有效回复,就不会再继续发“未回复提醒”。
## 这项功能由哪两部分共同决定
要真正收到未回复提醒,必须同时满足:
1. 任务对象本身开启了未回复提醒
2. notifier 后台中配置了 `mission.unreplied` 的通知路由
缺任何一边都不会发通知。
## 任务侧可配置项
任务对象现在支持这些字段:
- `notify_if_unreplied`:是否开启未回复提醒
- `unreplied_notify_interval_minutes`:提醒间隔(分钟)
- `unreplied_notify_max_count`:最大提醒次数,默认 `5`
- `unreplied_notify_sent_count`:已发送次数,由系统自动维护
- `unreplied_last_notified_at`:上次发送时间,由系统自动维护
管理员通常只需要关注前三个字段。
## notifier 后台应如何配置
### 第一步:创建通知器 Notifier
建议配置如下:
- `name`:任务未回复提醒-管理群
- `channel``wecom_webhook`
- `template_key``mission_unreplied`
- `is_enabled`:勾选
- `config.key`:企业微信机器人 key
### 第二步:创建通知路由 NotifierRoute
建议配置如下:
- `event_key``mission.unreplied`
- `mission_category`:可留空,也可以指定分类
- `is_enabled`:勾选
## 通知什么时候会发生
系统后台有一个每分钟执行一次的定时任务,会去检查哪些任务需要发送未回复提醒。
只有任务同时满足以下条件才会提醒:
1. 开启了未回复提醒
2. 未完成
3. 未取消
4. 当前没有任何有效回复
5. 已提醒次数还没达到最大提醒次数
6. 到达了当前提醒时间
提醒时间计算规则:
- 如果从未提醒过:`创建时间 + 间隔分钟数`
- 如果提醒过:`上次提醒时间 + 间隔分钟数`
## 收到有效回复后会怎么样
一旦任务出现有效回复:
- 当前未回复提醒周期会停止
- 已提醒次数与上次提醒时间会被重置
如果该回复后来被撤销,或者任务 reopen 后重新进入“无有效回复”状态:
- 系统会重新开始一个新的未回复提醒周期
## 管理员排查清单
如果任务没有收到未回复提醒,请按下面顺序检查:
1. 任务是否开启了 `notify_if_unreplied`
2. 任务是否填写了 `unreplied_notify_interval_minutes`
3. 任务是否已经完成或取消
4. 任务是否已经有有效回复
5. `unreplied_notify_sent_count` 是否已经达到 `unreplied_notify_max_count`
6. notifier 是否存在 `mission.unreplied` 路由
7. 路由是否启用
8. 对应的 Notifier 是否启用
9. `template_key` 是否配置为 `mission_unreplied`
10. Celery worker 和 Celery beat 是否在运行
## 给 admin 可直接复制的简版说明
```md
任务未回复提醒已上线。
要让任务自动提醒,必须同时满足两件事:
1. 任务本身开启了未回复提醒,并设置了提醒间隔和最大提醒次数。
2. notifier 后台里配置了 `mission.unreplied` 对应的通知器和通知路由。
系统会每分钟扫描一次任务。只有当任务未完成、未取消、当前没有有效回复、且没超过最大提醒次数时,才会继续发送提醒。
一旦任务收到有效回复,未回复提醒会自动停止;如果回复后来被撤销,系统会重新开始新的未回复提醒周期。
```