Просмотр исходного кода

项目引用私有WBS,单独复制html

qianxb 2 лет назад
Родитель
Сommit
0f192ebf77

+ 25 - 4
blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java

@@ -2,18 +2,17 @@ package org.springblade.common.utils;
 
 import cn.hutool.core.io.FileUtil;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.util.CollectionUtils;
 
 import java.io.*;
 import java.math.BigDecimal;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Random;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * 通用工具类
@@ -186,4 +185,26 @@ public class CommonUtil {
         return dest;
     }
 
+    /**
+     * Description: Java8 Stream分割list集合
+     * @param list 集合数据
+     * @param splitSize 几个分割一组
+     * @return 集合分割后的集合
+     */
+    public static <T> List<List<T>> splitList(List<T> list, int splitSize) {
+        //判断集合是否为空
+        if (CollectionUtils.isEmpty(list))
+            return Collections.emptyList();
+        //计算分割后的大小
+        int maxSize = (list.size() + splitSize - 1) / splitSize;
+        //开始分割
+        return Stream.iterate(0, n -> n + 1)
+                .limit(maxSize)
+                .parallel()
+                .map(a -> list.parallelStream().skip(a * splitSize).limit(splitSize).collect(Collectors.toList()))
+                .filter(b -> !b.isEmpty())
+                .collect(Collectors.toList());
+    }
+
+
 }

+ 9 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -15,6 +15,7 @@ import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
 import org.springblade.common.constant.CommonConstant;
+import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
@@ -1478,13 +1479,19 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 File file_in = ResourceUtil.getFile(tree.getHtmlUrl());
                 String fileCode = SnowFlakeUtil.getId() + "";
                 String htmlUrl = file_path + "/privateUrlCopy/" + fileCode + ".html";
-//                String htmlUrl = "C:\\Users\\泓创研发01\\Desktop\\privateUrlCopy\\" + fileCode + ".html";
                 File file_out = ResourceUtil.getFile(htmlUrl);
                 FileUtil.copy(file_in, file_out);
                 tree.setHtmlUrl(htmlUrl);
             }
             //批量修改
-            baseMapper.updateBatchByPKeyId(wbsTreePrivateList);
+            if (wbsTreePrivateList.size() > 1000){
+                List<List<WbsTreePrivate>> splitList = CommonUtil.splitList(wbsTreePrivateList, 1000);
+                for (List<WbsTreePrivate> list : splitList) {
+                    baseMapper.updateBatchByPKeyId(list);
+                }
+            }else {
+                baseMapper.updateBatchByPKeyId(wbsTreePrivateList);
+            }
         }
     }