Răsfoiți Sursa

公式相关:元素名称匹配优化

yangyj 2 ani în urmă
părinte
comite
c954db69ba

+ 7 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/FormData.java

@@ -3,7 +3,6 @@ package org.springblade.manager.dto;
 
 
 import lombok.Data;
-import org.apache.commons.lang.StringUtils;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.manager.entity.Formula;
@@ -85,6 +84,13 @@ public class FormData {
     public String info(){
         return getCode()+getEName()+(getFormula()==null?StringPool.EMPTY:getFormula().getFormula());
     }
+    /**去掉特殊符合无效词汇后的元素名称,用于匹配*/
+    public String getSimplifyName(){
+        if(eName!=null){
+            return eName.replaceAll("[::()()、\\s]","");
+        }
+        return "";
+    }
     public FormData() {
     }
     public FormData(String code, List<ElementData> values, Formula formula,String coords) {

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

@@ -883,11 +883,11 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     Map<String,Object> copyMap= new HashMap<>();
                     if(sourceFds.size()>0){
                         sourceFds.forEach(d->{
-                            copyMap.put(d.getEName().trim(),d.getValues().stream().map(ElementData::getValue).filter(StringUtils::isNotEmpty).findAny().orElse(""));
+                            copyMap.put(d.getSimplifyName(),d.getValues().stream().map(ElementData::getValue).filter(StringUtils::isNotEmpty).findAny().orElse(""));
                         });
                     }
-                    subTableFds.stream().filter(s-> !SubTable.KEYS.contains(s.getEName().trim())).filter(s->copyMap.containsKey(s.getEName().trim())).forEach(t->{
-                         Object val = copyMap.get(t.getEName().trim());
+                    subTableFds.stream().filter(s-> !SubTable.KEYS.contains(s.getEName().trim())).filter(s->copyMap.containsKey(s.getSimplifyName())).forEach(t->{
+                         Object val = copyMap.get(t.getSimplifyName());
                          t.getValues().forEach(e->e.setValue(val));
                          t.setUpdate(1);
                     });