Переглянути джерело

公式相关:测量相关元素名称规则

yangyj 2 роки тому
батько
коміт
5654c727c3

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

@@ -349,7 +349,7 @@ public class FormulaUtils {
 
 
     private static boolean isContainKeywords(String s) {
-        List<String> keywords = Arrays.asList("或", "每", "个","附录");
+        List<String> keywords = Arrays.asList("或", "每", "个","附录","抽查","测","量");
         return keywords.stream().anyMatch(s::contains);
     }
 

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

@@ -562,24 +562,28 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     @Override
     public IFormulaService sort() {
-        Map<Boolean,List<FormData>> map = tec.formDataList.stream().collect(Collectors.partitioningBy(e->Func.isNotEmpty(e.getFormula())&&e.getFormula().getFormula().contains("E[")));
-        tec.formDataList.clear();
-        /*没有依赖的*/
-        List<FormData> simple=map.get(false);
-        if(CollectionUtil.isNotEmpty(simple)){
-            tec.formDataList.addAll(simple);
-        }
-        /*有依赖的*/
-        List<FormData> rely= map.get(true);
-        if(CollectionUtil.isNotEmpty(rely)){
-            sort(rely,((rely.size()+1)/2)*rely.size());
-            tec.formDataList.addAll(rely);
+        try {
+            Map<Boolean, List<FormData>> map = tec.formDataList.stream().collect(Collectors.partitioningBy(e -> Func.isNotEmpty(e.getFormula()) && e.getFormula().getFormula().contains("E[")));
+            tec.formDataList.clear();
+            /*没有依赖的*/
+            List<FormData> simple = map.get(false);
+            if (CollectionUtil.isNotEmpty(simple)) {
+                tec.formDataList.addAll(simple);
+            }
+            /*有依赖的*/
+            List<FormData> rely = map.get(true);
+            if (CollectionUtil.isNotEmpty(rely)) {
+                sort(rely, ((rely.size() + 1) / 2) * rely.size());
+                tec.formDataList.addAll(rely);
+            }
+            /*初始化排序值,每个点间隔1000,方便插入*/
+            AtomicInteger sort = new AtomicInteger();
+            tec.formDataList.forEach(e -> e.setSort(sort.getAndAdd(1000)));
+            /*汇总阶段执行的公式*/
+            summaryPre();
+        }catch (Exception e){
+            e.printStackTrace();
         }
-        /*初始化排序值,每个点间隔1000,方便插入*/
-        AtomicInteger sort= new AtomicInteger();
-        tec.formDataList.forEach(e->e.setSort(sort.getAndAdd(1000)));
-        /*汇总阶段执行的公式*/
-        summaryPre();
         return this;
     }