Commit baf660f8 by jianan

分期出账优化、应收款应付款金额精度2

parent 8ce75748
......@@ -668,7 +668,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//原币种
updateObj.setOriginalCurrency(policyCurrency);
//原币种金额
BigDecimal ruleAmount = expectedFortune.getRuleAmount().setScale(2, RoundingMode.HALF_UP);
BigDecimal ruleAmount = expectedFortune.getRuleAmount().setScale(0, RoundingMode.HALF_UP);
updateObj.setOriginalAmount(ruleAmount);
//原币种 -> 港币汇率
updateObj.setOriginalToHkdRate(originalToHkdRate);
......@@ -677,8 +677,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//默认保单币种 -> 港币汇率
updateObj.setDefaultExchangeRate(originalToHkdRate);
//应发港币金额(估)(标准发佣金额 * 默认保单币种 -> 港币汇率);出的钱保留整数
BigDecimal hkdAmount = ruleAmount.multiply(originalToHkdRate);
updateObj.setHkdAmount(hkdAmount.setScale(0, RoundingMode.HALF_UP));
BigDecimal hkdAmount = ruleAmount.multiply(originalToHkdRate).setScale(0, RoundingMode.HALF_UP);
updateObj.setHkdAmount(hkdAmount);
//发放币种
updateObj.setPayoutCurrency(currency);
//发放币种金额;出的钱保留整数
......@@ -688,10 +688,10 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//默认值
updateObj.setPaidRuleAmount(BigDecimal.ZERO);
updateObj.setUnpaidRuleAmount(ruleAmount);
updateObj.setUnpaidRuleAmountHkd(hkdAmount.setScale(0, RoundingMode.HALF_UP));
updateObj.setUnpaidRuleAmountHkd(hkdAmount);
updateObj.setPaidAmount(BigDecimal.ZERO);
updateObj.setPaidRatio(BigDecimal.ZERO);
updateObj.setUnpaidAmount(hkdAmount.setScale(0, RoundingMode.HALF_UP));
updateObj.setUnpaidAmount(hkdAmount);
updateObj.setUnpaidRatio(BigDecimal.valueOf(100));
}
......
......@@ -812,14 +812,13 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 入账检核汇率 — 仅审计追溯,始终写入
fortune.setExchangeRate(exchangeRate);
// 判断 expectedFortune.originalCurrency 、入账币种-fortune.currency 是否都等于 HKD
// 判断来佣入账币种-Commission.currency 是否为 HKD
Commission matchedCommission = commissionByPolicyPeriod.get(key);
boolean isAllHkd = matchedCommission != null
&& "HKD".equalsIgnoreCase(expectedFortune.getOriginalCurrency())
&& "HKD".equalsIgnoreCase(matchedCommission.getCurrency());
if (isAllHkd) {
// 原币种 = HKD 时,exchangeRate = 保单币种 → 港币,可安全使用
// 入账币种 = HKD 时,exchangeRate = 保单币种 → 港币
fortune.setOriginalToHkdRate(exchangeRate);
BigDecimal hkdAmount = fortune.getRuleAmount()
.multiply(exchangeRate).setScale(0, RoundingMode.HALF_UP);
......
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