From 5659983f778bf64fbca6a3c76616a50834180b7c Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 21 七月 2022 18:22:18 +0800
Subject: [PATCH] 优化代码
---
java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
index 0c39d83..82d5f5b 100755
--- a/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
+++ b/java110-core/src/main/java/com/java110/core/smo/impl/ComputeFeeSMOImpl.java
@@ -1949,29 +1949,32 @@
double maxCycle = Math.floor(curOweMonth / rateCycle);
- //鍩哄噯
- BigDecimal firstAmount = curFeePrice.multiply(new BigDecimal(rateCycle));
- BigDecimal preCycleAmount = firstAmount;
+ // 澧為暱鍓嶇殑娆犺垂
+ BigDecimal addTotalAmount = oweAmountDec ;
+ BigDecimal preCycleAmount = curFeePrice.multiply(new BigDecimal(rateCycle));
BigDecimal rateDec = null; //閫掑鍛ㄦ湡鎵�鏀惰垂鐢�
BigDecimal lastRateAmountDec = null;
double curCycle = 0;
+ BigDecimal curAmount = null; // 褰撴湡閲戦
for (int cycleIndex = 0; cycleIndex < maxCycle; cycleIndex++) {
+ //褰撴湡澧為暱閮ㄥ垎
rateDec = preCycleAmount.multiply(new BigDecimal(rate)).setScale(2, BigDecimal.ROUND_HALF_UP);
//澧為暱鍛ㄦ湡鐨勫�嶆暟
curCycle = (cycleIndex + 1) * rateCycle;
if (curCycle > curOweMonth) {
+ //涓嶈冻澧為暱鍛ㄦ湡澧為暱鐜�
rateDec = new BigDecimal(curOweMonth / rateCycle - Math.ceil(curOweMonth / rateCycle)).multiply(rateDec).setScale(2, BigDecimal.ROUND_HALF_UP);
lastRateAmountDec = new BigDecimal(curOweMonth / rateCycle - Math.ceil(curOweMonth / rateCycle)).multiply(preCycleAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
- firstAmount = firstAmount.add(rateDec).add(lastRateAmountDec);
+ addTotalAmount = addTotalAmount.add(rateDec).add(lastRateAmountDec);
continue;
}
- firstAmount = firstAmount.add(rateDec).add(preCycleAmount);
- preCycleAmount = preCycleAmount.add(rateDec);
+ //鏈湡閲戦
+ curAmount = rateDec.add(preCycleAmount);// 澧為暱閮ㄥ垎 + 涓婃湰鏈熻垂鐢�
+ addTotalAmount = addTotalAmount.add(curAmount); // 璁″叆鎬荤殑 璐圭敤涓�
+ preCycleAmount = curAmount;
}
-
- firstAmount = firstAmount.add(oweAmountDec);
- feeDto.setAmountOwed(firstAmount.doubleValue() + "");
- feeDto.setFeeTotalPrice(firstAmount.doubleValue());
+ feeDto.setAmountOwed(addTotalAmount.doubleValue() + "");
+ feeDto.setFeeTotalPrice(addTotalAmount.doubleValue());
}
}
--
Gitblit v1.8.0