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.

74 lines
10 KiB

17 hours ago
# A7-3 下半逐页对比矩阵(票 04)
范围:A7-3-2-4 项目查重(3 页)/ A7-3-2-5 公海与提醒(3 页)/ A7-3-2-6 商机相关字典 / A7-3-3 客户规则(2 页)/ A7-3-4 项目规则。对照 Controller:OpportunityPoolRule(8 端点)、CustomerReminderRule(2)、CustomerDedupRule(2)、crm-dict DictGroup(5)+ DictItem(8)。
## 一、A7-3-2-4 项目查重规则(3 页)——全缺码
| 原型页 | 页面元素 | 现状 | 缺口 |
|---|---|---|---|
| 列表页 | 查询:keyword(名称/编码/版本号)+ 适用范围下拉 + 状态下拉;列表 9 列(序号/名称/编码/版本/状态/适用范围/**执行次数**/最近更新/操作);操作矩阵同公海规则(草稿=详情/编辑/删除,发布中+停用=详情/编辑/复制) | 无 | 全缺码 |
| 详情页 | 头部(版本号/编码/适用范围/适用对象/状态/执行次数/是否默认/模板说明)+ 页签(概览/版本记录)+ 4 步骤向导只读 | 无 | 全缺码 |
| 新增/编辑页 | 基本信息(*规则名称/编码只读/*适用范围/适用对象[仅'对应项目属地'时]/是否默认[仅适用对象=全部时]/版本号只读/模板说明)+ 同一 4 步骤向导可编辑 + 保存草稿/保存并发布/取消 | 无 | 全缺码 |
**4 步骤向导配置结构**(编辑页=详情页同构,DTO 设计素材):
1. **触发场景**:触发场景多选(商机转项目/直接创建项目)+ 参与检测项目状态多选(进行中/已中止暂停/已关闭/已结项)
2. **关联项目检索**:条件行表(检索字段/数据来源/匹配方式[完全一致/名称相似]/相似度阈值/操作),默认 4 行=项目名称/项目区域/主要意向客户/甲方(各与自身比对),支持「+ 添加检索条件」
3. **异常关系分析**:规则表(排序/条件表达式/输出研判结论/展开);条件表达式支持 且/或 + 括号嵌套(两层示例);研判结论枚举:明确重复/疑似重复/同商机多客户/跨商机同源冲突/一般风险标签提醒/无明显冲突
4. **处理策略**:3 行固定(强制拦截/异常确认/正常创建)× 适用研判结论多选;系统动作文案平台固定
**端点设计素材**(版本化规则族,与 opp-stage-template / opp-pool-rule 同构):
`/api/rule/opp-dedup-rule` 下 page / detail / save-draft / publish / copy / disable / delete / versions 共 8 端点。
DTO 要点:ruleCode(DUP_RULE_XX)/ruleName/versionNo/status(1/2/3)/applyScopeType(1 全部商机 2 按项目属地 3 按所属公司)/applyScopeValue(本地项目/南京公司…)/isDefault/ruleDesc + 4 步骤嵌套 JSON(triggerScenarios[]、projectStatuses[]、searchConditions[{field,source,matchMode,threshold}]、analysisRules[{seq,expression(嵌套且或组),conclusion}]、strategies{intercept[],confirm[],normal[]})。
**版本化+引用规则**(PRD 明确,实现必守):同族唯一草稿+唯一发布中;发布后原版转停用;推送规则引用查重规则时**锁定具体版本**(新版本发布后已有配置继续引用原版本);草稿不可被正式引用;执行次数按版本分别统计;提醒天数<回收天数
## 二、A7-3-2-5 公海与提醒规则(3 页)——已实现,高度对齐
| 原型页 | 页面元素 | 现状 | 结论 |
|---|---|---|---|
| 列表页 | 查询三条件(keyword/适用范围/状态);列表 10 列含**自动回收/提前提醒**两专列;操作矩阵(草稿=详情/编辑/删除,发布中+停用=详情/编辑/复制);版本化同族规则 | OpportunityPoolRulePageParam(keyword+applyScope+status)✅;page ✅ | 对齐 |
| 详情页 | 基本信息(含**绑定商机:326 条**、是否默认、模板说明)+ 三配置区(进入公海/领取规则/提醒设置)+ 页签(概览/版本记录) | detail ✅;versions ✅;DTO 出参 ruleCode/ruleName/versionNo/status/applyScope/isDefault/allowManualPool/autoRecycleEnabled/recycleDays/allowFreeClaim/recycleRemindEnabled/remindDays/ruleDesc/deptIds/deptNames 全齐 | **缺出参 1 项:绑定商机数量** |
| 新增/编辑页 | 基本信息 + 三配置区 + 保存草稿/保存并发布/取消;联动:专用时部门必填、通用时可设默认、勾回收后天数必填、提醒天数<回收天数 | save-draft/publish/copy/disable/delete DTO 注释已含全部校验规则 | 对齐 |
- 校验规则(PRD):回收天数>0;提醒天数>0 且 < 回收天数未启用回收不可开提醒仅通用规则可设默认且发布新默认自动取消原默认——服务层已实现publish 注释原发布中转停用原默认取消默认部门覆盖校验)✅
- 业务口径备注(非接口):有效跟进=跟进记录更新/附件上传/字段编辑修订;商机执行规则时记录规则版本(历史记录不重算)
- **缺口**:detail 出参缺 `boundOpportunityCount`(依赖商机侧落 ruleVersion 引用字段,建议记 P2 待商机模块对齐后补)
## 三、A7-3-2-6 商机相关字典(1 页)——crm-dict 能力完全覆盖,无缺码
| 页签 | 原型元素 | crm-dict 现状 | 结论 |
|---|---|---|---|
| 字典分组 | 列表 7 列(分组名称/编码/字典数量/排序号/状态/描述/操作:编辑/停用/删除)+ 新增/编辑弹窗(*分组名称/编码/排序号/描述/状态) | DictGroupController page/saveOrUpdate/delete/status/enabled-list;DictGroupDTO name/code/sortNo/status/description/builtin/**itemCount** | 覆盖 |
| 字典列表 | 列表 9 列(名称/编码/键值/分组/排序号/默认值/状态/描述/操作)+ 新增/编辑弹窗(*分组/*名称/编码/键值/排序号/默认值/描述/状态)+ 按 keyword/分组/状态筛选 | DictItemController page/saveOrUpdate/delete/force-delete/status/set-default/enabled-list/tree;DictItemDTO name/code/**value**/groupId/groupName/**isDefault**/**referenced**/**effectiveSelectable**/parentId(超集) | 覆盖 |
- 业务规则对齐:编码分组内唯一、被引用禁删(referenced)、默认值同组唯一(set-default 自动取消原默认)、停用分组联动失活(effectiveSelectable)——全部有对应能力 ✅
- **缺口仅为运营项**:①种子数据(4 分组:opportunity_stage 8 值 OPP_STAGE_01~、opportunity_status、opportunity_pause_reason 5 值 OPP_PAUSE_xx、opportunity_close_reason 6 值 OPP_CLOSE_xx,含「其他=填写补充说明」约定);②DictGroup/DictItem Controller 的 tag 挂「商机相关字典」多值 tags(与 A7-5 数据字典页共用,待票 05 核对后一并定);③前端页面复用现有端点(无后端工作)
## 四、A7-3-3 客户规则(2 页)——已实现,完全对齐,无缺口
| 原型页 | 原型字段 | 现状 | 结论 |
|---|---|---|---|
| 超期未跟进提醒(A7-3-3-1,35 控件) | 总开关 + 首次触发时间(独立开关+天数,默认 30)+ 二次提醒间隔时间(独立开关+天数,默认 7)+ 保存/取消;全局配置模式;推送渠道钉钉+应用内 | CustomerReminderRuleDTO masterEnabled/firstTriggerEnabled/firstTriggerDays/secondIntervalEnabled/secondIntervalDays + GET current + POST save | 逐字段对齐 |
| 客户查重设置(A7-3-3-2,91 控件) | 总开关(仅控名称/电话)+ 客户名称(开关+精确/模糊+阈值档 70/80/90/自定义 0-100)+ 联系电话(开关+固定精确)+ 统一社会信用代码(强制精确、不可关闭、无配置项)+ 保存/取消 | CustomerDedupRuleDTO masterEnabled/nameEnabled/nameMatchMode/similarityThreshold(0-100)/phoneEnabled;信用代码无字段=正确(DTO 注释引 a7-3-3-2 §3);GET current + POST save | 逐字段对齐;70/80/90 为前端快捷档、落库仍是单一阈值 ✅ |
## 五、A7-3-4 项目规则(1 页,多 tab)——全缺码
| 区块 | 原型元素 | 现状 |
|---|---|---|
| 阶段别名配置 | 7 阶段列表(序号/系统默认名/显示别名可编辑/说明),保存修改 | 无 |
| 项目拉群人员 | 7 角色列表(项目销售/设计师/报备专员/部门负责人/跟单员/财务专员/投标专员 × 是否拉入开关 + 说明),保存修改 | 无 |
| 冲突处理拉群规则 | 5 行(所有冲突方/报备专员/各方部门负责人/异地对接人[异地必须]/营销副总裁[条件触发] × 拉入规则 × 是否必须)+ 触发条件复选框(≥2 方自动触发/异地报备自动触发),保存修改 | 无 |
| 阶段提醒规则 | 8 行(阶段×提醒场景×触发条件×通知方式×启用开关;如冲突处理超时预警/投标倒计时/跟进断档等),保存修改。需求说明自注「配置入口,具体规则待后续补充」 | 无 |
| 标底认定规则(标底设定) | 9 标底类型(A+/A-/B+/B-/C/N/H/X/SQ 标)× 名称/说明/标底方%/中标方%/申请类型(发标后认定/需提前申请);修改仅影响新认定项目(提示条),保存修改 | 无 |
**端点设计素材**(预期 `/api/rule/project-rule` 下):GET current(聚合 5 区块回显)+ POST 五个分区保存(stage-alias/save、pool-member/save、conflict-pull/save、stage-remind/save、bid-config/save),全量表单提交。归属模块(crm-rule vs 项目侧)为拍板项。
## 六、缺口汇总(票 04)
**缺码(重)**:①项目查重规则模块(8 端点+DTO+4 步骤向导);②项目规则模块(current+5 分区保存)。
**缺出参**:③公海规则 detail 缺绑定商机数量(P2,依赖商机侧引用字段)。
**缺种子**:④商机相关字典 4 分组字典值。
**tag 待修 3 处**(累计 10 处,详单见票 06):OpportunityPoolRule→「A7 后台管理/业务规则/商机规则/公海与提醒」;CustomerReminderRule→「…/业务规则/客户规则/客户管理设置(超期未跟进提醒)」;CustomerDedupRule→「…/业务规则/客户规则/客户管理设置(客户查重设置)」。
**原型矛盾(拍板项)**:查重规则列头「执行次数」vs 字段说明/业务规则「引用次数」(被推送规则引用的次数)——建议按「引用次数」理解,执行=查重 job 实跑次数另计或合并展示。