|
|
|
@ -1,6 +1,10 @@ |
|
|
|
# 线索规则(crm-rule) |
|
|
|
# 业务规则(crm-rule) |
|
|
|
|
|
|
|
线索公海池的配置域:公海池实体(归属部门 + 省/市/区)、人员(负责人 / 协作人 / 成员)、领取规则、超时回收 / 失效 / 领取上限配置。依赖方向单向 `crm-rule → (crm-auth / crm-dict)`,**不得反向依赖 `crm-lead`**——公海池不知道线索存在。公海池表复用 `lead` 数据范围模块(决策 [K])。 |
|
|
|
多域规则中心(票 01):线索规则子域(公海池配置 + 行政区划)与商机规则子域(公海规则、后续阶段模板/方案卡模板/有效跟进规则,原型 A7-3-2)分域共住本模块,**完全独立无共表无共抽象**(范式都不同:池实体 vs 版本化规则配置)。依赖方向单向 `crm-rule → (crm-auth / crm-dict)`,**不得反向依赖 crm-lead / crm-opportunity**——规则表不知道线索/商机实体存在。 |
|
|
|
|
|
|
|
## 线索规则子域 |
|
|
|
|
|
|
|
线索公海池的配置域:公海池实体(归属部门 + 省/市/区)、人员(负责人 / 协作人 / 成员)、领取规则、超时回收 / 失效 / 领取上限配置。公海池表复用 `lead` 数据范围模块(决策 [K])。 |
|
|
|
|
|
|
|
## Language |
|
|
|
|
|
|
|
@ -55,3 +59,17 @@ _Avoid_: 占用检查服务、lead 查询接口(要点是「crm-rule 声明契 |
|
|
|
**池批量删除**: |
|
|
|
`deletePoolBatch` 一行委派 crm-base `BatchRunner.run(ids, self::deletePool, PoolBatchFailItem::bizOf, PoolBatchFailItem::unknownOf)`(ADR-0028)——非原子、逐条经 self 代理走独立事务、部分成功;失败项 `PoolBatchFailItem`(poolId + `PoolBatchFailReason` + message)与 code→reason 翻译、兜底文案(「删除失败」)由本域自持(ADR-0023 D5)。曾内联的同构编排(与 crm-lead 旧 runBatch 逐字重复)已删除——批量编排协议的家在 crm-base。 |
|
|
|
_Avoid_: 批量删除服务、池批处理(要点是「编排委派 BatchRunner + 失败语义留在域内」) |
|
|
|
|
|
|
|
## 商机规则子域(票 05 起) |
|
|
|
|
|
|
|
**商机公海规则**: |
|
|
|
商机公海/回收/领取/提醒的**版本化规则配置** `opportunity_pool_rule`(票 05 原型 A7-3-2-5):同一 `rule_code` 多版本每版本一行,范式 = 草稿/发布中/已停用 + `version_no`(与票 06 阶段模板、票 07 方案卡模板同族 V-CONFIG),**不是** `lead_pool` 那种「一部门一池」实体(无省/市/区地理维度、无领取/持有上限)。五配置项:`allow_manual_pool` / `auto_recycle_enabled`+`recycle_days` / `allow_free_claim` / `recycle_remind_enabled`+`remind_days`(提醒依赖回收启用,`remind_days < recycle_days` 硬校验)。适用范围两档:所有部门通用(可设默认)/ 对应部门专用(适用部门多值子表 `opportunity_pool_rule_dept`)。 |
|
|
|
_Avoid_: 商机公海池(无池实体)、商机池、线索池 |
|
|
|
|
|
|
|
**规则版本状态机**: |
|
|
|
`IOpportunityPoolRuleService` 承担的版本生命周期约束(票 05「二」):同 `rule_code` 仅一草稿一发布中;发布使原发布中转停用、原发布中默认自动取消默认(默认唯一是自动顶替非拒绝);发布时校验**部门覆盖唯一**(一个部门只被一条发布中规则覆盖,重叠拒发 64012)——保证匹配「最低层级必唯一命中」;编辑发布中/停用版本→生成新草稿(版本号 minor 顺延 V1.0→V1.1,同 code 已有草稿则拒 64011);复制→独立新规则(新 `rule_code` + V1.0 草稿);仅草稿可删。版本号/编码系统生成只读。 |
|
|
|
_Avoid_: 商机状态机(那是 opp_status 归属流转轴,两回事)、直线版本号(minor 顺延非末尾+1) |
|
|
|
|
|
|
|
**公海规则匹配引擎**: |
|
|
|
`OpportunityPoolRuleMatcher`(快照式 API:`loadPublished()` 一次加载全部发布中规则 + 部门子表,`match(ownerDeptId)` 纯内存匹配):部门专用(apply_scope=2 命中)优先 → 通用默认(apply_scope=1 且 is_default=1)兜底 → **非默认通用不兜底**(null = 无规则不动作)。公海规则**实时匹配不锁版本**(与阶段模板锁版相反,PRD §5.4)——每次 Job 扫描重载快照。供商机侧维护 Job 批量扫描,避免逐商机查库。 |
|
|
|
_Avoid_: 锁版本(公海规则实时)、按查看人部门匹配(锚点是商机自身 owner_dept_id) |
|
|
|
|