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
6e67a84d
Commit
6e67a84d
authored
Nov 06, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进44
parent
f9872b2c
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
331 additions
and
21 deletions
+331
-21
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+3
-17
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
+45
-4
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
+283
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
6e67a84d
...
...
@@ -21,6 +21,7 @@ import com.yd.csf.service.dto.*;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.vo.PolicyFollowDetailVO
;
import
com.yd.csf.service.vo.PolicyFollowRecordVO
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
import
io.swagger.v3.oas.annotations.Operation
;
...
...
@@ -488,7 +489,7 @@ public class ApiPolicyFollowController {
*/
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"分页获取新单跟进列表"
)
public
Result
<
Page
<
PolicyFollow
>>
listPolicyFollowByPage
(
@RequestBody
PolicyFollowQueryRequest
policyFollowQueryRequest
,
public
Result
<
Page
<
PolicyFollow
DetailVO
>>
listPolicyFollowByPage
(
@RequestBody
PolicyFollowQueryRequest
policyFollowQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
policyFollowQueryRequest
.
getPageNo
();
long
size
=
policyFollowQueryRequest
.
getPageSize
();
...
...
@@ -496,22 +497,7 @@ public class ApiPolicyFollowController {
// 查询数据库
Page
<
PolicyFollow
>
policyFollowPage
=
policyFollowService
.
page
(
new
Page
<>(
current
,
size
),
policyFollowService
.
getQueryWrapper
(
policyFollowQueryRequest
));
// 处理 nextStatusList 字段
policyFollowPage
.
getRecords
().
forEach
(
policyFollow
->
{
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
);
}
policyFollow
.
setNextStatusList
(
statusMapList
);
}
});
return
Result
.
success
(
policyFollowPage
);
return
Result
.
success
(
policyFollowService
.
getPolicyFollowDetailVOList
(
policyFollowPage
));
}
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyFollowServiceImpl.java
View file @
6e67a84d
...
...
@@ -10,9 +10,6 @@ import com.yd.common.enums.CommonEnum;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.feign.dto.appointment.ApiProductPlanAdditionalInfoDto
;
import
com.yd.csf.feign.dto.appointment.ApiProductPlanInfoDto
;
import
com.yd.csf.feign.dto.appointment.ApiProductPlanMainInfoDto
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.PolicyFollowStatusEnum
;
...
...
@@ -20,9 +17,9 @@ import com.yd.csf.service.model.*;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.dao.PolicyFollowMapper
;
import
com.yd.csf.service.utils.AsyncQueryUtil
;
import
com.yd.csf.service.vo.PolicyFollowDetailVO
;
import
com.yd.csf.service.vo.PolicyFollowVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
...
...
@@ -454,6 +451,50 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
}
@Override
public
Page
<
PolicyFollowDetailVO
>
getPolicyFollowDetailVOList
(
Page
<
PolicyFollow
>
policyFollowPage
)
{
List
<
PolicyFollow
>
policyFollowList
=
policyFollowPage
.
getRecords
();
Page
<
PolicyFollowDetailVO
>
policyFollowDetailVOPage
=
new
Page
<>(
policyFollowPage
.
getCurrent
(),
policyFollowPage
.
getSize
(),
policyFollowPage
.
getTotal
());
if
(
CollUtil
.
isEmpty
(
policyFollowList
))
{
return
policyFollowDetailVOPage
;
}
// 处理 nextStatusList 字段
policyFollowList
.
forEach
(
policyFollow
->
{
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
);
}
policyFollow
.
setNextStatusList
(
statusMapList
);
}
});
// 对象列表 => 封装对象列表
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
);
return
policyFollowDetailVOPage
;
}
@Override
public
Boolean
uploadAttachment
(
AttachmentUploadRequest
attachmentUploadRequest
)
{
String
policyBizId
=
attachmentUploadRequest
.
getPolicyBizId
();
if
(
policyBizId
==
null
)
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
0 → 100644
View file @
6e67a84d
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.yd.csf.service.model.PolicyFollow
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.springframework.beans.BeanUtils
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* 新单跟进 DetailVO
*/
@Data
public
class
PolicyFollowDetailVO
implements
Serializable
{
/**
* id
*/
private
Long
id
;
/**
* 新单跟进唯一业务ID
*/
private
String
policyBizId
;
/**
* 保单号
*/
private
String
policyNo
;
/**
* 预约信息主表唯一业务ID
*/
private
String
appointmentBizId
;
/**
* 预约编号
*/
private
String
appointmentNo
;
/**
* 用户业务id
*/
private
String
userBizId
;
/**
* 客户业务id
*/
private
String
customerBizId
;
/**
* 客户名称
*/
private
String
customerName
;
/**
* 递交日期
*/
private
Date
submitDate
;
/**
* 签单日期
*/
private
Date
signDate
;
/**
* 签单人
*/
private
String
signer
;
/**
* 缮发日期
*/
private
Date
issueDate
;
/**
* 生效日期
*/
private
Date
effectiveDate
;
/**
* 续保日期
*/
private
Date
renewalDate
;
/**
* 供款年期
*/
private
Object
paymentTerm
;
/**
* 期交保费
*/
private
BigDecimal
paymentPremium
;
/**
* 是否预缴: 0-否, 1-是
*/
private
Integer
isPrepaid
;
/**
* 预缴年期
*/
private
Integer
prepaidTerm
;
/**
* 预付额
*/
private
String
prepaidAmount
;
/**
* 折扣后预付额
*/
private
String
prepaidAmountAfterDiscount
;
/**
* 保单截止日期
*/
private
Date
policyExpirationDate
;
/**
* 缴费编号
*/
private
String
paymentNumber
;
/**
* 产品业务id
*/
private
String
productBizId
;
/**
* 产品名称
*/
private
String
productName
;
/**
* 产品类别
*/
private
String
productCate
;
/**
* 保险公司
*/
private
String
insurer
;
/**
* 保险公司业务id
*/
private
String
insurerBizId
;
/**
* 对账公司
*/
private
String
reconciliationCompany
;
/**
* 对账公司业务id
*/
private
String
reconciliationCompanyBizId
;
/**
* 新单跟进状态
*/
private
String
status
;
/**
* 下一步跟进状态列表
*/
private
Object
nextStatusList
;
/**
* 保單持有人
*/
private
String
policyHolder
;
/**
* 受保人
*/
private
String
insured
;
/**
* 币种
*/
private
String
currency
;
/**
* 首期保费(不含徽费,预缴保费)
*/
private
Object
initialPremium
;
/**
* 寄送方式 1-自提, 2-快递
*/
private
String
mailingMethod
;
/**
* 快递单号
*/
private
String
deliveryNo
;
/**
* 经纪公司签收日期
*/
private
String
brokerSignDate
;
/**
* 保险公司寄出日期
*/
private
String
insurerMailingDate
;
/**
* 客户签收日期
*/
private
String
customerSignDate
;
/**
* 附件列表
*/
private
String
attachments
;
/**
* 转介人
*/
@Schema
(
description
=
"转介人"
)
private
List
<
PolicyBroker
>
brokerList
;
/**
* 备注
*/
private
String
remark
;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField
()
private
Integer
isDeleted
;
/**
* 创建人ID
*/
private
String
creatorId
;
/**
* 更新人ID
*/
private
String
updaterId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
@TableField
(
exist
=
false
)
private
static
final
long
serialVersionUID
=
1L
;
/**
* 对象转封装类
*
* @param policyFollow
* @return
*/
public
static
PolicyFollowDetailVO
objToVo
(
PolicyFollow
policyFollow
)
{
if
(
policyFollow
==
null
)
{
return
null
;
}
PolicyFollowDetailVO
PolicyFollowDetailVO
=
new
PolicyFollowDetailVO
();
PolicyFollowDetailVO
.
setPolicyBizId
(
policyFollow
.
getPolicyBizId
());
// 转换PolicyFollow
BeanUtils
.
copyProperties
(
policyFollow
,
PolicyFollowDetailVO
);
return
PolicyFollowDetailVO
;
}
}
\ No newline at end of file
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