Commit 99069997 by zhangxingmin

修复

parent b70d4af7
......@@ -20,11 +20,14 @@ import com.yd.csf.feign.response.expectedfortune.ApiExpectedFortunePageResponse;
import com.yd.csf.feign.response.expectedfortune.ApiGenerateExpectedFortuneResponse;
import com.yd.csf.service.dto.CommissionRuleBindingDto;
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.model.CommissionRuleBinding;
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.IExpectedFortuneService;
import com.yd.csf.service.service.PolicyBrokerService;
import com.yd.csf.service.service.PolicyService;
import com.yd.user.feign.client.clientuser.ApiClientUserFeignClient;
import jodd.util.StringUtil;
......@@ -80,6 +83,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Autowired
private ApiExpectedFortuneLogService apiExpectedFortuneLogService;
@Autowired
private PolicyBrokerService policyBrokerService;
/**
* 生成预计发佣
* @param request
......@@ -327,9 +333,13 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//判空判0
continue;
}
PolicyBroker policyBroker = policyBrokerService.queryOne(QueryPolicyBrokerDto.builder()
.policyNo(fortuneDto.getPolicyNo())
.brokerBizId(fortuneDto.getBrokerBizId())
.build());
ExpectedFortune fortune = new ExpectedFortune();
//发佣金额 -> 计算值 - sqlAlgorithmResultDtoList集合里面的计算值和值
fortune.setAmount(algorithmResDto.getCalculatedValue());
// fortune.setAmount(algorithmResDto.getCalculatedValue());
//保单发佣批次ID
// fortune.setBatchBizId(fortuneDto.getBatchBizId());
//转介人姓名 (获得积分的业务员)
......@@ -351,6 +361,33 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//保单号
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);
}
}
......
......@@ -18,4 +18,13 @@ public class QueryPolicyBrokerDto {
*/
private List<String> policyNoList;
/**
* 保单号
*/
private String policyNo;
/**
* 转介人业务ID(客户端用户表唯一业务ID)
*/
private String brokerBizId;
}
......@@ -92,7 +92,19 @@ public class ExpectedFortune implements Serializable {
private String fortuneType;
/**
* 发佣金额
* 转介人介绍费占比
*/
@TableField("broker_ratio")
private String brokerRatio;
/**
* 标准发佣金额
*/
@TableField("standard_amount")
private BigDecimal standardAmount;
/**
* 实际发佣金额(实际发佣金额 = 标准发佣金额 * 转介人介绍费占比)
*/
@TableField("amount")
private BigDecimal amount;
......
......@@ -14,4 +14,6 @@ import java.util.List;
public interface PolicyBrokerService extends IService<PolicyBroker> {
List<PolicyBroker> queryList(QueryPolicyBrokerDto dto);
PolicyBroker queryOne(QueryPolicyBrokerDto dto);
}
......@@ -33,6 +33,15 @@ public class PolicyBrokerServiceImpl extends ServiceImpl<PolicyBrokerMapper, Pol
);
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