Commit ccf53a60 by zhangxingmin

Merge remote-tracking branch 'origin/dev' into prod

parents 9445162d 5c2e1a32
...@@ -390,6 +390,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -390,6 +390,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if (commission == null) { if (commission == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "未找到该来佣记录"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "未找到该来佣记录");
} }
if (!Objects.equals(commission.getPolicyNo(), commissionUpdateRequest.getPolicyNo())) {
throw new BusinessException("当前保单号不匹配");
}
Policy policy = null; Policy policy = null;
if (StringUtils.isNotBlank(commissionUpdateRequest.getPolicyNo())) { if (StringUtils.isNotBlank(commissionUpdateRequest.getPolicyNo())) {
policy = policyService.lambdaQuery().eq(Policy::getPolicyNo, commission.getPolicyNo()).one(); policy = policyService.lambdaQuery().eq(Policy::getPolicyNo, commission.getPolicyNo()).one();
...@@ -854,7 +857,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -854,7 +857,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission.setCommissionBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_COMMISSION.getCode())); commission.setCommissionBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_COMMISSION.getCode()));
// 关联业务id // 关联业务id
if ("R".equals(request.getCommissionBizType())) { if ("R".equals(request.getCommissionBizType())) {
if (MapUtils.isNotEmpty(policyMap)) {
Policy policy = policyMap.get(request.getPolicyNo()); Policy policy = policyMap.get(request.getPolicyNo());
if (policy != null) { if (policy != null) {
commission.setReconciliationCompany(policy.getReconciliationCompany()); commission.setReconciliationCompany(policy.getReconciliationCompany());
...@@ -872,8 +874,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -872,8 +874,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission.getPolicyCurrency()) commission.getPolicyCurrency())
); );
} else { } else {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "保单不存在, policyNo: " + request.getPolicyNo()); // throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "保单不存在, policyNo: " + request.getPolicyNo());
} throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "保单号不存在");
} }
} else { } else {
commission.setPolicyNo(null); commission.setPolicyNo(null);
......
...@@ -317,6 +317,7 @@ public class FortuneVO implements Serializable { ...@@ -317,6 +317,7 @@ public class FortuneVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 对象转封装类 * 对象转封装类
* *
...@@ -329,21 +330,33 @@ public class FortuneVO implements Serializable { ...@@ -329,21 +330,33 @@ public class FortuneVO implements Serializable {
} }
FortuneVO fortuneVO = new FortuneVO(); FortuneVO fortuneVO = new FortuneVO();
BeanUtils.copyProperties(fortune, fortuneVO); BeanUtils.copyProperties(fortune, fortuneVO);
// 计算已出账金额和待出账金额
BigDecimal currentPaymentHkdAmount = "2".equals(fortune.getStatus()) ? fortune.getCurrentPaymentHkdAmount() : BigDecimal.ZERO; // 安全获取港币金额,避免 null
BigDecimal hkdAmount = ObjectUtil.defaultIfNull(fortune.getHkdAmount(), BigDecimal.ZERO);
// 已出账金额(status=2 时取 currentPaymentHkdAmount,否则为 0)
BigDecimal currentPaymentHkdAmount = "2".equals(fortune.getStatus())
? ObjectUtil.defaultIfNull(fortune.getCurrentPaymentHkdAmount(), BigDecimal.ZERO)
: BigDecimal.ZERO;
fortuneVO.setFortunePaidAmount(currentPaymentHkdAmount); fortuneVO.setFortunePaidAmount(currentPaymentHkdAmount);
fortuneVO.setFortuneUnpaidAmount(NumberUtil.sub(fortune.getHkdAmount(), currentPaymentHkdAmount)); fortuneVO.setFortuneUnpaidAmount(NumberUtil.sub(hkdAmount, currentPaymentHkdAmount));
// 计算已出账比例
BigDecimal currentPaymentRatio = NumberUtil // 计算已出账比例,分母为 0 时直接设为 0%
.div(currentPaymentHkdAmount, fortune.getHkdAmount(), 4) BigDecimal currentPaymentRatio;
if (hkdAmount.compareTo(BigDecimal.ZERO) == 0) {
currentPaymentRatio = BigDecimal.ZERO;
} else {
currentPaymentRatio = NumberUtil.div(currentPaymentHkdAmount, hkdAmount, 4)
.multiply(BigDecimal.valueOf(100)); .multiply(BigDecimal.valueOf(100));
}
fortuneVO.setCurrentPaymentRatio(currentPaymentRatio); fortuneVO.setCurrentPaymentRatio(currentPaymentRatio);
// 计算剩余出账比例
fortuneVO.setFortuneUnpaidRatio(BigDecimal.valueOf(100).subtract(currentPaymentRatio)); fortuneVO.setFortuneUnpaidRatio(BigDecimal.valueOf(100).subtract(currentPaymentRatio));
fortuneVO.setCurrency(CurrencyEnum.toLabel(fortune.getCurrency())); fortuneVO.setCurrency(CurrencyEnum.toLabel(fortune.getCurrency()));
fortuneVO.setPolicyCurrency((CurrencyEnum.toLabel(fortune.getPolicyCurrency()))); fortuneVO.setPolicyCurrency(CurrencyEnum.toLabel(fortune.getPolicyCurrency()));
return fortuneVO; return fortuneVO;
} }
} }
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