소스 검색

更新bug

huangtf 1 년 전
부모
커밋
1c85c7fee2

+ 52 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -2144,7 +2144,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 	 * @param nodeId 筛选条件:节点编号
 	 * @return 符合条件的档案列表
 	 */
-	public List<ArchiveTreeContract> archiveTreeContractFilter(List<ArchiveTreeContract> archiveTreeContracts, String treeCode, String nodeId,Long contractId) {
+	public List<ArchiveTreeContract> archiveTreeContractFilter1(List<ArchiveTreeContract> archiveTreeContracts, String treeCode, String nodeId,Long contractId) {
 		List<ArchiveTreeContract> result = new ArrayList<>();
 
 		if (contractId==null) {
@@ -2158,7 +2158,11 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 					//如果还选择了节点
 					if (StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId)) {
 						result.add(contract);
+					}else if (contract.getId().toString().equals(nodeId)) {
+						result.add(contract);
 					}
+
+
 				}else{
 					if (StringUtils.isEmpty(contract.getTreeCode()) || contractId.toString().equals(contract.getTreeCode())  || contractId.equals(contract.getContractId())) {
 						result.add(contract);
@@ -2170,10 +2174,52 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 						//如果还选择了节点
 						if (StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId)) {
 							result.add(contract);
+						}else if (contract.getId().toString().equals(nodeId)  )
+							result.add(contract);
 						}
 					}else{
 						result.add(contract);
 					}
+			}
+		}
+
+
+		return result;
+	}
+	/**
+	 * 根据给定的条件过滤ArchiveTreeContract列表
+	 *
+	 * @param archiveTreeContracts 待过滤的ArchiveTreeContract列表
+	 * @param treeCode 树代码
+	 * @param nodeId 节点ID
+	 * @param contractId 合同ID
+	 * @return 过滤后的ArchiveTreeContract列表
+	 */
+	public List<ArchiveTreeContract> archiveTreeContractFilter(List<ArchiveTreeContract> archiveTreeContracts, String treeCode, String nodeId, Long contractId) {
+		List<ArchiveTreeContract> result = new ArrayList<>();
+
+		if (contractId == null) {
+			return archiveTreeContracts;
+		}
+
+		for (ArchiveTreeContract contract : archiveTreeContracts) {
+			boolean isContractValid = contractId.toString().equals(contract.getTreeCode()) || contractId.equals(contract.getContractId());
+
+			if (StringUtils.isEmpty(treeCode)) {
+				if (StringUtils.isNotEmpty(nodeId)) {
+					if (isNodeOrAncestor(contract, nodeId) && isContractValid) {
+						result.add(contract);
+					}
+				} else if (isContractValid || StringUtils.isEmpty(contract.getTreeCode())) {
+					result.add(contract);
+				}
+			} else if (treeCode.equals(contract.getTreeCode()) || isContractValid) {
+				if (StringUtils.isNotEmpty(nodeId)) {
+					if (isNodeOrAncestor(contract, nodeId) ) {
+						result.add(contract);
+					}
+				} else  {
+					result.add(contract);
 				}
 			}
 		}
@@ -2181,6 +2227,11 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		return result;
 	}
 
+	private boolean isNodeOrAncestor(ArchiveTreeContract contract, String nodeId) {
+		return StringUtils.isNotEmpty(contract.getAncestors()) && contract.getAncestors().contains(nodeId) || contract.getId().toString().equals(nodeId);
+	}
+
+
 	/**
 	 * 带权限筛选的档案列表筛选函数
 	 * 规则,1. 合同段ID为空,则不过滤

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -292,7 +292,7 @@
         select box_name as boxName, box_number as boxNumber, group_concat(DISTINCT id ORDER BY id ASC SEPARATOR ',') as ids
         from u_archive_file
         where node_id = #{nodeId}
-          and (box_number is not null and box_number != '' and box_number != -1)
+          and (box_number is not null and box_number != '' and box_number != -1) and is_deleted = 0
         group by box_name
         order by box_number asc
     </select>