提交代码

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,30 +2503,35 @@ 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<>();
for (TsFiles tsFiles : parentFiles) {
tsFiles.setWorkPath(processingPath(tsFiles.getWorkPath(), tsFiles.getNodeId())); // 优化点11路径处理内聚
// 如果备份路径为空 增加 将当前节点加入结果列表
if (StringUtils.isEmpty(tsFiles.getBackupPath())) {
allFiles.add(tsFiles);
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);
}
}
// 查询该节点的所有子节点并递归添加
if ("FOLDER".equals(tsFiles.getIsFile())) {
getChildFilesRecursiveLocal(tsFiles.getId(), allFiles);
}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();
int pageSize = (int) page.getSize();
@ -2565,7 +2569,9 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
// 对每个子节点递归查询其子节点
for (TsFiles child : children) {
child.setWorkPath(processingPath(child.getWorkPath(), child.getNodeId())); // 优化点11路径处理内聚
allFiles.add(child);
if (StringUtils.isEmpty(child.getBackupPath())) {
allFiles.add(child);
}
if ("FOLDER".equals(child.getIsFile())) {
List<TsFiles> childChildFiles = getChildFilesRecursiveLocal(child.getId(), allFiles);
}
@ -2597,7 +2603,7 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
List<TsFiles> records = tsFilesMapper.selectList(queryWrapper);
if (records == null) {
return records;
return records;
}
// 递归查询每个记录的子节点并添加到 records
@ -2655,18 +2661,31 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
List<TsFiles> parentFiles = tsFilesMapper.selectList(queryWrapper);
// 递归查询每个记录的子节点并添加到 records
List<TsFiles> allFiles = new ArrayList<>();
for (TsFiles tsFiles : parentFiles) {
tsFiles.setBackupPath(processingPath(tsFiles.getBackupPath(), tsFiles.getNodeId()));
// 如果工作路径为空 增加 将当前节点加入结果列表
if (StringUtils.isEmpty(tsFiles.getWorkPath())) {
allFiles.add(tsFiles);
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);
}
}
// 查询该节点的所有子节点并递归添加
if ("FOLDER".equals(tsFiles.getIsFile())) {
getChildFilesRecursiveMinio(tsFiles.getId(), allFiles);
}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()));
allFiles.add(child);
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
@ -4774,10 +4789,10 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
public Boolean deleteTsFilesByNodeId(String nodeId, String taskId) {
List<StorageSource> storageSourceList = storageSourceMapper.selectList(new QueryWrapper<StorageSource>());
int deleteSuccessCount = 0, deleteFailCount = 0;
Boolean value = false;
Boolean value = false;
for (StorageSource storageSource : storageSourceList){
//如果是文件夹
for (StorageSource storageSource : storageSourceList) {
//如果是文件夹
List<BatchDeleteRequest.DeleteItem> deleteItemList = new ArrayList<>();
BatchDeleteRequest.DeleteItem deleteItemData = new BatchDeleteRequest.DeleteItem();
deleteItemData.setName(nodeId);
@ -4820,8 +4835,8 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
if (deleteSuccessCount >= 1) {
//删除数据库
QueryWrapper<TsFiles> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("node_id",nodeId);
queryWrapper.eq("task_id",taskId);
queryWrapper.eq("node_id", nodeId);
queryWrapper.eq("task_id", taskId);
int valueDelete = tsFilesMapper.delete(queryWrapper);
if (valueDelete > 0) {
value = true;
@ -4849,7 +4864,6 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
}