Browse Source

183计量公式

cr 1 ngày trước cách đây
mục cha
commit
eeae6a904e

+ 11 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -2,7 +2,6 @@ package org.springblade.manager.formula.impl;
 
 import cn.hutool.log.StaticLog;
 import com.alibaba.fastjson.annotation.JSONField;
-import com.itextpdf.text.Chapter;
 import com.mixsmart.utils.CustomFunction;
 import com.mixsmart.utils.FormulaUtils;
 import com.mixsmart.utils.StringUtils;
@@ -1102,10 +1101,18 @@ public class ExecutorMeter extends FormulaExecutor {
                         change.setChangeEndPeriodUnit(totalChangeUnit.stripTrailingZeros().toPlainString());
                         change.setChangeEndPeriodAmount(totalChangeAmount.stripTrailingZeros().toPlainString());
                     }
+
                     /*到本期末变更后(工程量)*/
-                    change.setAfterChangePeriodUnit(new BigDecimal(StringUtils.isEmpty(change.getChangeEndPeriodUnit())?"0":change.getChangeEndPeriodUnit()).add(new BigDecimal(StringUtils.isEmpty(change.getChangePeriodUnit())?"0":change.getChangePeriodUnit())).stripTrailingZeros().toPlainString());
-                    /*到本期末变更后(金额)*/
-                    change.setAfterChangePeriodAmount(new BigDecimal(StringUtils.isEmpty(change.getChangeEndPeriodAmount())?"0":change.getChangeEndPeriodAmount()).add(new BigDecimal(StringUtils.isEmpty(change.getChangePeriodAmount())?"0":change.getChangePeriodAmount())).stripTrailingZeros().toPlainString());
+                    BigDecimal addTotal = BaseUtils.str2BigDecimal(StringUtils.handleNull(change.getContractInventoryUnit()))
+                            .add(BaseUtils.str2BigDecimal(StringUtils.handleNull(change.getChangeEndPeriodUnit())));
+                    if(addTotal.compareTo(BigDecimal.ZERO)!=0){
+                        change.setAfterChangePeriodUnit(addTotal.stripTrailingZeros().toPlainString());
+                        if(inventory.getCurrentPrice().compareTo(BigDecimal.ZERO)!=0){
+                            BigDecimal multiplyMoney = addTotal.multiply(inventory.getCurrentPrice());
+                            /*到本期末变更后(金额)*/
+                            change.setAfterChangePeriodAmount(multiplyMoney.stripTrailingZeros().toPlainString());
+                        }
+                    }
                     dataList.add(change);
                 }
                 if(!dataList.isEmpty()){