Sfoglia il codice sorgente

修改bug:后台系统项目级归档树同步不了系统级归档数据

lvy 4 mesi fa
parent
commit
df749b2c6e

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

@@ -69,4 +69,5 @@ public interface ArchiveTreeMapper extends BaseMapper<ArchiveTree> {
                                                           @Param("groupId") Long groupId,
                                                           @Param("bigNodeID") Long bigNodeID);
 
+    List<ArchiveTreeVO2> getAllChildren(@Param("parentIds") List<Long> parentIds, @Param("projectId") Long projectId);
 }

+ 42 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml

@@ -283,6 +283,48 @@
         ORDER BY sort
     </select>
 
+    <select id="getAllChildren" resultMap="ArchiveTreeVOResultMap">
+        SELECT
+        id,
+        project_id,
+        parent_id,
+        node_name AS title,
+        id AS "value",
+        id AS "key",
+        major_data_type AS "majorDataType",
+        display_hierarchy AS "displayHierarchy",
+        is_storage_node AS "isStorageNode",
+        is_upload_file_display_configuration_tree AS "isDisplayTree",
+        is_built_drawing AS "isBuiltDrawing",
+        post_type AS postType,
+        node_type AS nodeType,
+        project_type,
+        storage_type,
+        association_type,
+        from_id,
+        ext_type,
+        ext_id,
+        exp_data_type,
+        archive_auto_type,
+        archive_auto_node_id,
+        archive_auto_group_select,
+        archive_auto_group_id,
+        is_interface_node,
+        interface_type,
+        sort,
+        ( SELECT CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END FROM m_archive_tree t2 WHERE t2.parent_id = t1 .id limit 1) AS "has_children"
+        FROM m_archive_tree t1
+        WHERE is_deleted = 0 AND project_id = #{projectId}
+        <if test=" parentIds!=null">
+            AND parent_id IN
+            <foreach collection="parentIds" item="item" close=")" open="(" separator=",">
+                <if test="item != null and item != ''">
+                    #{item}
+                </if>
+            </foreach>
+        </if>
+    </select>
+
     <update id="updateAllSonNodeIdsForArchiveAutoRule">
 
         <if test="archiveAutoType ==1 ">

+ 34 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -10,6 +10,7 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.constant.BladeConstant;
 
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.ArchiveTreeContractAutoRuleMapDTO;
 import org.springblade.manager.dto.ArchiveTreeDTO;
@@ -1021,10 +1022,8 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
         if (srcNode == null || srcNode.getProjectId() != 0) {
             return false;
         }
-
-        List<ArchiveTreeVO2> srcTrees = this.tree2(AuthUtil.getTenantId(), 0L, null, null, null, false);
-        List<ArchiveTreeVO2> dstTrees = this.tree2(AuthUtil.getTenantId(), dstNode.getProjectId(), null, null, null, false);
-
+        List<ArchiveTreeVO2> srcTrees = this.getAllChildren(srcNode);
+        List<ArchiveTreeVO2> dstTrees = this.getAllChildren(dstNode);
         ArchiveTreeVO2 srcTree = ForestNodeMergerEx.getSubTree(srcTrees.get(0), srcNode.getId());
         ArchiveTreeVO2 dstTree = ForestNodeMergerEx.getSubTree(dstTrees.get(0), dstNode.getId());
         List<ArchiveTreeVO2> addDst = new ArrayList<>();
@@ -1054,6 +1053,37 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
         return true;
     }
 
+    public List<ArchiveTreeVO2> getAllChildren(ArchiveTree node) {
+        List<ArchiveTreeVO2> list = new ArrayList<>();
+        if (node == null || node.getId() == null) {
+            return list;
+        }
+        if (node.getProjectId() == null) {
+            node.setProjectId(0L);
+        }
+        getAllChildren(Collections.singletonList(node.getId()), node.getProjectId(), list);
+        ArchiveTreeVO2 archiveTreeVO2 = new ArchiveTreeVO2();
+        BeanUtil.copyProperties(node, archiveTreeVO2);
+        archiveTreeVO2.setHasChildren(!list.isEmpty());
+        archiveTreeVO2.setTitle(node.getNodeName());
+        archiveTreeVO2.setValue(node.getId());
+        archiveTreeVO2.setKey(node.getId());
+        archiveTreeVO2.setIsDisplayTree(node.getIsUploadFileDisplayConfigurationTree());
+        list.add(archiveTreeVO2);
+        return ForestNodeMergerEx.merge(list);
+    }
+    public void getAllChildren(List<Long>  parentIds, Long projectId, List<ArchiveTreeVO2> list) {
+        List<ArchiveTreeVO2> archiveTrees = this.baseMapper.getAllChildren(parentIds, projectId);
+        if (archiveTrees != null && !archiveTrees.isEmpty()) {
+            List<Long> ids = archiveTrees.stream().filter(node -> {
+                list.add(node);
+                return node.getHasChildren();
+            }).map(ArchiveTreeVO2::getId).collect(Collectors.toList());
+            if (!ids.isEmpty()) {
+                getAllChildren(ids,projectId, list);
+            }
+        }
+    }
 
     public void InitAncestors(ArchiveTreeVO2 dstTree, List<ArchiveTree> addList, List<ArchiveTree> upList, List<ArchiveTreeVO2> sysTrees) {
         Map<Long, ArchiveTreeVO2> vo2Map = new LinkedHashMap<>();

+ 0 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/PdfAddContextUtils.java

@@ -24,14 +24,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class PdfAddContextUtils {
-    public static void main(String[] args) throws IOException, DocumentException {
-        String src = "C:\\Users\\泓创02\\Downloads\\抗弯拉检测报告.pdf"; // 输入PDF文件路径
-        String dest = "C:\\Users\\泓创02\\Downloads\\抗弯拉检测报告1.pdf"; // 输出PDF文件路径
-        String title = "水泥混凝土抗弯拉强度试验检测报告"; // 要查找的标题文本
-        String signature = "受控号:123456"; // 要添加的署名文本
-
-        addContextByTitle(src, dest, title, signature,  10);
-    }
 
     public static void addContextByTitle(String src, String dest, String title, String context,  int fontSize) throws IOException, DocumentException {