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
17269f1e
Commit
17269f1e
authored
Mar 23, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
07ce729c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
93 additions
and
27 deletions
+93
-27
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiCommissionConditionService.java
+6
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCommissionConditionServiceImpl.java
+34
-5
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+45
-22
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyPolicyholderService.java
+1
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyPolicyholderServiceImpl.java
+7
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiCommissionConditionService.java
View file @
17269f1e
package
com
.
yd
.
csf
.
api
.
service
;
import
com.yd.common.result.Result
;
import
com.yd.product.feign.response.announcementcommissionratio.ApiAnnouncementCommissionRatioListResponse
;
import
java.util.List
;
public
interface
ApiCommissionConditionService
{
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
getCommissionRatioList
(
String
policyNo
);
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCommissionConditionServiceImpl.java
View file @
17269f1e
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.service.ApiCommissionConditionService
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.model.PolicyPolicyholder
;
import
com.yd.csf.service.service.PolicyFollowService
;
import
com.yd.csf.service.service.PolicyPolicyholderService
;
import
com.yd.product.feign.client.announcementcommissionratio.ApiAnnouncementCommissionRatioFeignClient
;
import
com.yd.product.feign.request.announcementcommissionratio.ApiAnnouncementCommissionRatioListRequest
;
import
com.yd.product.feign.response.announcementcommissionratio.ApiAnnouncementCommissionRatioListResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
...
...
@@ -24,12 +30,16 @@ public class ApiCommissionConditionServiceImpl implements ApiCommissionCondition
@Autowired
private
PolicyFollowService
policyFollowService
;
@Autowired
private
PolicyPolicyholderService
policyPolicyholderService
;
/**
* 根据保单号查询保单所参与过滤产品发佣率数据筛选的字段列表数据
* @param policyNo
* @return
*/
public
List
<
ApiAnnouncementCommissionRatioListResponse
>
getCommissionRatioList
(
String
policyNo
)
{
@Override
public
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
getCommissionRatioList
(
String
policyNo
)
{
//根据保单号查询保单跟进表数据
PolicyFollow
policyFollow
=
policyFollowService
.
queryOneByPolicyNo
(
policyNo
);
if
(
policyFollow
==
null
)
{
...
...
@@ -37,13 +47,32 @@ public class ApiCommissionConditionServiceImpl implements ApiCommissionCondition
}
//列出固定几个需要参与发佣率筛选数据的保单字段
//供款年期(数字)
Integer
issueNumber
=
Integer
.
parseInt
(
policyFollow
.
getIssueNumber
().
toString
());
//投保年龄(区间值)
//期缴保费(区间值)
String
paymentTerm
=
policyFollow
.
getIssueNumber
().
toString
();
//投保年龄(区间值)查询保单投保人表数据 0-64 64-
PolicyPolicyholder
policyPolicyholder
=
policyPolicyholderService
.
queryOne
(
policyFollow
.
getPolicyBizId
());
String
age
=
""
;
if
(
policyPolicyholder
!=
null
)
{
age
=
policyPolicyholder
.
getAge
();
}
//期缴保费(区间值)例:0-10000 10000-
BigDecimal
eachIssuePremium
=
policyFollow
.
getEachIssuePremium
();
//专业投资者(Yes/No)(选项)
String
professionalInvestor
=
policyFollow
.
getProfessionalInvestor
();
//保单币种(选项)
String
policyCurrency
=
policyFollow
.
getPolicyCurrency
();
//保障年期(数字)
return
null
;
String
guaranteePeriod
=
policyFollow
.
getGuaranteePeriod
();
ApiAnnouncementCommissionRatioListRequest
ratioListRequest
=
new
ApiAnnouncementCommissionRatioListRequest
();
ratioListRequest
.
setProductLaunchBizId
(
policyFollow
.
getProductLaunchBizId
());
ratioListRequest
.
setEffectiveDate
(
policyFollow
.
getEffectiveDate
());
ratioListRequest
.
setPaymentTerm
(
paymentTerm
);
ratioListRequest
.
setAge
(
age
);
ratioListRequest
.
setEachIssuePremium
(
eachIssuePremium
);
ratioListRequest
.
setGuaranteePeriod
(
guaranteePeriod
);
ratioListRequest
.
setPolicyCurrency
(
policyCurrency
);
ratioListRequest
.
setProfessionalInvestor
(
professionalInvestor
);
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
result
=
ratioFeignClient
.
list
(
ratioListRequest
);
return
result
;
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
17269f1e
...
...
@@ -20,6 +20,7 @@ import com.yd.common.utils.RandomStringGenerator;
import
com.yd.common.utils.RedisUtil
;
import
com.yd.csf.api.dto.*
;
import
com.yd.csf.api.service.ApiBasicLawCalculateService
;
import
com.yd.csf.api.service.ApiCommissionConditionService
;
import
com.yd.csf.api.service.ApiExpectedFortuneLogService
;
import
com.yd.csf.api.service.ApiExpectedFortuneService
;
import
com.yd.csf.feign.request.expectedfortune.*
;
...
...
@@ -113,6 +114,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Resource
private
ApiAnnouncementCommissionRatioFeignClient
ratioFeignClient
;
@Autowired
private
ApiCommissionConditionService
apiCommissionConditionService
;
/**
* 生成预计发佣
*
...
...
@@ -243,29 +247,48 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
log
.
info
(
"查询产品发佣配置,获取结算币种==========>,{}"
,
JSON
.
toJSONString
(
announcementRatioList
));
// Integer paymentTerm = 0;
// PolicyFollow policyFollow = policyFollowService.queryOneByPolicyNo(request.getPolicyNo());
// if (policyFollow != null) {
// ApiAnnouncementCommissionRatioListRequest ratioListRequest = new ApiAnnouncementCommissionRatioListRequest();
// ratioListRequest.setEffectiveDate(policyFollow.getEffectiveDate());
// ratioListRequest.setPaymentTerm(policyFollow.getIssueNumber().toString()); // 保留原有过滤条件(可根据业务决定是否需要)
// ratioListRequest.setProductLaunchBizId(policyFollow.getProductLaunchBizId());
// Result<List<ApiAnnouncementCommissionRatioListResponse>> listResult = ratioFeignClient.list(ratioListRequest);
// if (listResult != null && !CollectionUtils.isEmpty(listResult.getData())) {
// // 取 endPeriod 的最大值作为总期数
// paymentTerm = listResult.getData().stream()
// .map(item -> {
// try {
// return Integer.parseInt(item.getEndPeriod()); // 将字符串转为整数
// } catch (NumberFormatException e) {
// // 若转换失败,记录日志并返回0,避免影响最大值计算
// log.warn("endPeriod 格式错误: {}", item.getEndPeriod());
// return 0;
// }
// })
// .max(Integer::compareTo)
// .orElse(0); // 若无有效值,默认0
// }
// }
Integer
paymentTerm
=
0
;
PolicyFollow
policyFollow
=
policyFollowService
.
queryOneByPolicyNo
(
request
.
getPolicyNo
());
if
(
policyFollow
!=
null
)
{
ApiAnnouncementCommissionRatioListRequest
ratioListRequest
=
new
ApiAnnouncementCommissionRatioListRequest
();
ratioListRequest
.
setEffectiveDate
(
policyFollow
.
getEffectiveDate
());
ratioListRequest
.
setPaymentTerm
(
policyFollow
.
getIssueNumber
().
toString
());
// 保留原有过滤条件(可根据业务决定是否需要)
ratioListRequest
.
setProductLaunchBizId
(
policyFollow
.
getProductLaunchBizId
());
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
listResult
=
ratioFeignClient
.
list
(
ratioListRequest
);
if
(
listResult
!=
null
&&
!
CollectionUtils
.
isEmpty
(
listResult
.
getData
()))
{
// 取 endPeriod 的最大值作为总期数
paymentTerm
=
listResult
.
getData
().
stream
()
.
map
(
item
->
{
try
{
return
Integer
.
parseInt
(
item
.
getEndPeriod
());
// 将字符串转为整数
}
catch
(
NumberFormatException
e
)
{
// 若转换失败,记录日志并返回0,避免影响最大值计算
log
.
warn
(
"endPeriod 格式错误: {}"
,
item
.
getEndPeriod
());
return
0
;
}
})
.
max
(
Integer:
:
compareTo
)
.
orElse
(
0
);
// 若无有效值,默认0
}
Result
<
List
<
ApiAnnouncementCommissionRatioListResponse
>>
listResult
=
apiCommissionConditionService
.
getCommissionRatioList
(
request
.
getPolicyNo
());
if
(
listResult
!=
null
&&
!
CollectionUtils
.
isEmpty
(
listResult
.
getData
()))
{
// 取 endPeriod 的最大值作为总期数
paymentTerm
=
listResult
.
getData
().
stream
()
.
map
(
item
->
{
try
{
return
Integer
.
parseInt
(
item
.
getEndPeriod
());
// 将字符串转为整数
}
catch
(
NumberFormatException
e
)
{
// 若转换失败,记录日志并返回0,避免影响最大值计算
log
.
warn
(
"endPeriod 格式错误: {}"
,
item
.
getEndPeriod
());
return
0
;
}
})
.
max
(
Integer:
:
compareTo
)
.
orElse
(
0
);
// 若无有效值,默认0
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/PolicyPolicyholderService.java
View file @
17269f1e
...
...
@@ -18,4 +18,5 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder>
*/
boolean
update
(
PolicyPolicyholderUpdateRequest
policyPolicyholderUpdateRequest
);
PolicyPolicyholder
queryOne
(
String
policyBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PolicyPolicyholderServiceImpl.java
View file @
17269f1e
package
com
.
yd
.
csf
.
service
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.common.enums.ResultCode
;
...
...
@@ -41,6 +42,12 @@ public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholde
policyPolicyholder
.
setUpdateTime
(
new
Date
());
return
this
.
updateById
(
policyPolicyholder
);
}
@Override
public
PolicyPolicyholder
queryOne
(
String
policyBizId
)
{
return
this
.
baseMapper
.
selectOne
(
new
LambdaQueryWrapper
<
PolicyPolicyholder
>()
.
eq
(
PolicyPolicyholder:
:
getPolicyBizId
,
policyBizId
).
last
(
" limit 1 "
));
}
}
...
...
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