Selaa lähdekoodia

Merge remote-tracking branch 'origin/master' into master

yangyj 1 vuosi sitten
vanhempi
commit
a957d92b31

+ 36 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -577,12 +577,33 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         List<Long> contractInfosIds = contractInfos.stream().filter(f -> 1 == f.getContractType()).map(ContractInfo::getId).collect(Collectors.toList());
 
         Map<Long, WbsTreePrivate> maps = wbsTreePrivatesAllNow.stream().filter(f -> Objects.nonNull(f.getId())).collect(Collectors.toMap(WbsTreePrivate::getId, wbsTreePrivate -> wbsTreePrivate, (obj1, obj2) -> obj1));
-
+        String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+        Set<String> urls = new HashSet<>();
         for (WbsTreePrivate wbsTreePrivate : wbsTreePrivates) {
             if (ObjectUtil.isNotEmpty(wbsTreePrivate)) {
                 WbsTreePrivate treePrivateNow = maps.getOrDefault(wbsTreePrivate.getId(), null);
                 //判断相同节点基础信息、元素表类型、元素表所属方是否发生改变
                 if (treePrivateNow != null && this.fieldsNotEqualPrivateWbs(wbsTreePrivate, treePrivateNow)) {
+                    try {
+                        //先复制html,并修改位置
+                        if (org.apache.commons.lang.StringUtils.isNotBlank(wbsTreePrivate.getHtmlUrl())) {
+                            String[] split = wbsTreePrivate.getHtmlUrl().split("/");
+                            String htmlUrl = file_path + "privateUrlCopy/" + projectId + "/" + split[split.length - 1];
+                            if (!urls.contains(wbsTreePrivate.getHtmlUrl())) {
+                                urls.add(wbsTreePrivate.getHtmlUrl());
+                                File file_in = ResourceUtil.getFile(wbsTreePrivate.getHtmlUrl());
+                                if (!file_in.exists() || file_in.length() == 0) {
+                                    continue;
+                                }
+                                File file_out = ResourceUtil.getFile(htmlUrl);
+                                FileUtil.copy(file_in, file_out);
+                            }
+                            wbsTreePrivate.setHtmlUrl(htmlUrl);
+                        }
+                    }catch (Exception e){
+                        System.out.println(e.getMessage());
+                        throw new ServiceException("复制html时出错");
+                    }
                     //修改项目wbs信息
                     WbsTreePrivate wbsPrivate = BeanUtil.copyProperties(wbsTreePrivate, WbsTreePrivate.class);
                     if (wbsPrivate != null) {
@@ -1943,7 +1964,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         if (wbsTreePrivateList != null) {
             String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
             String projectId = wbsTreePrivateList.get(0).getProjectId();
-            String dir = file_path + "/privateUrlCopy/" +projectId;
+            String dir = file_path + "privateUrlCopy/" +projectId;
             File directory = new File(dir);
             if (!directory.exists()){
                 directory.mkdir();
@@ -1952,21 +1973,25 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             System.out.println("copyHtml-去除空路径之前:"+wbsTreePrivateList.size());
             wbsTreePrivateList = wbsTreePrivateList.stream().filter(wtp -> StringUtils.isNotBlank(wtp.getHtmlUrl())).collect(Collectors.toList());
             System.out.println("copyHtml-去除重复路径之前:"+wbsTreePrivateList.size());
-            wbsTreePrivateList = wbsTreePrivateList.stream().collect(Collectors.toMap(WbsTreePrivate::getHtmlUrl,wbs->wbs,(w1,w2)->w1))
+            List<WbsTreePrivate> wbsTreePrivateList2 = wbsTreePrivateList.stream().collect(Collectors.toMap(WbsTreePrivate::getHtmlUrl,wbs->wbs,(w1,w2)->w1))
                                     .values().stream().collect(Collectors.toList());
-            System.out.println("copyHtml-去除重复路径之后:"+wbsTreePrivateList.size());
+            System.out.println("copyHtml-去除重复路径之后:"+wbsTreePrivateList2.size());
+            Set<String> urls = new HashSet<>();
             //批量复制保存html
             for (WbsTreePrivate tree : wbsTreePrivateList) {
                 String[] split = tree.getHtmlUrl().split("/");
-                File file_in = ResourceUtil.getFile(tree.getHtmlUrl());
+                String htmlUrl = file_path + "privateUrlCopy/" +projectId+"/"+ split[split.length - 1];
+                if (!urls.contains(tree.getHtmlUrl())){
+                    urls.add(tree.getHtmlUrl());
+                    File file_in = ResourceUtil.getFile(tree.getHtmlUrl());
 //                File file_in = ResourceUtil.getFile("C:\\Users\\泓创研发01\\Desktop\\privateUrl\\"+split[split.length-1]);
-                if (!file_in.exists() || file_in.length() == 0) {
-                    continue;
+                    if (!file_in.exists() || file_in.length() == 0) {
+                        continue;
+                    }
+                    //String htmlUrl = "C:\\Users\\泓创研发01\\Desktop\\privateUrlCopy\\" + split[split.length-1];
+                    File file_out = ResourceUtil.getFile(htmlUrl);
+                    FileUtil.copy(file_in, file_out);
                 }
-                String htmlUrl = file_path + "/privateUrlCopy/" +projectId+"/"+ split[split.length - 1];
-                //String htmlUrl = "C:\\Users\\泓创研发01\\Desktop\\privateUrlCopy\\" + split[split.length-1];
-                File file_out = ResourceUtil.getFile(htmlUrl);
-                FileUtil.copy(file_in, file_out);
                 tree.setHtmlUrl(htmlUrl);
             }
             //批量修改