Quellcode durchsuchen

计量公式配置表名提示

yangyj vor 1 Jahr
Ursprung
Commit
83b47997b2

+ 31 - 5
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/DataModel.java

@@ -22,13 +22,14 @@ import java.util.stream.Collectors;
  * @description 数据模型接口
  */
 public  interface DataModel {
-        /*生产环境*/
-        Boolean once= SystemUtils.isLinux();
+    /*生产环境*/
+    Boolean once= SystemUtils.isLinux();
 
-        List<Class<?>> classes=new ArrayList<>();
-       LinkedHashMap<String,List<WbsFormElementVO>> tableElementMap = new LinkedHashMap<>();
+    List<Class<?>> classes=new ArrayList<>();
+    LinkedHashMap<String,List<WbsFormElementVO>> tableElementMap = new LinkedHashMap<>();
+    Map<String,Class<?>> tbnClassMap = new HashMap<>();
     /*扫描路径*/
-        String PATH="org.springblade.manager.vo";
+    String PATH="org.springblade.manager.vo";
 
         /*判断是否是数据模型表id*/
     static boolean containsKey(String id){
@@ -63,6 +64,7 @@ public  interface DataModel {
         }
         return list;
     }
+      /*返回值{ID,List<WbsFormElementVO>}*/
       static LinkedHashMap<String,List<WbsFormElementVO>> getTableElementsMap(){
         /*初始化或者本地开发环境的时候每次都生成*/
           if(tableElementMap.isEmpty()||!once){
@@ -74,6 +76,30 @@ public  interface DataModel {
           }
           return tableElementMap;
       }
+    /*返回值{TBN,List<WbsFormElementVO>}*/
+    static LinkedHashMap<String,List<WbsFormElementVO>> getTableElementsMapTbn(){
+        /*初始化或者本地开发环境的时候每次都生成*/
+        if(tableElementMap.isEmpty()||!once){
+            tableElementMap.clear();
+            getClasses().forEach(c->{
+                tableElementMap.put(getStaticFieldValue(c,TBN_FN),toElementVos(c));
+            });
+
+        }
+        return tableElementMap;
+    }
+    /*返回值{TBN,List<WbsFormElementVO>}*/
+    static Map<String,Class<?>> getTbnClassMap(){
+        /*初始化或者本地开发环境的时候每次都生成*/
+        if(tbnClassMap.isEmpty()||!once){
+            tbnClassMap.clear();
+            getClasses().forEach(c->{
+                tbnClassMap.put(getStaticFieldValue(c,TBN_FN),c);
+            });
+        }
+        return tbnClassMap;
+    }
+
 
       static  List<Class<?>> getClasses(){
           if(classes.size()==0||!once) {

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

@@ -2533,17 +2533,17 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             Predicate<String> isModel = code-> BaseUtils.inChain(model,code);
             List<String> modelList= codeList.stream().filter(isModel).collect(Collectors.toList());
             if(modelList.size()>0) {
+                /*移除数据模型依赖,剩余纯表元素*/
                 codeList.removeIf(modelList::contains);
+                Map<String,Class<?>> modelMap=DataModel.getTbnClassMap();
                 for(String code:modelList){
                     String tbn=code.split(StringPool.COLON)[0];
-                     String tbnCh="";
+                     String tbnCh="数据模型:";
                     List<WbsFormElementVO> elementVOS = null;
-                    if(BaseInfo.TBN.equals(tbn)){
-                        elementVOS=FormulaUtils.toElementVos(BaseInfo.class);
-                        tbnCh=BaseInfo.TBN_CH;
-                    }else if(MeterPeriodInfo.TBN.equals(tbn)){
-                        elementVOS=FormulaUtils.toElementVos(MeterPeriodInfo.class);
-                        tbnCh=MeterPeriodInfo.TBN_CH;
+                    Class<?> target= modelMap.get(tbn);
+                    if(target!=null){
+                        elementVOS=FormulaUtils.toElementVos(target);
+                        tbnCh=tbnCh+DataModel.getStaticFieldValue(target,"TBN_CH");
                     }
                     if(elementVOS!=null){
                         String finalTbnCh = tbnCh;