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.
 
 
 
 
 

2.8 KiB

商机新建接口补齐字段(opp-create-fields)

背景

对比原型 A3-1-1-2-1「新增/编辑商机」表单与商机侧直接新建接口 POST /api/opportunityCreateOpportunityRequest / OpportunityIntakeSpec / OpportunityIntakeImpl),确认接口与接口文档 漏了 7 类字段。经 grilling 逐条拍板如下。

决策(grilling 已确认,2026-09)

# 原型字段 结论
1 项目区域(省/市/区三级级联) 前端三级级联,区/县折叠进 cityCode不新增 districtCode(对称 lead 约定「市码或区/县码均可,不单建 district_code」)。仅放宽 cityCode 的 Schema/注释说明。
2 项目金额 补进 create 入参。Opportunity.projectAmount 已存在,DTO/文档漏带。
3 项目详细地址 补进 create 入参 + 实体加 address(照 Lead.address 形状 varchar(255))。
4 客户类型 映射到 customer_role(商机关联客户角色字典)。不碰 A4 的 customer_type
5 是否主要客户 create 收 isPrimaryIntended(1=主要意向客户 / 0=普通关联客户)。创建时允许零主要意向客户(否→普通关联,后补/切换走添加关联客户端点)。CONTEXT「关联客户」不变式相应放宽。
6 商机关键联系人 + 关键人所在公司 create 预留快照字段keyContactId(可空,引用 A4 联系人)+ keyContactNameSnapshot + keyContactCompanySnapshot客户联系人归 A4 延后,stub 兜底。
7 项目概况 = 后端 remark(同字段改名,不新增列)。DTO/文档展示名「备注」→「项目概况」,补「线索转商机时映射」注释。

不算缺口

  • 项目阶段:create 由系统落首节点(applyInitialStage),非入参。
  • 来源线索:血缘 sourceLeadId 已存在。
  • 甲方(partyAClear / partyA):已存在。

影响面

  • 代码:crm-opportunity
    • CreateOpportunityRequest(DTO)
    • Opportunity(实体,加 4 列)
    • OpportunityIntakeSpec(内部契约)
    • OpportunityIntakeImpl(建档透传 + linkPrimaryCustomer 尊重 isPrimaryIntended/customerRole
    • OpportunityCreateServiceImpl(adapter 翻译)
  • 领域文档:crm-opportunity/CONTEXT.md(关联客户不变式放宽 + 词汇)
  • 接口文档仓:D:\code\crm-api-docs\A3 商机管理\新建商机\新建商机.bru

边界(本期不做)

  • 线索转入入口(OpportunityCreationPortImpl)透传新字段:暂不接线,LEAD_CONVERT 传 null/默认。 新字段均为 DIRECT 新建入口场景字段,线索转入的映射留待线索侧需求明确后另开票。
  • 客户联系人搜索:归 A4 客户/联系人模块,A4 建成后走真源。