Sfoglia il codice sorgente

计量2-13扣回预付款问题

cr 1 settimana fa
parent
commit
59e7f7caeb

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/RebateIncentiveAdvPay.java

@@ -43,7 +43,7 @@ public class RebateIncentiveAdvPay implements  DataModel{
         if(x>0){
             /*扣回款本身就是负数*/
             String s=new BigDecimal(x).setScale(5,BigDecimal.ROUND_HALF_UP).toPlainString();
-            this.retained =s ;
+            //this.retained =s ;
             this.currentPay=s;
         }
 

+ 5 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -1352,7 +1352,11 @@ public class ExecutorMeter extends FormulaExecutor {
                                      rebateIncentiveAdvPay.calc(baseInfo.getContractAmount().toPlainString(), dyTotalAmount,preSubTotal.getCurrentPeriodEndPay());
                                  }
                                  if (preSubTotal != null) {
-                                     rebateIncentiveAdvPay.setEndPay(addFc.apply(rebateIncentiveAdvPay.getCurrentPay(), preSubTotal.getCurrentPeriodEndPay()));
+                                     // 对两个参数进行四舍五入后再计算
+                                     String currentPayRounded = BaseUtils.str2BigDecimal(rebateIncentiveAdvPay.getCurrentPay()).setScale(0, RoundingMode.HALF_UP).toPlainString();
+                                     String previousPayRounded = BaseUtils.str2BigDecimal(preSubTotal.getCurrentPeriodEndPay()).setScale(0, RoundingMode.HALF_UP).toPlainString();
+                                     rebateIncentiveAdvPay.setEndPay(addFc.apply(currentPayRounded, previousPayRounded));
+                                     rebateIncentiveAdvPay.setRetained(rebateIncentiveAdvPay.getEndPay());
                                  } else {
                                      rebateIncentiveAdvPay.setEndPay(rebateIncentiveAdvPay.getCurrentPay());
                                  }