# 11 CreateOpportunityCmd 新增 customerId + 线索侧意向客户下拉 Type: task Status: resolved Blocked by: 02 ## Question 票 02 grill 出的**契约变更**落地(改代码,非 spec)。产品明确:线索转商机时意向客户改为**下拉选客户**,把 `customer_id` 带进商机。 需落地: 1. **改线索契约** `crm-lead/port/outbound/CreateOpportunityCmd`:新增 `customerId`(Long,必填)。`intendedCustomer` 保留为客户名快照(走法 B:引用 + 快照并存)。更新 javadoc。 2. **线索转商机弹窗**:意向客户字段从自由文本改为**下拉选客户**,用户选中拿到 `customer_id`;转商机前置校验「必须有意向客户」。 3. **商机侧消费**:`createOpportunity` 实现读 `cmd.customerId()`,转商机时建关联客户子表(关系「主要意向客户」,`customer_id` 引用 + `intendedCustomer` 名字快照)。 ## ⚠ 依赖 A4 客户模块(未建) 「下拉选客户」要求线索侧能**查到客户列表**。客户实体归 **A4 客户模块**,A4 尚未建。 - A4 未建前,此票**无法完整落地**(下拉无数据源)。 - 契约字段 `customerId` 与领域决策已由票 02 钉死;本票是**实现票**,须等 A4 客户下拉能力(或临时客户数据源)就绪。 - **Blocked by: 02**(决策)+ 事实上还阻塞于 A4 模块——A4 那张图到达前,本票只能开着占位。