You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19 lines
1.9 KiB

5 days ago
# 09 — 超期未跟进提醒
**What to build:** 后台可配一条全局单例的「超期未跟进提醒」规则(首次触发天数/二次间隔天数/开关),调度 Job 定期扫描超期客户并落待发通知。计时锚点=客户"成为有主"的时刻,跟进即刷新。
**Blocked by:** 02 — 客户主表 CRUD + 查重校验;06 — 客户详情页(跟进记录刷新锚点)
**Status:** ready-for-agent
**Spec 依据(详见 issues/10-answer.md)**:D8 三层对称商机回收提醒但配置=单例(不套版本化);D15/Q15 锚点=成为有主时刻。
- [ ] **crm-rule 侧** `customer_reminder_rule` 单例表(票 10 §B,跨模块改动):单行表 id 固定=1;masterEnabled/firstTriggerEnabled/firstTriggerDays(默认30)/secondIntervalEnabled/secondIntervalDays(默认7);无版本号/状态机/rule_code
- [ ] `CustomerReminderRuleInitializer` 种子初始化器(对称 `StageTemplateInitializer` 兜底范式)植入默认行
- [ ] 校验:`firstTriggerDays>0`、`secondIntervalDays>0`;保存=全量覆盖(保存即生效);RBAC 功能权限 `customer.reminder.rule`
- [ ] 规则契约:`GET /api/rule/customer/reminder`(读单行)/ `PUT /api/rule/customer/reminder`(全量覆盖+记操作日志)
- [ ] **crm-customer 侧** `customer_pending_notice` 待发通知表(对称 `opportunity_pending_notice`
- [ ] `CustomerReminderJob`(@Scheduled,对称 `OpportunityMaintenanceJob`):masterEnabled=0 整轮跳过;扫 `last_valid_follow_time` 超期客户写待发通知
- [ ] 触发口径(票 10 §C,锚点=成为有主时刻,Q15 拍板 A):① 新建直接指派负责人→锚点=create_time;② 新建进公海(无负责人)→锚点=NULL 不提醒,被领取/分配时→锚点=领取时刻;③ 每次写跟进刷新锚点(票 06)
- [ ] 只前进、确定性提醒链;索引 `idx_last_follow`(last_valid_follow_time, owner_user_id) 扫表(票 02 已建)