laibulaizheli 1 miesiąc temu
rodzic
commit
c8d15ea391

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ArchiveTreeContractClient.java

@@ -48,6 +48,9 @@ public interface ArchiveTreeContractClient {
     @PostMapping(API_PREFIX + "/getArchiveTreeContractListByIds")
     List<ArchiveTreeContract> getArchiveTreeContractListByIds(@RequestParam String ids);
 
+    @PostMapping(API_PREFIX + "/getArchiveTreeContractListByList")
+    List<ArchiveTreeContract> getArchiveTreeContractListByList(@RequestBody List<Long> ids);
+
     @PostMapping(API_PREFIX + "/getFirstNodeByTreeCode")
     ArchiveTreeContract getFirstNodeByTreeCode(@RequestParam Long projectId,@RequestParam Integer type);
 

+ 4 - 4
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchiveNameServiceImpl.java

@@ -61,12 +61,12 @@ public class ArchiveNameServiceImpl implements IArchiveNameService {
         // 4. 批量获取缺失的祖先节点
         List<ArchiveTreeContract> missingAncestors = Collections.emptyList();
         if (!missingAncestorIds.isEmpty()) {
-            String ancestorIdsStr = missingAncestorIds.stream()
-                    .map(String::valueOf)
-                    .collect(Collectors.joining(","));
+            // 直接使用Set<Long>,无需转换为字符串
+            List<Long> ancestorIdsList = new ArrayList<>(missingAncestorIds);
 
+            // 使用新方法调用
             missingAncestors = archiveTreeContractClient
-                    .getArchiveTreeContractListByIds(ancestorIdsStr);
+                    .getArchiveTreeContractListByList(ancestorIdsList);
 
             for (ArchiveTreeContract ancestor : missingAncestors) {
                 Long ancestorId = ancestor.getId();

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

@@ -103,6 +103,12 @@ public class ArchiveTreeContractImpl implements ArchiveTreeContractClient {
         return archiveTreeContractService.getArchiveTreeContractListByIds(ids);
     }
 
+    @Override
+    public List<ArchiveTreeContract> getArchiveTreeContractListByList(List<Long> ids) {
+
+        return archiveTreeContractService.getArchiveTreeContractListByList(ids);
+    }
+
     @Override
     public ArchiveTreeContract getFirstNodeByTreeCode(Long projectId,Integer type) {
         ArchiveTreeContract contract = new ArchiveTreeContract();

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

@@ -113,6 +113,8 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 
     List<ArchiveTreeContract> getArchiveTreeContractListByIds(String ids);
 
+    List<ArchiveTreeContract> getArchiveTreeContractListByList(List<Long> ids);
+
     List<ArchiveTreeContract> getWbsAssociatedNodes(String contractId);
 
     void updateAllSonNodeIdsForArchiveAutoRule(ArchiveTreeContract archiveTreeContract);

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -405,6 +405,13 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		return baseMapper.getArchiveTreeContractListByIds(idsList);
 	}
 
+	@Override
+	public List<ArchiveTreeContract> getArchiveTreeContractListByList(List<Long> ids) {
+		// 将List<Long>转换成List<String>
+		List<String> stringIds = ids.stream().map(Object::toString).collect(Collectors.toList());
+		return baseMapper.getArchiveTreeContractListByIds(stringIds);
+	}
+
 	/**
 	 *  同步项目级
 	 * @param dstNode