Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-csf
Commits
2718f5f4
Commit
2718f5f4
authored
Jan 13, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进v2
parent
b5eba8fc
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
303 additions
and
225 deletions
+303
-225
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
+4
-15
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateDto.java
+35
-85
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
+131
-54
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
+10
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+81
-46
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
+1
-5
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
+41
-20
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
View file @
2718f5f4
...
...
@@ -643,8 +643,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
// follow.setReconciliationCompanyBizId();
//TODO 续保日期
// follow.setRenewalDate();
// 用户业务员id
follow
.
setUserBizId
(
appointment
.
getCreatorId
());
if
(!
Objects
.
isNull
(
apiInsurantInfoDto
))
{
// 受保人
follow
.
setInsured
(
apiInsurantInfoDto
.
getNameCn
());
...
...
@@ -656,7 +655,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
if
(!
Objects
.
isNull
(
apiProductPlanMainInfoDto
))
{
//币种
follow
.
setCurrency
(
apiProductPlanMainInfoDto
.
getPolicyCurrency
());
follow
.
set
Policy
Currency
(
apiProductPlanMainInfoDto
.
getPolicyCurrency
());
//生效日期
// if (!Objects.isNull(apiProductPlanMainInfoDto.getPolicyEffectiveDate())) {
// follow.setEffectiveDate(Date.from(apiProductPlanMainInfoDto.getPolicyEffectiveDate().atZone(ZoneId.systemDefault()).toInstant()));
...
...
@@ -665,19 +664,9 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
follow
.
setInitialPremium
(
apiProductPlanMainInfoDto
.
getEachIssuePremium
());
//保险公司
follow
.
setInsuranceCompany
(
apiProductPlanMainInfoDto
.
getCompanyName
());
//是否预缴
follow
.
setIsPrepaid
(
apiProductPlanMainInfoDto
.
getIsPrepay
());
//供款年期
if
(
StringUtils
.
isNotBlank
(
apiProductPlanMainInfoDto
.
getIssueNumber
()))
{
follow
.
setPaymentTerm
(
apiProductPlanMainInfoDto
.
getIssueNumber
());
if
(
follow
.
getPaymentTerm
()
==
null
)
{
follow
.
setPaymentTerm
(
productPlan
.
getIssueNumber
());
}
}
//产品名称
follow
.
setProductName
(
apiProductPlanMainInfoDto
.
getProductLaunchMainName
());
//签单员列表
setSignerList
(
follow
,
appointment
);
}
policyFollowService
.
saveOrUpdate
(
follow
);
...
...
@@ -720,7 +709,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
signer
.
setEmail
(
appointment
.
getBusinessRepresentEmail1
());
}
signerList
.
add
(
signer
);
follow
.
setSignerList
(
GSONUtil
.
toJson
(
signerList
));
}
private
void
savePolicyQuestionnaire
(
String
appointmentBizId
,
String
policyBizId
)
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateDto.java
View file @
2718f5f4
...
...
@@ -20,37 +20,55 @@ public class PolicyFollowUpdateDto implements Serializable {
private
String
policyBizId
;
/**
* 客户名称
*/
@Schema
(
description
=
"客户名称"
)
private
String
customerName
;
/**
* 客户编号
*/
@Schema
(
description
=
"客户编号"
)
private
String
customerBizId
;
/**
* 签单日期
*/
@Schema
(
description
=
"签单日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
signDate
;
/**
* 签单员
*/
@Schema
(
description
=
"签单员"
)
private
PolicySigner
signer
;
/**
* 签单员执业编号
*/
@Schema
(
description
=
"签单员执业编号"
)
private
String
signerRegNo
;
/**
* 签单地点
*/
@Schema
(
description
=
"签单地点"
)
private
String
signLocation
;
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
*
签单日期
*
产品计划业务id
*/
@Schema
(
description
=
"签单日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
signDate
;
@Schema
(
description
=
"产品计划业务id"
)
private
String
productLaunchBizId
;
/**
*
签单员列表
*
产品名称
*/
@Schema
(
description
=
"
签单员列表
"
)
private
List
<
PolicySigner
>
signerList
;
@Schema
(
description
=
"
产品名称
"
)
private
String
productName
;
/**
/**
* 冷静期天数
*/
@Schema
(
description
=
"冷静期天数"
)
...
...
@@ -77,41 +95,8 @@ public class PolicyFollowUpdateDto implements Serializable {
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
renewalDate
;
/**
* 供款年期
*/
@Schema
(
description
=
"供款年期"
)
private
Integer
paymentTerm
;
/**
* 期交保费
*/
@Schema
(
description
=
"期交保费"
)
private
BigDecimal
paymentPremium
;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema
(
description
=
"是否预缴: 0-否, 1-是"
)
private
Integer
isPrepaid
;
/**
* 预缴年期
*/
@Schema
(
description
=
"预缴年期"
)
private
Integer
prepaidTerm
;
/**
* 产品计划业务id
*/
@Schema
(
description
=
"产品计划业务id"
)
private
String
productLaunchBizId
;
/**
* 产品名称
*/
@Schema
(
description
=
"产品名称"
)
private
String
productName
;
/**
* 产品类别
...
...
@@ -156,45 +141,10 @@ public class PolicyFollowUpdateDto implements Serializable {
private
String
insured
;
/**
* 币种
*
保单
币种
*/
@Schema
(
description
=
"币种"
)
private
String
c
urrency
;
@Schema
(
description
=
"
保单
币种"
)
private
String
policyC
urrency
;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema
(
description
=
"首期保费(不含徽费,预缴保费)"
)
private
Object
initialPremium
;
/**
* 保单征费
*/
@Schema
(
description
=
"保单征费"
)
private
String
policyLevy
;
/**
* 首期已交保费
*/
@Schema
(
description
=
"首期已交保费"
)
private
String
initialPremiumPaid
;
/**
* 首期待交保费
*/
@Schema
(
description
=
"首期待交保费"
)
private
String
initialPremiumDue
;
/**
* 最晚缴费日期
*/
@Schema
(
description
=
"最晚缴费日期 格式: yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
latestPaymentDate
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
}
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
View file @
2718f5f4
package
com
.
yd
.
csf
.
service
.
model
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
...
...
@@ -45,79 +43,129 @@ public class PolicyFollow implements Serializable {
private
String
appointmentNo
;
/**
*
用
户业务id
*
客
户业务id
*/
private
String
us
erBizId
;
private
String
custom
erBizId
;
/**
*
客户业务id
*
递交日期
*/
private
String
customerBizId
;
private
Date
submitDate
;
/**
* 客户名称
*/
private
String
customerName
;
/**
* 递交日期
*/
private
Date
submitDate
;
/**
* 签单日期
*/
private
Date
signDate
;
/**
* 签单
员列表
* 签单
人
*/
private
String
signer
List
;
private
String
signer
;
/**
*
缮发日期
*
签单人业务id
*/
private
Date
issueDate
;
private
String
signerBizId
;
/**
*
生效日期
*
签单人执业编号
*/
private
Date
effectiveDate
;
private
String
signerRegNo
;
/**
*
核保日期
*
签单地点
*/
private
Date
underwritingDate
;
private
String
signLocation
;
/**
* 缮发日期
*/
private
Date
issueDate
;
/**
* 冷
却
期结束日期
/**
* 冷
静
期结束日期
*/
private
Date
coolingOffEndDate
;
/**
* 冷
却
期天数
/**
* 冷
静
期天数
*/
private
Integer
coolingOffDays
;
/**
* 核保日期
*/
private
Date
underwritingDate
;
/**
* 生效日期
*/
private
Date
effectiveDate
;
/**
* 续保日期
*/
private
Date
renewalDate
;
/**
* 保单回执日期
*/
private
Date
receiptDate
;
/**
* 回执状态
*/
private
String
receiptStatus
;
/**
* 是否开通直接支付
*/
private
Integer
directPaymentEnabled
;
/**
* 供款年期
*/
private
Object
paymentTerm
;
private
Integer
issueNumber
;
/**
* 保障期限
*/
private
Integer
guaranteePeriod
;
/**
* 保额(重疾险)
*/
private
BigDecimal
sumInsured
;
/**
* 付款频率(字典)
*/
private
String
paymentFrequency
;
/**
*
期交
保费
*
每期
保费
*/
private
BigDecimal
payment
Premium
;
private
BigDecimal
eachIssue
Premium
;
/**
* 是否预缴: 0-否, 1-是
*/
private
Integer
isPrepaid
;
private
Integer
isPrepay
;
/**
* 是否追溯: 0-否, 1-是
*/
private
Integer
isTraceable
;
/**
* 回溯日期
*/
private
Date
retroactiveDate
;
/**
* 预缴年期
...
...
@@ -144,7 +192,7 @@ public class PolicyFollow implements Serializable {
*/
private
String
paymentNumber
;
/**
/**
* 产品上架信息表唯一业务ID
*/
private
String
productLaunchBizId
;
...
...
@@ -184,10 +232,10 @@ public class PolicyFollow implements Serializable {
*/
private
String
status
;
/**
/**
* 下一步跟进状态列表
*/
private
Object
nextStatusList
;
private
String
nextStatusList
;
/**
* 保單持有人
...
...
@@ -200,74 +248,103 @@ public class PolicyFollow implements Serializable {
private
String
insured
;
/**
*
币种
*
受保人年龄
*/
private
String
currency
;
private
Integer
insuredAge
;
/**
*
首期保费(不含徽费,预缴保费)
*
宽限期
*/
private
Object
initialPremium
;
private
Integer
gracePeriod
;
/**
*
保单征费
/**
*
是否参加递增保障权益: 0-否, 1-是(字典)
*/
private
String
policyLevy
;
private
Integer
isJoin
;
/**
*
首期已交保费
*
保单币种
*/
private
String
initialPremiumPaid
;
private
String
policyCurrency
;
/**
* 首期
待交保费
* 首期
付款方式(字典)
*/
private
String
initialP
remiumDue
;
private
String
initialP
aymentMethod
;
/**
*
最晚缴费日期
*
首期保费(不含徽费,预缴保费)
*/
private
Date
latestPaymentDate
;
private
BigDecimal
initialPremium
;
/**
* 寄送方式
1-自提,
2-快递
* 寄送方式
字典值:1-自提
2-快递
*/
private
String
mailingMethod
;
/**
* 续期付款方式(字典)
*/
private
String
renewalPaymentMethod
;
/**
* 红利付款方式(字典)
*/
private
String
dividendPaymentMethod
;
/**
* 快递单号
*/
private
String
deliveryNo
;
/**
* 保单征费
*/
private
String
policyLevy
;
/**
*
*/
private
String
initialPremiumPaid
;
/**
*
*/
private
String
initialPremiumDue
;
/**
*
*/
private
Date
latestPaymentDate
;
/**
* 经纪公司签收日期
*/
private
String
brokerSignDate
;
private
Date
brokerSignDate
;
/**
* 保险公司寄出日期
*/
private
String
insurerMailingDate
;
private
Date
insurerMailingDate
;
/**
* 客户签收日期
*/
private
String
customerSignDate
;
private
Date
customerSignDate
;
/**
* 附件
列表
* 附件
地址列表 逗号隔开
*/
private
String
attachments
;
/**
* 备注
*
通用
备注
*/
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField
()
private
Integer
isDeleted
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
2718f5f4
...
...
@@ -27,10 +27,20 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Boolean
updatePolicyFollow
(
PolicyFollowUpdateRequest
policyFollowUpdateRequest
);
/**
* 使用统一DTO更新新单跟进
*/
Boolean
updatePolicyFollowDto
(
PolicyFollowDto
policyFollowDto
);
PolicyFollowVO
getPolicyFollowVO
(
PolicyFollow
policyFollow
);
Map
<
String
,
Object
>
addPolicyFollow
(
PolicyFollowAddRequest
policyFollowAddRequest
);
/**
* 使用统一DTO新增新单跟进
*/
Map
<
String
,
Object
>
addPolicyFollowDto
(
PolicyFollowDto
policyFollowDto
);
Boolean
addToPolicy
(
List
<
String
>
policyNoList
);
Boolean
changePolicyFollowStatus
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
,
PolicyFollow
policyFollow
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
2718f5f4
This diff is collapsed.
Click to expand it.
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
View file @
2718f5f4
...
...
@@ -82,11 +82,7 @@ public class PolicyFollowVO implements Serializable {
// 转换PolicyFollowUpdateDto
PolicyFollowUpdateDto
policyFollowUpdateDto
=
new
PolicyFollowUpdateDto
();
BeanUtils
.
copyProperties
(
policyFollow
,
policyFollowUpdateDto
);
// 转换 signerList 字段
if
(
policyFollow
.
getSignerList
()
!=
null
)
{
policyFollowUpdateDto
.
setSignerList
(
GSONUtil
.
fromJson
(
policyFollow
.
getSignerList
(),
new
TypeToken
<
List
<
PolicySigner
>>()
{
}.
getType
()));
}
policyFollowVO
.
setPolicyFollowUpdateDto
(
policyFollowUpdateDto
);
// 处理 nextStatusList 字段
...
...
yd-csf-service/src/main/resources/mappers/PolicyFollowMapper.xml
View file @
2718f5f4
...
...
@@ -10,20 +10,31 @@
<result
property=
"policyNo"
column=
"policy_no"
/>
<result
property=
"appointmentBizId"
column=
"appointment_biz_id"
/>
<result
property=
"appointmentNo"
column=
"appointment_no"
/>
<result
property=
"userBizId"
column=
"user_biz_id"
/>
<result
property=
"customerBizId"
column=
"customer_biz_id"
/>
<result
property=
"submitDate"
column=
"submit_date"
/>
<result
property=
"customerName"
column=
"customer_name"
/>
<result
property=
"signDate"
column=
"sign_date"
/>
<result
property=
"signerList"
column=
"signer_list"
/>
<result
property=
"signer"
column=
"signer"
/>
<result
property=
"signerBizId"
column=
"signer_biz_id"
/>
<result
property=
"signerRegNo"
column=
"signer_reg_no"
/>
<result
property=
"signLocation"
column=
"sign_location"
/>
<result
property=
"issueDate"
column=
"issue_date"
/>
<result
property=
"effectiveDate"
column=
"effective_date"
/>
<result
property=
"coolingOffEndDate"
column=
"cooling_off_end_date"
/>
<result
property=
"coolingOffDays"
column=
"cooling_off_days"
/>
<result
property=
"underwritingDate"
column=
"underwriting_date"
/>
<result
property=
"effectiveDate"
column=
"effective_date"
/>
<result
property=
"renewalDate"
column=
"renewal_date"
/>
<result
property=
"paymentTerm"
column=
"payment_term"
/>
<result
property=
"paymentPremium"
column=
"payment_premium"
/>
<result
property=
"isPrepaid"
column=
"is_prepaid"
/>
<result
property=
"receiptDate"
column=
"receipt_date"
/>
<result
property=
"receiptStatus"
column=
"receipt_status"
/>
<result
property=
"directPaymentEnabled"
column=
"direct_payment_enabled"
/>
<result
property=
"issueNumber"
column=
"issue_number"
/>
<result
property=
"guaranteePeriod"
column=
"guarantee_period"
/>
<result
property=
"sumInsured"
column=
"sum_insured"
/>
<result
property=
"paymentFrequency"
column=
"payment_frequency"
/>
<result
property=
"eachIssuePremium"
column=
"each_issue_premium"
/>
<result
property=
"isPrepay"
column=
"is_prepay"
/>
<result
property=
"isTraceable"
column=
"is_traceable"
/>
<result
property=
"retroactiveDate"
column=
"retroactive_date"
/>
<result
property=
"prepaidTerm"
column=
"prepaid_term"
/>
<result
property=
"prepaidAmount"
column=
"prepaid_amount"
/>
<result
property=
"prepaidAmountAfterDiscount"
column=
"prepaid_amount_after_discount"
/>
...
...
@@ -40,14 +51,20 @@
<result
property=
"nextStatusList"
column=
"next_status_list"
/>
<result
property=
"policyHolder"
column=
"policy_holder"
/>
<result
property=
"insured"
column=
"insured"
/>
<result
property=
"currency"
column=
"currency"
/>
<result
property=
"insuredAge"
column=
"insured_age"
/>
<result
property=
"gracePeriod"
column=
"grace_period"
/>
<result
property=
"isJoin"
column=
"is_join"
/>
<result
property=
"policyCurrency"
column=
"policy_currency"
/>
<result
property=
"initialPaymentMethod"
column=
"initial_payment_method"
/>
<result
property=
"initialPremium"
column=
"initial_premium"
/>
<result
property=
"mailingMethod"
column=
"mailing_method"
/>
<result
property=
"renewalPaymentMethod"
column=
"renewal_payment_method"
/>
<result
property=
"dividendPaymentMethod"
column=
"dividend_payment_method"
/>
<result
property=
"deliveryNo"
column=
"delivery_no"
/>
<result
property=
"policyLevy"
column=
"policy_levy"
/>
<result
property=
"initialPremiumPaid"
column=
"initial_premium_paid"
/>
<result
property=
"initialPremiumDue"
column=
"initial_premium_due"
/>
<result
property=
"latestPaymentDate"
column=
"latest_payment_date"
/>
<result
property=
"policyLevy"
column=
"policy_levy"
/>
<result
property=
"mailingMethod"
column=
"mailing_method"
/>
<result
property=
"deliveryNo"
column=
"delivery_no"
/>
<result
property=
"brokerSignDate"
column=
"broker_sign_date"
/>
<result
property=
"insurerMailingDate"
column=
"insurer_mailing_date"
/>
<result
property=
"customerSignDate"
column=
"customer_sign_date"
/>
...
...
@@ -61,16 +78,20 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id,policy_biz_id,policy_no,appointment_biz_id,appointment_no,user_biz_id,
customer_biz_id,submit_date,customer_name,sign_date,signer_list,
issue_date,effective_date,cooling_off_end_date,cooling_off_days,renewal_date,payment_term,payment_premium,
is_prepaid,prepaid_term,prepaid_amount,prepaid_amount_after_discount,policy_expiration_date,
payment_number,product_launch_biz_id,product_name,product_cate,insurance_company,
insurance_company_biz_id,reconciliation_company,reconciliation_company_biz_id,status,next_status_list,
policy_holder,insured,currency,initial_premium,initial_premium_paid,initial_premium_due,latest_payment_date,policy_levy,mailing_method,
delivery_no,broker_sign_date,insurer_mailing_date,customer_sign_date,attachments,
remark,is_deleted,creator_id,updater_id,create_time,
update_time
id,policy_biz_id,policy_no,appointment_biz_id,appointment_no,customer_biz_id,
submit_date,customer_name,sign_date,signer,signer_biz_id,
signer_reg_no,sign_location,issue_date,cooling_off_end_date,cooling_off_days,
underwriting_date,effective_date,renewal_date,receipt_date,receipt_status,
direct_payment_enabled,issue_number,guarantee_period,sum_insured,payment_frequency,
each_issue_premium,is_prepay,is_traceable,retroactive_date,prepaid_term,
prepaid_amount,prepaid_amount_after_discount,policy_expiration_date,payment_number,product_launch_biz_id,
product_name,product_cate,insurance_company,insurance_company_biz_id,reconciliation_company,
reconciliation_company_biz_id,status,next_status_list,policy_holder,insured,
insured_age,grace_period,is_join,policy_currency,initial_payment_method,
initial_premium,mailing_method,renewal_payment_method,dividend_payment_method,delivery_no,
policy_levy,initial_premium_paid,initial_premium_due,latest_payment_date,broker_sign_date,
insurer_mailing_date,customer_sign_date,attachments,remark,is_deleted,
creator_id,updater_id,create_time,update_time
</sql>
<select
id=
"queryPolicyReportData"
resultType=
"com.yd.csf.service.dto.PolicyReportData"
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment