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
a051f0df
Commit
a051f0df
authored
Jan 04, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前端对接问题修复39
parent
10cff95c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
154 additions
and
51 deletions
+154
-51
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
+11
-11
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+55
-17
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
+88
-23
No files found.
yd-csf-service/src/main/java/com/yd/csf/service/model/Fortune.java
View file @
a051f0df
...
...
@@ -10,7 +10,7 @@ import java.util.Date;
import
lombok.Data
;
/**
* 保单
发佣
表
* 保单
出账
表
*
* @TableName fortune
*/
...
...
@@ -24,7 +24,7 @@ public class Fortune implements Serializable {
private
Long
id
;
/**
* 预计
发佣
业务ID
* 预计
出账
业务ID
*/
private
String
expectedFortuneBizId
;
...
...
@@ -44,12 +44,12 @@ public class Fortune implements Serializable {
private
Integer
isPart
;
/**
* 保单
发佣
批次ID
* 保单
出账
批次ID
*/
private
String
batchBizId
;
/**
* 保单
发佣
业务id
* 保单
出账
业务id
*/
private
String
fortuneBizId
;
...
...
@@ -64,12 +64,12 @@ public class Fortune implements Serializable {
private
String
policyNo
;
/**
*
发佣
期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*
出账
期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
private
Integer
fortunePeriod
;
/**
*
发佣
总期数
*
出账
总期数
*/
private
Integer
fortuneTotalPeriod
;
...
...
@@ -109,17 +109,17 @@ public class Fortune implements Serializable {
private
String
fortuneName
;
/**
*
发佣
类型
*
出账
类型
*/
private
String
fortuneType
;
/**
*
发佣
金额
*
出账
金额
*/
private
BigDecimal
amount
;
/**
*
发佣
币种
*
出账
币种
*/
private
String
currency
;
...
...
@@ -134,7 +134,7 @@ public class Fortune implements Serializable {
private
String
status
;
/**
*
发佣
日期
*
出账
日期
*/
private
LocalDate
payoutDate
;
...
...
@@ -154,7 +154,7 @@ public class Fortune implements Serializable {
private
BigDecimal
taxAmount
;
/**
* 税后
发佣
* 税后
出账
*/
private
BigDecimal
netAmount
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
a051f0df
...
...
@@ -16,15 +16,9 @@ import com.yd.common.exception.BusinessException;
import
com.yd.common.utils.RandomStringGenerator
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.Commission
;
import
com.yd.csf.service.model.ExpectedFortune
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.service.CommissionService
;
import
com.yd.csf.service.service.FortuneAccountService
;
import
com.yd.csf.service.service.FortuneService
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
import
com.yd.csf.service.dao.FortuneMapper
;
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
;
...
...
@@ -34,7 +28,6 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
...
...
@@ -56,12 +49,15 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
@Resource
private
FortuneAccountService
fortuneAccountService
;
@Resource
private
CommissionService
commissionService
;
@Resource
private
CommissionExpectedService
commissionExpectedService
;
@Resource
private
IExpectedFortuneService
expectedFortuneService
;
@Resource
private
PolicyService
policyService
;
@Override
public
Wrapper
<
Fortune
>
getQueryWrapper
(
FortuneQueryRequest
fortuneQueryRequest
)
{
...
...
@@ -98,14 +94,56 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
return
fortuneVOPage
;
}
List
<
FortuneVO
>
fortuneVOList
=
fortuneList
.
stream
().
map
(
FortuneVO:
:
objToVo
).
collect
(
Collectors
.
toList
());
// 关联查询已来佣金额
List
<
Commission
>
commissionList
=
commissionService
.
list
(
new
QueryWrapper
<
Commission
>().
in
(
"commission_biz_id"
,
fortuneList
.
stream
().
map
(
Fortune:
:
getCommissionBizId
).
collect
(
Collectors
.
toList
())));
Map
<
String
,
Commission
>
commissionMap
=
commissionList
.
stream
().
collect
(
Collectors
.
toMap
(
Commission:
:
getCommissionBizId
,
commission
->
commission
));
List
<
FortuneVO
>
fortuneVOList
=
new
ArrayList
<>();
Set
<
String
>
expectedFortuneBizIdSet
=
new
HashSet
<>();
Set
<
String
>
commissionBizIdSet
=
new
HashSet
<>();
Set
<
String
>
policyNoSet
=
new
HashSet
<>();
for
(
Fortune
fortune
:
fortuneList
)
{
FortuneVO
fortuneVO
=
FortuneVO
.
objToVo
(
fortune
);
fortuneVOList
.
add
(
fortuneVO
);
expectedFortuneBizIdSet
.
add
(
fortune
.
getExpectedFortuneBizId
());
commissionBizIdSet
.
add
(
fortune
.
getCommissionBizId
());
policyNoSet
.
add
(
fortune
.
getPolicyNo
());
}
// 1.关联查询来佣信息
List
<
Commission
>
commissionList
=
commissionService
.
list
(
new
QueryWrapper
<
Commission
>().
in
(
"commission_biz_id"
,
commissionBizIdSet
));
// 1.1 关联查询来佣预期信息
List
<
CommissionExpected
>
commissionExpectedList
=
commissionExpectedService
.
lambdaQuery
()
.
in
(
CommissionExpected:
:
getCommissionExpectedBizId
,
expectedFortuneBizIdSet
)
.
select
(
CommissionExpected:
:
getCommissionExpectedBizId
,
CommissionExpected:
:
getPaidAmount
,
CommissionExpected:
:
getPaidRatio
)
.
list
();
Map
<
String
,
CommissionExpected
>
commissionExpectedMap
=
commissionExpectedList
.
stream
().
collect
(
Collectors
.
toMap
(
CommissionExpected:
:
getCommissionExpectedBizId
,
a
->
a
,
(
oldValue
,
newValue
)
->
newValue
));
// 2.关联查询保单信息
QueryWrapper
<
Policy
>
queryWrapper
=
new
QueryWrapper
<
Policy
>();
queryWrapper
.
select
(
"policy_no"
,
"payment_premium"
,
"product_name"
,
"insurance_company"
,
"reconciliation_company"
);
queryWrapper
.
in
(
"policy_no"
,
policyNoSet
);
List
<
Policy
>
policyList
=
policyService
.
list
(
queryWrapper
);
Map
<
String
,
Policy
>
policyMap
=
policyList
.
stream
().
collect
(
Collectors
.
toMap
(
Policy:
:
getPolicyNo
,
a
->
a
,
(
oldValue
,
newValue
)
->
newValue
));
// 3.关联查询预计出账信息
List
<
ExpectedFortune
>
expectedFortuneList
=
expectedFortuneService
.
list
(
new
QueryWrapper
<
ExpectedFortune
>().
in
(
"expected_fortune_biz_id"
,
expectedFortuneBizIdSet
));
Map
<
String
,
ExpectedFortune
>
expectedFortuneMap
=
expectedFortuneList
.
stream
().
collect
(
Collectors
.
toMap
(
ExpectedFortune:
:
getExpectedFortuneBizId
,
a
->
a
,
(
oldValue
,
newValue
)
->
newValue
));
fortuneVOList
.
forEach
(
fortuneVO
->
{
String
commissionBizId
=
fortuneVO
.
getCommissionBizId
();
// fortuneVO.setCommissionAmount(commissionAmountMap.getOrDefault(commissionBizId, BigDecimal.ZERO));
fortuneVO
.
setCommission
(
CommissionVO
.
objToVo
(
commissionMap
.
get
(
commissionBizId
)));
// 设置来佣金额和比例
CommissionExpected
commissionExpected
=
commissionExpectedMap
.
get
(
commissionBizId
);
if
(
commissionExpected
!=
null
)
{
fortuneVO
.
setCommissionPaidAmount
(
commissionExpected
.
getPaidAmount
());
fortuneVO
.
setCommissionPaidRatio
(
commissionExpected
.
getPaidRatio
());
}
// 设置保单信息
Policy
policy
=
policyMap
.
get
(
fortuneVO
.
getPolicyNo
());
if
(
policy
!=
null
)
{
fortuneVO
.
setPremium
(
policy
.
getPaymentPremium
());
fortuneVO
.
setInsuranceCompany
(
policy
.
getInsuranceCompany
());
}
// 设置预计出账信息
ExpectedFortune
expectedFortune
=
expectedFortuneMap
.
get
(
fortuneVO
.
getExpectedFortuneBizId
());
if
(
expectedFortune
!=
null
)
{
FortuneVO
.
calculateByExpectedFortune
(
fortuneVO
,
expectedFortune
);
}
});
fortuneVOPage
.
setRecords
(
fortuneVOList
);
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/FortuneVO.java
View file @
a051f0df
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.model.ExpectedFortune
;
import
com.yd.csf.service.model.Fortune
;
import
com.yd.csf.service.model.FortuneAccount
;
import
io.swagger.v3.oas.annotations.media.Schema
;
...
...
@@ -9,6 +10,7 @@ import org.springframework.beans.BeanUtils;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Date
;
@Data
...
...
@@ -21,9 +23,9 @@ public class FortuneVO implements Serializable {
private
Long
id
;
/**
* 保单
发佣
业务id
* 保单
出账
业务id
*/
@Schema
(
description
=
"保单
发佣
业务id"
)
@Schema
(
description
=
"保单
出账
业务id"
)
private
String
fortuneBizId
;
/**
...
...
@@ -39,22 +41,46 @@ public class FortuneVO implements Serializable {
private
String
fortuneBizType
;
/**
* 预计出账业务ID
*/
@Schema
(
description
=
"预计出账业务ID"
)
private
String
expectedFortuneBizId
;
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
* 期交保费
*/
@Schema
(
description
=
"期交保费"
)
private
BigDecimal
premium
;
/**
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insuranceCompany
;
/**
* 来佣业务id
*/
@Schema
(
description
=
"来佣业务id"
)
private
String
commissionBizId
;
/**
* 关联来佣信息
* 已入账来佣金额(HKD)
*/
@Schema
(
description
=
"已入账来佣金额(HKD)"
)
private
BigDecimal
commissionPaidAmount
;
/**
* 已入账来佣比例 (%)
*/
@Schema
(
description
=
"
关联来佣信息
"
)
private
CommissionVO
commission
;
@Schema
(
description
=
"
已入账来佣比例 (%)
"
)
private
BigDecimal
commissionPaidRatio
;
/**
* 本次已来佣金额
...
...
@@ -63,15 +89,15 @@ public class FortuneVO implements Serializable {
// private Object commissionAmount;
/**
*
发佣
期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*
出账
期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema
(
description
=
"
发佣
期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)"
)
@Schema
(
description
=
"
出账
期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)"
)
private
Integer
fortunePeriod
;
/**
*
发佣
总期数
*
出账
总期数
*/
@Schema
(
description
=
"
发佣
总期数"
)
@Schema
(
description
=
"
出账
总期数"
)
private
Integer
fortuneTotalPeriod
;
/**
...
...
@@ -99,39 +125,63 @@ public class FortuneVO implements Serializable {
private
String
teamBizId
;
/**
*
发佣
名称
*
出账
名称
*/
@Schema
(
description
=
"
发佣
名称"
)
@Schema
(
description
=
"
出账
名称"
)
private
String
fortuneName
;
/**
*
发佣
类型
*
出账
类型
*/
@Schema
(
description
=
"
发佣
类型"
)
@Schema
(
description
=
"
出账
类型"
)
private
String
fortuneType
;
/**
*
发佣
金额
*
出账
金额
*/
@Schema
(
description
=
"
发佣
金额"
)
@Schema
(
description
=
"
应出账
金额"
)
private
BigDecimal
amount
;
/**
*
发佣
币种
*
出账
币种
*/
@Schema
(
description
=
"
发佣
币种"
)
@Schema
(
description
=
"
出账
币种"
)
private
String
currency
;
/**
* 佣金状态 0=待出账 1=可出账 2=已出账
* 已出账金额
*/
@Schema
(
description
=
"已出账金额"
)
private
BigDecimal
fortunePaidAmount
;
/**
* 待出账金额
*/
@Schema
(
description
=
"佣金状态 0=待出账 1=可出账 2=已出账 字典值:csf_fortune_status"
)
@Schema
(
description
=
"剩余出账金额"
)
private
BigDecimal
fortuneUnpaidAmount
;
/**
* 本期出账金额
*/
@Schema
(
description
=
"本期出账金额"
)
private
BigDecimal
currentPaymentAmount
;
/**
* 剩余出账比例 剩余出账金额/应出账金额
*/
@Schema
(
description
=
"剩余出账比例 剩余出账金额/应出账金额"
)
private
BigDecimal
fortuneUnpaidRatio
;
/**
* 出账状态 0=待出账 1=可出账,待检核 2=已出账 3=部分出账 4=保留 5=已失效 6=可出账,检核完成
*/
@Schema
(
description
=
"出账状态 字典值:csf_fortune_status"
)
private
String
status
;
/**
*
发佣日期
*
出账日(实)
*/
@Schema
(
description
=
"
发佣日期
"
)
@Schema
(
description
=
"
出账日(实)
"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
payoutDate
;
...
...
@@ -148,9 +198,9 @@ public class FortuneVO implements Serializable {
private
BigDecimal
taxAmount
;
/**
* 税后
发佣
* 税后
出账
*/
@Schema
(
description
=
"税后
发佣
"
)
@Schema
(
description
=
"税后
出账
"
)
private
BigDecimal
netAmount
;
/**
...
...
@@ -226,4 +276,19 @@ public class FortuneVO implements Serializable {
return
fortuneVO
;
}
public
static
void
calculateByExpectedFortune
(
FortuneVO
fortuneVO
,
ExpectedFortune
expectedFortune
)
{
BigDecimal
amount
=
expectedFortune
.
getAmount
();
BigDecimal
paidAmount
=
expectedFortune
.
getPaidAmount
();
if
(
amount
!=
null
&&
paidAmount
!=
null
)
{
fortuneVO
.
setAmount
(
amount
);
fortuneVO
.
setFortunePaidAmount
(
paidAmount
);
BigDecimal
unpaidAmount
=
amount
.
subtract
(
paidAmount
);
fortuneVO
.
setFortuneUnpaidAmount
(
unpaidAmount
);
fortuneVO
.
setFortuneUnpaidRatio
(
unpaidAmount
.
divide
(
amount
,
4
,
RoundingMode
.
HALF_UP
).
multiply
(
BigDecimal
.
valueOf
(
100
)));
}
}
}
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