Bladeren bron

材料调差

yangyj 11 maanden geleden
bovenliggende
commit
1bd4ce4af7

+ 13 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -63,6 +63,8 @@ public class ExecutorMeter extends FormulaExecutor {
     List<Material>materials;
     /*本期材料垫付款*/
     private String materialSum;
+    /*本期材料调差*/
+    private  String materialAdjust=null;
 
     /**是否是浙江模版*/
     private  boolean isZJ=false;
@@ -558,7 +560,8 @@ public class ExecutorMeter extends FormulaExecutor {
                     });
                     /*合计*/
                     FormulaUtils.elementFindByKey(fdm,"key_14").ifPresent(t->{
-                        elementWriter.write(t,addFc.apply(tax,diffSum));
+                        materialAdjust=addFc.apply(tax,diffSum);
+                        elementWriter.write(t,materialAdjust);
                     });
                 });
 
@@ -1097,13 +1100,16 @@ public class ExecutorMeter extends FormulaExecutor {
                      addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodChangeMoney,xj::setCurrentPeriodChangeMoney);
                      payItemZj.add(xj);
                      InterimPaymentCertificate jgtz= new InterimPaymentCertificate("价格调整");
-                     LinkedHashMap<Integer,List<MaterialAdjust>> materialAdjustMap= tec.meterInfo.getMaterialAdjustListMap();
+                     /*LinkedHashMap<Integer,List<MaterialAdjust>> materialAdjustMap= tec.meterInfo.getMaterialAdjustListMap();*/
                      /*材料调差*/
-                     if(materialAdjustMap!=null&&materialAdjustMap.size()>0) {
-                         Function<Integer, String> countFc = category -> materialAdjustMap.get(category).stream().map(MaterialAdjust::getAdjustMoney).reduce(BigDecimal.ZERO, BigDecimal::add).toPlainString();
-                         jgtz.setPreviousPeriodEndPay(StringUtils.number2String(countFc.apply(MeterInfo.PRE),0));
-                         jgtz.setCurrentPeriodPay(StringUtils.number2String(countFc.apply(MeterInfo.CUR),0));
-                         jgtz.setCurrentPeriodEndPay(StringUtils.number2String(countFc.apply(MeterInfo.END),0));
+                     if(materialAdjust!=null) {
+                         /*Function<Integer, String> countFc = category -> materialAdjustMap.get(category).stream().map(MaterialAdjust::getAdjustMoney).reduce(BigDecimal.ZERO, BigDecimal::add).toPlainString();*/
+                         InterimPayCertificateItem preAdjust = previousMap.get("价格调整");
+                         if(preAdjust!=null){
+                             jgtz.setPreviousPeriodEndPay(preAdjust.getCurrentPeriodEndPay());
+                         }
+                         jgtz.setCurrentPeriodPay(materialAdjust);
+                         jgtz.setCurrentPeriodEndPay(addFc.apply(jgtz.getPreviousPeriodEndPay(),jgtz.getCurrentPeriodPay()));
                      }
                      payItemZj.add(jgtz);
                      InterimPaymentCertificate hj = new InterimPaymentCertificate("合计",true);