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.

76 lines
5.1 KiB

1 day ago
# 票 03 · 矩阵 A4-4 客户详情(12 页)
> 口径同 matrix-a4-1-a4-3.md。详情页 = 8 子页签 ×3 客户态(正常/已归档/已被合并);`a4-4-1` ×3、`a4-4-2~8` 各 1、`a4-4-9/10` 协议表单 ×2 = 12 页。
## §1 a4-4-1 客户概览(客户信息)——正常 / 已归档 / 已被合并 三态
| # | 原型要素 | 实现 | 判定 |
|---|---|---|---|
| 1.1 | 头部:名称/星级/类型/省市/行业/阶段/负责人/协同人/关注/星标 | `CustomerDetailHeadDTO` 23 字段聚合 | ✅ |
| 1.2 | 头部汇总卡 5 字段(进行中商机总额等) | 恒 null(DTO 字段在、装配未接;API-SUMMARY §5.3 已注明「可经 port 扩展后切真值」) | ✅契约 / P3 记档 |
| 1.3 | 档案区全字段(含 networkUnits/总裁班组/工商组) | `CustomerDetailDTO` 47 字段 | ✅ |
| 1.4 | 系统信息区:创建时间/创建人/更新时间/更新人 | BaseEntity 真源在(creatorId/createTime/updaterId/updateTime),**DTO 未暴露四件套** → demo 该区恒 "--" | **缺出参(P2-G4)** |
| 1.5 | 已归档态(横幅 + 还原) | `POST /archive|/restore?id=` + archiveStatus=2 形态 | ✅ |
| 1.6 | 已被合并态 | **D19/D6 拍板:客户合并与「已被合并」态取消**(API-SUMMARY §3 值域无合并态) | 豁免 |
## §2 a4-4-2 概览(联系人子表)
| # | 原型要素 | 实现 | 判定 |
|---|---|---|---|
| 2.1 | 联系人列表(姓名/职务/电话/关键联系人/负责人) | `GET /contact/page?customerId=``ContactDTO` 14 字段 | ✅ |
| 2.2 | 「联系人负责人」列 | **DTO 无 owner 派生字段**(可由客户 owner 快照派生) | **缺出参(P2-G5)** |
| 2.3 | 行操作:编辑/删除 | `POST /contact/edit?id=`、`/contact/delete?id=`(oplog CONTACT_EDIT/CONTACT_DELETE) | ✅ |
| 2.4 | 扩展档案列(性别/生日/微信/邮件/地址) | 定稿划出(V1 档案收窄) | 豁免 |
## §3 a4-4-3 概览(跟进记录)
| # | 原型要素 | 实现 | 判定 |
|---|---|---|---|
| 3.1 | 跟进列表(方式/内容/时间/操作人) | `GET /follow/page?customerId=` | ✅ |
| 3.2 | 筛选:跟进方式/时间范围/**操作人** | `FollowPageParam` 仅 followWay/startTime/endTime,**缺操作人筛选** | **缺入参(P2-G1)** |
| 3.3 | 新增跟进 | `POST /follow/add`(oplog FOLLOW;lastValidFollowTime 锚点联动) | ✅ |
## §4 a4-4-4 概览(关联商机)
| # | 原型要素 | 实现 | 判定 |
|---|---|---|---|
| 4.1 | 商机列表 13 列(名称/项目/区域/招标形式/阶段/预计金额/下次跟进/甲方/意向客户/负责人/更新时间…) | port `CustomerOpportunityQueryPort.OpportunityItem`**7 字段**(id/oppName/stageName/estimateAmount/ownerUserId/ownerNameSnapshot/updateTime) | **缺出参(P2-G2,跨模块)** |
| 4.2 | 记档口径 | issues-07 §C 定稿已收窄列集;补列依赖 A5(项目/招标形式)与 opportunity 模块 port 增列——**挂账跨模块票**,不阻塞客户域验收 | 记档 |
## §5 a4-4-5 概览(关联项目)
| # | 原型要素 | 实现 | 判定 |
|---|---|---|---|
| 5.1 | 项目列表 | A5 项目模块未建,页签恒显 "--"(API-SUMMARY §5.3 记档) | 记档(范围外) |
## §6 a4-4-6 / a4-4-9 / a4-4-10 战略协议(列表 + 新增 + 编辑)
| # | 原型要素 | 实现 | 判定 |
|---|---|---|---|
| 6.1 | 协议卡列表(甲方/乙方/金额/期限/状态) | `GET /agreement/list?customerId=`(§2.6 族) | ✅ |
| 6.2 | 新增/编辑/结束协议 | `POST /agreement/add|/edit|/terminate?id=`(oplog AGREEMENT_ADD/EDIT/DELETE) | ✅ |
| 6.3 | 附件上传位 | **豁免(D2 划出)** | 豁免 |
| 6.4 | 甲方是否明确/乙方字段 | `partyAClear` 类孤立大写字母列已 `@Column` 钉死(AGENTS.md 陷阱清单) | ✅ |
## §7 a4-4-7 概览(团队成员)
| # | 原型要素 | 实现 | 判定 |
|---|---|---|---|
| 7.1 | 成员列表(负责人置顶 + 协同人) | `GET /member/list?id=`(ROLE_OWNER 在前) | ✅ |
| 7.2 | 列:姓名/部门/**职务/加入时间** | `CustomerMemberDTO` 仅 userName/deptName/role——**缺职务/加入时间**(实体 `CustomerTeamMember.memberRole/createTime` 真源在) | **缺出参(P2-G3)** |
| 7.3 | 添加/移除成员 | `POST /member/add|/remove`(oplog MEMBER_ADD/MEMBER_REMOVE) | ✅ |
## §8 a4-4-8 概览(操作日志)
| # | 原型要素 | 实现 | 判定 |
|---|---|---|---|
| 8.1 | 日志列表(操作人/部门/类型/叙事/时间,按日分组) | `POST /oplog/page`(`OplogPageParam` 时间倒序 + action/keyword 过滤);分组由前端渲染 | ✅ |
| 8.2 | action 值域 17 种 | 真值 17 种;**@Schema 描述滞后 11 种 → 本票已同步修正** | ✅(修复) |
| 8.3 | 导出日志 | 无端点(原型含导出按钮) | **缺接口(P3 记档)** |
## 小结(A4-4 组)
- 端点面零缺接口(关联项目=A5 范围外;导出日志 P3)。
- **P2 出参缺口 4 处**:G1 跟进缺操作人筛选 / G2 关联商机 7 vs 13 列 / G3 成员缺职务+加入时间 / G4 详情缺系统信息四件套(另 ContactDTO 缺负责人+四件套 = G5,见 A4-5 矩阵)。
- P1/P0:无。