소스 검색

中间计量公式

yangyj 1 년 전
부모
커밋
9ec13c8dcf

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/InterimMeter.java

@@ -56,5 +56,8 @@ public class InterimMeter {
     private List<String> unitList;
     @JSONField(name = "key_13",label="申报数量")
     private List<String> completedList;
+    /**第n页 共m页*/
+    @JSONField(name = "key_12",label="页码",ordinal = 101)
+    private String pageCount;
 
 }

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/InterimMeterPaySummary.java

@@ -29,6 +29,9 @@ public class InterimMeterPaySummary {
     private String money;
     @JSONField(name = "key_7",label="备注",ordinal = 7)
     private String remark;
+    /**第n页 共m页*/
+    @JSONField(name = "key_12",label="页码",ordinal = 101)
+    private String pageCount;
 
     public InterimMeterPaySummary(String itemName) {
         this.itemName = itemName;

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

@@ -57,6 +57,10 @@ public class SubInterimMeterPaySummary {
     @JSONField(name = "key_11",label="变更令号",ordinal = 11)
     private String changeTokenId;
 
+    /**第n页 共m页*/
+    @JSONField(name = "key_12",label="页码",ordinal = 101)
+    private String pageCount;
+
     public void currentPeriodEndPayAdd(String n){
           List<String> list = new ArrayList<>();
           list.add(this.currentPeriodEndPay);

+ 1 - 1
blade-service/blade-manager/src/main/java/com/mixsmart/utils/FormulaUtils.java

@@ -320,7 +320,7 @@ public class FormulaUtils {
                     }
 
                 }else{
-                    for(int n=0;n<values.size();n++){
+                    for (int n = 0; n < values.size(); n++) {
                         fd.getValues().get(n).setValue(values.get(n));
                     }
                 }

+ 37 - 16
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -244,8 +244,9 @@ public class ExecutorMeter extends FormulaExecutor {
         }
     }
 
-    @EqualsAndHashCode(callSuper = true)
+
     @Data
+    @EqualsAndHashCode(callSuper = true)
     public  class InterimPayCert extends   BaseSpecial<InterimPaymentCertificate> implements Special{
 
         @Override
@@ -331,8 +332,10 @@ public class ExecutorMeter extends FormulaExecutor {
 
 
     }
-    @EqualsAndHashCode(callSuper = true)
+
+
     @Data
+    @EqualsAndHashCode(callSuper = true)
     public  class InterimSum extends   BaseSpecial<InterimPaymentSummary> implements Special{
         @Override
         public boolean ready() {
@@ -370,8 +373,10 @@ public class ExecutorMeter extends FormulaExecutor {
         }
     }
 
-    @EqualsAndHashCode(callSuper = true)
+
+
     @Data
+    @EqualsAndHashCode(callSuper = true)
     public  class SubIPaySum extends   BaseSpecial<SubprojectInterimPaymentSummary> implements Special{
         /*分项工程中期支付汇总表*/
         @Override
@@ -484,8 +489,6 @@ public class ExecutorMeter extends FormulaExecutor {
 
             LinkedHashMap<String,List<SubprojectInterimPaymentSummary>> chapterGroup= totalList.stream().collect(Collectors.groupingBy(e->getPrefix(e.getFormNumber()),LinkedHashMap::new,Collectors.toList()));
             AtomicInteger loop = new AtomicInteger(chapterGroup.size());
-            AtomicInteger pn = new AtomicInteger();
-            List<String> pageList= new ArrayList<>();
             chapterGroup.forEach((k,v)->{
                 int extra=loop.getAndDecrement()>0?1:2;
                 /*每章小结或总结等价一行数据*/
@@ -520,14 +523,10 @@ public class ExecutorMeter extends FormulaExecutor {
                     }
                     dataList.addAll(tmp);
                     tmp.clear();
-                    pn.incrementAndGet();
                 }
             });
-            FormData pageFd = fdm.get(FormulaUtils.getPageCode(SubprojectInterimPaymentSummary.class));
-            String pageTmp="第$1页 共"+pn.get()+"页";
-            pageFd.setValues(IntStream.range(0,pn.get()).boxed().map(i->new ElementData(pageTmp.replace("$1",i.toString()))).collect(Collectors.toList()));
             /*内容输出*/
-             putOut();
+             putOut(SubprojectInterimPaymentSummary.class);
         }
 
 
@@ -540,8 +539,10 @@ public class ExecutorMeter extends FormulaExecutor {
 
     }
 
-    @EqualsAndHashCode(callSuper = true)
+
+
     @Data
+    @EqualsAndHashCode(callSuper = true)
     public class SubIMeterPay extends  BaseSpecial<SubInterimMeterPaySummary> implements Special{
           /*分项工程中期计量支付表*/
         @Override
@@ -610,7 +611,7 @@ public class ExecutorMeter extends FormulaExecutor {
                        return tmp.stream();
                     }).collect(Collectors.toList());
                     /*内容输出*/
-                    putOut();
+                    putOut(SubInterimMeterPaySummary.class);
                 }
             }catch (Exception e){
                 e.printStackTrace();
@@ -675,8 +676,10 @@ public class ExecutorMeter extends FormulaExecutor {
 
     }
 
-    @EqualsAndHashCode(callSuper = true)
+
+
     @Data
+    @EqualsAndHashCode(callSuper = true)
     public class IMeterPaySummary extends BaseSpecial<InterimMeterPaySummary> implements Special{
         /*private Integer capacity=20;*/
         @Override
@@ -700,12 +703,13 @@ public class ExecutorMeter extends FormulaExecutor {
                 summary.setMoney(StringUtils.number2StringZero(sum,2));
                 dataList.add(summary);
             }
-            putOut();
+            putOut(InterimMeterPaySummary.class);
         }
     }
 
-    @EqualsAndHashCode(callSuper = true)
+
     @Data
+    @EqualsAndHashCode(callSuper = true)
     public class IMeter extends   BaseSpecial<InterimMeter> implements Special{
         private Integer capacity=7;
         @Override
@@ -743,7 +747,7 @@ public class ExecutorMeter extends FormulaExecutor {
                     dataList.add(iim);
                 }
             }
-           putOut();
+           putOut(InterimMeter.class);
         }
     }
 
@@ -773,10 +777,27 @@ public class ExecutorMeter extends FormulaExecutor {
             tec.getFormDataMap().putAll(fdm);
             dataList=new ArrayList<>();
         }
+        /*总页数*/
+        public int totalPage(){
+            return (int)Math.ceil(dataList.size()/(double)capacity);
+        }
+        /*页码计算*/
+        public void pageNumber(Class<T> clazz){
+            FormData pageFd = fdm.get(FormulaUtils.getPageCode(clazz));
+            if(pageFd!=null) {
+                int total = totalPage();
+                String pageTmp = "第$1页 共" + total + "页";
+                pageFd.setValues(IntStream.range(0, total).boxed().map(i -> new ElementData(pageTmp.replace("$1", i.toString()))).collect(Collectors.toList()));
+            }
+        }
         /*写入对应的元素*/
         public void putOut(){
             FormulaUtils.put2FormData(fdm, fieldDataFcMap,dataList);
         };
+        public void putOut(Class<T> clazz){
+            pageNumber(clazz);
+            FormulaUtils.put2FormData(fdm, fieldDataFcMap,dataList);
+        };
     }
     interface  Special{
         /**是否满足执行条件*/

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -911,6 +911,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                         tmp = tmp.replace(am.group(),am.group(1)+"['"+am.group(2)+"']");
                     }
                 }
+                if(tmp.contains("diffusion")){
+                    fd.getFormula().setOutm(Formula.FULL);
+                }
                 fd.getFormula().setFormula(tmp);
                 tec.formDataMap.put(fd.getCode(),fd);
             }