Ver Fonte

监理服务费期中支付证书

yangyj há 1 ano atrás
pai
commit
49021a5211

+ 1 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/utils/NumberUtil.java

@@ -464,6 +464,7 @@ public class NumberUtil {
         System.out.println(numberToRMB(5.10D));
         System.out.println(numberToRMB(5.00D));
         System.out.println(numberToRMB(5.11D));
+        System.out.println(numberToRMB(68919641));
     }*/
 
 }

+ 7 - 0
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -2876,6 +2876,13 @@ public class CustomFunction {
           return arabic;
       }
 
+/*
+    public static void main(String[] args) {
+        List<Object> list = Arrays.asList(68919641);
+        toRmb(list).forEach(System.out::println);
+    }
+
+*/
 
 
 

+ 106 - 57
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -271,6 +271,7 @@ public class ExecutorMeter extends FormulaExecutor {
                     dataMap.put("key_2",currentD.toPlainString());
                     /*累计*/
                     dataMap.put("key_3",sum.toPlainString());
+                    /*附件名*/
                     dataMap.put("key_5",one.getFileName());
                     /*计算式*/
                     dataMap.put("key_6",one.getCalculateFormula());
@@ -493,7 +494,7 @@ public class ExecutorMeter extends FormulaExecutor {
             List<Payment> pre=tec.meterInfo.getPaymentListMap().get(MeterInfo.PRE);
             List<Payment> cur=tec.meterInfo.getPaymentListMap().get(MeterInfo.CUR);
             List<Payment> end=tec.meterInfo.getPaymentListMap().get(MeterInfo.END);
-            Map<SupervisionCertificate,Map<Function<SupervisionCertificate,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();
+           /* Map<SupervisionCertificate,Map<Function<SupervisionCertificate,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();*/
             Map<Long,LinkedHashMap<String,InterimPayCertificateItem>>interimPayCertificateItemGroup=tec.meterInfo.getInterimPayCertificateItemGroup();
             LinkedHashMap<String,InterimPayCertificateItem> previousMap = null;
             if(tec.meterInfo.getPreviousPeriodInfo()!=null){
@@ -511,10 +512,10 @@ public class ExecutorMeter extends FormulaExecutor {
                 sc.setMonth(tec.periodInfo.getMonth());
                 if(v.equals("-1")){
                     sc.setIsSummary(true);
-                    addGetSetConfig(sc,summaryConfigMap,SupervisionCertificate::getContractAmount,sc::setContractAmount);
-                    addGetSetConfig(sc,summaryConfigMap,SupervisionCertificate::getPeriodEndAmount,sc::setPeriodEndAmount);
-                    addGetSetConfig(sc,summaryConfigMap,SupervisionCertificate::getPreviousEndAmount,sc::setPreviousEndAmount);
-                    addGetSetConfig(sc,summaryConfigMap,SupervisionCertificate::getCurrentAmount,sc::setCurrentAmount);
+                    addGetSetConfig(sc,SupervisionCertificate::getContractAmount,sc::setContractAmount);
+                    addGetSetConfig(sc,SupervisionCertificate::getPeriodEndAmount,sc::setPeriodEndAmount);
+                    addGetSetConfig(sc,SupervisionCertificate::getPreviousEndAmount,sc::setPreviousEndAmount);
+                    addGetSetConfig(sc,SupervisionCertificate::getCurrentAmount,sc::setCurrentAmount);
                     InterimPayCertificateItem current =  currentMap.computeIfAbsent(k,w->new InterimPayCertificateItem());
                     peerMap.put(sc,current);
                     current.setChapterSeq(sc.getItemName());
@@ -575,7 +576,7 @@ public class ExecutorMeter extends FormulaExecutor {
                 dataList.add(sc);
             });
             /*分行合计列*/
-            fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),SupervisionCertificate::getInvertState);
+            fieldGetSet(x->!x.getIsSummary(),SupervisionCertificate::getInvertState);
             if(peerMap.size()>0) {
                 /*等合计项目计算完毕,再赋值*/
                 peerMap.forEach((sc, item) -> {
@@ -627,7 +628,7 @@ public class ExecutorMeter extends FormulaExecutor {
             Map<String, BigDecimal[]> contractMoney = contractMoneySum.apply(inventoryForms);
            Map<String,List<InventoryForm>> group=inventoryForms.stream().filter(e->StringUtils.isNotEmpty(e.getContractMoney())).collect(Collectors.groupingBy(ExecutorMeter.this::getPrefix,Collectors.toList()));
            // LinkedHashMap<String, InventoryForm> dictMap = chapters.stream().sorted(Comparator.comparingInt(toIntFc)).collect(Collectors.toMap(e->chapterPreFixFc.apply(e),e -> e, (v1, v2) -> v1,LinkedHashMap::new));
-            Map<SupervisionCertificate, Map<Function<SupervisionCertificate, String>, Consumer<String>>> summaryConfigMap = new HashMap<>();
+            /*Map<SupervisionCertificate, Map<Function<SupervisionCertificate, String>, Consumer<String>>> summaryConfigMap = new HashMap<>();*/
             itemNamesMap.forEach((k,v)->{
                 SupervisionCertificate sc= new SupervisionCertificate(k);
                 BigDecimal[] arr =  contractMoney.get(v);
@@ -638,6 +639,16 @@ public class ExecutorMeter extends FormulaExecutor {
                             arr[0] = arr[0].add(chapter200[0]);
                             arr[1] = arr[1].add(chapter200[1]);
                         }
+                        List<InventoryForm> a= group.get(v);
+                        List<InventoryForm> b= group.get("200");
+                        List<InventoryForm> list = new ArrayList<>();
+                        if(Func.isNotEmpty(a)){
+                            list.addAll(a);
+                        }
+                        if(Func.isNotEmpty(b)){
+                            list.addAll(b);
+                        }
+                        sc.setMonth(list.stream().mapToInt(e->BaseUtils.handleObj2Integer(e.getUnit())).sum()+"");
                     }
                     sc.setContractAmount(arr[0].toPlainString());
                 }
@@ -646,30 +657,59 @@ public class ExecutorMeter extends FormulaExecutor {
                    if(Func.isNotEmpty(list)) {
                        InventoryForm one = list.get(0);
                        sc.setPrice(one.getCurrentPrice());
-                       sc.setMonth(one.getUnit());
+                       if (!"100".equals(v)) {
+                           sc.setMonth(one.getUnit());
+                       }
                    }
                 }
-                if("小计".equals(k)){
-                    addGetSetConfig(sc, summaryConfigMap, SupervisionCertificate::getContractAmount, sc::setContractAmount);
-                }
-                if("合计".equals(k)){
-                    addGetSetConfig(sc, summaryConfigMap, SupervisionCertificate::getContractAmount, sc::setContractAmount);
+                if("小计".equals(k)||"合计".equals(k)){
+                    sc.setIsSummary(true);
+                    addGetSetConfig(sc, SupervisionCertificate::getContractAmount, sc::setContractAmount);
+                    addGetSetConfig(sc, SupervisionCertificate::getMonth, sc::setMonth);
                 }
-                if("动员预付款".equals(k)){
-                    sc.setContractAmount(StringUtils.handleNull(tec.meterInfo.getBaseInfo().getDyTotalAmount()));
+                BigDecimal dy= BaseUtils.str2BigDecimal(tec.meterInfo.getBaseInfo().getDyTotalAmount());
+                if("动员预付款".equals(k)||"实际支付金额".equals(k)){
+                    if("动员预付款".equals(k)) {
+                        sc.setContractAmount(StringUtils.handleNull(tec.meterInfo.getBaseInfo().getDyTotalAmount()));
+                    }
                     sc.setCurrentAmount(currentStart);
                     sc.setPeriodEndAmount(sumStart);
-                    sc.setPreviousEndAmount(subtractFc.apply(sumStart,currentStart));
+                    if(dy.compareTo(BigDecimal.ZERO)>0){
+                        if(StringUtils.isNotEmpty(currentStart)&&!currentStart.contains("-")) {
+                            String preStart=subtractFc.apply(sumStart, currentStart);
+                            if(!preStart.contains("-1")){
+                                sc.setPreviousEndAmount(preStart);
+                                sc.setPreviousEndRatio(ratioFc.apply(preStart,dy.toPlainString()));
+                            }
+                        }
+                        if(StringUtils.isNotEmpty(currentStart)) {
+                            sc.setCurrentRatio(ratioFc.apply(currentStart,dy.toPlainString()));
+                        }
+                        if(StringUtils.isNotEmpty(sumStart)) {
+                            sc.setPeriodEndRatio(ratioFc.apply(sumStart,dy.toPlainString()));
+                        }
+                    }
                 }
-                if("实际支付金额".equals(k)){
+              /*  if("实际支付金额".equals(k)){
                     sc.setCurrentAmount(currentStart);
                     sc.setPeriodEndAmount(sumStart);
-                    sc.setPreviousEndAmount(subtractFc.apply(sumStart,currentStart));
-                }
+                    if(dy.compareTo(BigDecimal.ZERO)>0){
+                        if(StringUtils.isNotEmpty(currentStart)&&!currentStart.contains("-")) {
+                            sc.setPreviousEndAmount(subtractFc.apply(sumStart, currentStart));
+                            sc.setPreviousEndRatio(ratioFc.apply(sc.getPreviousEndAmount(),dy.toPlainString()));
+                        }
+                        if(StringUtils.isNotEmpty(currentStart)) {
+                            sc.setCurrentRatio(ratioFc.apply(currentStart,dy.toPlainString()));
+                        }
+                        if(StringUtils.isNotEmpty(sumStart)) {
+                            sc.setPeriodEndRatio(ratioFc.apply(sumStart,dy.toPlainString()));
+                        }
+                    }
+                }*/
                 dataList.add(sc);
             });
             /*分行合计列,合计的时候需要计入手填部分*/
-            fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),SupervisionCertificate::getInvertState);
+            fieldGetSet(x->!x.getIsSummary(),SupervisionCertificate::getInvertState);
             /*占位行*/
             dataList.stream().filter(t->t.getItemName().equals("小计")).findFirst().ifPresent(t->{
                 int over= capacity-dataList.size();
@@ -766,17 +806,17 @@ public class ExecutorMeter extends FormulaExecutor {
                 t.setFormName("");
                 t.setChapterSeq("暂定金额");
             });
-            Map<InterimPaymentCertificate, Map<Function<InterimPaymentCertificate, String>, Consumer<String>>> summaryConfigMap = new HashMap<>();
+            /*Map<InterimPaymentCertificate, Map<Function<InterimPaymentCertificate, String>, Consumer<String>>> summaryConfigMap = new HashMap<>();*/
             InterimPaymentCertificate xj = new InterimPaymentCertificate("小计", true);
-            addGetSetConfig(xj, summaryConfigMap, InterimPaymentCertificate::getContractAmount, xj::setContractAmount);
-            addGetSetConfig(xj, summaryConfigMap, InterimPaymentCertificate::getRevisedAmount, xj::setRevisedAmount);
+            addGetSetConfig(xj, InterimPaymentCertificate::getContractAmount, xj::setContractAmount);
+            addGetSetConfig(xj, InterimPaymentCertificate::getRevisedAmount, xj::setRevisedAmount);
             dataList.add(xj);
             InterimPaymentCertificate jgtz = new InterimPaymentCertificate("价格调整");
             LinkedHashMap<Integer, List<MaterialAdjust>> materialAdjustMap = tec.meterInfo.getMaterialAdjustListMap();
             dataList.add(jgtz);
             InterimPaymentCertificate hj = new InterimPaymentCertificate("合计", true);
-            addGetSetConfig(hj, summaryConfigMap, InterimPaymentCertificate::getContractAmount, hj::setContractAmount);
-            addGetSetConfig(hj, summaryConfigMap, InterimPaymentCertificate::getRevisedAmount, hj::setRevisedAmount);
+            addGetSetConfig(hj,  InterimPaymentCertificate::getContractAmount, hj::setContractAmount);
+            addGetSetConfig(hj,  InterimPaymentCertificate::getRevisedAmount, hj::setRevisedAmount);
             dataList.add(hj);
             dataList.add(new InterimPaymentCertificate("索赔金额", MINUS_ONE));
             dataList.add(new InterimPaymentCertificate("违约罚金", MINUS_ONE));
@@ -792,12 +832,12 @@ public class ExecutorMeter extends FormulaExecutor {
             dataList.add(new InterimPaymentCertificate("扣回材料设备垫付款"));
             dataList.add(new InterimPaymentCertificate("保留金"));
             InterimPaymentCertificate sjzf = new InterimPaymentCertificate("实际支付");
-            addGetSetConfig(sjzf, summaryConfigMap, InterimPaymentCertificate::getCurrentPeriodEndPay, sjzf::setCurrentPeriodEndPay);
-            addGetSetConfig(sjzf, summaryConfigMap, InterimPaymentCertificate::getPreviousPeriodEndPay, sjzf::setPreviousPeriodEndPay);
-            addGetSetConfig(sjzf, summaryConfigMap, InterimPaymentCertificate::getCurrentPeriodPay, sjzf::setCurrentPeriodPay);
+            addGetSetConfig(sjzf,  InterimPaymentCertificate::getCurrentPeriodEndPay, sjzf::setCurrentPeriodEndPay);
+            addGetSetConfig(sjzf,  InterimPaymentCertificate::getPreviousPeriodEndPay, sjzf::setPreviousPeriodEndPay);
+            addGetSetConfig(sjzf,  InterimPaymentCertificate::getCurrentPeriodPay, sjzf::setCurrentPeriodPay);
             dataList.add(sjzf);
             /*分行合计列,合计的时候需要计入手填部分*/
-            fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
+            fieldGetSet(x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
             dataList.stream().filter(t->t.getChapterSeq()!=null&&t.getChapterSeq().contains("小计")).findFirst().ifPresent(t->{
                 int over= capacity-dataList.size();
                 if(over>0){
@@ -886,7 +926,7 @@ public class ExecutorMeter extends FormulaExecutor {
             interimPaymentCertificates= new ArrayList<>(paymentCertificateMap.values());
             /*合同段支付项*/
             List<MidPayItem> midPayItemList=tec.meterInfo.getMidPayItemList();
-            Map<InterimPaymentCertificate,Map<Function<InterimPaymentCertificate,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();
+            /*Map<InterimPaymentCertificate,Map<Function<InterimPaymentCertificate,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();*/
             Map<Long,LinkedHashMap<String,InterimPayCertificateItem>>interimPayCertificateItemGroup=tec.meterInfo.getInterimPayCertificateItemGroup();
             LinkedHashMap<String,InterimPayCertificateItem> previousMap = new LinkedHashMap<>();
             if(tec.meterInfo.getPreviousPeriodInfo()!=null){
@@ -902,15 +942,15 @@ public class ExecutorMeter extends FormulaExecutor {
                  if(MeterInfo.MB_ZJ.equals(tec.meterInfo.getTemplate())){
                      /*假如章节*/
                      InterimPaymentCertificate xj=new InterimPaymentCertificate("小计",true);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getContractAmount,xj::setContractAmount);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getRevisedTotal,xj::setRevisedTotal);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getRevisedAmount,xj::setRevisedAmount);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodEndPay,xj::setCurrentPeriodEndPay);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodEndChangeMoney,xj::setCurrentPeriodEndChangeMoney);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getPreviousPeriodEndPay,xj::setPreviousPeriodEndPay);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getPreviousPeriodEndChangeMoney,xj::setPreviousPeriodEndChangeMoney);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodPay,xj::setCurrentPeriodPay);
-                     addGetSetConfig(xj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodChangeMoney,xj::setCurrentPeriodChangeMoney);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getContractAmount,xj::setContractAmount);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getRevisedTotal,xj::setRevisedTotal);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getRevisedAmount,xj::setRevisedAmount);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodEndPay,xj::setCurrentPeriodEndPay);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodEndChangeMoney,xj::setCurrentPeriodEndChangeMoney);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getPreviousPeriodEndPay,xj::setPreviousPeriodEndPay);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getPreviousPeriodEndChangeMoney,xj::setPreviousPeriodEndChangeMoney);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodPay,xj::setCurrentPeriodPay);
+                     addGetSetConfig(xj,InterimPaymentCertificate::getCurrentPeriodChangeMoney,xj::setCurrentPeriodChangeMoney);
                      payItemZj.add(xj);
                      InterimPaymentCertificate jgtz= new InterimPaymentCertificate("价格调整");
                      LinkedHashMap<Integer,List<MaterialAdjust>> materialAdjustMap= tec.meterInfo.getMaterialAdjustListMap();
