Преглед на файлове

Merge branch 'test-merge' of http://219.151.181.73:3000/zhuwei/bladex into test-merge

lvy преди 6 дни
родител
ревизия
8c1c98bb8d

+ 5 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -787,10 +787,14 @@ public class WbsTreeContractController extends BladeController {
                     Element tr1 = trElements1.get(i);
                     Element tr2 = trElements2.get(i);
                     //排除电签单元格
-                    Elements tdElements1 = tr1.select("td:not([dqid])");
+                    Elements tdElements1 = tr1.select("td");
                     Elements tdElements2 = tr2.select("td");
                     for (int j = 0; j < tdElements1.size(); j++) {
                         Element td1 = tdElements1.get(j);
+                        // 检查td1是否包含dqid属性,如果包含则跳过
+                        if (td1.attr("dqid").length() > 0) {
+                            continue;
+                        }
                         Element td2 = tdElements2.get(j);
                         String keyName = getKeyNameFromChildElement(td1);
                         if (StringUtils.isNotEmpty(keyName)) {

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

@@ -518,21 +518,27 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                                         FormulaUtils.write(t.getJudge(), "合格", false);
                                     }
 //                                    itemBlockList.sort(Comparator.comparingInt(a -> ids.indexOf(a.getPkeyId())));
-                                    Set<String> values;
+                                    List<String> values;
                                     Predicate<String> predicate = s -> Pattern.matches("^[,]*$", s);
                                     if (itemBlockList.stream().map(ItemBlock::getData).flatMap(v -> v.stream().flatMap(Collection::stream)).map(Func::toStr).anyMatch(CustomFunction::containsZH)) {
-                                        values = itemBlockList.stream().map(ItemBlock::getData).flatMap(v -> v.stream().map(l -> l.stream().map(Func::toStr).collect(Collectors.joining(","))).filter(predicate.negate()).distinct().flatMap(s -> Arrays.stream(s.split(",")))).collect(Collectors.toSet());
+                                        values = itemBlockList.stream().map(ItemBlock::getData).flatMap(v -> v.stream().map(l -> l.stream().map(Func::toStr).collect(Collectors.joining(","))).filter(predicate.negate()).distinct().flatMap(s -> Arrays.stream(s.split(",")))).collect(Collectors.toList());
                                     } else {
-                                        values = itemBlockList.stream().map(ItemBlock::getData).flatMap(v -> v.stream().flatMap(Collection::stream)).map(Func::toStr).collect(Collectors.toSet());
+                                        values = itemBlockList.stream().map(ItemBlock::getData).flatMap(v -> v.stream().flatMap(Collection::stream)).map(Func::toStr).collect(Collectors.toList());
                                     }
                                     if (t.getPoint().contains("榀数")) {
                                         if (values.size() > 0) {
                                             double x = values.stream().mapToDouble(Double::parseDouble).sum() / 3.0;
                                             if (x != 0) {
-                                                values = Collections.singleton(StringUtils.number2String(x, 0));
+                                                values = Collections.singletonList(StringUtils.number2String(x, 0));
                                             }
                                         }
                                     }
+                                    //数据去重 只有全部数据都不为数字才执行
+                                    long count = values.stream().filter(StringUtils::isNumber).count();
+                                    if(!values.isEmpty() && count == 0){
+                                        Set<String> set = new LinkedHashSet<>(values);
+                                        values = new ArrayList<>(set);
+                                    }
                                     int scale = StringUtils.getScale(values);
                                     FormulaUtils.write(t.getValue(), values.stream().map(u -> {
                                     /*    if(StringUtils.isEmpty(u)){