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.
47 lines
1.7 KiB
47 lines
1.7 KiB
|
5 days ago
|
# 01 实体 + DTO 字段扩展
|
||
|
|
|
||
|
|
Type: task
|
||
|
|
Status: resolved
|
||
|
|
|
||
|
|
## 目标
|
||
|
|
|
||
|
|
给 `crm-opportunity` 的商机主表实体与创建请求 DTO 补齐 spec.md 拍板的字段。
|
||
|
|
|
||
|
|
## 改动
|
||
|
|
|
||
|
|
### 1. `Opportunity` 实体(`crm-opportunity/.../domain/entity/Opportunity.java`)
|
||
|
|
|
||
|
|
新增 4 列,照现有 `@Comment` + `@Column(columnDefinition=...)` 风格:
|
||
|
|
|
||
|
|
- `address`:varchar(255) comment '项目详细地址'(形状对齐 `Lead.address`)
|
||
|
|
- `keyContactId`:bigint comment '商机关键联系人ID(引用 A4 联系人,未建可空)'
|
||
|
|
- `keyContactNameSnapshot`:varchar(200) comment '商机关键联系人姓名快照'
|
||
|
|
- `keyContactCompanySnapshot`:varchar(200) comment '关键人所在公司快照'
|
||
|
|
|
||
|
|
`projectAmount` 已存在,不动。
|
||
|
|
|
||
|
|
### 2. `CreateOpportunityRequest` DTO(`crm-opportunity/.../domain/dto/CreateOpportunityRequest.java`)
|
||
|
|
|
||
|
|
新增字段:
|
||
|
|
|
||
|
|
- `projectAmount`(BigDecimal,项目金额)
|
||
|
|
- `address`(String,项目详细地址)
|
||
|
|
- `customerRole`(String,客户类型 → customer_role 字典 code)
|
||
|
|
- `isPrimaryIntended`(Integer,是否主要客户:1=主要 / 0=普通关联)
|
||
|
|
- `keyContactId`(Long,可空)
|
||
|
|
- `keyContactName`(String,快照)
|
||
|
|
- `keyContactCompany`(String,快照)
|
||
|
|
|
||
|
|
`remark` 字段的 javadoc 展示名从「备注」改为「项目概况」,补一句「线索转商机时应映射来源线索对应字段」。
|
||
|
|
|
||
|
|
## 校验注意
|
||
|
|
|
||
|
|
- 本票只加字段与注释,不做业务校验(校验在 03 票)。
|
||
|
|
- 加列后跑 BOM 扫描 + `mvn -pl crm-opportunity compile` 验证无 `\uFEFF`。
|
||
|
|
|
||
|
|
## 完成标准
|
||
|
|
|
||
|
|
- [ ] 实体 4 新列 + DTO 7 新字段 + remark 改名注释
|
||
|
|
- [ ] `mvn -pl crm-opportunity compile` 通过
|
||
|
|
- [ ] 全仓 `*.java` BOM 扫描干净
|