laibulaizheli 1 сар өмнө
parent
commit
1c40d7ae58

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ArchiveTreeContractImpl.java

@@ -48,7 +48,7 @@ public class ArchiveTreeContractImpl implements ArchiveTreeContractClient {
      */
     @Override
     public List<ArchiveTreeContract> getHavedFileNodeByProjectID(Long projectId) {
-        List<ArchiveTreeContract> list = archiveTreeContractMapper.getHavedFileNodeByProjectID(projectId);
+        List<ArchiveTreeContract> list = archiveTreeContractMapper.getHavedFileNodeByProjectID1(projectId);
         Map<Long,String> map = new HashMap<>();
         for (ArchiveTreeContract box: list) {
             map.put(box.getId(),"1");

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java

@@ -80,6 +80,8 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 
     List<ArchiveTreeContract> getHavedFileNodeByProjectID(@Param("projectId") Long projectId);
 
+    List<ArchiveTreeContract> getHavedFileNodeByProjectID1(@Param("projectId") Long projectId);
+
     List<ArchiveTreeContract> getHavedBoxFileNodeByProjectID(@Param("projectId") Long projectId);
 
     List<ArchiveTreeContract> getListByProjectId(@Param("projectId") Long projectId);

+ 38 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -358,6 +358,44 @@
         order by ancestors asc,tree_sort asc
     </select>
 
+    <select id="getHavedFileNodeByProjectID1" resultMap="archiveTreeContractResultMap">
+        SELECT
+            *
+        FROM
+            m_archive_tree_contract
+        WHERE
+            1 = 1
+          AND project_id = #{projectId}
+          AND is_deleted = 0
+          AND archive_auto_type IS NOT NULL
+          AND id IN (
+            SELECT
+                node_id
+            FROM
+                u_archive_file uaf
+            WHERE
+                1 = 1
+              AND uaf.project_id = #{projectId}
+              AND uaf.is_deleted = 0
+              AND uaf.node_id IS NOT NULL
+              AND (
+                -- 条件1:标记为未归档的文件
+                        uaf.is_archive = 0 OR uaf.is_archive IS NULL
+                    OR
+                    -- 条件2:未关联有效案卷的文件
+                        NOT EXISTS (
+                                SELECT 1
+                                FROM u_archives_auto uaa
+                                WHERE
+                                    uaa.id = uaf.archive_id
+                                  AND uaa.project_id = uaf.project_id
+                                  AND uaa.is_deleted = 0
+                            )
+                )
+        )
+        ORDER BY ancestors ASC, tree_sort ASC
+    </select>
+
 
     <select id="getTopAutoTypeNodeByProjectID" resultMap="archiveTreeContractResultMap">
         SELECT