瀏覽代碼

重置html路径,复制一份

qianxb 2 年之前
父節點
當前提交
efc3b1b081

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -90,4 +90,5 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
 
     List<TableInfo> selectTabInfoAll();
 
+    void updateBatchByPKeyId(@Param("list")List<WbsTreePrivate> wbsTreePrivateList);
 }

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -312,6 +312,13 @@
             AND is_deleted = 0
         </foreach>
     </update>
+    <update id="updateBatchByPKeyId">
+        <foreach item="item" collection="list" separator=";">
+            UPDATE m_wbs_tree_private
+            <set>html_url = #{item.htmlUrl}</set>
+            where p_key_id = #{item.pKeyId}
+        </foreach>
+    </update>
 
     <select id="lazyTree" resultMap="treeNodeResultMap">
         SELECT

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

@@ -79,4 +79,7 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
 
     void eVisInfoRepeatDel(String pid);
 
+    //批量重新保存文件htmlUrl
+    void batchResetHtmlUrl(List<WbsTreePrivate> wbsTreePrivateList) throws IOException, InterruptedException;
+
 }

+ 28 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.common.collect.Lists;
+import com.mysql.cj.x.protobuf.MysqlxDatatypes;
 import lombok.AllArgsConstructor;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
@@ -33,6 +34,7 @@ import org.springblade.manager.vo.*;
 import org.springblade.system.cache.ParamCache;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -1512,6 +1514,32 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 
     }
 
+    /**
+     * 批量重新保存文件htmlUrl
+     * @param wbsTreePrivateList
+     */
+    @Async
+    @Override
+    public void batchResetHtmlUrl(List<WbsTreePrivate> wbsTreePrivateList) throws IOException, InterruptedException {
+        if (wbsTreePrivateList != null) {
+            //存在htmlUrl才重新保存
+            wbsTreePrivateList = wbsTreePrivateList.stream().filter(wtp -> StringUtils.isNotBlank(wtp.getHtmlUrl())).collect(Collectors.toList());
+            String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
+            //批量复制保存html
+            for (WbsTreePrivate tree : wbsTreePrivateList) {
+                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);
+        }
+    }
+
     @Override
     public R addWbsTreeContractInfo(String nodeId, String primaryKeyIds, long contractId) {
         if (com.alibaba.cloud.commons.lang.StringUtils.isEmpty(nodeId)) {

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

@@ -807,7 +807,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                     wbsTreePrivateService.insertBatch(addList, 1000);
                                 }, executor)).toArray(CompletableFuture[]::new));
                         handle.join();
-
+                        //异步修改htmlUrl ,数据都在inserData2里
+                        wbsTreePrivateService.batchResetHtmlUrl(insertData2);
                         //修改状态
                         if (pawDTO.getWbsType() == 1) {
                             projectInfoMapper.updateTemplateInfoQuality(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");