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
6c3ff802
Commit
6c3ff802
authored
Mar 19, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
来佣率分隔符拆分读取佣率2
parent
47748a80
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
65 additions
and
19 deletions
+65
-19
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+11
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+52
-19
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
6c3ff802
...
...
@@ -396,4 +396,15 @@ public class ApiCommissionExpectedController {
}
return
Collections
.
emptyList
();
}
@GetMapping
(
"/test_expected_commission"
)
@Operation
(
summary
=
"测试佣金匹配"
)
public
Result
<
Boolean
>
testExpectedCommission
(
@RequestParam
(
"policyNo"
)
String
policyNo
)
{
if
(
StringUtils
.
isBlank
(
policyNo
))
{
return
Result
.
fail
(
ResultCode
.
NULL_ERROR
.
getCode
(),
"policyNo不能为空"
);
}
commissionExpectedService
.
testExpectedCommission
(
policyNo
);
return
Result
.
success
(
true
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
View file @
6c3ff802
...
...
@@ -78,4 +78,6 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
* @return 应收款报表VO分页列表
*/
IPage
<
ReceivableReportVO
>
receivableReportPage
(
Page
<
ReceivableReportVO
>
page
,
List
<
Long
>
expectedIds
);
void
testExpectedCommission
(
String
policyNo
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
6c3ff802
...
...
@@ -128,7 +128,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpectedVO
.
setReconciliationCompany
(
policy
.
getReconciliationCompany
());
commissionExpectedVO
.
setPolicyCurrency
(
policy
.
getCurrency
());
}
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
commissionExpected
.
getPolicyNo
());
PolicyFollow
policyFollow
=
policyFollowMap
.
get
(
commissionExpected
.
getPolicyNo
());
if
(
policyFollow
!=
null
)
{
commissionExpectedVO
.
setProductName
(
policyFollow
.
getProductName
());
commissionExpectedVO
.
setProductLaunchBizId
(
policyFollow
.
getProductLaunchBizId
());
...
...
@@ -194,7 +194,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
Object
data
=
result
.
getData
();
try
{
// 将 data 转为 JSON 字符串再解析为 Map,以便提取 records
Map
<
String
,
Object
>
dataMap
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
data
),
new
com
.
alibaba
.
fastjson
.
TypeReference
<
Map
<
String
,
Object
>>()
{});
Map
<
String
,
Object
>
dataMap
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
data
),
new
com
.
alibaba
.
fastjson
.
TypeReference
<
Map
<
String
,
Object
>>()
{
});
Object
recordsObj
=
dataMap
.
get
(
"records"
);
if
(
recordsObj
instanceof
List
)
{
List
<?>
recordsList
=
(
List
<?>)
recordsObj
;
...
...
@@ -609,7 +610,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
throw
new
BusinessException
(
"保單持有人年齡不能为空"
);
}
Date
effectiveDate
=
policy
.
getEffectiveDate
();
log
.
info
(
"getExpectedCommissionByProductlaunchId的effectiveDate生效日期:{}"
,
effectiveDate
);
log
.
info
(
"getExpectedCommissionByProductlaunchId的effectiveDate生效日期:{}"
,
effectiveDate
);
if
(
effectiveDate
==
null
)
{
throw
new
BusinessException
(
"保单生效日期不能为空"
);
}
...
...
@@ -722,8 +723,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/**
* 匹配预计规格并返回不匹配的条件
*
* @param expectedSpeciesList
预计规格列表
* @param policy
保单对象
* @param expectedSpeciesList 预计规格列表
* @param policy 保单对象
* @return 匹配结果
*/
private
MatchResult
matchExpectedSpecies
(
...
...
@@ -797,7 +798,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
}
try
{
return
objectMapper
.
readValue
(
speciesJson
,
new
TypeReference
<
List
<
SpeciesCondition
>>()
{});
new
TypeReference
<
List
<
SpeciesCondition
>>()
{
});
}
catch
(
IOException
e
)
{
log
.
error
(
"解析speciesJson失败: {}"
,
speciesJson
,
e
);
return
Collections
.
emptyList
();
...
...
@@ -836,7 +838,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return
conditions
.
stream
()
.
anyMatch
(
c
->
typeCode
.
equals
(
c
.
getTypeCode
())
&&
SpeciesConditionMatcher
.
matches
(
typeCode
,
c
.
getValue
(),
actualValue
));
typeCode
,
c
.
getValue
(),
actualValue
));
})
.
collect
(
Collectors
.
toList
());
...
...
@@ -854,10 +856,10 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/**
* 过滤列表并检查是否为空
*
* @param list 待过滤的列表
* @param predicate 过滤条件
* @param list
待过滤的列表
* @param predicate
过滤条件
* @param unmatchedConditions 不匹配条件列表
* @param conditionDesc 条件描述
* @param conditionDesc
条件描述
* @return 过滤后的列表
*/
private
List
<
ApiExpectedSpeciesListResponse
>
filterAndCheck
(
...
...
@@ -898,17 +900,18 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/**
* 计算预计来佣港币金额
* @param premium 保费
* @param commissionRatio 佣金比例
* @param commissionBizType 佣金业务类型
* @param amount 金额
* @param currency 预计来佣的结算币种=产品绑定的来佣结算币种
* @param policyCurrency 保单币种
*
* @param premium 保费
* @param commissionRatio 佣金比例
* @param commissionBizType 佣金业务类型
* @param amount 金额
* @param currency 预计来佣的结算币种=产品绑定的来佣结算币种
* @param policyCurrency 保单币种
* @param defaultExchangeRate 默认结算汇率
* @return 预计来佣金额
*/
private
BigDecimal
calculateExpectedAmount
(
BigDecimal
premium
,
BigDecimal
commissionRatio
,
String
commissionBizType
,
BigDecimal
amount
,
String
currency
,
String
policyCurrency
,
BigDecimal
defaultExchangeRate
)
{
BigDecimal
amount
,
String
currency
,
String
policyCurrency
,
BigDecimal
defaultExchangeRate
)
{
if
(
"R"
.
equals
(
commissionBizType
))
{
// 关联保单应收单:保费 × 佣金比例 × 默认结算汇率 ÷ 100
BigDecimal
exchangeRate
=
defaultExchangeRate
;
...
...
@@ -934,8 +937,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/**
* 保单币种对预计来佣的结算币种的默认汇率
*
* @param policyCurrency 保单币种
* @param currency 预计来佣的结算币种
* @param currency
预计来佣的结算币种
* @return 汇率
*/
private
BigDecimal
queryExchangeRateByFeign
(
String
policyCurrency
,
String
currency
)
{
...
...
@@ -952,7 +956,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/**
* 根据保单生效日和佣金期数计算预计来佣日期,首期为生效日的1个月,后续期数为首期的次年
* @param endPeriod 佣金期数
*
* @param endPeriod 佣金期数
* @param effectiveDate 保单生效日
* @return 预计来佣日期
*/
...
...
@@ -983,6 +988,34 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return
baseMapper
.
receivableReportPage
(
page
,
expectedIds
);
}
@Override
public
void
testExpectedCommission
(
String
policyNo
)
{
Policy
policy
=
policyService
.
queryOne
(
policyNo
);
String
productLaunchBizId
=
policy
.
getProductLaunchBizId
();
if
(
StringUtils
.
isNotBlank
(
productLaunchBizId
))
{
PolicyFollow
policyFollow
=
policyFollowService
.
queryOneByPolicyNo
(
policyNo
);
String
professionalInvestor
=
policyFollow
.
getProfessionalInvestor
();
List
<
ApiExpectedSpeciesListResponse
>
expectedSpeciesList
=
queryExpectedSpeciesByFeign
(
productLaunchBizId
);
if
(
CollUtil
.
isNotEmpty
(
expectedSpeciesList
))
{
// 匹配规格并获取不匹配的条件
CommissionExpectedServiceImpl
.
MatchResult
matchResult
=
matchExpectedSpecies
(
expectedSpeciesList
,
policy
,
professionalInvestor
);
if
(
matchResult
.
getMatchedList
().
isEmpty
())
{
String
errorMsg
=
matchResult
.
getUnmatchedConditions
().
isEmpty
()
?
"未查询到预计来佣规格"
:
"未查询到预计来佣规格,不匹配条件:"
+
String
.
join
(
"、"
,
matchResult
.
getUnmatchedConditions
());
log
.
info
(
"未查询到预计来佣规格,当前规格:{}"
,
JSONUtil
.
toJsonStr
(
expectedSpeciesList
));
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
errorMsg
);
}
}
}
}
}
...
...
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