提交代码

This commit is contained in:
lilin 2025-05-09 18:23:27 +08:00
parent 02956c8e44
commit 0d8b64e47e

View File

@ -3,7 +3,6 @@ package com.yfd.platform.modules.experimentalData.service.impl;
import cn.hutool.core.collection.CollUtil;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
@ -2504,29 +2503,34 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
throw new IllegalArgumentException("dataset参数不可为空"); // 优化点9提前校验参数
}
queryWrapper.in("id", dataset);
// .isNotNull("work_path")
// .ne("work_path", "")
// .and(wq -> wq.isNull("backup_path").or().eq("backup_path", ""));
}
List<TsFiles> parentFiles = tsFilesMapper.selectList(queryWrapper);
// 递归查询每个记录的子节点并添加到 records
List<TsFiles> allFiles = new ArrayList<>();
if(StringUtils.isNotBlank(nodeId)&&StringUtils.isNotBlank(taskId)){
for (TsFiles tsFiles : parentFiles) {
tsFiles.setWorkPath(processingPath(tsFiles.getWorkPath(), tsFiles.getNodeId())); // 优化点11路径处理内聚
// 如果备份路径为空 增加 将当前节点加入结果列表
if (StringUtils.isEmpty(tsFiles.getBackupPath())) {
allFiles.add(tsFiles);
}
}
}else {
for (TsFiles tsFiles : parentFiles) {
tsFiles.setWorkPath(processingPath(tsFiles.getWorkPath(), tsFiles.getNodeId())); // 优化点11路径处理内聚
// 如果备份路径为空 增加 将当前节点加入结果列表
if (StringUtils.isEmpty(tsFiles.getBackupPath()) && "FILE".equals(tsFiles.getIsFile())) {
allFiles.add(tsFiles);
}
// 查询该节点的所有子节点并递归添加
if ("FOLDER".equals(tsFiles.getIsFile())) {
getChildFilesRecursiveLocal(tsFiles.getId(), allFiles);
}
}
}
// ==================== 3. 内存分页处理 ====================
int total = allFiles.size();
@ -2565,7 +2569,9 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
// 对每个子节点递归查询其子节点
for (TsFiles child : children) {
child.setWorkPath(processingPath(child.getWorkPath(), child.getNodeId())); // 优化点11路径处理内聚
if (StringUtils.isEmpty(child.getBackupPath())) {
allFiles.add(child);
}
if ("FOLDER".equals(child.getIsFile())) {
List<TsFiles> childChildFiles = getChildFilesRecursiveLocal(child.getId(), allFiles);
}
@ -2655,18 +2661,31 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
List<TsFiles> parentFiles = tsFilesMapper.selectList(queryWrapper);
// 递归查询每个记录的子节点并添加到 records
List<TsFiles> allFiles = new ArrayList<>();
if(StringUtils.isNotBlank(nodeId)&&StringUtils.isNotBlank(taskId)){
for (TsFiles tsFiles : parentFiles) {
tsFiles.setWorkPath(processingPath(tsFiles.getWorkPath(), tsFiles.getNodeId())); // 优化点11路径处理内聚
// 如果备份路径为空 增加 将当前节点加入结果列表
if (StringUtils.isEmpty(tsFiles.getWorkPath())) {
allFiles.add(tsFiles);
}
}
}else {
for (TsFiles tsFiles : parentFiles) {
tsFiles.setBackupPath(processingPath(tsFiles.getBackupPath(), tsFiles.getNodeId()));
// 如果工作路径为空 增加 将当前节点加入结果列表
if (StringUtils.isEmpty(tsFiles.getWorkPath())) {
allFiles.add(tsFiles);
}
// 查询该节点的所有子节点并递归添加
if ("FOLDER".equals(tsFiles.getIsFile())) {
getChildFilesRecursiveMinio(tsFiles.getId(), allFiles);
}
}
}
// ==================== 3. 内存分页处理 ====================
int total = allFiles.size();
int pageSize = (int) page.getSize();
@ -2700,9 +2719,9 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
// 对每个子节点递归查询其子节点
for (TsFiles child : children) {
child.setBackupPath(processingPath(child.getBackupPath(), child.getNodeId()));
if (StringUtils.isEmpty(child.getWorkPath())) {
allFiles.add(child);
}
if ("FOLDER".equals(child.getIsFile())) {
List<TsFiles> childChildFiles = getChildFilesRecursiveLocal(child.getId(), allFiles);
}
@ -2839,7 +2858,6 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
@Override
public List<TsFiles> compareMd5List(List<String> dataset, String nodeId, String taskId) {
// 获取本地文件路径根目录和存储空间名称
@ -2900,8 +2918,6 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
// 递归查询所有子节点
private List<TsFiles> getChildFilesRecursiveMd5(String parentId, List<TsFiles> allFiles) {
// 构建查询条件获取当前parentId的所有子节点
@ -3235,6 +3251,7 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
taskStatusHolder.finishTask(asyncKey);
}
}
@Override
@Async("asyncExecutor")
public void automaticFileBackupAsyncByIds(List<String> dataset) {
@ -3250,8 +3267,6 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
/**********************************
* 用途说明: 文件自动备份通过节点和任务
* 参数说明 taskId 节点ID
@ -4849,7 +4864,6 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
}