Commit 17269f1e by zhangxingmin

push

parent 07ce729c
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);
}
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;
}
......
......@@ -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,14 +247,34 @@ 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);
Result<List<ApiAnnouncementCommissionRatioListResponse>> listResult = apiCommissionConditionService.getCommissionRatioList(request.getPolicyNo());
if (listResult != null && !CollectionUtils.isEmpty(listResult.getData())) {
// 取 endPeriod 的最大值作为总期数
paymentTerm = listResult.getData().stream()
......@@ -266,7 +290,6 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
.max(Integer::compareTo)
.orElse(0); // 若无有效值,默认0
}
}
//遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表(同步执行)
......
......@@ -18,4 +18,5 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder>
*/
boolean update(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest);
PolicyPolicyholder queryOne(String policyBizId);
}
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 "));
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment