yangyj 11 сар өмнө
parent
commit
c90f62947b

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/MaterialPriceDifferential.java

@@ -48,6 +48,10 @@ public class MaterialPriceDifferential implements  DataModel{
     private String certificate;
     private String certificate;
     @JSONField(name = "key_14",label="合计",ordinal = 102)
     @JSONField(name = "key_14",label="合计",ordinal = 102)
     private String sum;
     private String sum;
+    @JSONField(name = "key_15",label="调差金额合计",ordinal = 102)
+    private String diffSum;
+    @JSONField(name = "key_16",label="税金",ordinal = 102)
+    private String tax;
     @JSONField(name = "key_13",label="页码",format="$2页,第$1页",ordinal = 101)
     @JSONField(name = "key_13",label="页码",format="$2页,第$1页",ordinal = 101)
     private String pageCount;
     private String pageCount;
     @JSONField(name = "key_69",label="共N页" ,ordinal = 101)
     @JSONField(name = "key_69",label="共N页" ,ordinal = 101)

+ 22 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -532,16 +532,32 @@ public class ExecutorMeter extends FormulaExecutor {
                     mpd.setAmount(StringUtils.number2String(multiFc.apply(mpd.getPrice(),mpd.getQuantity()),0));
                     mpd.setAmount(StringUtils.number2String(multiFc.apply(mpd.getPrice(),mpd.getQuantity()),0));
                     mpd.setAmountBase(StringUtils.number2String(multiFc.apply(mpd.getPriceBase(),mpd.getQuantity()),0));
                     mpd.setAmountBase(StringUtils.number2String(multiFc.apply(mpd.getPriceBase(),mpd.getQuantity()),0));
                     mpd.setPriceSpread(subtractFc.apply(mpd.getPrice(),mpd.getPriceBase()));
                     mpd.setPriceSpread(subtractFc.apply(mpd.getPrice(),mpd.getPriceBase()));
-                    mpd.setTotal(StringUtils.number2String(mad.getAdjustMoney().toPlainString(),0));
+                    mpd.setTotal(StringUtils.number2String(addFc.apply("0.91",mad.getAdjustMoney().toPlainString()),0));
                     mpd.setMaterialArriveNumber(tec.periodInfo.getPayNumber());
                     mpd.setMaterialArriveNumber(tec.periodInfo.getPayNumber());
                     dataList.add(mpd);
                     dataList.add(mpd);
                 }
                 }
+
+                /*List<  List<MaterialPriceDifferential> > list =BaseUtils.splitList(dataList,capacity);*/
+                /*调差金额合计*/
+                FormulaUtils.elementFindByKey(fdm,"key_15").ifPresent(fd->{
+                    String diffSum=dataList.stream().map(MaterialPriceDifferential::getTotal).map(BaseUtils::str2BigDecimal).reduce(BigDecimal.ZERO,BigDecimal::add).setScale(0,RoundingMode.HALF_UP).toPlainString();
+                    elementWriter.write(fd,diffSum);
+                    /*税金*/
+                    BigDecimal sum= materialAdjustList.stream().map(m->BaseUtils.str2BigDecimal(m.getAdjustMoney()).setScale(0,RoundingMode.HALF_UP)).reduce(BigDecimal.ZERO,BigDecimal::add);
+                    String tax=BaseUtils.str2BigDecimal(multiFc.apply(sum.toPlainString(),"0.09")).setScale(0,RoundingMode.HALF_UP).toPlainString();
+                    FormulaUtils.elementFindByKey(fdm,"key_16").ifPresent(t->{
+                        elementWriter.write(t,tax);
+                    });
+                    /*合计*/
+                    FormulaUtils.elementFindByKey(fdm,"key_14").ifPresent(t->{
+                        elementWriter.write(t,addFc.apply(tax,diffSum));
+                    });
+                });
+
             }
             }
-            /*每页合计*/
-            FormulaUtils.elementFindByKey(fdm,"key_14").ifPresent(fd->{
-                List<  List<MaterialPriceDifferential> > list =BaseUtils.splitList(dataList,capacity);
-                elementWriter.write(fd,list.stream().map(l->l.stream().map(MaterialPriceDifferential::getTotal).mapToDouble(Double::parseDouble).sum()).collect(Collectors.toList()));
-            });
+
+
+
             putOut(MaterialPriceDifferential.class);
             putOut(MaterialPriceDifferential.class);
         }
         }
     }
     }