yangyj vor 2 Jahren
Ursprung
Commit
280b0a9eee

+ 8 - 10
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -15,23 +15,15 @@ import com.jfireel.expression.token.Token;
 import org.apache.commons.collections4.MapUtils;
 
 import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import org.jsoup.nodes.Element;
-import org.jsoup.select.Elements;
 import org.springblade.core.tool.utils.*;
-import org.springblade.manager.dto.Coords;
-import org.springblade.manager.dto.ElementData;
-import org.springblade.manager.dto.FormData;
-import org.springblade.manager.entity.Formula;
 
 
-import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -2214,7 +2206,13 @@ public class CustomFunction {
 		List<Object> result = new ArrayList<>();
 		if(data!=null){
 			List<Object> list = obj2List(removeEmpty(data));
-			result=list.stream().distinct().collect(Collectors.toList());
+			/*外观质量,这种中文描述去重*/
+			if(list.stream().filter(CustomFunction::containsZH).anyMatch(e->e.toString().contains("\n"))){
+				AtomicInteger index= new AtomicInteger(1);
+				result=list.stream().flatMap(e-> Arrays.stream(e.toString().split("\\n+"))).map(String::trim).map(e->e.replaceAll("^\\d+、","")).distinct().map(e->(index.getAndIncrement())+"、"+e+"\n").collect(Collectors.toList());
+			}else{
+				result=list.stream().distinct().collect(Collectors.toList());
+			}
 		}
 		return  result;
 	}

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

@@ -74,7 +74,11 @@ public class FormulaUtils {
             if(values.size()>fd.getValues().size()){
                 /*当生成的数据超过实际容量的时候,会自动追加页数*/
                 if(fd.getCoordsList().size()==1){
-                    fd.getValues().get(0).setValue(values.stream().map(StringUtils::handleNull).collect(Collectors.joining("、")));
+                    if(values.stream().filter(CustomFunction::containsZH).anyMatch(e->e.toString().contains("\n"))){
+                        fd.getValues().get(0).setValue(values.stream().filter(Objects::nonNull).map(Object::toString).collect(Collectors.joining()));
+                    }else{
+                        fd.getValues().get(0).setValue(values.stream().map(StringUtils::handleNull).collect(Collectors.joining("、")));
+                    }
                 }else{
                     // copy(fd,values);
                     for(int n=0;n<fd.getValues().size();n++){

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/ITurnPointCalculator.java

@@ -214,6 +214,9 @@ public interface ITurnPointCalculator {
              g8.put("sj",data.stream().filter(e->TurnPoint.CE.equals(e.getType())).map(TurnPoint::getSj).collect(Collectors.toList()));
              g8.put("sjv",data.stream().filter(e->TurnPoint.CE.equals(e.getType())&&e.getVertical()).map(TurnPoint::getSj).collect(Collectors.toList()));
              g8.put("sjnv",data.stream().filter(e->TurnPoint.CE.equals(e.getType())&&!e.getVertical()).map(TurnPoint::getSj).collect(Collectors.toList()));
+             g8.put("cd",data.stream().filter(e->TurnPoint.CE.equals(e.getType())).map(TurnPoint::getName).collect(Collectors.toList()));
+             g8.put("cdv",data.stream().filter(e->TurnPoint.CE.equals(e.getType())&&e.getVertical()).map(TurnPoint::getName).collect(Collectors.toList()));
+             g8.put("cdnv",data.stream().filter(e->TurnPoint.CE.equals(e.getType())&&!e.getVertical()).map(TurnPoint::getName).collect(Collectors.toList()));
      }
 
 }