yangyj hai 6 meses
pai
achega
f59be0ba01

+ 16 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/MaterialAdjust.java

@@ -27,4 +27,20 @@ public class MaterialAdjust {
     private Long      periodId;
     /**计量期排序*/
     private Integer   sort;
+
+    public void setAdjustMoney(BigDecimal adjustMoney) {
+        this.adjustMoney = adjustMoney.stripTrailingZeros();
+    }
+
+    public void setAdjustTotal(BigDecimal adjustTotal) {
+        this.adjustTotal = adjustTotal.stripTrailingZeros();
+    }
+
+    public void setMaterialPrice(BigDecimal materialPrice) {
+        this.materialPrice = materialPrice.stripTrailingZeros();
+    }
+
+    public void setCurrentPrice(BigDecimal currentPrice) {
+        this.currentPrice = currentPrice.stripTrailingZeros();
+    }
 }

+ 34 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/InterimPayCertificateItem.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.apache.commons.lang.StringUtils;
 import org.springblade.core.mp.base.BaseEntity;
 
 /**
@@ -46,4 +47,37 @@ public class InterimPayCertificateItem extends BaseEntity {
     private Integer noApply;
     @ApiModelProperty(value = "顺序")
     private Integer sort;
+
+    public void setContractAmount(String contractAmount) {
+        this.contractAmount = checked(contractAmount);
+    }
+
+    public void setRevisedTotal(String revisedTotal) {
+        this.revisedTotal = checked(revisedTotal);
+    }
+
+    public void setRevisedAmount(String revisedAmount) {
+        this.revisedAmount = checked(revisedAmount);
+    }
+
+    public void setCurrentPeriodEndPay(String currentPeriodEndPay) {
+        this.currentPeriodEndPay = checked(currentPeriodEndPay);
+    }
+
+    public void setPreviousPeriodEndPay(String previousPeriodEndPay) {
+        this.previousPeriodEndPay = checked(previousPeriodEndPay);
+    }
+
+    public void setCurrentPeriodPay(String currentPeriodPay) {
+        this.currentPeriodPay = checked(currentPeriodPay);
+    }
+
+    public String checked(String str){
+        if(str!=null){
+            if("0".equals(str)){
+                str="";
+            }
+        }
+        return str;
+    }
 }

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorInit.java

@@ -217,15 +217,15 @@ public class ExecutorInit extends FormulaExecutor {
 
     private void materialAdjust(){
         List<MaterialAdjust> materialAdjustList = materialAdjustFc.apply(tec.getContractId());
+        LinkedHashMap<Integer,List<MaterialAdjust>>materialAdjustListMap = new LinkedHashMap<>();
         if(materialAdjustList.size()>0){
             LinkedHashMap<Integer,List<MaterialAdjust>> tmp = materialAdjustList.stream().collect(Collectors.groupingBy(MaterialAdjust::getSort,LinkedHashMap::new,Collectors.toList()));
             int sort = tec.periodInfo.getSort();
-            LinkedHashMap<Integer,List<MaterialAdjust>>materialAdjustListMap = new LinkedHashMap<>();
             materialAdjustListMap.put(MeterInfo.PRE,materialAdjustPick.apply(tmp,kv->kv.getKey()<sort));
             materialAdjustListMap.put(MeterInfo.CUR,materialAdjustPick.apply(tmp,kv->kv.getKey()==sort));
             materialAdjustListMap.put(MeterInfo.END,materialAdjustPick.apply(tmp,kv->kv.getKey()<=sort));
-            tec.meterInfo.setMaterialAdjustListMap(materialAdjustListMap);
         }
+        tec.meterInfo.setMaterialAdjustListMap(materialAdjustListMap);
     }
 
 

+ 10 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -516,9 +516,14 @@ public class ExecutorMeter extends FormulaExecutor {
             /*本期材料*/
             List<MaterialAdjust> materialAdjustList=tec.meterInfo.getMaterialAdjustListMap().get(MeterInfo.CUR);
             if(materialAdjustList.size()>0){
+                /*期号*/
+                String qh="";
+                if(tec.periodInfo.getPayNumber()!=null) {
+                   qh=tec.periodInfo.getPayNumber().split("-")[1];
+                }
                 for(MaterialAdjust mad:materialAdjustList){
                     MaterialPriceDifferential mpd = new MaterialPriceDifferential();
-                    mpd.setPeriodNumber(tec.periodInfo.getPeriodNumber());
+                    mpd.setPeriodNumber(qh);
                     mpd.setName(mad.getMaterialName());
                     mpd.setUnit(mad.getUnit());
                     mpd.setQuantity(mad.getAdjustTotal().toPlainString());
@@ -1247,7 +1252,7 @@ public class ExecutorMeter extends FormulaExecutor {
                      /*分行合计列,合计的时候需要计入手填部分*/
                      fieldGetSet(x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
                      InterimPaymentCertificate finalBlj = blj;
-                     dataList.stream().filter(e-> "计".equals(e.getChapterSeq())).findFirst().ifPresent(t->{
+                     dataList.stream().filter(e-> "计".equals(e.getChapterSeq())).findFirst().ifPresent(t->{
                          finalBlj.setCurrentPeriodPay(StringUtils.number2String(multiFc.apply(t.getCurrentPeriodPay(),"0.1"),0));
                          if(BaseUtils.obj2DoubleZero(t.getPreviousPeriodEndPay())>0) {
                              finalBlj.setPreviousPeriodEndPay(StringUtils.number2String(multiFc.apply(t.getPreviousPeriodEndPay(), "0.1"),0));
@@ -1280,6 +1285,9 @@ public class ExecutorMeter extends FormulaExecutor {
                      /*排序*/
                      List<String> indexSort =dataList.stream().map(InterimPaymentCertificate::getChapterSeq).collect(Collectors.toList());
                      itemList.forEach(e->{
+                         e.setContractAmount(StringUtils.number2String(e.getContractAmount(),0));
+                         e.setRevisedTotal(StringUtils.number2String(e.getRevisedTotal(),0));
+                         e.setRevisedAmount(StringUtils.number2String(e.getRevisedAmount(),0));
                          e.setCertificateId(tec.getReportId());
                          e.setSort(indexSort.indexOf(e.getChapterSeq()));
                      });