|
@@ -5,6 +5,7 @@ import lombok.Data;
|
|
|
import org.springblade.common.utils.BaseUtils;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
|
|
|
/**
|
|
|
* @author yangyj
|
|
@@ -39,13 +40,21 @@ public class RebateIncentiveAdvPay implements DataModel{
|
|
|
public void calc(String contractAmount,String dyTotalAmount,String currentPeriodEndPay){
|
|
|
double contractAmountD=BaseUtils.obj2DoubleZero(contractAmount);
|
|
|
//2025/7/23 修改逻辑 将最后算出来的值需要减去上期末的扣回动员预付款 currentPeriodEndPay
|
|
|
- double x=((2*(BaseUtils.obj2DoubleZero(subtotal) -0.3*contractAmountD)*BaseUtils.obj2DoubleZero(dyTotalAmount))/contractAmountD)-BaseUtils.obj2DoubleZero(currentPeriodEndPay);
|
|
|
+ double x=((2*(BaseUtils.obj2DoubleZero(subtotal) -0.3*contractAmountD)*BaseUtils.obj2DoubleZero(dyTotalAmount))/contractAmountD);
|
|
|
+ double y=BaseUtils.obj2DoubleZero(currentPeriodEndPay);
|
|
|
+ // 四舍五入后再相减
|
|
|
+ BigDecimal roundedX = new BigDecimal(x).setScale(0, BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal roundedY = new BigDecimal(y).setScale(0, BigDecimal.ROUND_HALF_UP);
|
|
|
+ double result = roundedX.subtract(roundedY).doubleValue();
|
|
|
if(x>0){
|
|
|
/*扣回款本身就是负数*/
|
|
|
- String s=new BigDecimal(x).setScale(5,BigDecimal.ROUND_HALF_UP).toPlainString();
|
|
|
+ String s=new BigDecimal(result).setScale(0,BigDecimal.ROUND_HALF_UP).toPlainString();
|
|
|
this.retained =s ;
|
|
|
this.currentPay=s;
|
|
|
}
|
|
|
+ if(roundedX.compareTo(BigDecimal.ZERO)>0){
|
|
|
+ this.endPay=roundedX.toPlainString();
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|