|
|
@ -561,6 +561,34 @@ public class LoanCaseExecuteApplyService extends MybatisBaseService<LoanCaseExec |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
int size = 3; |
|
|
|
BigDecimal executeAmountInArear = new BigDecimal("10.00"); |
|
|
|
Map<String, BigDecimal> vinAmountMap = new HashMap<>(); |
|
|
|
|
|
|
|
// 四舍五入到2位小数的平均值
|
|
|
|
BigDecimal roundedAverage = executeAmountInArear.divide(BigDecimal.valueOf(size), 2, RoundingMode.HALF_UP); |
|
|
|
// n台车 × roundedAverage
|
|
|
|
BigDecimal totalRounded = roundedAverage.multiply(BigDecimal.valueOf(size)).setScale(2, RoundingMode.HALF_UP); |
|
|
|
|
|
|
|
if (executeAmountInArear.setScale(2, RoundingMode.HALF_UP).compareTo(totalRounded) == 0) { |
|
|
|
// 能整除,直接平均
|
|
|
|
System.out.println(roundedAverage); |
|
|
|
} else { |
|
|
|
// 不能整除,最后一台车补差值
|
|
|
|
BigDecimal totalForNMinusOne = roundedAverage.multiply(BigDecimal.valueOf(size - 1)); |
|
|
|
BigDecimal lastAmount = executeAmountInArear.subtract(totalForNMinusOne).setScale(2, RoundingMode.HALF_UP); |
|
|
|
|
|
|
|
for (int i = 0; i < size; i++) { |
|
|
|
if (i == size - 1) { |
|
|
|
vinAmountMap.put("111", lastAmount); |
|
|
|
} else { |
|
|
|
vinAmountMap.put("222", roundedAverage); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void pushRiskToFin(String sid) { |
|
|
|
LoanCaseExecuteApply loanCaseExecuteApply = fetchBySid(sid); |
|
|
|
if (loanCaseExecuteApply != null) { |
|
|
|