Commit 38aa30bb by zhangxingmin

push

parent 205f24dd
...@@ -270,9 +270,15 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -270,9 +270,15 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if (commissionRatio != null && commissionRatio.compareTo(BigDecimal.ZERO) != 0) { if (commissionRatio != null && commissionRatio.compareTo(BigDecimal.ZERO) != 0) {
// 实佣率 = paidRatio // 实佣率 = paidRatio
vo.setRealRate(paidRatio); vo.setRealRate(paidRatio);
// 达成率缺口 = 1 - 实佣率/产品来佣率 // 达成率缺口 = 1 - 总实佣率/产品来佣率
BigDecimal gap = BigDecimal.ONE.subtract(paidRatio.divide(commissionRatio, 4, RoundingMode.HALF_UP)); BigDecimal gap = BigDecimal.ONE.subtract(
vo.setGapRate(gap.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : gap); paidRatio.divide(commissionRatio, 4, RoundingMode.HALF_UP)
);
// gap 可能为负,小于0时取0;然后转换为百分比数值(乘100,保留2位小数)
BigDecimal gapRate = gap.compareTo(BigDecimal.ZERO) < 0
? BigDecimal.ZERO
: gap.multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP);
vo.setGapRate(gapRate);
// 计算累积已入账比例 = 总实佣率/产品对应来佣率 // 计算累积已入账比例 = 总实佣率/产品对应来佣率
BigDecimal totalRevenueRatio = paidRatio.divide(commissionRatio, 4, RoundingMode.HALF_UP); BigDecimal totalRevenueRatio = paidRatio.divide(commissionRatio, 4, RoundingMode.HALF_UP);
...@@ -369,8 +375,13 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -369,8 +375,13 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
.setScale(2, RoundingMode.HALF_UP)); .setScale(2, RoundingMode.HALF_UP));
// 本次达成率缺口 = 1 - (实佣率(本次) / 产品来佣率) // 本次达成率缺口 = 1 - (实佣率(本次) / 产品来佣率)
BigDecimal cumulativePaidRatio = currentRatio != null ? currentRatio : BigDecimal.ZERO; BigDecimal cumulativePaidRatio = currentRatio != null ? currentRatio : BigDecimal.ZERO;
BigDecimal gap = BigDecimal.ONE.subtract(cumulativePaidRatio.divide(productRatio, 4, RoundingMode.HALF_UP)); BigDecimal gap = BigDecimal.ONE.subtract(
vo.setGapRate(gap.compareTo(BigDecimal.ZERO) < 0 ? BigDecimal.ZERO : gap); cumulativePaidRatio.divide(productRatio, 4, RoundingMode.HALF_UP)
);
BigDecimal gapRate = gap.compareTo(BigDecimal.ZERO) < 0
? BigDecimal.ZERO
: gap.multiply(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP);
vo.setGapRate(gapRate);
} else { } else {
vo.setRevenueRatio(BigDecimal.ZERO); vo.setRevenueRatio(BigDecimal.ZERO);
vo.setGapRate(BigDecimal.ZERO); vo.setGapRate(BigDecimal.ZERO);
......
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