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
2c719fe5
Commit
2c719fe5
authored
Oct 29, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进2
parent
f77c68b0
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
249 additions
and
15 deletions
+249
-15
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+2
-2
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
+1
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/ChangePolicyFollowStatusRequest.java
+2
-8
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateRequest.java
+12
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyMailing.java
+35
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/VerifyPolicyInfo.java
+79
-0
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
+31
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
+3
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+52
-5
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
+32
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
2c719fe5
...
...
@@ -369,8 +369,8 @@ public class ApiPolicyFollowController {
@PostMapping
(
"/update"
)
@Operation
(
summary
=
"更新新单跟进信息"
)
public
Result
<
Boolean
>
updatePolicyFollow
(
@RequestBody
PolicyFollowUpdateRequest
policyFollowUpdateRequest
)
{
if
(
policyFollowUpdateRequest
==
null
||
policyFollowUpdateRequest
.
getPolicyBizId
()
==
null
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
ErrorCode
.
PARAMS_ERROR
.
getMessage
()
);
if
(
policyFollowUpdateRequest
==
null
||
StringUtils
.
isBlank
(
policyFollowUpdateRequest
.
getPolicyBizId
())
)
{
return
Result
.
fail
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
"policyBizId不能为空"
);
}
return
Result
.
success
(
policyFollowService
.
updatePolicyFollow
(
policyFollowUpdateRequest
));
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
View file @
2c719fe5
...
...
@@ -415,6 +415,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
follow
.
setCustomerBizId
(
appointment
.
getCustomerBizId
());
//待跟进
follow
.
setStatus
(
PolicyFollowStatusEnum
.
FOLLOW_UP
.
getItemValue
());
follow
.
setNextStatusList
(
policyFollowService
.
getNextStatus
(
PolicyFollowStatusEnum
.
CHECKING
));
//TODO 保险公司业务id
// follow.setInsurerBizId();
//TODO 期交保费
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/ChangePolicyFollowStatusRequest.java
View file @
2c719fe5
...
...
@@ -15,9 +15,9 @@ public class ChangePolicyFollowStatusRequest {
private
String
policyBizId
;
/**
*
新单
状态
*
跟进
状态
*/
@Schema
(
description
=
"
新单状态 'CHECKING'-'文件检查中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消','FOLLOW_UP'-'待跟进', 字典值: policy_follow_status
"
)
@Schema
(
description
=
"
跟进状态 通过`PolicyFollowVO`中的nextStatusList下拉框选择
"
)
private
String
status
;
/**
...
...
@@ -25,10 +25,4 @@ public class ChangePolicyFollowStatusRequest {
*/
@Schema
(
description
=
"跟进信息"
)
private
String
message
;
/**
* 附件列表
*/
@Schema
(
description
=
"附件列表"
)
private
List
<
String
>
attachments
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateRequest.java
View file @
2c719fe5
...
...
@@ -154,6 +154,18 @@ public class PolicyFollowUpdateRequest {
private
List
<
PolicyBrokerDto
>
brokerList
;
/**
* 核保信息
*/
@Schema
(
description
=
"核保信息"
)
private
VerifyPolicyInfo
verifyPolicyInfo
;
/**
* 保单邮寄
*/
@Schema
(
description
=
"保单邮寄"
)
private
PolicyMailing
policyMailing
;
/**
* 备注
*/
@Schema
(
description
=
"备注"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyMailing.java
0 → 100644
View file @
2c719fe5
package
com
.
yd
.
csf
.
service
.
dto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
PolicyMailing
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 寄送方式
*/
@Schema
(
description
=
"寄送方式"
)
private
String
mailingMethod
;
/**
* 经纪公司签收日期
*/
@Schema
(
description
=
"经纪公司签收日期"
)
private
String
brokerSignDate
;
/**
* 保险公司寄出日期
*/
@Schema
(
description
=
"保险公司寄出日期"
)
private
String
insurerMailingDate
;
/**
* 客户签收日期
*/
@Schema
(
description
=
"客户签收日期"
)
private
String
customerSignDate
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/VerifyPolicyInfo.java
0 → 100644
View file @
2c719fe5
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.util.Date
;
@Data
public
class
VerifyPolicyInfo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 保险种类
*/
@Schema
(
description
=
"保险种类"
)
private
String
productCate
;
/**
* 递交日期
*/
@Schema
(
description
=
"递交日期"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
submitDate
;
/**
* 签单日期
*/
@Schema
(
description
=
"签单日期"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
signDate
;
/**
* 缮发日期
*/
@Schema
(
description
=
"缮发日期"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
issueDate
;
/**
* 保单生效日
*/
@Schema
(
description
=
"保单生效日"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
effectiveDate
;
/**
* 是否预缴: 0-否, 1-是
*/
@Schema
(
description
=
"是否预缴: 0-否, 1-是"
)
private
Integer
isPrepaid
;
/**
* 预付额
*/
@Schema
(
description
=
"预付额"
)
private
String
prepaidAmount
;
/**
* 折扣后预付额
*/
@Schema
(
description
=
"折扣后预付额"
)
private
String
prepaidAmountAfterDiscount
;
/**
* 保单截止日期
*/
@Schema
(
description
=
"保单截止日期"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
policyExpirationDate
;
/**
* 缴费编号
*/
@Schema
(
description
=
"缴费编号"
)
private
String
paymentNumber
;
}
yd-csf-service/src/main/java/com/yd/csf/service/model/PolicyFollow.java
View file @
2c719fe5
...
...
@@ -6,6 +6,7 @@ import java.io.Serializable;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
...
...
@@ -56,6 +57,11 @@ public class PolicyFollow implements Serializable {
*/
private
String
customerName
;
/**
* 递交日期
*/
private
Date
submitDate
;
/**
* 签单日期
*/
...
...
@@ -156,6 +162,11 @@ public class PolicyFollow implements Serializable {
*/
private
String
status
;
/**
* 下一步跟进状态列表
*/
private
String
nextStatusList
;
/**
* 保單持有人
*/
...
...
@@ -177,6 +188,26 @@ public class PolicyFollow implements Serializable {
private
Object
initialPremium
;
/**
* 寄送方式
*/
private
String
mailingMethod
;
/**
* 经纪公司签收日期
*/
private
String
brokerSignDate
;
/**
* 保险公司寄出日期
*/
private
String
insurerMailingDate
;
/**
* 客户签收日期
*/
private
String
customerSignDate
;
/**
* 附件列表
*/
private
String
attachments
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyFollowService.java
View file @
2c719fe5
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
...
...
@@ -33,4 +34,6 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Boolean
changePolicyFollowStatus
(
ChangePolicyFollowStatusRequest
changePolicyFollowStatusRequest
);
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
);
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
2c719fe5
...
...
@@ -116,15 +116,17 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
updatePolicyFollow
(
PolicyFollowUpdateRequest
policyFollowUpdateRequest
)
{
if
(
policyFollowUpdateRequest
==
null
||
ObjectUtils
.
isEmpty
(
policyFollowUpdateRequest
.
getPolicyBizId
()))
{
throw
new
BusinessException
(
ErrorCode
.
PARAMS_ERROR
.
getCode
(),
ErrorCode
.
PARAMS_ERROR
.
getMessage
());
}
String
policyBizId
=
policyFollowUpdateRequest
.
getPolicyBizId
();
PolicyFollow
policyFollow
=
getByPolicyBizId
(
policyBizId
);
if
(
policyFollow
==
null
)
{
throw
new
BusinessException
(
ErrorCode
.
NOT_FOUND_ERROR
.
getCode
(),
ErrorCode
.
NOT_FOUND_ERROR
.
getMessage
());
}
BeanUtils
.
copyProperties
(
policyFollowUpdateRequest
,
policyFollow
,
"id"
,
"policyBizId"
);
// 设置核保信息
setValidPolicyInfo
(
policyFollow
,
policyFollowUpdateRequest
.
getVerifyPolicyInfo
());
// 设置保单邮寄
setPolicyMailing
(
policyFollow
,
policyFollowUpdateRequest
.
getPolicyMailing
());
// 获取当前登录用户
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
...
...
@@ -153,6 +155,30 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return
updateById
(
policyFollow
);
}
private
void
setPolicyMailing
(
PolicyFollow
policyFollow
,
PolicyMailing
policyMailing
)
{
if
(
policyMailing
==
null
)
{
return
;
}
policyFollow
.
setMailingMethod
(
policyMailing
.
getMailingMethod
());
policyFollow
.
setBrokerSignDate
(
policyMailing
.
getBrokerSignDate
());
policyFollow
.
setInsurerMailingDate
(
policyMailing
.
getInsurerMailingDate
());
policyFollow
.
setCustomerSignDate
(
policyMailing
.
getCustomerSignDate
());
}
private
void
setValidPolicyInfo
(
PolicyFollow
policyFollow
,
VerifyPolicyInfo
verifyPolicyInfo
)
{
if
(
verifyPolicyInfo
==
null
)
{
return
;
}
policyFollow
.
setSubmitDate
(
verifyPolicyInfo
.
getSubmitDate
());
policyFollow
.
setSignDate
(
verifyPolicyInfo
.
getSignDate
());
policyFollow
.
setIssueDate
(
verifyPolicyInfo
.
getIssueDate
());
policyFollow
.
setEffectiveDate
(
verifyPolicyInfo
.
getEffectiveDate
());
policyFollow
.
setIsPrepaid
(
verifyPolicyInfo
.
getIsPrepaid
());
policyFollow
.
setPrepaidAmount
(
verifyPolicyInfo
.
getPrepaidAmount
());
policyFollow
.
setPrepaidAmountAfterDiscount
(
verifyPolicyInfo
.
getPrepaidAmountAfterDiscount
());
policyFollow
.
setPolicyExpirationDate
(
verifyPolicyInfo
.
getPolicyExpirationDate
());
}
@Override
public
PolicyFollowVO
getPolicyFollowVO
(
PolicyFollow
policyFollow
)
{
if
(
policyFollow
==
null
)
{
...
...
@@ -257,6 +283,7 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
String
loginUserId
=
currentLoginUser
.
getId
().
toString
();
policyFollow
.
setStatus
(
changePolicyFollowStatusRequest
.
getStatus
());
policyFollow
.
setNextStatusList
(
getNextStatus
(
policyFollowStatusEnum
));
policyFollow
.
setUpdaterId
(
loginUserId
);
policyFollowService
.
updateById
(
policyFollow
);
...
...
@@ -274,6 +301,21 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
@Override
public
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
switch
(
policyFollowStatusEnum
)
{
case
CHECKING:
return
PolicyFollowStatusEnum
.
UNDERWRITING
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
case
UNDERWRITING:
return
PolicyFollowStatusEnum
.
FINISHED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
DECLINED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
default
:
return
null
;
}
}
@Override
public
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
)
{
String
policyBizId
=
attachmentUploadRequest
.
getPolicyBizId
();
PolicyFollow
policyFollow
=
getByPolicyBizId
(
policyBizId
);
...
...
@@ -290,6 +332,11 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
private
static
void
validPolicyFollowStatus
(
PolicyFollowStatusEnum
currentStatusEnum
,
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
// 如果是已取消,则不校验
if
(
PolicyFollowStatusEnum
.
CANCELLED
.
equals
(
policyFollowStatusEnum
))
{
return
;
}
if
(
PolicyFollowStatusEnum
.
FOLLOW_UP
.
equals
(
currentStatusEnum
)
&&
!
PolicyFollowStatusEnum
.
CHECKING
.
equals
(
policyFollowStatusEnum
))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"待跟进状态只能改为文件检查中"
);
}
...
...
@@ -297,8 +344,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"文件检查中状态只能改为承保中"
);
}
if
(
PolicyFollowStatusEnum
.
UNDERWRITING
.
equals
(
currentStatusEnum
))
{
if
(
PolicyFollowStatusEnum
.
FINISHED
.
equals
(
policyFollowStatusEnum
)
||
PolicyFollowStatusEnum
.
DECLINED
.
equals
(
policyFollowStatusEnum
)
||
PolicyFollowStatusEnum
.
CANCELLED
.
equals
(
policyFollowStatusEnum
)
)
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"承保中状态只能改为已完成"
);
if
(
PolicyFollowStatusEnum
.
FINISHED
.
equals
(
policyFollowStatusEnum
)
||
PolicyFollowStatusEnum
.
DECLINED
.
equals
(
policyFollowStatusEnum
))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"承保中状态只能改为已完成
或已拒绝
"
);
}
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
View file @
2c719fe5
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.dto.PolicyMailing
;
import
com.yd.csf.service.dto.VerifyPolicyInfo
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.yd.csf.service.model.PolicyFollow
;
...
...
@@ -10,6 +12,7 @@ import org.springframework.beans.BeanUtils;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -168,6 +171,12 @@ public class PolicyFollowVO implements Serializable {
@Schema
(
description
=
"新单跟进状态 字典值: policy_follow_status"
)
private
String
status
;
/**
* 下一步跟进状态列表
*/
@Schema
(
description
=
"下一步跟进状态列表, 下拉框"
)
private
List
<
String
>
nextStatusList
;
/**
* 保單持有人
*/
...
...
@@ -199,6 +208,18 @@ public class PolicyFollowVO implements Serializable {
private
List
<
PolicyBroker
>
brokerList
;
/**
* 核保信息
*/
@Schema
(
description
=
"核保信息"
)
private
VerifyPolicyInfo
verifyPolicyInfo
;
/**
* 保单邮寄
*/
@Schema
(
description
=
"保单邮寄"
)
private
PolicyMailing
policyMailing
;
/**
* 保单信息
*/
// private Policy policy;
...
...
@@ -216,6 +237,17 @@ public class PolicyFollowVO implements Serializable {
}
PolicyFollowVO
policyFollowVO
=
new
PolicyFollowVO
();
BeanUtils
.
copyProperties
(
policyFollow
,
policyFollowVO
);
if
(
policyFollow
.
getNextStatusList
()
!=
null
)
{
policyFollowVO
.
setNextStatusList
(
Arrays
.
asList
(
policyFollow
.
getNextStatusList
().
split
(
","
)));
}
VerifyPolicyInfo
verifyPolicyInfo
=
new
VerifyPolicyInfo
();
BeanUtils
.
copyProperties
(
policyFollow
,
verifyPolicyInfo
);
policyFollowVO
.
setVerifyPolicyInfo
(
verifyPolicyInfo
);
PolicyMailing
policyMailing
=
new
PolicyMailing
();
BeanUtils
.
copyProperties
(
policyFollow
,
policyMailing
);
policyFollowVO
.
setPolicyMailing
(
policyMailing
);
return
policyFollowVO
;
}
}
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