Browse Source

计量公式

yangyj 1 year ago
parent
commit
715a85b09c

+ 10 - 4
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/FormData.java

@@ -117,8 +117,8 @@ public class FormData {
     private Boolean isRemoveEmpty=false;
     private Boolean isRemoveEmpty=false;
     /**是否已经初始化好数据*/
     /**是否已经初始化好数据*/
     private Boolean initReady=false;
     private Boolean initReady=false;
-    /**0表头表尾,1正文*/
-    private Integer structure=0;
+    /**000 第一位标识*/
+    private Structure structure;
     /**是否是每页的重复数据*/
     /**是否是每页的重复数据*/
     private boolean isRepeat =false;
     private boolean isRepeat =false;
     /**
     /**
@@ -294,12 +294,18 @@ public class FormData {
         return false;
         return false;
     }
     }
 
 
+    public void setStructure(Integer state) {
+        this.structure=new Structure(state);
+    }
 
 
     /*是否是测量业务数据*/
     /*是否是测量业务数据*/
     public boolean isContent(){
     public boolean isContent(){
-        return this.structure==1;
+        return   this.structure!=null&&this.structure.isMeasure();
+    }
+    /*是否在同一表内的固定内容*/
+    public boolean isFixed(){
+        return this.structure!=null&&this.structure.isFixed();
     }
     }
-
     public boolean containsNull(){
     public boolean containsNull(){
         return !isRemoveEmpty;
         return !isRemoveEmpty;
     }
     }

+ 59 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/Structure.java

@@ -0,0 +1,59 @@
+package org.springblade.manager.dto;
+
+import lombok.Data;
+
+/**
+ * @author yangyj
+ * @Date 2024/5/9 15:47
+ * @description 标识转换
+ */
+@Data
+public class Structure {
+    /**表头表尾*/
+    private  boolean isHeadTail=false;
+    /**业务数据*/
+    private boolean isMeasure=false;
+    /**每页固定不变*/
+    private boolean isFixed=false;
+    /*状态值二进制*/
+    private char[] state =new char[]{'0','0','0'};
+    public Structure(Integer state) {
+        if(state!=null) {
+            char[] arr = Integer.toBinaryString(state).toCharArray();
+            int offset = this.state.length - arr.length;
+            System.arraycopy(arr, 0, this.state, offset, arr.length);
+            this.isHeadTail = this.state[index(1)] == '1';
+            this.isMeasure = this.state[index(2)] == '1';
+            this.isFixed = this.state[index(3)] == '1';
+        }
+    }
+
+
+    public Integer toInt(){
+      return Integer.parseInt(String.valueOf(state), 2);
+    }
+    public int index(int n){
+       return    this.state.length-n;
+    }
+
+/*    public static void main(String[] args) {
+        Structure structure = new Structure();
+        structure.setFixed(true);
+        System.out.println(structure.toInt());
+    }*/
+
+    public void setHeadTail(boolean headTail) {
+        this.state[index(1)]=headTail?'1':'0';
+        isHeadTail = headTail;
+    }
+
+    public void setMeasure(boolean measure) {
+        this.state[index(2)]=measure?'1':'0';
+        isMeasure = measure;
+    }
+
+    public void setFixed(boolean fixed) {
+        this.state[index(3)]=fixed?'1':'0';
+        isFixed = fixed;
+    }
+}

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

@@ -50,6 +50,10 @@ public class ExecutorInit extends FormulaExecutor {
         delay.add(addBaseInfo());
         delay.add(addBaseInfo());
         /*计量期信息*/
         /*计量期信息*/
         delay.add(addPeriodInfo());
         delay.add(addPeriodInfo());
+        /*是否固定值*/
+        tec.formDataMap.values().stream().filter(FormData::isFixed).forEach(fd->{
+            fd.setRepeat(true);
+        });
     }
     }