From 0e4449d75bf31eb960d99fff1f2736446e1ec063 Mon Sep 17 00:00:00 2001
From: luoweijian <1329394916@qq.com>
Date: Tue, 25 Aug 2026 15:15:09 +0800
Subject: [PATCH] =?UTF-8?q?feat(lead):=20=E7=A5=A811=20=E8=BD=AC=E5=95=86?=
=?UTF-8?q?=E6=9C=BA=E5=A5=91=E7=BA=A6=E5=8A=A0=20customerId=EF=BC=88?=
=?UTF-8?q?=E5=8F=AF=E7=A9=BA=E5=8D=A0=E4=BD=8D=EF=BC=8C=E5=BE=85A4?=
=?UTF-8?q?=E6=94=B6=E7=B4=A7=E5=BF=85=E5=A1=AB=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
票11 步骤1-2 契约变更(走法甲:customerId 暂可空,不倒退现有自由文本转商机):
- CreateOpportunityCmd 新增 customerId(Long,暂可空);intendedCustomer 降为
客户名快照,与 customerId 并存(引用+快照,同票13走法)
- ConvertOpportunityParam 新增 customerId(前端下拉选客户得到;A4 下拉未就绪
前前端传 null)
- LeadServiceImpl 组装 cmd 时透传 param.getCustomerId()
A4 客户下拉就绪后把 customerId 收紧为必填(终态契约,一处校验)。
mvn -pl crm-lead -am test 116 全绿。
---
.../com/crm/lead/domain/param/ConvertOpportunityParam.java | 5 ++++-
.../com/crm/lead/port/outbound/CreateOpportunityCmd.java | 6 +++++-
.../java/com/crm/lead/service/impl/LeadServiceImpl.java | 3 ++-
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/crm-lead/src/main/java/com/crm/lead/domain/param/ConvertOpportunityParam.java b/crm-lead/src/main/java/com/crm/lead/domain/param/ConvertOpportunityParam.java
index a4a00e2..ee175d9 100644
--- a/crm-lead/src/main/java/com/crm/lead/domain/param/ConvertOpportunityParam.java
+++ b/crm-lead/src/main/java/com/crm/lead/domain/param/ConvertOpportunityParam.java
@@ -21,9 +21,12 @@ public class ConvertOpportunityParam {
@Schema(description = "甲方(自由文本,可空)")
private String partyA;
- @Schema(description = "意向客户(自由文本,必填)")
+ @Schema(description = "意向客户(自由文本,必填;票 11 降为名快照,与 customerId 并存)")
private String intendedCustomer;
+ @Schema(description = "意向客户 id(票 11;下拉选客户得到,引用 A4 客户模块。A4 下拉未就绪前可空)")
+ private Long customerId;
+
@Schema(description = "地区国标 code(必填)")
private String regionCode;
diff --git a/crm-lead/src/main/java/com/crm/lead/port/outbound/CreateOpportunityCmd.java b/crm-lead/src/main/java/com/crm/lead/port/outbound/CreateOpportunityCmd.java
index 28183c3..6a75470 100644
--- a/crm-lead/src/main/java/com/crm/lead/port/outbound/CreateOpportunityCmd.java
+++ b/crm-lead/src/main/java/com/crm/lead/port/outbound/CreateOpportunityCmd.java
@@ -8,7 +8,10 @@ package com.crm.lead.port.outbound;
* @param opportunityName 商机名称(必填)
* @param industryCode 行业字典 code(opportunity.industry,必填)
* @param partyA 甲方(自由文本,可空)
- * @param intendedCustomer 意向客户(自由文本,必填)
+ * @param intendedCustomer 意向客户名快照(自由文本;票 11 降为客户名快照,与 customerId 并存)
+ * @param customerId 意向客户 id(票 11;下拉选客户得到,引用 A4 客户模块)。
+ * 暂可空:A4 客户下拉未就绪前前端传 null,商机侧跳过建关联子表;
+ * A4 就绪后收紧为必填(票 11 终态契约)。
* @param regionCode 地区国标 code(varchar 12,必填)
* @param remark 备注(自由文本,可空)
* @param sourceLeadName 线索名称快照
@@ -24,6 +27,7 @@ public record CreateOpportunityCmd(
String industryCode,
String partyA,
String intendedCustomer,
+ Long customerId,
String regionCode,
String remark,
String sourceLeadName,
diff --git a/crm-lead/src/main/java/com/crm/lead/service/impl/LeadServiceImpl.java b/crm-lead/src/main/java/com/crm/lead/service/impl/LeadServiceImpl.java
index 0e8b854..35044f9 100644
--- a/crm-lead/src/main/java/com/crm/lead/service/impl/LeadServiceImpl.java
+++ b/crm-lead/src/main/java/com/crm/lead/service/impl/LeadServiceImpl.java
@@ -361,7 +361,8 @@ public class LeadServiceImpl extends BaseServiceImpl
try {
opportunityId = port.createOpportunity(new CreateOpportunityCmd(
lead.getId(), param.getOpportunityName(), param.getIndustryCode(),
- param.getPartyA(), param.getIntendedCustomer(), param.getRegionCode(),
+ param.getPartyA(), param.getIntendedCustomer(), param.getCustomerId(),
+ param.getRegionCode(),
param.getRemark(), lead.getLeadName(), lead.getPhone(),
lead.getProductCode(), lead.getOwnerUserId(),
lead.getOwnerDeptIdSnapshot(), lead.getPoolId()));