Commit 99069997 by zhangxingmin

修复

parent b70d4af7
...@@ -20,11 +20,14 @@ import com.yd.csf.feign.response.expectedfortune.ApiExpectedFortunePageResponse; ...@@ -20,11 +20,14 @@ import com.yd.csf.feign.response.expectedfortune.ApiExpectedFortunePageResponse;
import com.yd.csf.feign.response.expectedfortune.ApiGenerateExpectedFortuneResponse; import com.yd.csf.feign.response.expectedfortune.ApiGenerateExpectedFortuneResponse;
import com.yd.csf.service.dto.CommissionRuleBindingDto; import com.yd.csf.service.dto.CommissionRuleBindingDto;
import com.yd.csf.service.dto.QueryPolicyAndBrokerDto; import com.yd.csf.service.dto.QueryPolicyAndBrokerDto;
import com.yd.csf.service.dto.QueryPolicyBrokerDto;
import com.yd.csf.service.enums.FortuneStatusEnum; import com.yd.csf.service.enums.FortuneStatusEnum;
import com.yd.csf.service.model.CommissionRuleBinding; import com.yd.csf.service.model.CommissionRuleBinding;
import com.yd.csf.service.model.ExpectedFortune; import com.yd.csf.service.model.ExpectedFortune;
import com.yd.csf.service.model.PolicyBroker;
import com.yd.csf.service.service.ICommissionRuleBindingService; import com.yd.csf.service.service.ICommissionRuleBindingService;
import com.yd.csf.service.service.IExpectedFortuneService; import com.yd.csf.service.service.IExpectedFortuneService;
import com.yd.csf.service.service.PolicyBrokerService;
import com.yd.csf.service.service.PolicyService; import com.yd.csf.service.service.PolicyService;
import com.yd.user.feign.client.clientuser.ApiClientUserFeignClient; import com.yd.user.feign.client.clientuser.ApiClientUserFeignClient;
import jodd.util.StringUtil; import jodd.util.StringUtil;
...@@ -80,6 +83,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -80,6 +83,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Autowired @Autowired
private ApiExpectedFortuneLogService apiExpectedFortuneLogService; private ApiExpectedFortuneLogService apiExpectedFortuneLogService;
@Autowired
private PolicyBrokerService policyBrokerService;
/** /**
* 生成预计发佣 * 生成预计发佣
* @param request * @param request
...@@ -327,9 +333,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -327,9 +333,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//判空判0 //判空判0
continue; continue;
} }
PolicyBroker policyBroker = policyBrokerService.queryOne(QueryPolicyBrokerDto.builder()
.policyNo(fortuneDto.getPolicyNo())
.brokerBizId(fortuneDto.getBrokerBizId())
.build());
ExpectedFortune fortune = new ExpectedFortune(); ExpectedFortune fortune = new ExpectedFortune();
//发佣金额 -> 计算值 - sqlAlgorithmResultDtoList集合里面的计算值和值 //发佣金额 -> 计算值 - sqlAlgorithmResultDtoList集合里面的计算值和值
fortune.setAmount(algorithmResDto.getCalculatedValue()); // fortune.setAmount(algorithmResDto.getCalculatedValue());
//保单发佣批次ID //保单发佣批次ID
// fortune.setBatchBizId(fortuneDto.getBatchBizId()); // fortune.setBatchBizId(fortuneDto.getBatchBizId());
//转介人姓名 (获得积分的业务员) //转介人姓名 (获得积分的业务员)
...@@ -351,6 +361,33 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -351,6 +361,33 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//保单号 //保单号
fortune.setPolicyNo(fortuneDto.getPolicyNo()); fortune.setPolicyNo(fortuneDto.getPolicyNo());
// 标准发佣金额 -> 计算值
BigDecimal standardAmount = algorithmResDto.getCalculatedValue();
fortune.setStandardAmount(standardAmount);
// 转介人介绍费占比
String brokerRatioStr = !Objects.isNull(policyBroker) ? policyBroker.getBrokerRatio() : "100";
fortune.setBrokerRatio(brokerRatioStr);
try {
// 将百分比字符串转换为小数
BigDecimal ratio = new BigDecimal(brokerRatioStr);
// 除以100
BigDecimal decimalRatio = ratio.divide(new BigDecimal("100"), 4, BigDecimal.ROUND_HALF_UP);
// 计算实际发佣金额 = 标准发佣金额 × decimalRatio
BigDecimal actualAmount = standardAmount.multiply(decimalRatio);
fortune.setAmount(actualAmount);
} catch (NumberFormatException e) {
// 如果比例不是有效的数字,使用标准金额
fortune.setAmount(standardAmount);
} catch (Exception e) {
// 其他异常处理
log.error("计算发佣金额异常: {}", brokerRatioStr, e);
fortune.setAmount(standardAmount);
}
fortuneList.add(fortune); fortuneList.add(fortune);
} }
} }
......
...@@ -18,4 +18,13 @@ public class QueryPolicyBrokerDto { ...@@ -18,4 +18,13 @@ public class QueryPolicyBrokerDto {
*/ */
private List<String> policyNoList; private List<String> policyNoList;
/**
* 保单号
*/
private String policyNo;
/**
* 转介人业务ID(客户端用户表唯一业务ID)
*/
private String brokerBizId;
} }
...@@ -92,7 +92,19 @@ public class ExpectedFortune implements Serializable { ...@@ -92,7 +92,19 @@ public class ExpectedFortune implements Serializable {
private String fortuneType; private String fortuneType;
/** /**
* 发佣金额 * 转介人介绍费占比
*/
@TableField("broker_ratio")
private String brokerRatio;
/**
* 标准发佣金额
*/
@TableField("standard_amount")
private BigDecimal standardAmount;
/**
* 实际发佣金额(实际发佣金额 = 标准发佣金额 * 转介人介绍费占比)
*/ */
@TableField("amount") @TableField("amount")
private BigDecimal amount; private BigDecimal amount;
......
...@@ -14,4 +14,6 @@ import java.util.List; ...@@ -14,4 +14,6 @@ import java.util.List;
public interface PolicyBrokerService extends IService<PolicyBroker> { public interface PolicyBrokerService extends IService<PolicyBroker> {
List<PolicyBroker> queryList(QueryPolicyBrokerDto dto); List<PolicyBroker> queryList(QueryPolicyBrokerDto dto);
PolicyBroker queryOne(QueryPolicyBrokerDto dto);
} }
...@@ -33,6 +33,15 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol ...@@ -33,6 +33,15 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol
); );
return list; return list;
} }
@Override
public PolicyBroker queryOne(QueryPolicyBrokerDto dto) {
return this.getOne(new LambdaQueryWrapper<PolicyBroker>()
.eq(PolicyBroker::getBrokerBizId,dto.getBrokerBizId())
.eq(PolicyBroker::getPolicyNo,dto.getPolicyNo())
.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