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
e59b9174
Commit
e59b9174
authored
Dec 01, 2025
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新单跟进134
parent
f9119668
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
24 deletions
+24
-24
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
+24
-24
No files found.
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
View file @
e59b9174
...
...
@@ -239,20 +239,25 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
queryWrapperCommission
.
eq
(
"commission_period"
,
commission
.
getCommissionPeriod
());
queryWrapperCommission
.
eq
(
"currency"
,
commission
.
getCurrency
());
List
<
Commission
>
commissionList
=
this
.
list
(
queryWrapperCommission
);
// 统计已入账金额
BigDecimal
amount
=
commissionList
.
stream
()
.
filter
(
commission1
->
commission1
.
getStatus
().
equals
(
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
()))
.
map
(
Commission:
:
getAmount
).
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
one
.
setPaidAmount
(
amount
);
// 计算预计来佣金额
// 统计已入账金额、已入账比例
BigDecimal
paidRatio
=
BigDecimal
.
ZERO
;
BigDecimal
paidAmount
=
BigDecimal
.
ZERO
;
for
(
Commission
commission1
:
commissionList
)
{
if
(
commission1
.
getStatus
().
equals
(
CommissionStatusEnum
.
COMPARE_SUCCESS
.
getItemValue
()))
{
paidRatio
=
paidRatio
.
add
(
commission1
.
getCurrentCommissionRatio
());
paidAmount
=
paidAmount
.
add
(
commission1
.
getAmount
());
one
.
setPaidAmount
(
paidAmount
);
one
.
setPaidRatio
(
paidRatio
);
}
}
// 计算预计来佣金额 (统一试算币种:HKD)
if
(
one
.
getExpectedAmount
()
==
null
)
{
BigDecimal
expectedAmount
=
new
BigDecimal
(
commission
.
getPremium
())
.
multiply
(
one
.
getCommissionRatio
())
.
multiply
(
one
.
getDefaultExchangeRate
())
.
divide
(
BigDecimal
.
valueOf
(
100
),
2
,
RoundingMode
.
HALF_UP
);
one
.
setExpectedAmount
(
expectedAmount
);
.
multiply
(
one
.
getCommissionRatio
())
;
if
(
"USD"
.
equals
(
one
.
getCurrency
()))
{
expectedAmount
=
expectedAmount
.
multiply
(
one
.
getDefaultExchangeRate
()
);
}
one
.
setExpectedAmount
(
expectedAmount
.
divide
(
BigDecimal
.
valueOf
(
100
),
2
,
RoundingMode
.
HALF_UP
)
);
}
return
one
;
}
...
...
@@ -524,7 +529,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 当前来佣比例=当前入账金额/结算汇率/保费 * 100
BigDecimal
currentCommissionRatio
=
commission
.
getAmount
()
.
divide
(
new
BigDecimal
(
premium
),
2
,
RoundingMode
.
HALF_UP
)
.
divide
(
new
BigDecimal
(
commission
.
getExchangeRate
()),
2
,
RoundingMode
.
HALF_UP
)
.
divide
(
new
BigDecimal
(
commission
.
getExchangeRate
()),
4
,
RoundingMode
.
HALF_UP
)
.
multiply
(
new
BigDecimal
(
100
))
;
// 预计来佣比例
...
...
@@ -532,7 +537,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 预计总金额
BigDecimal
expectedAmount
=
expected
.
getExpectedAmount
();
// 已入账金额
BigDecimal
paidAmount
=
commission
.
getAmount
().
add
(
ObjectUtils
.
defaultIfNull
(
expected
.
getPaidAmount
(),
BigDecimal
.
ZERO
)
);
BigDecimal
paidAmount
=
expected
.
getPaidAmount
(
);
if
(
currentCommissionRatio
.
compareTo
(
expectedCommissionRatio
)
==
0
)
{
// 一致,来佣状态设置为 比对成功
...
...
@@ -546,22 +551,17 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
}
// 设置来佣相关字段
commission
.
setCommissionExpectedBizId
(
expected
.
getCommissionExpectedBizId
());
commission
.
setExpectedAmount
(
expectedAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
));
commission
.
setPaidAmount
(
paidAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
));
// 待入账金额 = 预计来佣总金额 - 已入账金额
commission
.
setPendingAmount
(
expectedAmount
.
subtract
(
paidAmount
).
setScale
(
2
,
RoundingMode
.
HALF_UP
));
//
commission.setExpectedAmount(expectedAmount.setScale(2, RoundingMode.HALF_UP));
//
commission.setPaidAmount(paidAmount.setScale(2, RoundingMode.HALF_UP));
//
// 待入账金额 = 预计来佣总金额 - 已入账金额
//
commission.setPendingAmount(expectedAmount.subtract(paidAmount).setScale(2, RoundingMode.HALF_UP));
// 当前来佣比例
commission
.
setCurrentCommissionRatio
(
currentCommissionRatio
.
setScale
(
2
,
RoundingMode
.
HALF_UP
)
);
commission
.
setCurrentCommissionRatio
(
currentCommissionRatio
);
// 当期已入账来佣比例 = 当前来佣比例 + 已入账来佣比例
commission
.
setPeriodPaidRatio
(
currentCommissionRatio
.
add
(
ObjectUtils
.
defaultIfNull
(
expected
.
getPaidRatio
(),
BigDecimal
.
ZERO
)).
setScale
(
2
,
RoundingMode
.
HALF_UP
));
// 当期剩余来佣比例 = 预计来佣来佣比例 - 当期已入账来佣比例
commission
.
setPeriodPendingRatio
(
expectedCommissionRatio
.
subtract
(
commission
.
getPeriodPaidRatio
()).
setScale
(
2
,
RoundingMode
.
HALF_UP
));
// 预计来佣的已入账金额更新为 已入账金额
expected
.
setPaidAmount
(
paidAmount
.
setScale
(
2
,
RoundingMode
.
HALF_UP
));
// 已入账来佣比例 = 当前来佣比例 + 已入账来佣比例
expected
.
setPaidRatio
(
currentCommissionRatio
.
add
(
ObjectUtils
.
defaultIfNull
(
expected
.
getPaidRatio
(),
BigDecimal
.
ZERO
)).
setScale
(
2
,
RoundingMode
.
HALF_UP
));
// 达到预计比例时,待入账金额设置为 0
if
(
commission
.
getPeriodPendingRatio
().
compareTo
(
BigDecimal
.
ZERO
)
==
0
)
{
commission
.
setPendingAmount
(
BigDecimal
.
ZERO
.
setScale
(
2
,
RoundingMode
.
HALF_UP
));
...
...
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