Эх сурвалжийг харах

表单相关:右键bug、定位信息排序优化

yangyj 2 жил өмнө
parent
commit
b55c1d6e94

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

@@ -46,9 +46,11 @@ import java.io.*;
 
 import java.util.*;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
 import static java.util.regex.Pattern.*;
@@ -649,6 +651,52 @@ public class FormulaUtils {
            return coords;
      }
 
+    public static String coordsSorted2(String coords){
+        if(StringUtils.isNotEmpty(coords)){
+            List<String> dataList=Arrays.asList(coords.split(";"));
+            if(dataList.size()>2){
+               /*判断分区:根据行列长度*/
+                List<Integer> row =dataList.stream().map(e->e.split("_")[0]).distinct().map(Integer::parseInt).collect(Collectors.toList());
+                List<Integer> column=dataList.stream().map(e->e.split("_")[1]).distinct().map(Integer::parseInt).collect(Collectors.toList());
+                if(row.size()>=column.size()){
+                    /*纵向*/
+                    if(column.size()>1){
+                        List<List<Integer>> consecutiveGroups = IntStream.range(0, column.size())
+                                .boxed()
+                                .collect(Collectors.collectingAndThen(
+                                        Collectors.groupingBy(
+                                                i -> i - column.get(i),
+                                                LinkedHashMap::new,
+                                                Collectors.mapping(column::get, Collectors.toList())
+                                        ),
+                                        map -> new ArrayList<>(map.values())
+                                ));
+                    }
+                }
+              /* 确定区内方向:*/
+            }
+        }
+        return coords;
+    }
+
+/*    public static void main(String[] args) {
+        List<Integer> column = Arrays.asList(1, 2, 3, 5, 6, 7, 9, 11, 17);
+        List<List<Integer>> consecutiveGroups = IntStream.range(0, column.size())
+                .boxed()
+                .collect(Collectors.collectingAndThen(
+                        Collectors.groupingBy(
+                                i -> i - column.get(i),
+                                LinkedHashMap::new,
+                                Collectors.mapping(column::get, Collectors.toList())
+                        ),
+                        map -> new ArrayList<>(map.values())
+                ));
+        AtomicInteger i = new AtomicInteger(column.get(0));
+
+        List<List<Integer>> consecutiveGroups2= new ArrayList<>(column.stream().collect(Collectors.groupingBy(e -> e - i.getAndSet(e) > 1, LinkedHashMap::new, Collectors.toList())).values());
+        System.out.println();
+    }*/
+
     public static List<Object> slice(List<LocalVariable>  local, String formula){
         int min =0;
         List<Object> result = new ArrayList<>();

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaOptionServiceImpl.java

@@ -85,7 +85,7 @@ public class FormulaOptionServiceImpl extends ServiceImpl<FormulaOptionMapper, F
     public Object saveOrUpdateOption(FormulaOptionVo fo) {
         if (fo.saveChecked()) {
             WbsTreeContract wbc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, fo.getPkeyId()));
-            WbsTreeContract parent= this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, fo.getParentId()).eq(WbsTreeContract::getContractId, fo.getContractId()));
+            WbsTreeContract parent= this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getId, fo.getParentId()).eq(WbsTreeContract::getContractId, fo.getContractId()));
             FormulaOption formulaOption = this.getById(parent.getPKeyId());
             JSONObject root;
             if (formulaOption == null) {