Commit 6c3ff802 by jianan

来佣率分隔符拆分读取佣率2

parent 47748a80
...@@ -396,4 +396,15 @@ public class ApiCommissionExpectedController { ...@@ -396,4 +396,15 @@ public class ApiCommissionExpectedController {
} }
return Collections.emptyList(); 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);
}
} }
...@@ -78,4 +78,6 @@ public interface CommissionExpectedService extends IService<CommissionExpected> ...@@ -78,4 +78,6 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
* @return 应收款报表VO分页列表 * @return 应收款报表VO分页列表
*/ */
IPage<ReceivableReportVO> receivableReportPage(Page<ReceivableReportVO> page, List<Long> expectedIds); IPage<ReceivableReportVO> receivableReportPage(Page<ReceivableReportVO> page, List<Long> expectedIds);
void testExpectedCommission(String policyNo);
} }
...@@ -128,7 +128,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -128,7 +128,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpectedVO.setReconciliationCompany(policy.getReconciliationCompany()); commissionExpectedVO.setReconciliationCompany(policy.getReconciliationCompany());
commissionExpectedVO.setPolicyCurrency(policy.getCurrency()); commissionExpectedVO.setPolicyCurrency(policy.getCurrency());
} }
PolicyFollow policyFollow= policyFollowMap.get(commissionExpected.getPolicyNo()); PolicyFollow policyFollow = policyFollowMap.get(commissionExpected.getPolicyNo());
if (policyFollow != null) { if (policyFollow != null) {
commissionExpectedVO.setProductName(policyFollow.getProductName()); commissionExpectedVO.setProductName(policyFollow.getProductName());
commissionExpectedVO.setProductLaunchBizId(policyFollow.getProductLaunchBizId()); commissionExpectedVO.setProductLaunchBizId(policyFollow.getProductLaunchBizId());
...@@ -194,7 +194,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -194,7 +194,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
Object data = result.getData(); Object data = result.getData();
try { try {
// 将 data 转为 JSON 字符串再解析为 Map,以便提取 records // 将 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"); Object recordsObj = dataMap.get("records");
if (recordsObj instanceof List) { if (recordsObj instanceof List) {
List<?> recordsList = (List<?>) recordsObj; List<?> recordsList = (List<?>) recordsObj;
...@@ -609,7 +610,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -609,7 +610,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
throw new BusinessException("保單持有人年齡不能为空"); throw new BusinessException("保單持有人年齡不能为空");
} }
Date effectiveDate = policy.getEffectiveDate(); Date effectiveDate = policy.getEffectiveDate();
log.info("getExpectedCommissionByProductlaunchId的effectiveDate生效日期:{}",effectiveDate); log.info("getExpectedCommissionByProductlaunchId的effectiveDate生效日期:{}", effectiveDate);
if (effectiveDate == null) { if (effectiveDate == null) {
throw new BusinessException("保单生效日期不能为空"); throw new BusinessException("保单生效日期不能为空");
} }
...@@ -797,7 +798,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -797,7 +798,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
} }
try { try {
return objectMapper.readValue(speciesJson, return objectMapper.readValue(speciesJson,
new TypeReference<List<SpeciesCondition>>() {}); new TypeReference<List<SpeciesCondition>>() {
});
} catch (IOException e) { } catch (IOException e) {
log.error("解析speciesJson失败: {}", speciesJson, e); log.error("解析speciesJson失败: {}", speciesJson, e);
return Collections.emptyList(); return Collections.emptyList();
...@@ -898,6 +900,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -898,6 +900,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/** /**
* 计算预计来佣港币金额 * 计算预计来佣港币金额
*
* @param premium 保费 * @param premium 保费
* @param commissionRatio 佣金比例 * @param commissionRatio 佣金比例
* @param commissionBizType 佣金业务类型 * @param commissionBizType 佣金业务类型
...@@ -934,6 +937,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -934,6 +937,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/** /**
* 保单币种对预计来佣的结算币种的默认汇率 * 保单币种对预计来佣的结算币种的默认汇率
*
* @param policyCurrency 保单币种 * @param policyCurrency 保单币种
* @param currency 预计来佣的结算币种 * @param currency 预计来佣的结算币种
* @return 汇率 * @return 汇率
...@@ -952,6 +956,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -952,6 +956,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
/** /**
* 根据保单生效日和佣金期数计算预计来佣日期,首期为生效日的1个月,后续期数为首期的次年 * 根据保单生效日和佣金期数计算预计来佣日期,首期为生效日的1个月,后续期数为首期的次年
*
* @param endPeriod 佣金期数 * @param endPeriod 佣金期数
* @param effectiveDate 保单生效日 * @param effectiveDate 保单生效日
* @return 预计来佣日期 * @return 预计来佣日期
...@@ -983,6 +988,34 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -983,6 +988,34 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return baseMapper.receivableReportPage(page, expectedIds); 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);
}
}
}
}
} }
......
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