@@ -923,9 +963,9 @@ public class ExecutorMeter extends FormulaExecutor {
                      }
                      payItemZj.add(jgtz);
                      InterimPaymentCertificate hj = new InterimPaymentCertificate("合计",true);
-                     addGetSetConfig(hj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodEndPay,hj::setCurrentPeriodEndPay);
-                     addGetSetConfig(hj,summaryConfigMap,InterimPaymentCertificate::getPreviousPeriodEndPay,hj::setPreviousPeriodEndPay);
-                     addGetSetConfig(hj,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodPay,hj::setCurrentPeriodPay);
+                     addGetSetConfig(hj,InterimPaymentCertificate::getCurrentPeriodEndPay,hj::setCurrentPeriodEndPay);
+                     addGetSetConfig(hj,InterimPaymentCertificate::getPreviousPeriodEndPay,hj::setPreviousPeriodEndPay);
+                     addGetSetConfig(hj,InterimPaymentCertificate::getCurrentPeriodPay,hj::setCurrentPeriodPay);
                      payItemZj.add(hj);
                      payItemZj.add(new InterimPaymentCertificate("索赔金额",MINUS_ONE));
                      payItemZj.add(new InterimPaymentCertificate("违约罚金",MINUS_ONE));
@@ -935,11 +975,15 @@ public class ExecutorMeter extends FormulaExecutor {
                      if(tec.meterInfo.getStartPayFormAll()!=null){
                         List<StartPayForm> startPayForm = tec.getMeterInfo().getStartPayFormAll();
                         if(startPayForm.size()>0){
-                           String current= startPayForm.stream().filter(s->s.getPeriodSort()<=tec.periodInfo.getSort()).map(s->BaseUtils.str2BigDecimal(s.getMeterMoney())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString();
-                           String  end= startPayForm.stream().filter(s-> s.getPeriodSort().equals(tec.periodInfo.getSort())).map(s->BaseUtils.str2BigDecimal(s.getMeterMoney())).reduce(BigDecimal.ZERO,BigDecimal::add).toPlainString();
-                           startPay.setCurrentPeriodPay(current);
-                           startPay.setCurrentPeriodEndPay(end);
-                           startPay.setPreviousPeriodEndPay(subtractFc.apply(end,current));
+                           BigDecimal current= startPayForm.stream().filter(s->s.getPeriodSort()<=tec.periodInfo.getSort()).map(s->BaseUtils.str2BigDecimal(s.getMeterMoney())).reduce(BigDecimal.ZERO,BigDecimal::add);
+                           BigDecimal  end= startPayForm.stream().filter(s-> s.getPeriodSort().equals(tec.periodInfo.getSort())).map(s->BaseUtils.str2BigDecimal(s.getMeterMoney())).reduce(BigDecimal.ZERO,BigDecimal::add);
+                           startPay.setCurrentPeriodPay(current.toPlainString());
+                           startPay.setCurrentPeriodEndPay(end.toPlainString());
+                           String pre=subtractFc.apply(end.toPlainString(),current.toPlainString());
+                           if(!pre.contains("-")) {
+                               /*非负数*/
+                               startPay.setPreviousPeriodEndPay(pre);
+                           }
                         }
                      }
                      payItemZj.add(startPay);
@@ -948,9 +992,9 @@ public class ExecutorMeter extends FormulaExecutor {
                      payItemZj.add(new InterimPaymentCertificate("扣回材料设备垫付款"));
                      payItemZj.add(new InterimPaymentCertificate("保留金"));
                      InterimPaymentCertificate sjzf=new InterimPaymentCertificate("实际支付",true);
-                     addGetSetConfig(sjzf,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodEndPay,sjzf::setCurrentPeriodEndPay);
-                     addGetSetConfig(sjzf,summaryConfigMap,InterimPaymentCertificate::getPreviousPeriodEndPay,sjzf::setPreviousPeriodEndPay);
-                     addGetSetConfig(sjzf,summaryConfigMap,InterimPaymentCertificate::getCurrentPeriodPay,sjzf::setCurrentPeriodPay);
+                     addGetSetConfig(sjzf,InterimPaymentCertificate::getCurrentPeriodEndPay,sjzf::setCurrentPeriodEndPay);
+                     addGetSetConfig(sjzf,InterimPaymentCertificate::getPreviousPeriodEndPay,sjzf::setPreviousPeriodEndPay);
+                     addGetSetConfig(sjzf,InterimPaymentCertificate::getCurrentPeriodPay,sjzf::setCurrentPeriodPay);
                      payItemZj.add(sjzf);
                  }
                  midPayItemList.forEach(e->{
@@ -1021,7 +1065,7 @@ public class ExecutorMeter extends FormulaExecutor {
                          itemList.add(ic);
                      }
                      /*分行合计列,合计的时候需要计入手填部分*/
-                     fieldGetSet(summaryConfigMap,x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
+                     fieldGetSet(x->!x.getIsSummary(),InterimPaymentCertificate::getInvertState);
                      if(peerMap.size()>0) {
                          /*等合计项目计算完毕,再赋值*/
                          peerMap.forEach((sc, item) -> {
@@ -2097,6 +2141,8 @@ public class ExecutorMeter extends FormulaExecutor {
         public Integer capacity;
         /*输出值*/
         List<T> dataList;
+        /*按列计算,配置*/
+        Map<T,Map<Function<T,String>,Consumer<String>>> summaryConfigMap = new HashMap<>();
         /*用实例去构建带有初始化数据的元素*/
         public void  builderFormDatas(T bean){
             fdm = FormulaUtils.toFormDataMap(bean);
@@ -2157,12 +2203,14 @@ public class ExecutorMeter extends FormulaExecutor {
             }
         };
         /*批量计算列表中之前的字段和,并赋值到当前字段*/
-        public void fieldGetSet(Map<T,Map<Function<T,String>,Consumer<String>>> gsMap, Predicate<T> p){
-             fieldGetSet(gsMap,p,bean->BigDecimal.ONE);
+        /*Map<T,Map<Function<T,String>,Consumer<String>>> gsMap, Predicate<T> p*/
+        public void fieldGetSet( Predicate<T> p){
+             fieldGetSet(p,bean->BigDecimal.ONE);
         }
-        public void fieldGetSet(Map<T,Map<Function<T,String>,Consumer<String>>> gsMap, Predicate<T> p,Function<T,BigDecimal> sign){
+        /*Map<T,Map<Function<T,String>,Consumer<String>>> gsMap, Predicate<T> p,Function<T,BigDecimal> sign*/
+        public void fieldGetSet( Predicate<T> p,Function<T,BigDecimal> sign){
             if(dataList.size()>0) {
-                gsMap.forEach((b, m) -> {
+                summaryConfigMap.forEach((b, m) -> {
                     List<T> dl = dataList.stream().limit(dataList.indexOf(b)).collect(Collectors.toList());
                     m.forEach((f, c) -> {
                        /* c.accept(dl.stream().filter(p).map(f).map(BaseUtils::str2BigDecimal).reduce(BigDecimal.ZERO, BigDecimal::add).toString());*/
@@ -2174,8 +2222,9 @@ public class ExecutorMeter extends FormulaExecutor {
             }
         }
 
-        public void addGetSetConfig(T b,Map<T,Map<Function<T,String>,Consumer<String>>> gsMap,Function<T,String>f,Consumer<String> c){
-             Map<Function<T,String>,Consumer<String>> configMap = gsMap.computeIfAbsent(b,k->new HashMap<>());
+        /*T b,Map<T,Map<Function<T,String>,Consumer<String>>> gsMap,Function<T,String>f,Consumer<String> c*/
+        public void addGetSetConfig(T b,Function<T,String>f,Consumer<String> c){
+             Map<Function<T,String>,Consumer<String>> configMap = summaryConfigMap.computeIfAbsent(b,k->new HashMap<>());
              configMap.put(f,c);
         }