8.6 KiB
Map: 客户模块后端 spec(crm-customer / crm-rule 客户规则)
wayfinder:map
Destination
一份可交接的后端规格说明书(spec),描述"客户(Customer)"域的后端设计,交给实现方(人或 agent)落地——对称商机地图(.scratch/opportunity-module/)的产出形态:spec-only(只出决策 + 契约 + 领域模型,不写实现代码),做完后进 /implement 阶段。
crm-customer(新建模块) — 客户业务域:客户主表 + 归属流转(有主/公海 + 交割换主)+ 客户阶段(潜在→重潜→已成交,只前进)+ 三 workspace(客户总览 / 我的客户 / 客户公海)+ 内置视图 + 自定义视图(复用 crm-preference)+ 新增/编辑(含查重校验 + 企查查工商回填 seam)+ 客户导入 + 客户详情 8 页签 + 跟进记录 + 操作日志 + 客户交割(跨模块同步商机/项目负责人)+ 联系人 CRUD + 全局搜索。crm-rule(客户规则族,新增第三族) — 后台"业务规则"下线索/商机/客户三族并列。客户规则本图只做「超期未跟进提醒」(全局单例配置,非版本化)。
原型出处(蓝湖缓存,已本地提取)
- 主文档
bade4454-52aa-44db-8ba2-dec594732ecb(【原型】itc信息化业务中台web端 V1.0)。 - 截图/文本缓存目录:
D:\code\crm-需求梳理\lanhu-mcp\data\axure_extract_bade4454_screenshots\(每页 4 文件:.png/.txt/_annotations.json/_styles.json;.txt为主)。 - A4 客户模块页族:
a4-1 客户公海/a4-2 客户总览/a4-3 我的客户+新增+导入+OCR/a4-4 客户详情(8页签)/a4-5 联系人/a4-6 客户查重+合并/a4-7 客户交割。规则侧a7-3-3 客户管理设置。 - 前置依赖分析已存在:
.scratch/opp-customer-dependency/商机模块前置客户接口依赖分析报告.md(商机侧硬依赖的客户接口:POST /api/customer/search/GET /api/customer/{id}/contacts/GET /api/customer/{id}等)——客户模块的一个已知锚点切片。
Decisions so far
-
[D1] 目的地形态 = spec-only,对称商机图 — 只产出决策/契约/领域模型,不写实现代码;做完进 /implement。(chart grill Q1)
-
[D2] 作用域三档划分(chart grill Q2 + Q4 修正):
- ① 本图覆盖:客户核心(实体+查重校验+公海+总览+我的客户+三视图+新增/编辑+导入+详情8页签(关联商机读 crm-opportunity✅)+跟进+操作日志)、联系人(CRUD+全局搜索)、客户交割、客户规则族「超期未跟进提醒」。
- ② 依赖未建 A5 项目模块 → 留 seam:客户阶段「已成交客户」(由项目中标驱动)本图只做到「潜在→重潜」;「关联项目」详情页签划出。
- ③ 自成子域/复杂特性 → 划出本图(Not-yet / Out-of-scope 记一笔):战略协议(A4-4-9/10)、联系人图谱(职务二级联动+人脉连线)、客户查重列表+客户合并(A4-6,grill Q4 拍板不做)、企查查/OCR 外部服务(只定契约 seam,不深挖服务内部;OCR 快捷新增划出)。
-
[D3] 客户双轴建模(chart grill Q3) — 对称商机双轴但两轴都更简单:
- 轴1 归属:不做显式 tinyint 状态机,改用两个正交维度:①
owner_user_id+owner_dept_id(快照) 是否为空 = 有主/在公海(公海=owner 空的逻辑视图,对称商机公海);②archive_status(有效1/已归档2/已被合并3) 独立字段,归档/合并是它的迁移。迁移动作 = 领取/分配/抛公海/交割(换主)/归档。 - 轴2 阶段:主表
customer_stage(潜在1/重潜2/已成交3) 单字段,只增不减、不可配置(硬编码三态,非商机版本化模板),由外部成功结果驱动。本图只做潜在→重潜(重潜由方案卡报备驱动,crm-opportunity 已建);已成交留 seam 给 A5。
- 轴1 归属:不做显式 tinyint 状态机,改用两个正交维度:①
-
[D4] 客户规则落 crm-rule + 全局单例形态(chart grill Q4) — 客户规则族作 crm-rule 第三族(线索/商机/客户并列)。本图只做「超期未跟进提醒」(全局单例配置:总开关 + 首次触发天数(默认30) + 二次提醒间隔(默认7);定时任务 + 钉钉/应用内通知),不套 V-CONFIG 版本化(区别于商机规则)。「客户查重设置」不做(A4-6 查重执行侧不做,查重口径写死在新增流程)。
-
[D5] 联系人建模(chart grill Q5) — 联系人 =
crm-customer下独立实体表customer_contact(不单开 crm-contact 模块);每个联系人customer_id必属一客户(无孤立),权限继承所属客户(联系人无独立 ACL)。本图做:联系人 CRUD(列表/详情/新增/编辑)+ 随客户新增内嵌明细 + 全局搜索接口(商机硬依赖)+ 联系人电话查重。本图不做:职务二级联动图谱、人脉关系连线、OCR 快捷新增、联系人导入。职务字段先存「职务名称文本 + 可空 标准职务id/类别/层级」三列占位,不实现联动选择器逻辑。 -
[D6] 新增客户查重口径(chart grill Q4-补) — 新增/编辑客户的查重校验做、内建新增流程:① 统一社会信用代码全局唯一(硬拦),② 客户名称相似→保存时确认弹窗(可"仍要创建")。查重阈值/口径写死,不做后台可配。A4-6 独立查重页 + 客户合并不做。
Not yet specified
| 票 | 主题 | 依赖 | 前沿位置 |
|---|---|---|---|
| 01 | 客户域领域词汇 + CONTEXT.md 骨架 (task) | — | ✅ 可开工(无依赖) |
| 02 | 客户主表字段清单 — 扇出最广,多票回填 | — | ✅ 可开工(无依赖) |
| 03 | 归属流转 + 三 workspace + 内置视图查询口径 | 02 | 02 done 后 |
| 04 | 新增查重校验 + 企查查工商回填 seam | 02 | 02 done 后 |
| 05 | 客户阶段(潜在→重潜→已成交,只前进;本图只做前两态) | 02 | 02 done 后 |
| 06 | 联系人 CRUD + 全局搜索 + 商机侧硬依赖接口 | 02 | 02 done 后 |
| 07 | 客户详情 8 页签 + 跟进记录 + 操作日志 | 02, 05 | 02+05 done 后 |
| 08 | 客户交割(跨模块同步商机/项目负责人事务) | 02, 03 | 02+03 done 后 |
| 09 | 客户导入(Excel,OCR 划出) | 02 | 02 done 后 |
| 10 | 客户规则族「超期未跟进提醒」(crm-rule 全局单例) | — | ✅ 可开工(无依赖) |
| 11 | 自定义视图接入 crm-preference(复用商机 saved-view) | 03 | 03 done 后(task) |
Frontier(当下可并行开工的票):01(task,建模块+CONTEXT 骨架)、02(主表,扇出最广,优先起 research)、10(规则单例,无依赖可并行)。02 resolve 后 03/04/05/06/09 集体解冻,再往下推。
已知 grill 挂号(不阻塞开票,各票 resolve 时问用户拍板):
- 票 04:客户名称相似查重的算法/阈值(Trigram / MySQL 全文 / 编辑距离…)
- 票 05:重潜的触发点到底是「方案卡提交(状态2)」还是「方案卡推送/报备成功(状态3)」?
- 票 08:直属销售总监怎么定(是否在 SysUser 加
superior_user_id)? - 票 09:Excel 导入的相似客户处理策略(跳过/创建带标/报错)
- 票 10:"规则在客户新增时生效"的确认解读——新增客户时初始化
last_valid_follow_time = create_time,30 天没跟进首次提醒(本条已在 grill Q4-补 与用户初步对齐,票 resolve 时最终确认)
Out of scope
- 战略协议(A4-4-9/10 等级/新增/编辑)— 独立子域,另 effort。
- 联系人图谱(职务二级联动树 + 人脉关系连线 + 层级自动生成)— 复杂可视化,另 effort;本图职务只留占位列。
- 客户查重列表 + 客户合并(A4-6-1/2/3)— grill Q4 拍板不做;查重口径写死在新增流程。
- OCR 快捷新增(联系人/客户 OCR 识别)— 外部服务,划出;只在新增流程留 seam。
- 企查查等工商数据服务内部— 只定调用契约 seam(调用点/回填范围/异常/精确查重触发),不深挖服务实现。
- 客户阶段「已成交客户」(由 A5 项目首次中标驱动)— 留 seam,本图只做潜在→重潜。
- 「关联项目」详情页签(读 A5 项目模块)— A5 未建,划出。
- 联系人导入— 划出(客户导入本图做,联系人导入随图谱 effort)。