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
ef356fcb
Commit
ef356fcb
authored
Oct 30, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进6
parent
9313606e
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
250 additions
and
172 deletions
+250
-172
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+22
-5
yd-csf-service/src/main/java/com/yd/csf/service/dto/AttachmentUploadRequest.java
+21
-5
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateDto.java
+162
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateRequest.java
+3
-143
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
+5
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+37
-19
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
ef356fcb
...
...
@@ -72,6 +72,8 @@ public class ApiPolicyFollowController {
private
ReconciliationCompanyService
reconciliationCompanyService
;
@Resource
private
PolicyFollowRecordService
policyFollowRecordService
;
@Resource
private
PolicyFollowFileService
policyFollowFileService
;
@PostMapping
(
"/upload/excel"
)
...
...
@@ -369,8 +371,8 @@ public class ApiPolicyFollowController {
@PostMapping
(
"/update"
)
@Operation
(
summary
=
"更新新单跟进信息"
)
public
Result
<
Boolean
>
updatePolicyFollow
(
@RequestBody
PolicyFollowUpdateRequest
policyFollowUpdateRequest
)
{
if
(
policyFollowUpdateRequest
==
null
||
StringUtils
.
isBlank
(
policyFollowUpdateRequest
.
getPolicyBizId
())
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policy
BizId
不能为空"
);
if
(
policyFollowUpdateRequest
==
null
||
policyFollowUpdateRequest
.
getPolicyFollowUpdateDto
()
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policy
FollowUpdateDto
不能为空"
);
}
return
Result
.
success
(
policyFollowService
.
updatePolicyFollow
(
policyFollowUpdateRequest
));
}
...
...
@@ -387,13 +389,28 @@ public class ApiPolicyFollowController {
if
(
StringUtils
.
isBlank
(
attachmentUploadRequest
.
getPolicyBizId
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
if
(
CollectionUtils
.
isEmpty
(
attachmentUploadRequest
.
getAttachmentList
()))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"附件地址列表不能为空"
);
}
return
Result
.
success
(
policyFollowService
.
uploadAttachment
(
attachmentUploadRequest
));
}
/**
* 新单跟进附件列表查询
*
* @param policyBizId
* @return
*/
@PostMapping
(
"/attachment/list"
)
@Operation
(
summary
=
"新单跟进附件列表查询"
)
public
Result
<
List
<
PolicyFollowFile
>>
attachmentList
(
@RequestParam
(
"policyBizId"
)
String
policyBizId
)
{
if
(
StringUtils
.
isBlank
(
policyBizId
))
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
QueryWrapper
<
PolicyFollowFile
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"policy_biz_id"
,
policyBizId
);
queryWrapper
.
eq
(
"is_deleted"
,
0
);
return
Result
.
success
(
policyFollowFileService
.
list
(
queryWrapper
));
}
/**
* 根据 policyBizId 获取新单跟进(封装类)
*
* @param policyBizId
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/AttachmentUploadRequest.java
View file @
ef356fcb
...
...
@@ -3,6 +3,7 @@ package com.yd.csf.service.dto;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
import
java.util.List
;
...
...
@@ -14,11 +15,26 @@ public class AttachmentUploadRequest implements Serializable {
@Schema
(
description
=
"新单跟进bizId"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
policyBizId
;
/**
* 附件地址列表
*/
@Schema
(
description
=
"附件地址列表"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
List
<
String
>
attachmentList
;
/**
* 中台文件元数据表唯一业务ID
*/
@NotBlank
(
message
=
"中台文件元数据表唯一业务ID不能为空"
)
@Schema
(
description
=
"中台文件元数据表唯一业务ID"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
ossFileBizId
;
/**
* 文件名
*/
@NotBlank
(
message
=
"文件名不能为空"
)
@Schema
(
description
=
"文件名"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
fileName
;
/**
* 文件访问路径
*/
@NotBlank
(
message
=
"文件访问路径为空"
)
@Schema
(
description
=
"文件访问路径"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
fileUrl
;
private
static
final
long
serialVersionUID
=
1L
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateDto.java
0 → 100644
View file @
ef356fcb
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
PolicyFollowUpdateDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 新单编号
*/
@Schema
(
description
=
"新单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
policyBizId
;
/**
* 客户名称
*/
@Schema
(
description
=
"客户名称"
)
private
String
customerName
;
/**
* 客户编号
*/
@Schema
(
description
=
"客户编号"
)
private
String
customerBizId
;
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
* 签单日期
*/
@Schema
(
description
=
"签单日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
signDate
;
/**
* 签单人
*/
@Schema
(
description
=
"签单人"
)
private
String
signer
;
/**
* 生效日期
*/
@Schema
(
description
=
"生效日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
effectiveDate
;
/**
* 续保日期
*/
@Schema
(
description
=
"续保日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
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
productBizId
;
/**
* 产品名称
*/
@Schema
(
description
=
"产品名称"
)
private
String
productName
;
/**
* 产品类别
*/
@Schema
(
description
=
"产品类别"
)
private
String
productCate
;
/**
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insurer
;
/**
* 保险公司业务id
*/
@Schema
(
description
=
"保险公司业务id"
)
private
String
insurerBizId
;
/**
* 对账公司
*/
@Schema
(
description
=
"对账公司"
)
private
String
reconciliationCompany
;
/**
* 对账公司业务id
*/
@Schema
(
description
=
"对账公司业务id"
)
private
String
reconciliationCompanyBizId
;
/**
* 保單持有人
*/
@Schema
(
description
=
"保單持有人"
)
private
String
policyHolder
;
/**
* 受保人
*/
@Schema
(
description
=
"受保人"
)
private
String
insured
;
/**
* 币种
*/
@Schema
(
description
=
"币种"
)
private
String
currency
;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema
(
description
=
"首期保费(不含徽费,预缴保费)"
)
private
Object
initialPremium
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateRequest.java
View file @
ef356fcb
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.dto.PolicyBrokerDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
PolicyFollowUpdateRequest
{
/**
* 新单编号
*/
@Schema
(
description
=
"新单编号"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
String
policyBizId
;
/**
* 客户名称
*/
@Schema
(
description
=
"客户名称"
)
private
String
customerName
;
/**
* 客户编号
*/
@Schema
(
description
=
"客户编号"
)
private
String
customerBizId
;
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
* 签单日期
*/
@Schema
(
description
=
"签单日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
signDate
;
/**
* 签单人
*/
@Schema
(
description
=
"签单人"
)
private
String
signer
;
/**
* 生效日期
*/
@Schema
(
description
=
"生效日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
effectiveDate
;
/**
* 续保日期
*/
@Schema
(
description
=
"续保日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
private
Date
renewalDate
;
/**
* 供款年期
*/
@Schema
(
description
=
"供款年期"
)
private
Integer
paymentTerm
;
/**
* 期交保费
*/
@Schema
(
description
=
"期交保费"
)
private
BigDecimal
paymentPremium
;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema
(
description
=
"是否预缴: 0-否, 1-是"
)
private
Integer
isPrepaid
;
/**
*
预缴年期
*
新单修改Dto
*/
@Schema
(
description
=
"预缴年期"
)
private
Integer
prepaidTerm
;
/**
* 产品名称
*/
@Schema
(
description
=
"产品名称"
)
private
String
productName
;
/**
* 产品类别
*/
@Schema
(
description
=
"产品类别"
)
private
String
productCate
;
/**
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insurer
;
/**
* 保险公司业务id
*/
@Schema
(
description
=
"保险公司业务id"
)
private
String
insurerBizId
;
/**
* 对账公司
*/
@Schema
(
description
=
"对账公司"
)
private
String
reconciliationCompany
;
/**
* 对账公司业务id
*/
@Schema
(
description
=
"对账公司业务id"
)
private
String
reconciliationCompanyBizId
;
/**
* 保單持有人
*/
@Schema
(
description
=
"保單持有人"
)
private
String
policyHolder
;
/**
* 受保人
*/
@Schema
(
description
=
"受保人"
)
private
String
insured
;
/**
* 币种
*/
@Schema
(
description
=
"币种"
)
private
String
currency
;
/**
* 首期保费(不含徽费,预缴保费)
*/
@Schema
(
description
=
"首期保费(不含徽费,预缴保费)"
)
private
Object
initialPremium
;
@Schema
(
description
=
"新单修改Dto"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
PolicyFollowUpdateDto
policyFollowUpdateDto
;
/**
* 转介人列表
...
...
@@ -164,10 +30,4 @@ public class PolicyFollowUpdateRequest {
*/
@Schema
(
description
=
"保单邮寄"
)
private
PolicyMailing
policyMailing
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
}
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
View file @
ef356fcb
...
...
@@ -127,6 +127,11 @@ public class PolicyFollow implements Serializable {
*/
private
String
paymentNumber
;
/**
* 产品业务id
*/
private
String
productBizId
;
/**
* 产品名称
*/
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
ef356fcb
...
...
@@ -9,21 +9,17 @@ import com.yd.auth.core.utils.SecurityUtil;
import
com.yd.common.enums.CommonEnum
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.model.PolicyFollowRecord
;
import
com.yd.csf.service.service.PolicyBrokerService
;
import
com.yd.csf.service.service.PolicyFollowRecordService
;
import
com.yd.csf.service.service.PolicyFollowService
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.dao.PolicyFollowMapper
;
import
com.yd.csf.service.service.PolicyService
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -49,6 +45,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
private
PolicyFollowService
policyFollowService
;
@Resource
private
PolicyFollowRecordService
policyFollowRecordService
;
@Resource
private
PolicyFollowFileService
policyFollowFileService
;
@Override
...
...
@@ -117,12 +115,18 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
updatePolicyFollow
(
PolicyFollowUpdateRequest
policyFollowUpdateRequest
)
{
String
policyBizId
=
policyFollowUpdateRequest
.
getPolicyBizId
();
PolicyFollowUpdateDto
policyFollowUpdateDto
=
policyFollowUpdateRequest
.
getPolicyFollowUpdateDto
();
// 校验参数
if
(
policyFollowUpdateDto
==
null
||
StringUtils
.
isBlank
(
policyFollowUpdateDto
.
getPolicyBizId
()))
{
throw
new
BusinessException
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
String
policyBizId
=
policyFollowUpdateDto
.
getPolicyBizId
();
PolicyFollow
policyFollow
=
getByPolicyBizId
(
policyBizId
);
if
(
policyFollow
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
ErrorCode
.
NOT_FOUND_ERROR
.
getMessage
());
}
BeanUtils
.
copyProperties
(
policyFollowUpdate
Request
,
policyFollow
,
"id"
,
"policyBizId"
);
BeanUtils
.
copyProperties
(
policyFollowUpdate
Dto
,
policyFollow
,
"id"
,
"policyBizId"
);
// 设置核保信息
setValidPolicyInfo
(
policyFollow
,
policyFollowUpdateRequest
.
getVerifyPolicyInfo
());
// 设置保单邮寄
...
...
@@ -262,7 +266,9 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
changePolicyFollowStatus
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
)
{
if
(
changePolicyFollowStatusRequest
==
null
||
StringUtils
.
isBlank
(
changePolicyFollowStatusRequest
.
getPolicyBizId
()))
{
throw
new
BusinessException
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
String
policyBizId
=
changePolicyFollowStatusRequest
.
getPolicyBizId
();
PolicyFollow
policyFollow
=
getByPolicyBizId
(
policyBizId
);
if
(
policyFollow
==
null
)
{
...
...
@@ -325,17 +331,29 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Override
public
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
)
{
String
policyBizId
=
attachmentUploadRequest
.
getPolicyBizId
();
PolicyFollow
policyFollow
=
getByPolicyBizId
(
policyBizId
);
if
(
policyFollow
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
ErrorCode
.
NOT_FOUND_ERROR
.
getMessage
());
if
(
policyBizId
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
String
fileName
=
attachmentUploadRequest
.
getFileName
();
if
(
fileName
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"fileName不能为空"
);
}
String
fileUrl
=
attachmentUploadRequest
.
getFileUrl
();
if
(
fileUrl
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"fileUrl不能为空"
);
}
String
ossFileBizId
=
attachmentUploadRequest
.
getOssFileBizId
();
if
(
ossFileBizId
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"ossFileBizId不能为空"
);
}
policyFollow
.
setAttachments
(
String
.
join
(
","
,
attachmentUploadRequest
.
getAttachmentList
()));
PolicyFollow
updateObj
=
new
PolicyFollow
();
updateObj
.
setId
(
policyFollow
.
getId
());
updateObj
.
setAttachments
(
policyFollow
.
getAttachments
());
PolicyFollowFile
policyFollowFile
=
new
PolicyFollowFile
();
policyFollowFile
.
setPolicyBizId
(
attachmentUploadRequest
.
getPolicyBizId
());
policyFollowFile
.
setOssFileBizId
(
attachmentUploadRequest
.
getOssFileBizId
());
policyFollowFile
.
setFileName
(
attachmentUploadRequest
.
getFileName
());
policyFollowFile
.
setFileUrl
(
attachmentUploadRequest
.
getFileUrl
());
return
updateById
(
updateObj
);
return
policyFollowFileService
.
save
(
policyFollowFile
);
}
private
static
void
validPolicyFollowStatus
(
PolicyFollowStatusEnum
currentStatusEnum
,
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
...
...
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