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