Commit 4e597b79 by zhangxingmin

Merge remote-tracking branch 'origin/test_产品发拥增加过滤条件' into test

parents f2acd2c6 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);
}
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;
/**
* 佣金条件服务类
*/
@Slf4j
@Service
public class ApiCommissionConditionServiceImpl implements ApiCommissionConditionService {
@Autowired
private ApiAnnouncementCommissionRatioFeignClient ratioFeignClient;
@Autowired
private PolicyFollowService policyFollowService;
@Autowired
private PolicyPolicyholderService policyPolicyholderService;
/**
* 根据保单号查询保单所参与过滤产品发佣率数据筛选的字段列表数据
* @param policyNo
* @return
*/
@Override
public Result<List<ApiAnnouncementCommissionRatioListResponse>> getCommissionRatioList(String policyNo) {
//根据保单号查询保单跟进表数据
PolicyFollow policyFollow = policyFollowService.queryOneByPolicyNo(policyNo);
if (policyFollow == null) {
throw new BusinessException("新单跟进表信息不存在");
}
//列出固定几个需要参与发佣率筛选数据的保单字段
//供款年期(数字)
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();
//保障年期(数字)
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; ...@@ -20,6 +20,7 @@ import com.yd.common.utils.RandomStringGenerator;
import com.yd.common.utils.RedisUtil; import com.yd.common.utils.RedisUtil;
import com.yd.csf.api.dto.*; import com.yd.csf.api.dto.*;
import com.yd.csf.api.service.ApiBasicLawCalculateService; 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.ApiExpectedFortuneLogService;
import com.yd.csf.api.service.ApiExpectedFortuneService; import com.yd.csf.api.service.ApiExpectedFortuneService;
import com.yd.csf.feign.request.expectedfortune.*; import com.yd.csf.feign.request.expectedfortune.*;
...@@ -113,6 +114,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -113,6 +114,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Resource @Resource
private ApiAnnouncementCommissionRatioFeignClient ratioFeignClient; private ApiAnnouncementCommissionRatioFeignClient ratioFeignClient;
@Autowired
private ApiCommissionConditionService apiCommissionConditionService;
/** /**
* 生成预计发佣 * 生成预计发佣
* *
...@@ -243,29 +247,48 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -243,29 +247,48 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
log.info("查询产品发佣配置,获取结算币种==========>,{}",JSON.toJSONString(announcementRatioList)); 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; Integer paymentTerm = 0;
PolicyFollow policyFollow = policyFollowService.queryOneByPolicyNo(request.getPolicyNo()); Result<List<ApiAnnouncementCommissionRatioListResponse>> listResult = apiCommissionConditionService.getCommissionRatioList(request.getPolicyNo());
if (policyFollow != null) { if (listResult != null && !CollectionUtils.isEmpty(listResult.getData())) {
ApiAnnouncementCommissionRatioListRequest ratioListRequest = new ApiAnnouncementCommissionRatioListRequest(); // 取 endPeriod 的最大值作为总期数
ratioListRequest.setEffectiveDate(policyFollow.getEffectiveDate()); paymentTerm = listResult.getData().stream()
ratioListRequest.setPaymentTerm(policyFollow.getIssueNumber().toString()); // 保留原有过滤条件(可根据业务决定是否需要) .map(item -> {
ratioListRequest.setProductLaunchBizId(policyFollow.getProductLaunchBizId()); try {
Result<List<ApiAnnouncementCommissionRatioListResponse>> listResult = ratioFeignClient.list(ratioListRequest); return Integer.parseInt(item.getEndPeriod()); // 将字符串转为整数
if (listResult != null && !CollectionUtils.isEmpty(listResult.getData())) { } catch (NumberFormatException e) {
// 取 endPeriod 的最大值作为总期数 // 若转换失败,记录日志并返回0,避免影响最大值计算
paymentTerm = listResult.getData().stream() log.warn("endPeriod 格式错误: {}", item.getEndPeriod());
.map(item -> { return 0;
try { }
return Integer.parseInt(item.getEndPeriod()); // 将字符串转为整数 })
} catch (NumberFormatException e) { .max(Integer::compareTo)
// 若转换失败,记录日志并返回0,避免影响最大值计算 .orElse(0); // 若无有效值,默认0
log.warn("endPeriod 格式错误: {}", item.getEndPeriod());
return 0;
}
})
.max(Integer::compareTo)
.orElse(0); // 若无有效值,默认0
}
} }
......
...@@ -18,4 +18,5 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder> ...@@ -18,4 +18,5 @@ public interface PolicyPolicyholderService extends IService<PolicyPolicyholder>
*/ */
boolean update(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest); boolean update(PolicyPolicyholderUpdateRequest policyPolicyholderUpdateRequest);
PolicyPolicyholder queryOne(String policyBizId);
} }
package com.yd.csf.service.service.impl; 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.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
...@@ -41,6 +42,12 @@ public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholde ...@@ -41,6 +42,12 @@ public class PolicyPolicyholderServiceImpl extends ServiceImpl<PolicyPolicyholde
policyPolicyholder.setUpdateTime(new Date()); policyPolicyholder.setUpdateTime(new Date());
return this.updateById(policyPolicyholder); 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