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
42a22807
Commit
42a22807
authored
Dec 29, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前端对接问题修复8
parent
e67b5c06
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
288 additions
and
74 deletions
+288
-74
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
+60
-9
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
+5
-5
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
+4
-3
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
+2
-3
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionPageResponse.java
+21
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionQueryRequest.java
+6
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortunePageResponse.java
+16
-0
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneQueryRequest.java
+32
-4
yd-csf-service/src/main/java/com/yd/csf/service/dto/GenerateFortuneRequest.java
+7
-4
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowAddRequest.java
+8
-2
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateDto.java
+8
-8
yd-csf-service/src/main/java/com/yd/csf/service/model/Policy.java
+6
-4
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+44
-12
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+15
-2
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionStatisticsVO.java
+39
-9
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
+2
-2
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyVO.java
+8
-2
yd-csf-service/src/main/resources/mappers/PolicyMapper.xml
+5
-5
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionController.java
View file @
42a22807
...
...
@@ -17,8 +17,10 @@ import com.yd.csf.service.enums.CommissionStatusEnum;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.CommissionCompareRecord
;
import
com.yd.csf.service.model.CommissionEditRecord
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.vo.CommissionStatisticsVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.apache.commons.collections4.CollectionUtils
;
...
...
@@ -68,6 +70,8 @@ public class ApiCommissionController {
private
RedissonClient
redissonClient
;
@Resource
private
CommissionAsyncService
commissionAsyncService
;
@Resource
private
PolicyFollowService
policyFollowService
;
@PostMapping
(
"/upload/excel"
)
...
...
@@ -101,9 +105,31 @@ public class ApiCommissionController {
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"当前来佣检核年月所有记录都已检核成功,不允许上传新记录,若需更新请手动操作"
);
}
// 数据校验
// 数据
完整性
校验
validateCommissionUpload
(
dataList
);
// 校验保单是否存在
Set
<
String
>
policyNos
=
dataList
.
stream
()
.
map
(
CommissionExcelDTO:
:
getPolicyNo
)
.
filter
(
StringUtils:
:
isNotBlank
)
.
collect
(
Collectors
.
toSet
());
Map
<
String
,
PolicyFollow
>
policyFollowMap
=
policyFollowService
.
list
(
new
LambdaQueryWrapper
<
PolicyFollow
>().
in
(
PolicyFollow:
:
getPolicyNo
,
policyNos
))
.
stream
().
collect
(
Collectors
.
toMap
(
PolicyFollow:
:
getPolicyNo
,
policyFollow
->
policyFollow
));
StringBuilder
errorMsg
=
new
StringBuilder
();
for
(
CommissionExcelDTO
excelDTO
:
dataList
)
{
if
(
StringUtils
.
isNotBlank
(
excelDTO
.
getPolicyNo
()))
{
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
excelDTO
.
getPolicyNo
());
if
(
ObjectUtils
.
isEmpty
(
policyFollow
))
{
errorMsg
.
append
(
"第"
).
append
(
dataList
.
indexOf
(
excelDTO
)
+
1
).
append
(
"行保单不存在"
);
}
}
}
if
(
StringUtils
.
isNotBlank
(
errorMsg
))
{
errorMsg
.
append
(
"\n请确认新单跟进中保单是否存在,若不存在请先添加保单"
);
throw
new
BusinessException
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
errorMsg
.
toString
());
}
// 获取当前登录用户的ID
AuthUserDto
currentLoginUser
=
SecurityUtil
.
getCurrentLoginUser
();
String
loginUserId
=
currentLoginUser
.
getId
().
toString
();
...
...
@@ -195,9 +221,8 @@ public class ApiCommissionController {
@Operation
(
summary
=
"生成实际出账(发佣)记录"
)
public
Result
<
Boolean
>
generateFortune
(
@RequestBody
GenerateFortuneRequest
generateFortuneRequest
,
HttpServletRequest
request
)
{
LocalDate
payoutYearMonth
=
generateFortuneRequest
.
getPayoutYearMonth
();
if
(
payoutYearMonth
==
null
)
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"预计出账年月不能为空"
);
if
(
CollectionUtils
.
isEmpty
(
generateFortuneRequest
.
getPolicyNoList
()))
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"保单号列表不能为空"
);
}
return
Result
.
success
(
commissionService
.
generateFortune
(
generateFortuneRequest
));
}
...
...
@@ -422,7 +447,7 @@ public class ApiCommissionController {
*/
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"来佣检核页面-分页获取保单来佣列表"
)
public
Result
<
Map
<
String
,
Object
>>
listPolicyFollow
ByPage
(
@RequestBody
CommissionQueryRequest
commissionQueryRequest
,
public
Result
<
CommissionPageResponse
>
listCommission
ByPage
(
@RequestBody
CommissionQueryRequest
commissionQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
commissionQueryRequest
.
getPageNo
();
long
size
=
commissionQueryRequest
.
getPageSize
();
...
...
@@ -438,10 +463,36 @@ public class ApiCommissionController {
List
<
Long
>
commissionIds
=
commissionList
.
stream
().
map
(
Commission:
:
getId
).
collect
(
Collectors
.
toList
());
CommissionStatisticsVO
commissionStatisticsVO
=
commissionService
.
getCommissionStatistics
(
commissionIds
);
// 组装返回值
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"commissionStatisticsVO"
,
commissionStatisticsVO
);
map
.
put
(
"page"
,
commissionService
.
getCommissionVOPage
(
commissionPage
));
return
Result
.
success
(
map
);
CommissionPageResponse
commissionPageResponse
=
new
CommissionPageResponse
();
commissionPageResponse
.
setCommissionStatisticsVO
(
commissionStatisticsVO
);
commissionPageResponse
.
setPage
(
commissionService
.
getCommissionVOPage
(
commissionPage
));
return
Result
.
success
(
commissionPageResponse
);
}
/**
* 入账记录
*
* @param commissionQueryRequest
* @param request
* @return
*/
@PostMapping
(
"/pageByCommissionexpectedBizId"
)
@Operation
(
summary
=
"入账记录"
)
public
Result
<
Page
<
CommissionVO
>>
pageByCommissionexpectedBizId
(
@RequestBody
CommissionQueryRequest
commissionQueryRequest
,
HttpServletRequest
request
)
{
if
(
ObjectUtils
.
isEmpty
(
commissionQueryRequest
.
getCommissionExpectedBizId
()))
{
return
Result
.
fail
(
ResultCode
.
PARAMS_ERROR
.
getCode
(),
"commissionExpectedBizId 不能为空"
);
}
long
current
=
commissionQueryRequest
.
getPageNo
();
long
size
=
commissionQueryRequest
.
getPageSize
();
// 查询列表数据
QueryWrapper
<
Commission
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"commission_expected_biz_id"
,
commissionQueryRequest
.
getCommissionExpectedBizId
());
Page
<
Commission
>
commissionPage
=
commissionService
.
page
(
new
Page
<>(
current
,
size
),
queryWrapper
);
// 组装返回值
return
Result
.
success
(
commissionService
.
getCommissionVOPage
(
commissionPage
));
}
}
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiFortuneController.java
View file @
42a22807
...
...
@@ -474,7 +474,7 @@ public class ApiFortuneController {
*/
@PostMapping
(
"/list/page/vo"
)
@Operation
(
summary
=
"出账检核页面-分页获取保单发佣列表(VO)"
)
public
Result
<
Map
<
String
,
Object
>
>
listFortuneByPage
(
@RequestBody
FortuneQueryRequest
fortuneQueryRequest
,
public
Result
<
FortunePageResponse
>
listFortuneByPage
(
@RequestBody
FortuneQueryRequest
fortuneQueryRequest
,
HttpServletRequest
request
)
{
long
current
=
fortuneQueryRequest
.
getPageNo
();
long
size
=
fortuneQueryRequest
.
getPageSize
();
...
...
@@ -489,10 +489,10 @@ public class ApiFortuneController {
FortuneStatisticsVO
statisticsVO
=
fortuneService
.
getFortuneStatistics
(
fortuneList
.
stream
().
map
(
Fortune:
:
getId
).
collect
(
Collectors
.
toList
()));
// 组装返回结果
Map
<
String
,
Object
>
result
=
new
HashMap
<>
();
res
ult
.
put
(
"statisticsVO"
,
statisticsVO
);
res
ult
.
put
(
"page"
,
fortuneService
.
getFortuneVOPage
(
fortunePage
));
return
Result
.
success
(
res
ult
);
FortunePageResponse
response
=
new
FortunePageResponse
();
res
ponse
.
setStatisticsVO
(
statisticsVO
);
res
ponse
.
setPage
(
fortuneService
.
getFortuneVOPage
(
fortunePage
));
return
Result
.
success
(
res
ponse
);
}
/**
...
...
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiPolicyFollowController.java
View file @
42a22807
...
...
@@ -216,11 +216,12 @@ public class ApiPolicyFollowController {
Set
<
String
>
policyNos
=
dtoList
.
stream
()
.
map
(
PolicyExcelDTO:
:
getPolicyNo
)
.
collect
(
Collectors
.
toSet
());
List
<
Policy
>
existingPolicies
=
policyService
.
lambdaQuery
()
.
in
(
Policy:
:
getPolicyNo
,
policyNos
)
List
<
PolicyFollow
>
existingPolicies
=
policyFollowService
.
lambdaQuery
()
.
select
(
PolicyFollow:
:
getPolicyNo
)
.
in
(
PolicyFollow:
:
getPolicyNo
,
policyNos
)
.
list
();
Set
<
String
>
existingPolicyNos
=
existingPolicies
.
stream
()
.
map
(
Policy:
:
getPolicyNo
)
.
map
(
Policy
Follow
:
:
getPolicyNo
)
.
collect
(
Collectors
.
toSet
());
if
(
CollectionUtils
.
isNotEmpty
(
existingPolicyNos
))
{
validateMsg
=
"保单号 "
+
String
.
join
(
", "
,
existingPolicyNos
)
+
" 已存在,请检查后重新上传!"
;
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentServiceImpl.java
View file @
42a22807
...
...
@@ -825,7 +825,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
policy
.
setId
(
null
);
policy
.
setPolicyBizId
(
policyBizId
);
policy
.
setP
lan
BizId
(
planBizId
);
policy
.
setP
roductLaunch
BizId
(
planBizId
);
policy
.
setStatus
(
PolicyStatusEnum
.
INFORCE
.
getItemValue
());
// 投保人姓名
if
(
Objects
.
nonNull
(
apiPolicyholderInfoDto
))
{
...
...
@@ -846,12 +846,11 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
// 首期保费(不含徽费,预缴保费)每期保费
policy
.
setInitialPremium
(
productPlan
.
getEachIssuePremium
());
// 保险公司
policy
.
setInsur
er
(
productPlan
.
getCompanyName
());
policy
.
setInsur
anceCompany
(
productPlan
.
getCompanyName
());
// 是否预缴
policy
.
setIsPrepaid
(
Integer
.
parseInt
(
productPlan
.
getIsPrepay
()));
// 转保声明选项(字典)
policy
.
setPolicyTransfer
(
policyTransfer
);
policy
.
setInsurer
(
productPlan
.
getCompanyName
());
policy
.
setCreateTime
(
new
Date
());
policy
.
setUpdateTime
(
new
Date
());
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionPageResponse.java
0 → 100644
View file @
42a22807
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.vo.CommissionStatisticsVO
;
import
com.yd.csf.service.vo.CommissionVO
;
import
lombok.Data
;
/**
* 来佣检核页面-分页获取保单来佣列表
*/
@Data
public
class
CommissionPageResponse
{
/**
* 来佣统计信息
*/
private
CommissionStatisticsVO
commissionStatisticsVO
;
/**
* 来佣列表
*/
private
Page
<
CommissionVO
>
page
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionQueryRequest.java
View file @
42a22807
...
...
@@ -17,6 +17,12 @@ import java.util.List;
@Data
public
class
CommissionQueryRequest
extends
PageDto
implements
Serializable
{
/**
* 预计入账 id
*/
@Schema
(
description
=
"预计入账 id"
)
private
String
commissionExpectedBizId
;
/**
* 检核年月
*/
@Schema
(
description
=
"检核年月 格式: yyyy-MM"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortunePageResponse.java
0 → 100644
View file @
42a22807
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.vo.FortuneVO
;
import
lombok.Data
;
/**
* 出账检核页面-分页获取保单发佣列表(VO)
*/
@Data
public
class
FortunePageResponse
{
private
FortuneStatisticsVO
statisticsVO
;
private
Page
<
FortuneVO
>
page
;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/FortuneQueryRequest.java
View file @
42a22807
package
com
.
yd
.
csf
.
service
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.common.dto.PageDto
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.time.LocalDate
;
import
java.util.List
;
/**
...
...
@@ -17,8 +19,8 @@ public class FortuneQueryRequest extends PageDto implements Serializable {
/**
* 出账状态
*/
@Schema
(
description
=
"出账状态 0=待出账 1=可出账,待检核 2=完成出账 3=部分出账 4=保留 5=已失效 6=可出账,检核完成, 字典值: csf_fortune_status"
)
private
String
status
;
@Schema
(
description
=
"出账状态
,可多选
0=待出账 1=可出账,待检核 2=完成出账 3=部分出账 4=保留 5=已失效 6=可出账,检核完成, 字典值: csf_fortune_status"
)
private
List
<
String
>
statusList
;
/**
* 保单号
...
...
@@ -27,9 +29,35 @@ public class FortuneQueryRequest extends PageDto implements Serializable {
private
String
policyNo
;
/**
*
检核日期
*
保险公司业务 id 列表
*/
@Schema
(
description
=
"检核日期"
)
@Schema
(
description
=
"保险公司业务 id 列表"
)
private
List
<
String
>
insuranceCompanyBizIdList
;
/**
* 产品计划业务 id 列表
*/
@Schema
(
description
=
"产品计划业务 id 列表"
)
private
List
<
String
>
productLaunchBizIdList
;
/**
* 出账日(估)开始
*/
@Schema
(
description
=
"出账日(估)开始 格式:yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
LocalDate
payoutDateStart
;
/**
* 出账日(估)结束
*/
@Schema
(
description
=
"出账日(估)结束 格式:yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
LocalDate
payoutDateEnd
;
/**
* 检核年月
*/
@Schema
(
description
=
"检核年月,格式:yyyy-MM"
)
private
String
reconciliationYearMonth
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/GenerateFortuneRequest.java
View file @
42a22807
...
...
@@ -10,13 +10,16 @@ import java.util.List;
@Data
public
class
GenerateFortuneRequest
{
// @Schema(description = "佣金业务id列表")
@Schema
(
description
=
"保单号列表"
)
private
List
<
String
>
policyNoList
;
// @Schema(description = "入账业务id列表")
// private List<String> commissionBizIdList;
//
// @Schema(description = "expected fortune id 列表")
// private List<Long> expectedFortuneIdList;
@Schema
(
description
=
"预计出账年月
"
)
@JsonFormat
(
pattern
=
"yyyy-MM"
)
private
LocalDate
payoutYearMonth
;
// @Schema(description = "检核年月,格式:yyyy-MM
")
//
@JsonFormat(pattern = "yyyy-MM")
//
private LocalDate payoutYearMonth;
}
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowAddRequest.java
View file @
42a22807
...
...
@@ -79,6 +79,12 @@ public class PolicyFollowAddRequest implements Serializable {
private
String
productName
;
/**
* 产品计划业务id
*/
@Schema
(
description
=
"产品计划业务id"
)
private
String
productLaunchBizId
;
/**
* 产品类别
*/
@Schema
(
description
=
"产品类别"
)
...
...
@@ -88,13 +94,13 @@ public class PolicyFollowAddRequest implements Serializable {
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insur
er
;
private
String
insur
anceCompany
;
/**
* 保险公司业务id
*/
@Schema
(
description
=
"保险公司业务id"
)
private
String
insur
er
BizId
;
private
String
insur
anceCompany
BizId
;
/**
* 对账公司
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dto/PolicyFollowUpdateDto.java
View file @
42a22807
...
...
@@ -67,14 +67,14 @@ public class PolicyFollowUpdateDto implements Serializable {
* 生效日期
*/
@Schema
(
description
=
"生效日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
effectiveDate
;
/**
* 续保日期
*/
@Schema
(
description
=
"续保日期"
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
renewalDate
;
/**
...
...
@@ -102,10 +102,10 @@ public class PolicyFollowUpdateDto implements Serializable {
private
Integer
prepaidTerm
;
/**
* 产品业务id
* 产品
计划
业务id
*/
@Schema
(
description
=
"产品业务id"
)
private
String
productBizId
;
@Schema
(
description
=
"产品
计划
业务id"
)
private
String
product
Launch
BizId
;
/**
* 产品名称
...
...
@@ -123,13 +123,13 @@ public class PolicyFollowUpdateDto implements Serializable {
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insur
er
;
private
String
insur
anceCompany
;
/**
* 保险公司业务id
*/
@Schema
(
description
=
"保险公司业务id"
)
private
String
insur
er
BizId
;
private
String
insur
anceCompany
BizId
;
/**
* 对账公司
...
...
@@ -189,7 +189,7 @@ public class PolicyFollowUpdateDto implements Serializable {
* 最晚缴费日期
*/
@Schema
(
description
=
"最晚缴费日期 格式: yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
latestPaymentDate
;
/**
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Policy.java
View file @
42a22807
...
...
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
...
...
@@ -38,9 +40,9 @@ public class Policy implements Serializable {
private
String
userBizId
;
/**
* 产品业务id
* 产品
计划
业务id
*/
private
String
p
lan
BizId
;
private
String
p
roductLaunch
BizId
;
/**
* 产品代码
...
...
@@ -60,12 +62,12 @@ public class Policy implements Serializable {
/**
* 保险公司
*/
private
String
insur
er
;
private
String
insur
anceCompany
;
/**
* 保险公司业务id
*/
private
String
insur
er
BizId
;
private
String
insur
anceCompany
BizId
;
/**
* 地区
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
42a22807
...
...
@@ -334,7 +334,25 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Boolean
generateFortune
(
GenerateFortuneRequest
generateFortuneRequest
)
{
LocalDate
payoutYearMonth
=
generateFortuneRequest
.
getPayoutYearMonth
();
// 查询所有保单号对应的入账记录
List
<
String
>
policyNoList
=
generateFortuneRequest
.
getPolicyNoList
();
QueryWrapper
<
Commission
>
queryWrapperCommission
=
new
QueryWrapper
<>();
queryWrapperCommission
.
in
(
"policy_no"
,
policyNoList
);
queryWrapperCommission
.
orderByAsc
(
"reconciliation_year_month"
);
List
<
Commission
>
commissionList0
=
this
.
list
(
queryWrapperCommission
);
if
(
CollectionUtils
.
isEmpty
(
commissionList0
))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"根据保单号查询对应的入账记录失败"
);
}
// 获取最新的检核年月
String
currentYearMonth
=
null
;
for
(
Commission
commission
:
commissionList0
)
{
if
(
StringUtils
.
isNotBlank
(
commission
.
getReconciliationYearMonth
()))
{
currentYearMonth
=
commission
.
getReconciliationYearMonth
();
break
;
}
}
LocalDate
payoutYearMonth
=
LocalDate
.
parse
(
currentYearMonth
+
"-01"
,
DateTimeFormatter
.
ofPattern
(
"yyyy-MM"
));
if
(
ObjectUtils
.
isEmpty
(
payoutYearMonth
))
{
throw
new
BusinessException
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"请选择预计出账年月"
);
}
...
...
@@ -772,20 +790,34 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
@Override
public
CommissionStatisticsVO
getCommissionStatistics
(
List
<
Long
>
commissionIds
)
{
if
(
CollectionUtils
.
isEmpty
(
commissionIds
))
{
CommissionStatisticsVO
commissionStatisticsVO
=
new
CommissionStatisticsVO
();
commissionStatisticsVO
.
setTotalPaidAmount
(
BigDecimal
.
ZERO
);
commissionStatisticsVO
.
setExpectePaidAmount
(
BigDecimal
.
ZERO
);
commissionStatisticsVO
.
setPendingPaidAmount
(
BigDecimal
.
ZERO
);
commissionStatisticsVO
.
setDifferenceAmount
(
BigDecimal
.
ZERO
);
commissionStatisticsVO
.
setTotalPolicyCount
(
0
);
commissionStatisticsVO
.
setTotalPremium
(
BigDecimal
.
ZERO
);
commissionStatisticsVO
.
setReconciliationCompanyCount
(
0
);
commissionStatisticsVO
.
setTotalCompareCommissionCount
(
0
);
commissionStatisticsVO
.
setSuccessCompareCommissionCount
(
0
);
commissionStatisticsVO
.
setFailedCompareCommissionCount
(
0
);
return
commissionStatisticsVO
;
}
// 自定义统计数据
CommissionStatisticsVO
commissionStatistics
=
baseMapper
.
getCommissionStatistics
(
commissionIds
);
BigDecimal
totalAmount
=
commissionStatistics
.
getTotalAmount
();
BigDecimal
totalPaidAmount
=
commissionStatistics
.
getTotalPaidAmount
();
// 计算待入账金额
commissionStatistics
.
setPendingPaidAmount
(
totalAmount
.
subtract
(
totalPaidAmount
));
// 计算已入账比例
BigDecimal
divided
=
BigDecimal
.
ZERO
;
if
(
totalAmount
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
divided
=
totalPaidAmount
.
divide
(
totalAmount
,
4
,
RoundingMode
.
HALF_UP
);
}
// 格式化 %
commissionStatistics
.
setPaidAmountRatio
(
String
.
format
(
"%.2f%%"
,
divided
.
doubleValue
()
*
100
)
);
//
BigDecimal totalAmount = commissionStatistics.getTotalAmount();
//
BigDecimal totalPaidAmount = commissionStatistics.getTotalPaidAmount();
//
// 计算待入账金额
//
commissionStatistics.setPendingPaidAmount(totalAmount.subtract(totalPaidAmount));
//
// 计算已入账比例
//
BigDecimal divided = BigDecimal.ZERO;
//
if (totalAmount.compareTo(BigDecimal.ZERO) > 0) {
// divided = totalPaidAmount.divide(totalAmount, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)
);
//
}
//
// 格式化 %
// commissionStatistics.setPaidAmountRatio(divided
);
return
commissionStatistics
;
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
42a22807
...
...
@@ -27,6 +27,7 @@ import com.yd.csf.service.service.IExpectedFortuneService;
import
com.yd.csf.service.vo.CommissionVO
;
import
com.yd.csf.service.vo.FortuneVO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
...
...
@@ -68,10 +69,22 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
if
(
fortuneQueryRequest
==
null
)
{
return
queryWrapper
;
}
String
status
=
fortuneQueryRequest
.
getStatus
();
String
reconciliationYearMonth
=
fortuneQueryRequest
.
getReconciliationYearMonth
();
List
<
String
>
statusList
=
fortuneQueryRequest
.
getStatusList
();
String
policyNo
=
fortuneQueryRequest
.
getPolicyNo
();
queryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
status
),
"status"
,
status
);
List
<
String
>
insuranceCompanyBizIdList
=
fortuneQueryRequest
.
getInsuranceCompanyBizIdList
();
List
<
String
>
productLaunchBizIdList
=
fortuneQueryRequest
.
getProductLaunchBizIdList
();
LocalDate
payoutDateStart
=
fortuneQueryRequest
.
getPayoutDateStart
();
LocalDate
payoutDateEnd
=
fortuneQueryRequest
.
getPayoutDateEnd
();
queryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
reconciliationYearMonth
),
"reconciliation_year_month"
,
reconciliationYearMonth
);
queryWrapper
.
in
(
CollUtil
.
isNotEmpty
(
statusList
),
"status"
,
statusList
);
queryWrapper
.
eq
(
StringUtils
.
isNotBlank
(
policyNo
),
"policy_no"
,
policyNo
);
queryWrapper
.
in
(
CollUtil
.
isNotEmpty
(
insuranceCompanyBizIdList
),
"insurance_company_biz_id"
,
insuranceCompanyBizIdList
);
queryWrapper
.
in
(
CollUtil
.
isNotEmpty
(
productLaunchBizIdList
),
"product_launch_biz_id"
,
productLaunchBizIdList
);
queryWrapper
.
gt
(
ObjectUtils
.
isNotEmpty
(
payoutDateStart
),
"payout_date"
,
payoutDateStart
);
queryWrapper
.
lt
(
ObjectUtils
.
isNotEmpty
(
payoutDateEnd
),
"payout_date"
,
payoutDateEnd
);
queryWrapper
.
orderByAsc
(
"id"
);
return
queryWrapper
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionStatisticsVO.java
View file @
42a22807
...
...
@@ -12,16 +12,16 @@ import java.math.BigDecimal;
public
class
CommissionStatisticsVO
{
/**
*
总金额
*
入账金额(实)
*/
@Schema
(
description
=
"
总金额
"
)
private
BigDecimal
totalAmount
;
@Schema
(
description
=
"
入账金额(实)
"
)
private
BigDecimal
total
Paid
Amount
;
/**
*
总入账金额
*
入账金额(估)
*/
@Schema
(
description
=
"
总入账金额
"
)
private
BigDecimal
total
PaidAmount
;
@Schema
(
description
=
"
入账金额(估)
"
)
private
BigDecimal
expecte
PaidAmount
;
/**
* 待入账金额
...
...
@@ -30,10 +30,10 @@ public class CommissionStatisticsVO {
private
BigDecimal
pendingPaidAmount
;
/**
*
已入账比例(已入账金额/总金额
)
*
差额(估-实
)
*/
@Schema
(
description
=
"
已入账比例(已入账金额/总金额
)"
)
private
String
paidAmountRatio
;
@Schema
(
description
=
"
差额(估-实
)"
)
private
BigDecimal
differenceAmount
;
/**
* 总保单数
...
...
@@ -41,4 +41,34 @@ public class CommissionStatisticsVO {
@Schema
(
description
=
"总保单数"
)
private
Integer
totalPolicyCount
;
/**
* 总保费
*/
@Schema
(
description
=
"总保费(HKD)"
)
private
BigDecimal
totalPremium
;
/**
* 对账公司数
*/
@Schema
(
description
=
"对账公司数"
)
private
Integer
reconciliationCompanyCount
;
/**
* 总比对记录数
*/
@Schema
(
description
=
"总比对记录数"
)
private
Integer
totalCompareCommissionCount
;
/**
* 比对成功记录数
*/
@Schema
(
description
=
"比对成功记录数"
)
private
Integer
successCompareCommissionCount
;
/**
* 比对失败记录数
*/
@Schema
(
description
=
"比对失败记录数"
)
private
Integer
failedCompareCommissionCount
;
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyFollowDetailVO.java
View file @
42a22807
...
...
@@ -145,12 +145,12 @@ public class PolicyFollowDetailVO implements Serializable {
/**
* 保险公司
*/
private
String
insur
er
;
private
String
insur
anceCompany
;
/**
* 保险公司业务id
*/
private
String
insur
er
BizId
;
private
String
insur
anceCompany
BizId
;
/**
* 对账公司
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/PolicyVO.java
View file @
42a22807
...
...
@@ -42,6 +42,12 @@ public class PolicyVO {
private
String
productName
;
/**
* 产品计划业务id
*/
@Schema
(
description
=
"产品计划业务id"
)
private
String
productLaunchBizId
;
/**
* 产品类别
*/
@Schema
(
description
=
"产品类别"
)
...
...
@@ -51,13 +57,13 @@ public class PolicyVO {
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insur
er
;
private
String
insur
anceCompany
;
/**
* 保险公司业务id
*/
@Schema
(
description
=
"保险公司业务id"
)
private
String
insur
er
BizId
;
private
String
insur
anceCompany
BizId
;
/**
* 保單持有人
...
...
yd-csf-service/src/main/resources/mappers/PolicyMapper.xml
View file @
42a22807
...
...
@@ -9,12 +9,12 @@
<result
property=
"policyBizId"
column=
"policy_biz_id"
/>
<result
property=
"policyNo"
column=
"policy_no"
/>
<result
property=
"userBizId"
column=
"user_biz_id"
/>
<result
property=
"p
lanBizId"
column=
"plan
_biz_id"
/>
<result
property=
"p
roductLaunchBizId"
column=
"product_launch
_biz_id"
/>
<result
property=
"productCode"
column=
"product_code"
/>
<result
property=
"productName"
column=
"product_name"
/>
<result
property=
"productCate"
column=
"product_cate"
/>
<result
property=
"insur
er"
column=
"insurer
"
/>
<result
property=
"insur
erBizId"
column=
"insurer
_biz_id"
/>
<result
property=
"insur
anceCompany"
column=
"insurance_company
"
/>
<result
property=
"insur
anceCompanyBizId"
column=
"insurance_company
_biz_id"
/>
<result
property=
"region"
column=
"region"
/>
<result
property=
"policyHolder"
column=
"policy_holder"
/>
<result
property=
"insured"
column=
"insured"
/>
...
...
@@ -52,8 +52,8 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id,policy_biz_id,policy_no,user_biz_id,p
lan
_biz_id,product_code,
product_name,product_cate,insur
er,insurer
_biz_id,region,
id,policy_biz_id,policy_no,user_biz_id,p
roduct_launch
_biz_id,product_code,
product_name,product_cate,insur
ance_company,insurance_company
_biz_id,region,
policy_holder,insured,sum_insured,payment_term,payment_frequency,payment_premium,
status,currency,initial_premium,sign_date,issue_date,
effective_date,cooling_off_end_date,cooling_off_days,renewal_date,is_prepaid,deductibles,prepaid_term,
...
...
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