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
2a6e171a
Commit
2a6e171a
authored
Apr 28, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
e39120dc
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
595 additions
and
0 deletions
+595
-0
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+36
-0
yd-csf-api/src/main/java/com/yd/csf/api/dto/QueryCommissionExpectedByPageNewResponse.java
+18
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
+3
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+164
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedNewVO.java
+322
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedStatisticsNewVO.java
+52
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
2a6e171a
...
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
...
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.dto.QueryCommissionExpectedByPageNewResponse
;
import
com.yd.csf.api.dto.QueryCommissionExpectedByPageResponse
;
import
com.yd.csf.api.dto.QueryCommissionExpectedByPageResponse
;
import
com.yd.csf.api.dto.ReceivableReportResponse
;
import
com.yd.csf.api.dto.ReceivableReportResponse
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.common.ErrorCode
;
...
@@ -29,6 +30,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
...
@@ -29,6 +30,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
...
@@ -213,6 +215,40 @@ public class ApiCommissionExpectedController {
...
@@ -213,6 +215,40 @@ public class ApiCommissionExpectedController {
}
}
/**
/**
* 应收款管理列表查询
*
* @param commissionExpectedQueryRequest
* @return
*/
@PostMapping
(
"/queryCommissionExpectedByPage/new"
)
@Operation
(
summary
=
"应收款管理列表查询"
)
public
Result
<
QueryCommissionExpectedByPageNewResponse
>
queryCommissionExpectedByPageNew
(
@RequestBody
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
)
{
long
current
=
commissionExpectedQueryRequest
.
getPageNo
();
long
size
=
commissionExpectedQueryRequest
.
getPageSize
();
// 查询列表数据
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
commissionExpectedService
.
getQueryWrapper
(
commissionExpectedQueryRequest
);
Page
<
CommissionExpected
>
commissionExpectedPage
=
commissionExpectedService
.
page
(
new
Page
<>(
current
,
size
),
queryWrapper
);
// 查询统计数据
List
<
CommissionExpected
>
commissionExpectedList
=
commissionExpectedService
.
list
(
queryWrapper
);
// 计算统计数据
List
<
Long
>
expectedIds
=
commissionExpectedList
.
stream
().
map
(
CommissionExpected:
:
getId
).
collect
(
Collectors
.
toList
());
CommissionExpectedStatisticsVO
expectedStatisticsVO
=
commissionExpectedService
.
getExpectedStatistics
(
expectedIds
);
CommissionExpectedStatisticsNewVO
statisticsNewVO
=
null
;
if
(
expectedStatisticsVO
!=
null
)
{
statisticsNewVO
=
new
CommissionExpectedStatisticsNewVO
();
BeanUtils
.
copyProperties
(
expectedStatisticsVO
,
statisticsNewVO
);
}
// 组装返回值
QueryCommissionExpectedByPageNewResponse
response
=
new
QueryCommissionExpectedByPageNewResponse
();
response
.
setExpectedStatisticsVO
(
statisticsNewVO
);
response
.
setPage
(
commissionExpectedService
.
getCommissionExpectedVONewPage
(
commissionExpectedPage
));
return
Result
.
success
(
response
);
}
/**
* 应收款导出
* 应收款导出
*
*
* @param commissionExpectedQueryRequest
* @param commissionExpectedQueryRequest
...
...
yd-csf-api/src/main/java/com/yd/csf/api/dto/QueryCommissionExpectedByPageNewResponse.java
0 → 100644
View file @
2a6e171a
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.vo.CommissionExpectedNewVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsNewVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
@Data
@Schema
(
description
=
"查询预计来佣分页响应"
)
public
class
QueryCommissionExpectedByPageNewResponse
{
@Schema
(
description
=
"预计来佣统计信息"
)
private
CommissionExpectedStatisticsNewVO
expectedStatisticsVO
;
@Schema
(
description
=
"预计来佣分页列表"
)
private
Page
<
CommissionExpectedNewVO
>
page
;
}
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
View file @
2a6e171a
...
@@ -10,6 +10,7 @@ import com.yd.csf.service.dto.CommissionExpectedUpdateRequest;
...
@@ -10,6 +10,7 @@ import com.yd.csf.service.dto.CommissionExpectedUpdateRequest;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.model.Policy
;
import
com.yd.csf.service.vo.CommissionExpectedNewVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
...
@@ -27,6 +28,8 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
...
@@ -27,6 +28,8 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
Page
<
CommissionExpectedVO
>
getCommissionExpectedVOPage
(
Page
<
CommissionExpected
>
commissionExpectedPage
);
Page
<
CommissionExpectedVO
>
getCommissionExpectedVOPage
(
Page
<
CommissionExpected
>
commissionExpectedPage
);
Page
<
CommissionExpectedNewVO
>
getCommissionExpectedVONewPage
(
Page
<
CommissionExpected
>
commissionExpectedPage
);
/**
/**
* 校验数据
* 校验数据
*
*
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
2a6e171a
...
@@ -30,6 +30,7 @@ import com.yd.csf.service.service.*;
...
@@ -30,6 +30,7 @@ import com.yd.csf.service.service.*;
import
com.yd.csf.service.dao.CommissionExpectedMapper
;
import
com.yd.csf.service.dao.CommissionExpectedMapper
;
import
com.yd.csf.service.model.SpeciesCondition
;
import
com.yd.csf.service.model.SpeciesCondition
;
import
com.yd.csf.service.helper.SpeciesConditionMatcher
;
import
com.yd.csf.service.helper.SpeciesConditionMatcher
;
import
com.yd.csf.service.vo.CommissionExpectedNewVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
...
@@ -149,6 +150,169 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -149,6 +150,169 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return
CommissionExpectedVOPage
;
return
CommissionExpectedVOPage
;
}
}
//要返回CommissionExpectedNewVO分页记录,现在有一张预计来用表和一张保单来用表。两张表通过commission_expected_biz_id关联,现在要做查询合并两个表结果集,
//预计来用表和保单来用表是1对多的关系,现在想合并两个结果集合,预计来用的主记录在上面下面紧跟着保单来用记录。
//getCommissionExpectedVOPage是之前查询预计来用表记录的逻辑,pageByCommissionexpectedBizId是查询之前保单来用表的逻辑,可以参考这两个逻辑合并写到getCommissionExpectedVONewPage中
//返回记录里面 来佣类型:1-预计(预计来佣表记录) 2-实际(保单来佣表记录)
//
@Override
public
Page
<
CommissionExpectedNewVO
>
getCommissionExpectedVONewPage
(
Page
<
CommissionExpected
>
commissionExpectedPage
)
{
List
<
CommissionExpected
>
commissionExpectedList
=
commissionExpectedPage
.
getRecords
();
Page
<
CommissionExpectedNewVO
>
resultPage
=
new
Page
<>(
commissionExpectedPage
.
getCurrent
(),
commissionExpectedPage
.
getSize
(),
commissionExpectedPage
.
getTotal
()
);
if
(
CollUtil
.
isEmpty
(
commissionExpectedList
))
{
return
resultPage
;
}
// 1. 批量查询实际来佣记录(按预计来佣业务ID分组)
List
<
String
>
expectedBizIdList
=
commissionExpectedList
.
stream
()
.
map
(
CommissionExpected:
:
getCommissionExpectedBizId
)
.
collect
(
Collectors
.
toList
());
List
<
Commission
>
allCommissions
=
commissionService
.
lambdaQuery
()
.
in
(
Commission:
:
getCommissionExpectedBizId
,
expectedBizIdList
)
.
orderByAsc
(
Commission:
:
getCreateTime
)
// 按创建时间升序,保证从记录顺序
.
list
();
Map
<
String
,
List
<
Commission
>>
commissionMap
=
allCommissions
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
Commission:
:
getCommissionExpectedBizId
));
// 2. 批量查询保单信息(用于填充产品名、保险公司名等)
Set
<
String
>
policyNoSet
=
new
HashSet
<>();
commissionExpectedList
.
forEach
(
e
->
policyNoSet
.
add
(
e
.
getPolicyNo
()));
allCommissions
.
forEach
(
c
->
policyNoSet
.
add
(
c
.
getPolicyNo
()));
policyNoSet
.
remove
(
null
);
Map
<
String
,
Policy
>
policyMap
=
new
HashMap
<>();
Map
<
String
,
PolicyFollow
>
policyFollowMap
=
new
HashMap
<>();
if
(
CollUtil
.
isNotEmpty
(
policyNoSet
))
{
List
<
Policy
>
policyList
=
policyService
.
lambdaQuery
()
.
in
(
Policy:
:
getPolicyNo
,
policyNoSet
)
.
list
();
policyMap
=
policyList
.
stream
()
.
collect
(
Collectors
.
toMap
(
Policy:
:
getPolicyNo
,
Function
.
identity
(),
(
v1
,
v2
)
->
v1
));
List
<
PolicyFollow
>
policyFollowList
=
policyFollowService
.
lambdaQuery
()
.
in
(
PolicyFollow:
:
getPolicyNo
,
policyNoSet
)
.
list
();
policyFollowMap
=
policyFollowList
.
stream
()
.
collect
(
Collectors
.
toMap
(
PolicyFollow:
:
getPolicyNo
,
Function
.
identity
(),
(
v1
,
v2
)
->
v1
));
}
// 3. 构建混合结果列表
List
<
CommissionExpectedNewVO
>
mixedRecords
=
new
ArrayList
<>();
for
(
CommissionExpected
expected
:
commissionExpectedList
)
{
// 3.1 构建主记录(预计来佣)
CommissionExpectedNewVO
mainVo
=
buildMainVo
(
expected
,
policyMap
,
policyFollowMap
);
mixedRecords
.
add
(
mainVo
);
// 3.2 构建从记录(实际来佣)
List
<
Commission
>
commissions
=
commissionMap
.
getOrDefault
(
expected
.
getCommissionExpectedBizId
(),
Collections
.
emptyList
());
int
subIndex
=
1
;
for
(
Commission
commission
:
commissions
)
{
CommissionExpectedNewVO
subVo
=
buildSubVo
(
commission
,
policyMap
,
policyFollowMap
,
mainVo
);
// 编号:主编号-序号
subVo
.
setNo
(
mainVo
.
getNo
()
+
"-"
+
subIndex
);
subVo
.
setType
(
2
);
mixedRecords
.
add
(
subVo
);
subIndex
++;
}
}
resultPage
.
setRecords
(
mixedRecords
);
return
resultPage
;
}
/**
* 构建主记录(预计来佣,type=1)
*/
private
CommissionExpectedNewVO
buildMainVo
(
CommissionExpected
expected
,
Map
<
String
,
Policy
>
policyMap
,
Map
<
String
,
PolicyFollow
>
policyFollowMap
)
{
CommissionExpectedNewVO
vo
=
new
CommissionExpectedNewVO
();
BeanUtils
.
copyProperties
(
expected
,
vo
);
vo
.
setType
(
1
);
// 主记录编号:可使用应收账款编号,若为空则用业务ID
vo
.
setNo
(
StringUtils
.
isNotBlank
(
expected
.
getReceivableNo
())
?
expected
.
getReceivableNo
()
:
expected
.
getCommissionExpectedBizId
());
// 填充保单相关公共字段
Policy
policy
=
policyMap
.
get
(
expected
.
getPolicyNo
());
if
(
policy
!=
null
)
{
vo
.
setPremium
(
policy
.
getPaymentPremium
());
vo
.
setPolicyCurrency
(
policy
.
getCurrency
());
vo
.
setInsuranceCompany
(
policy
.
getInsuranceCompany
());
vo
.
setReconciliationCompany
(
policy
.
getReconciliationCompany
());
}
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
expected
.
getPolicyNo
());
if
(
policyFollow
!=
null
)
{
vo
.
setProductName
(
policyFollow
.
getProductName
());
vo
.
setProductLaunchBizId
(
policyFollow
.
getProductLaunchBizId
());
}
// 计算待入账比例/金额等
BigDecimal
paidAmount
=
ObjectUtils
.
defaultIfNull
(
expected
.
getPaidAmount
(),
BigDecimal
.
ZERO
);
BigDecimal
paidRatio
=
ObjectUtils
.
defaultIfNull
(
expected
.
getPaidRatio
(),
BigDecimal
.
ZERO
);
if
(
expected
.
getCommissionRatio
()
!=
null
)
{
vo
.
setPaidRatio
(
paidRatio
);
vo
.
setPendingRatio
(
expected
.
getCommissionRatio
().
subtract
(
paidRatio
));
if
(
expected
.
getExpectedAmount
()
!=
null
)
{
vo
.
setPaidAmount
(
paidAmount
);
vo
.
setPendingAmount
(
expected
.
getExpectedAmount
().
subtract
(
paidAmount
));
}
}
else
{
vo
.
setPaidAmount
(
paidAmount
);
if
(
expected
.
getAmount
()
!=
null
)
{
vo
.
setPendingAmount
(
expected
.
getAmount
().
subtract
(
paidAmount
));
}
}
return
vo
;
}
/**
* 构建从记录(实际来佣,type=2)
* 公共字段从主记录复制,实际特有字段使用 commission 数据覆盖
*/
private
CommissionExpectedNewVO
buildSubVo
(
Commission
commission
,
Map
<
String
,
Policy
>
policyMap
,
Map
<
String
,
PolicyFollow
>
policyFollowMap
,
CommissionExpectedNewVO
mainVo
)
{
// 1. 从主记录复制所有公共字段(避免重复查询保单信息)
CommissionExpectedNewVO
vo
=
new
CommissionExpectedNewVO
();
BeanUtils
.
copyProperties
(
mainVo
,
vo
,
"type"
,
"no"
,
"realReconciliationYearMonth"
,
"realCommissionDate"
,
"realExchangeRate"
,
"realAmount"
,
"realCurrentCommissionRatio"
,
"realUpdateTime"
,
"realUpdaterName"
);
// 2. 覆盖实际记录自己的业务字段(从 commission 获取)
// 检核年月、日期、汇率、金额、比例等
vo
.
setRealReconciliationYearMonth
(
commission
.
getReconciliationYearMonth
());
vo
.
setRealCommissionDate
(
commission
.
getCommissionDate
());
vo
.
setRealExchangeRate
(
commission
.
getExchangeRate
());
vo
.
setRealAmount
(
commission
.
getAmount
());
vo
.
setRealCurrentCommissionRatio
(
commission
.
getCurrentCommissionRatio
());
vo
.
setRealUpdateTime
(
commission
.
getUpdateTime
());
vo
.
setRealUpdaterName
(
commission
.
getUpdaterId
());
// 如有用户服务可查名称
// 同时覆盖公共字段中的金额、日期、汇率等,以便前端直接展示实际值
vo
.
setAmount
(
commission
.
getAmount
());
vo
.
setCommissionDate
(
commission
.
getCommissionDate
());
vo
.
setExchangeRate
(
commission
.
getExchangeRate
());
vo
.
setCurrentCommissionRatio
(
commission
.
getCurrentCommissionRatio
());
// 实际入账比例
// 如果实际记录有更准确的期数、名称等,也一并覆盖(实际表中这些字段应与预计一致,但以防万一)
vo
.
setCommissionPeriod
(
commission
.
getCommissionPeriod
());
vo
.
setCommissionName
(
commission
.
getCommissionName
());
vo
.
setCommissionType
(
commission
.
getCommissionType
());
vo
.
setCurrency
(
commission
.
getCurrency
());
vo
.
setRemark
(
commission
.
getRemark
());
// 保单号以实际记录为准
vo
.
setPolicyNo
(
commission
.
getPolicyNo
());
// 3. 其他展示字段(产品名、保险公司等)已从主记录复制,无需额外处理
return
vo
;
}
private
void
enrichReceivableReportWithCompanyName
(
IPage
<
CommissionExpectedVO
>
page
)
{
private
void
enrichReceivableReportWithCompanyName
(
IPage
<
CommissionExpectedVO
>
page
)
{
if
(
page
==
null
||
CollectionUtils
.
isEmpty
(
page
.
getRecords
()))
{
if
(
page
==
null
||
CollectionUtils
.
isEmpty
(
page
.
getRecords
()))
{
return
;
return
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedNewVO.java
0 → 100644
View file @
2a6e171a
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.CommissionExpected
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.springframework.beans.BeanUtils
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
@Data
@Schema
(
description
=
"预计来佣响应"
)
public
class
CommissionExpectedNewVO
implements
Serializable
{
//===========公共字段=============
//来佣类型:1-预计(预计来佣表记录) 2-实际(保单来佣表记录)
private
Integer
type
;
/**
* 编号 规则: 预计来佣表记录作为主记录,保单来佣表记录作为从记录,主记录比如生产编号为A267897 从记录第一条为A267897-1 第二条为A267897-2
*/
private
String
no
;
//===========以下是预计来佣表记录=============
/**
* 预计来佣id
*/
@Schema
(
description
=
"预计来佣id"
)
private
Long
id
;
/**
* 预计来佣业务id
*/
@Schema
(
description
=
"预计来佣业务id"
)
private
String
commissionExpectedBizId
;
/**
* 应收账款编号
*/
@Schema
(
description
=
"应收账款编号"
)
private
String
receivableNo
;
/**
* 应收款类型 R=关联保单应收单 U=非关联保单应收单
*/
@Schema
(
description
=
"应收款类型 R=关联保单应收单 U=非关联保单应收单"
)
private
String
commissionBizType
;
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
* 期交保费
*/
@Schema
(
description
=
"期交保费"
)
private
Object
premium
;
/**
* 保单币种
*/
@Schema
(
description
=
"保单币种"
)
private
String
policyCurrency
;
/**
* 产品计划名称
*/
@Schema
(
description
=
"产品计划名称"
)
private
String
productName
;
/**
* 保险公司业务ID
*/
@Schema
(
description
=
"保险公司业务ID"
)
private
String
insuranceCompanyBizId
;
/**
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insuranceCompany
;
/**
* 产品上架信息表唯一业务ID
*/
@Schema
(
description
=
"产品计划: 产品上架信息表唯一业务ID"
)
private
String
productLaunchBizId
;
/**
* 对账公司
*/
@Schema
(
description
=
"对账公司"
)
private
String
reconciliationCompany
;
/**
* 对账公司业务ID
*/
@Schema
(
description
=
"对账公司业务ID"
)
private
String
reconciliationCompanyBizId
;
/**
* 佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema
(
description
=
"佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)"
)
private
Integer
commissionPeriod
;
/**
* 总来佣期数
*/
@Schema
(
description
=
"总来佣期数"
)
private
Integer
totalPeriod
;
/**
* 来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema
(
description
=
"来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)"
)
private
String
commissionName
;
/**
* 来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@Schema
(
description
=
"来佣类型(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)"
)
private
String
commissionType
;
/**
* 预计入账比例 (%)
*/
@Schema
(
description
=
"预计入账比例 (%)"
)
private
BigDecimal
commissionRatio
;
/**
* 预计入账金额
*/
@Schema
(
description
=
"预计入账金额 HKD(如果不关联保单,就没有预计入账比例,此时记录预计入账金额)"
)
private
BigDecimal
amount
;
/**
* 来佣币种
*/
@Schema
(
description
=
"来佣币种"
)
private
String
currency
;
/**
* 预计来佣日期
*/
@Schema
(
description
=
"预计来佣日期"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
commissionDate
;
/**
* 入账状态 0=待入账 1=完成入账 2=部分入账 3=已失效
*/
@Schema
(
description
=
"入账状态 0=待入账 1=完成入账 2=部分入账 3=已失效 字典值: csf_expected_commission_status"
)
private
String
status
;
/**
* 设置入账状态-修改理由
*/
@Schema
(
description
=
"设置入账状态-修改理由"
)
private
String
statusDesc
;
/**
* 预计入账金额(HKD)
*/
@Schema
(
description
=
"预计入账金额(HKD)"
)
private
BigDecimal
expectedAmount
;
/**
* 结算汇率(估)
*/
@Schema
(
description
=
"结算汇率(估)"
)
private
BigDecimal
defaultExchangeRate
;
/**
* 已入账来佣金额(HKD)
*/
@Schema
(
description
=
"已入账来佣金额(HKD)"
)
private
BigDecimal
paidAmount
;
/**
* 已入账来佣比例 (%)
*/
@Schema
(
description
=
"已入账来佣比例 (%)"
)
private
BigDecimal
paidRatio
;
/**
* 待入账金额
*/
@Schema
(
description
=
"待入账金额"
)
private
BigDecimal
pendingAmount
;
/**
* 待入账比例
*/
@Schema
(
description
=
"待入账比例"
)
private
BigDecimal
pendingRatio
;
/**
* 已入账来佣列表
*/
@Schema
(
description
=
"已入账来佣列表"
)
private
List
<
Commission
>
commissionList
;
/**
* 通用备注
*/
@Schema
(
description
=
"备注"
)
private
String
remark
;
/**
* 创建人ID
*/
@Schema
(
description
=
"创建人ID"
)
private
String
creatorId
;
/**
* 更新人ID
*/
@Schema
(
description
=
"更新人ID"
)
private
String
updaterId
;
/**
* 创建时间
*/
@Schema
(
description
=
"创建时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
/**
* 更新时间
*/
@Schema
(
description
=
"更新时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
updateTime
;
//===========以下是入账检核(保单来佣)记录=============
/**
* 入账检核记录-入账检核年月 yyyy-MM
*/
@Schema
(
description
=
"入账检核年月 yyyy-MM"
)
private
String
realReconciliationYearMonth
;
/**
* 入账检核记录-来佣日期(入账日实)
*/
@Schema
(
description
=
"来佣日期(入账日实)"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
realCommissionDate
;
/**
* 入账检核记录-当前结算汇率(结算汇率(实))
*/
@Schema
(
description
=
"当前结算汇率"
)
private
BigDecimal
realExchangeRate
;
/**
* 来佣金额(入账金额)
*/
@Schema
(
description
=
"来佣金额"
)
private
BigDecimal
realAmount
;
/**
* 当前来佣比例 (实佣率=实际入账金额/结算汇率/每期保费)(入账比例)
*/
@Schema
(
description
=
"当前来佣比例 (实佣率=实际入账金额/结算汇率/每期保费)"
)
private
BigDecimal
realCurrentCommissionRatio
;
/**
* 更新人ID
*/
private
String
realUpdaterName
;
/**
* 更新时间
*/
@Schema
(
description
=
"更新时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
realUpdateTime
;
private
static
final
long
serialVersionUID
=
1L
;
/**
* 对象转封装类
*
* @param commissionExpected
* @return
*/
public
static
CommissionExpectedNewVO
objToVo
(
CommissionExpected
commissionExpected
)
{
if
(
commissionExpected
==
null
)
{
return
null
;
}
CommissionExpectedNewVO
commissionVO
=
new
CommissionExpectedNewVO
();
BeanUtils
.
copyProperties
(
commissionExpected
,
commissionVO
);
BigDecimal
paidAmount1
=
ObjectUtils
.
defaultIfNull
(
commissionExpected
.
getPaidAmount
(),
BigDecimal
.
ZERO
);
BigDecimal
paidRatio1
=
ObjectUtils
.
defaultIfNull
(
commissionExpected
.
getPaidRatio
(),
BigDecimal
.
ZERO
);
// 待入账比例、待入账金额
if
(
commissionExpected
.
getCommissionRatio
()
!=
null
)
{
commissionVO
.
setPaidRatio
(
paidRatio1
);
commissionVO
.
setPendingRatio
(
commissionExpected
.
getCommissionRatio
().
subtract
(
paidRatio1
));
if
(
commissionExpected
.
getExpectedAmount
()
!=
null
)
{
commissionVO
.
setPaidAmount
(
paidAmount1
);
commissionVO
.
setPendingAmount
(
commissionExpected
.
getExpectedAmount
().
subtract
(
paidAmount1
));
}
return
commissionVO
;
}
else
{
commissionVO
.
setPaidAmount
(
paidAmount1
);
commissionVO
.
setPendingAmount
(
commissionExpected
.
getAmount
().
subtract
(
paidAmount1
));
return
commissionVO
;
}
}
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedStatisticsNewVO.java
0 → 100644
View file @
2a6e171a
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* 应收款管理统计VO
*/
@Data
public
class
CommissionExpectedStatisticsNewVO
{
/**
* 预计入账金额(HKD)
*/
@Schema
(
description
=
"预计入账金额(HKD)"
)
private
BigDecimal
totalAmount
;
/**
* 已入账金额(HKD)
*/
@Schema
(
description
=
"已入账金额(HKD)"
)
private
BigDecimal
totalPaidAmount
;
/**
* 待入账金额(HKD)
*/
@Schema
(
description
=
"待入账金额(HKD)"
)
private
BigDecimal
pendingPaidAmount
;
/**
* 已入账比例 %(已入账金额/总金额)
*/
@Schema
(
description
=
"已入账比例 %(已入账金额/总金额)"
)
private
BigDecimal
paidAmountRatio
;
/**
* 总保单数
*/
@Schema
(
description
=
"总保单数"
)
private
Integer
totalPolicyCount
;
/**
* 总保费(HKD)
*/
@Schema
(
description
=
"总保费(HKD)"
)
private
BigDecimal
totalPremium
;
@JsonIgnore
private
String
policyNos
;
}
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