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
e5d3aee9
Commit
e5d3aee9
authored
Jan 30, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
保费币种对实际结算币种的汇率
parent
4272417f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
5 deletions
+39
-5
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionAddRequest.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionExpected.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+37
-3
No files found.
yd-csf-service/src/main/java/com/yd/csf/service/dto/CommissionAddRequest.java
View file @
e5d3aee9
...
@@ -75,7 +75,7 @@ public class CommissionAddRequest implements Serializable {
...
@@ -75,7 +75,7 @@ public class CommissionAddRequest implements Serializable {
private
String
currency
;
private
String
currency
;
/**
/**
*
结算
汇率
*
页面输入的结算汇率:保费币种对实际结算币种的
汇率
*/
*/
@Schema
(
description
=
"结算汇率"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
@Schema
(
description
=
"结算汇率"
,
requiredMode
=
Schema
.
RequiredMode
.
REQUIRED
)
private
BigDecimal
exchangeRate
;
private
BigDecimal
exchangeRate
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/CommissionExpected.java
View file @
e5d3aee9
...
@@ -131,7 +131,7 @@ public class CommissionExpected implements Serializable {
...
@@ -131,7 +131,7 @@ public class CommissionExpected implements Serializable {
private
String
statusDesc
;
private
String
statusDesc
;
/**
/**
*
默认结算
汇率
*
保单币种对结算币种的
汇率
*/
*/
private
BigDecimal
defaultExchangeRate
;
private
BigDecimal
defaultExchangeRate
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
e5d3aee9
...
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
...
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.base.feign.client.exchangerate.ApiExchangeRateFeignClient
;
import
com.yd.common.constant.CommonConstant
;
import
com.yd.common.constant.CommonConstant
;
import
com.yd.common.constant.RedisConstants
;
import
com.yd.common.constant.RedisConstants
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
...
@@ -42,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -42,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.math.RoundingMode
;
import
java.time.LocalDate
;
import
java.util.*
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -72,6 +74,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -72,6 +74,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
private
ApiAnnouncementCommissionRatioFeignClient
apiAnnouncementCommissionRatioFeignClient
;
private
ApiAnnouncementCommissionRatioFeignClient
apiAnnouncementCommissionRatioFeignClient
;
@Resource
@Resource
private
RedisUtil
redisUtil
;
private
RedisUtil
redisUtil
;
@Resource
private
ApiExchangeRateFeignClient
apiExchangeRateFeignClient
;
@Override
@Override
...
@@ -531,13 +535,14 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -531,13 +535,14 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected
.
setCommissionDate
(
calculateCommissionDate
(
item
.
getEndPeriod
(),
effectiveDate
));
commissionExpected
.
setCommissionDate
(
calculateCommissionDate
(
item
.
getEndPeriod
(),
effectiveDate
));
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
PENDING
.
getItemValue
());
commissionExpected
.
setStatus
(
CommissionExpectedStatusEnum
.
PENDING
.
getItemValue
());
commissionExpected
.
setStatusDesc
(
null
);
commissionExpected
.
setStatusDesc
(
null
);
commissionExpected
.
setDefaultExchangeRate
(
query
DefaultExchangeRate
(
item
.
getCurrency
()));
commissionExpected
.
setDefaultExchangeRate
(
query
ExchangeRateByFeign
(
policy
.
getCurrency
(),
item
.
getCurrency
()));
commissionExpected
.
setExpectedAmount
(
calculateExpectedAmount
(
commissionExpected
.
setExpectedAmount
(
calculateExpectedAmount
(
paymentPremium
,
paymentPremium
,
item
.
getCommissionRate
(),
item
.
getCommissionRate
(),
"R"
,
"R"
,
null
,
null
,
item
.
getCurrency
(),
item
.
getCurrency
(),
policy
.
getCurrency
(),
commissionExpected
.
getDefaultExchangeRate
()));
commissionExpected
.
getDefaultExchangeRate
()));
commissionExpected
.
setPaidAmount
(
BigDecimal
.
ZERO
);
commissionExpected
.
setPaidAmount
(
BigDecimal
.
ZERO
);
commissionExpected
.
setPaidRatio
(
BigDecimal
.
ZERO
);
commissionExpected
.
setPaidRatio
(
BigDecimal
.
ZERO
);
...
@@ -579,17 +584,31 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -579,17 +584,31 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return
false
;
return
false
;
}
}
/**
* 计算预计来佣港币金额
* @param premium 保费
* @param commissionRatio 佣金比例
* @param commissionBizType 佣金业务类型
* @param amount 金额
* @param currency 预计来佣的结算币种=产品绑定的来佣结算币种
* @param policyCurrency 保单币种
* @param defaultExchangeRate 默认结算汇率
* @return 预计来佣金额
*/
private
BigDecimal
calculateExpectedAmount
(
BigDecimal
premium
,
BigDecimal
commissionRatio
,
String
commissionBizType
,
private
BigDecimal
calculateExpectedAmount
(
BigDecimal
premium
,
BigDecimal
commissionRatio
,
String
commissionBizType
,
BigDecimal
amount
,
String
currency
,
BigDecimal
defaultExchangeRate
)
{
BigDecimal
amount
,
String
currency
,
String
policyCurrency
,
BigDecimal
defaultExchangeRate
)
{
if
(
"R"
.
equals
(
commissionBizType
))
{
if
(
"R"
.
equals
(
commissionBizType
))
{
// 关联保单应收单:保费 × 佣金比例 × 默认结算汇率 ÷ 100
// 关联保单应收单:保费 × 佣金比例 × 默认结算汇率 ÷ 100
BigDecimal
exchangeRate
=
defaultExchangeRate
;
BigDecimal
exchangeRate
=
defaultExchangeRate
;
BigDecimal
exchangeRateHkd
=
queryDefaultExchangeRate
(
currency
);
if
(
exchangeRate
==
null
)
{
if
(
exchangeRate
==
null
)
{
exchangeRate
=
queryDefaultExchangeRate
(
currency
);
// 这里获取保单币种对预计来佣的结算币种的默认汇率
exchangeRate
=
queryExchangeRateByFeign
(
policyCurrency
,
currency
);
}
}
return
premium
return
premium
.
multiply
(
commissionRatio
)
.
multiply
(
commissionRatio
)
.
multiply
(
exchangeRate
)
.
multiply
(
exchangeRate
)
.
multiply
(
exchangeRateHkd
)
.
divide
(
BigDecimal
.
valueOf
(
100
),
4
,
RoundingMode
.
HALF_UP
);
.
divide
(
BigDecimal
.
valueOf
(
100
),
4
,
RoundingMode
.
HALF_UP
);
}
else
{
}
else
{
// 非关联保单应收单:金额 × 默认结算汇率
// 非关联保单应收单:金额 × 默认结算汇率
...
@@ -602,6 +621,21 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -602,6 +621,21 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
}
}
/**
/**
* 保单币种对预计来佣的结算币种的默认汇率
* @param policyCurrency 保单币种
* @param currency 预计来佣的结算币种
* @return 汇率
*/
private
BigDecimal
queryExchangeRateByFeign
(
String
policyCurrency
,
String
currency
)
{
// 调用Feign客户端查询汇率
Result
<
BigDecimal
>
result
=
apiExchangeRateFeignClient
.
getExchangeRate
(
policyCurrency
,
currency
,
""
);
if
(
result
!=
null
&&
result
.
getData
()
!=
null
)
{
return
result
.
getData
();
}
return
null
;
}
/**
* 根据保单生效日期和佣金期数计算预计来佣日期,首期为保单生效日次月,后续期数为首期的次年
* 根据保单生效日期和佣金期数计算预计来佣日期,首期为保单生效日次月,后续期数为首期的次年
* @param endPeriod 佣金期数
* @param endPeriod 佣金期数
* @param effectiveDate 保单生效日期
* @param effectiveDate 保单生效日期
...
...
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