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
ea3a0adc
Commit
ea3a0adc
authored
Jan 14, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test
parents
e7f5d876
d6bd43b9
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
166 additions
and
139 deletions
+166
-139
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
+3
-3
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowQueryRequest.java
+12
-11
yd-csf-service/src/main/java/com/yd/csf/service/enums/PolicyFollowStatusEnum.java
+27
-7
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+54
-64
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowVO.java
+68
-52
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
ea3a0adc
...
@@ -561,7 +561,7 @@ public class ApiPolicyFollowController {
...
@@ -561,7 +561,7 @@ public class ApiPolicyFollowController {
*/
*/
@PostMapping
(
"/list/page/vo"
)
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"分页获取新单跟进列表"
)
@Operation
(
summary
=
"分页获取新单跟进列表"
)
public
Result
<
Page
<
PolicyFollow
Detail
VO
>>
listPolicyFollowByPage
(
@RequestBody
PolicyFollowQueryRequest
policyFollowQueryRequest
,
public
Result
<
Page
<
PolicyFollowVO
>>
listPolicyFollowByPage
(
@RequestBody
PolicyFollowQueryRequest
policyFollowQueryRequest
,
HttpServletRequest
request
)
{
HttpServletRequest
request
)
{
long
current
=
policyFollowQueryRequest
.
getPageNo
();
long
current
=
policyFollowQueryRequest
.
getPageNo
();
long
size
=
policyFollowQueryRequest
.
getPageSize
();
long
size
=
policyFollowQueryRequest
.
getPageSize
();
...
@@ -569,7 +569,7 @@ public class ApiPolicyFollowController {
...
@@ -569,7 +569,7 @@ public class ApiPolicyFollowController {
// 查询数据库
// 查询数据库
Page
<
PolicyFollow
>
policyFollowPage
=
policyFollowService
.
page
(
new
Page
<>(
current
,
size
),
Page
<
PolicyFollow
>
policyFollowPage
=
policyFollowService
.
page
(
new
Page
<>(
current
,
size
),
policyFollowService
.
getQueryWrapper
(
policyFollowQueryRequest
));
policyFollowService
.
getQueryWrapper
(
policyFollowQueryRequest
));
return
Result
.
success
(
policyFollowService
.
getPolicyFollow
DetailVOList
(
policyFollowPage
));
return
Result
.
success
(
policyFollowService
.
getPolicyFollow
VOPage
(
policyFollowPage
));
}
}
/**
/**
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
View file @
ea3a0adc
...
@@ -622,9 +622,9 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
...
@@ -622,9 +622,9 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
//客户名称
//客户名称
follow
.
setCustomerName
(
customer
.
getNamePyEn
());
follow
.
setCustomerName
(
customer
.
getNamePyEn
());
}
}
//待
跟进
//待
签单
follow
.
setStatus
(
PolicyFollowStatusEnum
.
FOLLOW_UP
.
getItemValue
());
follow
.
setStatus
(
PolicyFollowStatusEnum
.
PENDING_SIGN
.
getItemValue
());
follow
.
setNextStatusList
(
policyFollowService
.
getNextStatus
(
PolicyFollowStatusEnum
.
FOLLOW_UP
));
follow
.
setNextStatusList
(
policyFollowService
.
getNextStatus
(
PolicyFollowStatusEnum
.
PENDING_SIGN
));
//TODO 保险公司业务id
//TODO 保险公司业务id
// follow.setInsurerBizId();
// follow.setInsurerBizId();
//TODO 期交保费
//TODO 期交保费
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowQueryRequest.java
View file @
ea3a0adc
...
@@ -7,7 +7,7 @@ import lombok.Data;
...
@@ -7,7 +7,7 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.
time.Local
Date
;
import
java.
util.
Date
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -24,9 +24,9 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
...
@@ -24,9 +24,9 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
private
String
policyNo
;
private
String
policyNo
;
/**
/**
* 新单状态
* 新单
跟进
状态
*/
*/
@Schema
(
description
=
"新单状态
'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消'
, 字典值: csf_policy_follow_status"
)
@Schema
(
description
=
"新单状态, 字典值: csf_policy_follow_status"
)
private
String
status
;
private
String
status
;
/**
/**
...
@@ -40,33 +40,33 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
...
@@ -40,33 +40,33 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
*/
*/
@Schema
(
description
=
"签单日期开始 格式: yyyy-MM-dd"
,
example
=
"2023-01-01"
,
format
=
"yyyy-MM-dd"
)
@Schema
(
description
=
"签单日期开始 格式: yyyy-MM-dd"
,
example
=
"2023-01-01"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Local
Date
signDateStart
;
private
Date
signDateStart
;
/**
/**
* 签单日结束
* 签单日结束
*/
*/
@Schema
(
description
=
"签单日期结束 格式: yyyy-MM-dd"
,
example
=
"2023-01-01"
,
format
=
"yyyy-MM-dd"
)
@Schema
(
description
=
"签单日期结束 格式: yyyy-MM-dd"
,
example
=
"2023-01-01"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Local
Date
signDateEnd
;
private
Date
signDateEnd
;
/**
/**
* 最晚缴费日期
* 最晚缴费日期
*/
*/
@Schema
(
description
=
"最晚缴费日期 格式: yyyy-MM-dd"
,
example
=
"2023-01-01"
,
format
=
"yyyy-MM-dd"
)
@Schema
(
description
=
"最晚缴费日期 格式: yyyy-MM-dd"
,
example
=
"2023-01-01"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Local
Date
latestPaymentDate
;
private
Date
latestPaymentDate
;
/**
/**
* 投保人业务id列表
* 投保人业务id列表
*/
*/
@Schema
(
description
=
"投保人业务id列表"
)
//
@Schema(description = "投保人业务id列表")
private
List
<
String
>
policyholderBizIdList
;
//
private List<String> policyholderBizIdList;
/**
/**
* 受保人业务id列表
* 受保人业务id列表
*/
*/
@Schema
(
description
=
"受保人业务id列表"
)
//
@Schema(description = "受保人业务id列表")
private
List
<
String
>
policyInsurantBizIdList
;
//
private List<String> policyInsurantBizIdList;
/**
/**
* 保险公司业务id列表
* 保险公司业务id列表
...
@@ -84,7 +84,7 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
...
@@ -84,7 +84,7 @@ public class PolicyFollowQueryRequest extends PageDto implements Serializable {
* 缴费年期
* 缴费年期
*/
*/
@Schema
(
description
=
"缴费年期"
)
@Schema
(
description
=
"缴费年期"
)
private
String
paymentTerm
;
private
String
issueNumber
;
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
}
}
\ No newline at end of file
yd-csf-service/src/main/java/com/yd/csf/service/enums/PolicyFollowStatusEnum.java
View file @
ea3a0adc
...
@@ -3,16 +3,22 @@ package com.yd.csf.service.enums;
...
@@ -3,16 +3,22 @@ package com.yd.csf.service.enums;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
/**
/**
* 新单跟进状态枚举
'CHECKING'-'审核中','UNDERWRITING'-'承保中','FINISHED'-'已完成','DECLINED'-'已拒绝','CANCELLED'-'已取消'
* 新单跟进状态枚举
*/
*/
public
enum
PolicyFollowStatusEnum
{
public
enum
PolicyFollowStatusEnum
{
FOLLOW_UP
(
"待跟进"
,
"FOLLOW_UP"
),
PENDING_SIGN
(
"待签单"
,
"PENDING_SIGN"
),
CHECKING
(
"文件检查中"
,
"CHECKING"
),
SIGNED
(
"已签单"
,
"SIGNED"
),
UNDERWRITING
(
"承保中"
,
"UNDERWRITING"
),
WAITING_PAYMENT
(
"等待汇款"
,
"WAITING_PAYMENT"
),
FINISHED
(
"已完成"
,
"FINISHED"
),
PREMIUM_RECONCILING
(
"首期保费对账中"
,
"PREMIUM_RECONCILING"
),
DECLINED
(
"已拒绝"
,
"DECLINED"
),
PREMIUM_RECONCILED_UNDERWRITING
(
"保费对账成功,核保中"
,
"PREMIUM_RECONCILED_UNDERWRITING"
),
CANCELLED
(
"已取消"
,
"CANCELLED"
),
EFFECTIVE
(
"生效"
,
"EFFECTIVE"
),
CANCELLED
(
"取消投保"
,
"CANCELLED"
),
DECLINED
(
"拒保"
,
"DECLINED"
),
DELAYED_UNDERWRITING
(
"延缓承保"
,
"DELAYED_UNDERWRITING"
),
LAPSED
(
"失效"
,
"LAPSED"
),
CLOSED
(
"关闭"
,
"CLOSED"
),
;
;
//字典项标签(名称)
//字典项标签(名称)
private
String
itemLabel
;
private
String
itemLabel
;
//字典项值
//字典项值
...
@@ -68,4 +74,18 @@ public enum PolicyFollowStatusEnum {
...
@@ -68,4 +74,18 @@ public enum PolicyFollowStatusEnum {
return
null
;
return
null
;
}
}
/**
* 状态映射为中文
*
* @param status
* @return
*/
public
static
String
mapStatusToLabel
(
String
status
)
{
PolicyFollowStatusEnum
policyFollowStatusEnum
=
getEnumByValue
(
status
);
if
(
policyFollowStatusEnum
==
null
)
{
return
""
;
}
return
policyFollowStatusEnum
.
getItemLabel
();
}
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
ea3a0adc
...
@@ -44,6 +44,8 @@ import org.springframework.stereotype.Service;
...
@@ -44,6 +44,8 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.time.LocalDate
;
import
java.time.ZoneId
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
...
@@ -99,13 +101,30 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -99,13 +101,30 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
}
String
policyNo
=
policyFollowQueryRequest
.
getPolicyNo
();
String
policyNo
=
policyFollowQueryRequest
.
getPolicyNo
();
String
status
=
policyFollowQueryRequest
.
getStatus
();
String
appointmentNo
=
policyFollowQueryRequest
.
getAppointmentNo
();
String
appointmentNo
=
policyFollowQueryRequest
.
getAppointmentNo
();
Date
signDateStart
=
policyFollowQueryRequest
.
getSignDateStart
();
Date
signDateEnd
=
policyFollowQueryRequest
.
getSignDateEnd
();
Date
latestPaymentDate
=
policyFollowQueryRequest
.
getLatestPaymentDate
();
List
<
String
>
insuranceCompanyBizIdList
=
policyFollowQueryRequest
.
getInsuranceCompanyBizIdList
();
List
<
String
>
productLaunchBizIdList
=
policyFollowQueryRequest
.
getProductLaunchBizIdList
();
String
issueNumber
=
policyFollowQueryRequest
.
getIssueNumber
();
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
policyNo
),
"policy_no"
,
policyNo
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
policyNo
),
"policy_no"
,
policyNo
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
status
),
"status"
,
status
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
appointmentNo
),
"appointment_no"
,
appointmentNo
);
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
appointmentNo
),
"appointment_no"
,
appointmentNo
);
queryWrapper
.
ge
(
ObjectUtils
.
isNotEmpty
(
signDateStart
),
"sign_date"
,
signDateStart
);
queryWrapper
.
le
(
ObjectUtils
.
isNotEmpty
(
signDateEnd
),
"sign_date"
,
signDateEnd
);
queryWrapper
.
ge
(
ObjectUtils
.
isNotEmpty
(
latestPaymentDate
),
"latest_payment_date"
,
latestPaymentDate
);
// 排序
if
(
CollectionUtils
.
isNotEmpty
(
insuranceCompanyBizIdList
))
{
queryWrapper
.
in
(
"insurance_company_biz_id"
,
insuranceCompanyBizIdList
);
}
if
(
CollectionUtils
.
isNotEmpty
(
productLaunchBizIdList
))
{
queryWrapper
.
in
(
"product_launch_biz_id"
,
productLaunchBizIdList
);
}
queryWrapper
.
eq
(
ObjectUtils
.
isNotEmpty
(
issueNumber
),
"issue_number"
,
issueNumber
);
// 排序:按创建时间倒序
queryWrapper
.
orderByDesc
(
"id"
);
queryWrapper
.
orderByDesc
(
"id"
);
return
queryWrapper
;
return
queryWrapper
;
...
@@ -121,20 +140,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -121,20 +140,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
// 对象列表 => 封装对象列表
// 对象列表 => 封装对象列表
List
<
PolicyFollowVO
>
policyFollowVOList
=
policyFollowList
.
stream
().
map
(
PolicyFollowVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
List
<
PolicyFollowVO
>
policyFollowVOList
=
policyFollowList
.
stream
().
map
(
PolicyFollowVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
// 关联查询转介人
List
<
String
>
policyBizIdList
=
policyFollowList
.
stream
().
map
(
PolicyFollow:
:
getPolicyBizId
).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
policyBizIdList
))
{
// 转介人业务id列表 => 转介人列表
List
<
PolicyBroker
>
policyBrokerList
=
policyBrokerService
.
list
(
new
QueryWrapper
<
PolicyBroker
>().
in
(
"policy_biz_id"
,
policyBizIdList
));
// 转介人列表 => 转介人业务id列表
Map
<
String
,
List
<
PolicyBroker
>>
brokerMap
=
policyBrokerList
.
stream
().
collect
(
Collectors
.
groupingBy
(
PolicyBroker:
:
getPolicyBizId
));
// 转介人列表 => 封装转介人列表
policyFollowVOList
.
forEach
(
policyFollowVO
->
{
List
<
PolicyBroker
>
brokerList
=
brokerMap
.
get
(
policyFollowVO
.
getPolicyBizId
());
policyFollowVO
.
setBrokerList
(
brokerList
);
});
}
return
policyFollowVOPage
.
setRecords
(
policyFollowVOList
);
return
policyFollowVOPage
.
setRecords
(
policyFollowVOList
);
}
}
...
@@ -242,8 +247,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -242,8 +247,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
// 关联查询转介人
// 关联查询转介人
QueryWrapper
<
PolicyBroker
>
queryWrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
PolicyBroker
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"policy_biz_id"
,
policyFollow
.
getPolicyBizId
());
queryWrapper
.
eq
(
"policy_biz_id"
,
policyFollow
.
getPolicyBizId
());
List
<
PolicyBroker
>
policyBrokerList
=
policyBrokerService
.
list
(
queryWrapper
);
policyFollowVO
.
setBrokerList
(
policyBrokerList
);
return
policyFollowVO
;
return
policyFollowVO
;
}
}
...
@@ -378,24 +381,26 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -378,24 +381,26 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
}
// 获取当前跟进状态
// 获取当前跟进状态
PolicyFollowStatusEnum
currentStatusEnum
=
PolicyFollowStatusEnum
.
getEnumByValue
(
policyFollow
.
getStatus
());
PolicyFollowStatusEnum
currentStatusEnum
=
PolicyFollowStatusEnum
.
getEnumByValue
(
policyFollow
.
getStatus
());
// 校验状态是否可变更
// 校验状态是否可变更
- 终态状态不能变更
if
(
PolicyFollowStatusEnum
.
FINISHED
.
equals
(
currentStatusEnum
)
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
currentStatusEnum
)
||
PolicyFollowStatusEnum
.
DECLINED
.
equals
(
currentStatusEnum
)
||
PolicyFollowStatusEnum
.
DECLINED
.
equals
(
currentStatusEnum
)
||
PolicyFollowStatusEnum
.
CANCELLED
.
equals
(
currentStatusEnum
)
||
PolicyFollowStatusEnum
.
CANCELLED
.
equals
(
currentStatusEnum
)
||
PolicyFollowStatusEnum
.
CLOSED
.
equals
(
currentStatusEnum
)
||
PolicyFollowStatusEnum
.
LAPSED
.
equals
(
currentStatusEnum
)
)
{
)
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"
已完成、已拒绝、已取消
状态不能变更"
);
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"
生效、拒保、取消投保、关闭、失效
状态不能变更"
);
}
}
String
policyBizId
=
changePolicyFollowStatusRequest
.
getPolicyBizId
();
String
policyBizId
=
changePolicyFollowStatusRequest
.
getPolicyBizId
();
// 保单号和转接人都有的情况下,才能修改为
已完成
状态
// 保单号和转接人都有的情况下,才能修改为
生效
状态
if
(
PolicyFollowStatusEnum
.
FINISHED
.
equals
(
policyFollowStatusEnum
))
{
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
policyFollowStatusEnum
))
{
if
(
StringUtils
.
isBlank
(
policyFollow
.
getPolicyNo
()))
{
if
(
StringUtils
.
isBlank
(
policyFollow
.
getPolicyNo
()))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"保单号
和转接人都不能为空,才能修改为已完成
状态"
);
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"保单号
不能为空,才能修改为生效
状态"
);
}
}
boolean
exists
=
policyBrokerService
.
exists
(
new
QueryWrapper
<
PolicyBroker
>().
eq
(
"policy_biz_id"
,
policyBizId
));
boolean
exists
=
policyBrokerService
.
exists
(
new
QueryWrapper
<
PolicyBroker
>().
eq
(
"policy_biz_id"
,
policyBizId
));
if
(!
exists
)
{
if
(!
exists
)
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"
保单号和转接人都不能为空,才能修改为已完成
状态"
);
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"
转接人不能为空,才能修改为生效
状态"
);
}
}
}
}
...
@@ -408,8 +413,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -408,8 +413,8 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
policyFollow
.
setUpdaterId
(
loginUserId
);
policyFollow
.
setUpdaterId
(
loginUserId
);
policyFollowService
.
updateById
(
policyFollow
);
policyFollowService
.
updateById
(
policyFollow
);
// 如果是
已完成
状态,同步到保单库
// 如果是
生效
状态,同步到保单库
if
(
PolicyFollowStatusEnum
.
FINISHED
.
equals
(
policyFollowStatusEnum
))
{
if
(
PolicyFollowStatusEnum
.
EFFECTIVE
.
equals
(
policyFollowStatusEnum
))
{
addToPolicy
(
Collections
.
singletonList
(
policyFollow
.
getPolicyNo
()));
addToPolicy
(
Collections
.
singletonList
(
policyFollow
.
getPolicyNo
()));
}
}
...
@@ -428,9 +433,30 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -428,9 +433,30 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
@Override
@Override
public
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
public
String
getNextStatus
(
PolicyFollowStatusEnum
policyFollowStatusEnum
)
{
return
PolicyFollowStatusEnum
.
FINISHED
.
getItemValue
()
+
","
// 根据当前状态返回可能的下一步状态
switch
(
policyFollowStatusEnum
)
{
case
PENDING_SIGN:
return
PolicyFollowStatusEnum
.
SIGNED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
case
SIGNED:
return
PolicyFollowStatusEnum
.
WAITING_PAYMENT
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
case
WAITING_PAYMENT:
return
PolicyFollowStatusEnum
.
PREMIUM_RECONCILING
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
case
PREMIUM_RECONCILING:
return
PolicyFollowStatusEnum
.
PREMIUM_RECONCILED_UNDERWRITING
.
getItemValue
();
case
PREMIUM_RECONCILED_UNDERWRITING:
return
PolicyFollowStatusEnum
.
EFFECTIVE
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
DECLINED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
DELAYED_UNDERWRITING
.
getItemValue
();
case
DELAYED_UNDERWRITING:
return
PolicyFollowStatusEnum
.
PREMIUM_RECONCILED_UNDERWRITING
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
DECLINED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
DECLINED
.
getItemValue
()
+
","
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
+
PolicyFollowStatusEnum
.
CANCELLED
.
getItemValue
();
default
:
return
""
;
}
}
}
/**
/**
...
@@ -549,20 +575,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -549,20 +575,6 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
// 对象列表 => 封装对象列表
// 对象列表 => 封装对象列表
List
<
PolicyFollowDetailVO
>
policyFollowDetailVOList
=
policyFollowList
.
stream
().
map
(
PolicyFollowDetailVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
List
<
PolicyFollowDetailVO
>
policyFollowDetailVOList
=
policyFollowList
.
stream
().
map
(
PolicyFollowDetailVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
// 关联查询转介人
List
<
String
>
policyBizIdList
=
policyFollowList
.
stream
().
map
(
PolicyFollow:
:
getPolicyBizId
).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
policyBizIdList
))
{
// 转介人业务id列表 => 转介人列表
List
<
PolicyBroker
>
policyBrokerList
=
policyBrokerService
.
list
(
new
QueryWrapper
<
PolicyBroker
>().
in
(
"policy_biz_id"
,
policyBizIdList
));
// 转介人列表 => 转介人业务id列表
Map
<
String
,
List
<
PolicyBroker
>>
brokerMap
=
policyBrokerList
.
stream
().
collect
(
Collectors
.
groupingBy
(
PolicyBroker:
:
getPolicyBizId
));
// 转介人列表 => 封装转介人列表
policyFollowDetailVOList
.
forEach
(
policyFollowVO
->
{
List
<
PolicyBroker
>
brokerList
=
brokerMap
.
get
(
policyFollowVO
.
getPolicyBizId
());
policyFollowVO
.
setBrokerList
(
brokerList
);
});
}
policyFollowDetailVOPage
.
setRecords
(
policyFollowDetailVOList
);
policyFollowDetailVOPage
.
setRecords
(
policyFollowDetailVOList
);
return
policyFollowDetailVOPage
;
return
policyFollowDetailVOPage
;
}
}
...
@@ -674,27 +686,5 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
...
@@ -674,27 +686,5 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return
policyFollowFileService
.
save
(
policyFollowFile
);
return
policyFollowFileService
.
save
(
policyFollowFile
);
}
}
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
(),
"待跟进状态只能改为文件检查中"
);
}
if
(
PolicyFollowStatusEnum
.
CHECKING
.
equals
(
currentStatusEnum
)
&&
!
PolicyFollowStatusEnum
.
UNDERWRITING
.
equals
(
policyFollowStatusEnum
))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"文件检查中状态只能改为承保中"
);
}
if
(
PolicyFollowStatusEnum
.
UNDERWRITING
.
equals
(
currentStatusEnum
))
{
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 @
ea3a0adc
package
com
.
yd
.
csf
.
service
.
vo
;
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.
google.common.reflect.TypeToken
;
import
com.
fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.dto.PolicyFollowUpdateDto
;
import
com.yd.csf.service.dto.PolicyFollowUpdateDto
;
import
com.yd.csf.service.dto.PolicyMailing
;
import
com.yd.csf.service.dto.VerifyPolicyInfo
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.model.PolicyFollow
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -13,8 +10,6 @@ import org.springframework.beans.BeanUtils;
...
@@ -13,8 +10,6 @@ import org.springframework.beans.BeanUtils;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.*
;
import
java.util.*
;
import
com.yd.csf.service.utils.GSONUtil
;
import
com.yd.csf.service.dto.PolicySigner
;
/**
/**
* 新单跟进视图
* 新单跟进视图
...
@@ -24,6 +19,9 @@ public class PolicyFollowVO implements Serializable {
...
@@ -24,6 +19,9 @@ public class PolicyFollowVO implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@Schema
(
description
=
"policy follow id"
)
private
Long
id
;
/**
/**
* 新单跟进唯一业务ID
* 新单跟进唯一业务ID
*/
*/
...
@@ -31,40 +29,84 @@ public class PolicyFollowVO implements Serializable {
...
@@ -31,40 +29,84 @@ public class PolicyFollowVO implements Serializable {
private
String
policyBizId
;
private
String
policyBizId
;
/**
/**
*
下一步跟进状态列表
*
保单号
*/
*/
@Schema
(
description
=
"
下一步跟进状态列表, 下拉框
"
)
@Schema
(
description
=
"
保单号
"
)
private
Object
nextStatusList
;
private
String
policyNo
;
/**
/**
* 新单跟进
Dto
* 新单跟进
状态
*/
*/
@Schema
(
description
=
"新单跟进
Dto
"
)
@Schema
(
description
=
"新单跟进
状态
"
)
private
PolicyFollowUpdateDto
policyFollowUpdateDto
;
private
String
status
;
/**
/**
*
转介人
*
预约信息主表唯一业务ID
*/
*/
@Schema
(
description
=
"
转介人
"
)
@Schema
(
description
=
"
预约信息主表唯一业务ID
"
)
private
List
<
PolicyBroker
>
brokerList
;
private
String
appointmentBizId
;
/**
/**
*
核保信息
*
预约编号
*/
*/
@Schema
(
description
=
"
核保信息
"
)
@Schema
(
description
=
"
预约编号
"
)
private
VerifyPolicyInfo
verifyPolicyInf
o
;
private
String
appointmentN
o
;
/**
/**
*
保单邮寄
*
客户业务id
*/
*/
@Schema
(
description
=
"
保单邮寄
"
)
@Schema
(
description
=
"
客户业务id
"
)
private
PolicyMailing
policyMailing
;
private
String
customerBizId
;
/**
/**
*
保单信息
*
签单日
*/
*/
// private Policy policy;
@Schema
(
description
=
"签单日"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
signDate
;
/**
* 最晚缴费日
*/
@Schema
(
description
=
"最晚缴费日"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
latestPaymentDate
;
/**
* 保單持有人
*/
@Schema
(
description
=
"投保人"
)
private
String
policyHolder
;
/**
* 受保人
*/
@Schema
(
description
=
"受保人"
)
private
String
insured
;
/**
* 产品计划唯一业务ID
*/
@Schema
(
description
=
"产品计划唯一业务ID"
)
private
String
productLaunchBizId
;
/**
* 产品计划
*/
@Schema
(
description
=
"产品计划"
)
private
String
productName
;
/**
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insuranceCompany
;
/**
* 保险公司业务id
*/
@Schema
(
description
=
"保险公司业务id"
)
private
String
insuranceCompanyBizId
;
/**
/**
* 对象转封装类
* 对象转封装类
...
@@ -77,35 +119,9 @@ public class PolicyFollowVO implements Serializable {
...
@@ -77,35 +119,9 @@ public class PolicyFollowVO implements Serializable {
return
null
;
return
null
;
}
}
PolicyFollowVO
policyFollowVO
=
new
PolicyFollowVO
();
PolicyFollowVO
policyFollowVO
=
new
PolicyFollowVO
();
policyFollowVO
.
setPolicyBizId
(
policyFollow
.
getPolicyBizId
());
BeanUtils
.
copyProperties
(
policyFollow
,
policyFollowVO
);
// 状态映射为中文
// 转换PolicyFollowUpdateDto
policyFollowVO
.
setStatus
(
PolicyFollowStatusEnum
.
mapStatusToLabel
(
policyFollow
.
getStatus
()));
PolicyFollowUpdateDto
policyFollowUpdateDto
=
new
PolicyFollowUpdateDto
();
BeanUtils
.
copyProperties
(
policyFollow
,
policyFollowUpdateDto
);
policyFollowVO
.
setPolicyFollowUpdateDto
(
policyFollowUpdateDto
);
// 处理 nextStatusList 字段
Object
nextStatusList
=
policyFollow
.
getNextStatusList
();
if
(
nextStatusList
!=
null
&&
!
nextStatusList
.
toString
().
isEmpty
())
{
String
[]
statusArr
=
nextStatusList
.
toString
().
split
(
","
);
List
<
Map
<
String
,
String
>>
statusMapList
=
new
ArrayList
<>();
for
(
String
status
:
statusArr
)
{
Map
<
String
,
String
>
map
=
new
HashMap
<>();
map
.
put
(
"itemLabel"
,
PolicyFollowStatusEnum
.
getEnumByValue
(
status
).
getItemLabel
());
map
.
put
(
"itemValue"
,
status
);
statusMapList
.
add
(
map
);
}
policyFollowVO
.
setNextStatusList
(
statusMapList
);
}
VerifyPolicyInfo
verifyPolicyInfo
=
new
VerifyPolicyInfo
();
BeanUtils
.
copyProperties
(
policyFollow
,
verifyPolicyInfo
);
policyFollowVO
.
setVerifyPolicyInfo
(
verifyPolicyInfo
);
PolicyMailing
policyMailing
=
new
PolicyMailing
();
BeanUtils
.
copyProperties
(
policyFollow
,
policyMailing
);
policyFollowVO
.
setPolicyMailing
(
policyMailing
);
return
policyFollowVO
;
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