优化代码提交

This commit is contained in:
lilin 2025-06-10 16:42:25 +08:00
parent 87ea4e16fc
commit bc564dd4da
4 changed files with 94 additions and 108 deletions

View File

@ -15,10 +15,6 @@ public class TaskStatusHolder {
return taskId + ":" + nodeId;
}
public String generateKeybyId(List<String> dataset) {
return dataset + ":" ;
}
// 生成专项扫描唯一Keyproject_id
public String specialGenerateKey(String id) {
return id + "扫描:";
@ -47,4 +43,8 @@ public class TaskStatusHolder {
public String getStatus(String key) {
return taskStatusMap.getOrDefault(key, "TASK_NOT_FOUND");
}
public String getValue(String key) {
return taskStatusMap.get(key);
}
}

View File

@ -329,8 +329,6 @@ public class TsFilesController {
dataset = Arrays.asList(splitIds);
}
Page<TsFiles> tsfilesPage = tsFilesService.compareMd5(dataset, nodeId, taskId, page);
//List<TsFilesDTO> dtos = tsFilesService.compareMd5(dataset, nodeId, taskId);
return ResponseResult.successData(tsfilesPage);
} catch (Exception e) {
return ResponseResult.error("对比失败");

View File

@ -388,27 +388,22 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
***********************************/
@Override
public List<TsFiles> getsListTsFiles(String id, String path, String nodeId, String taskId) {
QueryWrapper<TsFiles> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_file", "FOLDER");
LambdaQueryWrapper<TsFiles> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TsFiles::getIsFile, "FOLDER");
if (StringUtils.isNotBlank(id)) {
queryWrapper.eq("parent_id", id);
queryWrapper.eq(TsFiles::getParentId, id);
}
if (StringUtils.isNotBlank(path)) {
queryWrapper.eq("work_path", path);
queryWrapper.eq(TsFiles::getWorkPath, path);
}
if (StringUtils.isNotBlank(nodeId)) {
queryWrapper.eq("node_id", nodeId);
queryWrapper.eq(TsFiles::getNodeId, nodeId);
}
if (StringUtils.isNotBlank(taskId)) {
queryWrapper.eq("task_id", taskId);
queryWrapper.eq(TsFiles::getTaskId, taskId);
}
queryWrapper.isNotNull("work_path");
queryWrapper.isNotNull(TsFiles::getWorkPath);
List<TsFiles> tsFiles = tsFilesMapper.selectList(queryWrapper);
// for (TsFiles tsFiles1 : tsFiles) {
// String ProcessingPath = processingPath(tsFiles1.getWorkPath(), nodeId);
// tsFiles1.setWorkPath(ProcessingPath);
// }
return tsFiles;
}
@ -429,6 +424,11 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
LOGGER.info("已清理缓存taskid={}, node={}, pages=1-5", tsFiles.getTaskId(), tsFiles.getNodeId());
// 参数校验
if (tsFiles.getFileName() == null || tsFiles.getFileSize() == null) {
return ResponseResult.error("文件名或文件大小不能为空!");
}
Boolean value = true;
//文件名称和大小 因为支持多个上传所以用分隔
List<String> names = Arrays.asList(tsFiles.getFileName().split(","));
@ -444,13 +444,13 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
return ResponseResult.error("文件名称和文件大小的列表长度不一致!");
}
List<TsFiles> filesToSave = new ArrayList<>();
// 设置当前时间
LocalDateTime now = LocalDateTime.now();
// 转换为 Timestamp
Timestamp currentTime = Timestamp.valueOf(now);
tsFiles.setUploadTime(currentTime);
List<TsFiles> filesToSave = new ArrayList<>();
for (int i = 0; i < names.size(); i++) {
String name = names.get(i).trim();
String sizeStr = sizes.get(i).trim();
@ -464,12 +464,12 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
//通过节点ID 任务ID 路径 上级ID 文件名称 查询是否重复
QueryWrapper<TsFiles> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("node_id", tsFiles.getNodeId());
queryWrapper.eq("task_id", tsFiles.getTaskId());
queryWrapper.eq("work_path", tsFiles.getWorkPath());
queryWrapper.eq("parent_id", tsFiles.getParentId());
queryWrapper.eq("file_name", name);
LambdaQueryWrapper<TsFiles> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TsFiles::getNodeId, tsFiles.getNodeId());
queryWrapper.eq(TsFiles::getTaskId, tsFiles.getTaskId());
queryWrapper.eq(TsFiles::getWorkPath, tsFiles.getWorkPath());
queryWrapper.eq(TsFiles::getParentId, tsFiles.getParentId());
queryWrapper.eq(TsFiles::getFileName, name);
int count = tsFilesMapper.selectCount(queryWrapper);
// 大于0说明 区域名称重复
if (count > 0) {
@ -514,12 +514,7 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
}
}
if (value) {
return ResponseResult.success("新增文件成功!");
} else {
return ResponseResult.error("新增文件失败!");
}
return value ? ResponseResult.success("新增文件成功!") : ResponseResult.error("新增文件失败!");
}
@ -539,19 +534,7 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
redisTemplate.delete(redisKey);
}
LOGGER.info("已清理缓存taskid={}, node={}, pages=1-5", tsFiles.getTaskId(), tsFiles.getNodeId());
if (tsFiles.getIsFile().equals("FILE")) {
StorageSourceConfig config = getStorageConfig("filePath", "local");
String basePath = config.getValue() + tsFiles.getWorkPath();
// 拼接完整的文件路径
Path filePath = Paths.get(basePath, tsFiles.getFileName() + ".txt");
// 确保目录存在如果不存在则创建目录
Files.createDirectories(filePath.getParent());
// 使用 Files.write() 写入字符串内容
Files.write(filePath, "默认内容".getBytes(StandardCharsets.UTF_8));
tsFiles.setFileName(tsFiles.getFileName() + ".txt");
//上传人是当前登录人
UsernamePasswordAuthenticationToken authentication =
(UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
LoginUser loginuser = (LoginUser) authentication.getPrincipal();
@ -559,6 +542,17 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
LocalDateTime now = LocalDateTime.now();
// 转换为 Timestamp
Timestamp currentTime = Timestamp.valueOf(now);
if (tsFiles.getIsFile().equals("FILE")) {
StorageSourceConfig config = getStorageConfig("filePath", "local");
String basePath = config.getValue() + tsFiles.getWorkPath();
// 拼接完整的文件路径
Path filePath = Paths.get(basePath, tsFiles.getFileName() + ".txt");
// 确保目录存在如果不存在则创建目录
Files.createDirectories(filePath.getParent());
// 使用 Files.write() 写入字符串内容
Files.write(filePath, "默认内容".getBytes(StandardCharsets.UTF_8));
tsFiles.setFileName(tsFiles.getFileName() + ".txt");
tsFiles.setUploadTime(currentTime);
tsFiles.setUploader(loginuser.getUsername());
tsFiles.setFileSize("0.001");
@ -576,23 +570,14 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
if (containsInvalidCharacters(fileName)) {
return ResponseResult.error("文件名包含非法字符(<>:\"/\\|?*");
}
//上传人是当前登录人
UsernamePasswordAuthenticationToken authentication =
(UsernamePasswordAuthenticationToken) SecurityContextHolder.getContext().getAuthentication();
LoginUser loginuser = (LoginUser) authentication.getPrincipal();
// 设置当前时间
LocalDateTime now = LocalDateTime.now();
// 转换为 Timestamp
Timestamp currentTime = Timestamp.valueOf(now);
tsFiles.setUploadTime(currentTime);
tsFiles.setUploader(loginuser.getUsername());
tsFiles.setFileSize("0");
QueryWrapper<TsFiles> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("node_id", tsFiles.getNodeId());
queryWrapper.eq("task_id", tsFiles.getTaskId());
queryWrapper.eq("parent_id", tsFiles.getParentId());
queryWrapper.eq("file_name", tsFiles.getFileName());
LambdaQueryWrapper<TsFiles> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TsFiles::getNodeId, tsFiles.getNodeId());
queryWrapper.eq(TsFiles::getTaskId, tsFiles.getTaskId());
queryWrapper.eq(TsFiles::getParentId, tsFiles.getParentId());
queryWrapper.eq(TsFiles::getFileName, tsFiles.getFileName());
int count = tsFilesMapper.selectCount(queryWrapper);
// 大于0说明 区域名称重复
if (count > 0) {
@ -604,11 +589,10 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
newFolderRequest.setPath(tsFiles.getWorkPath());
newFolderRequest.setPassword(null);
newFolderRequest.setName(tsFiles.getFileName());
AbstractBaseFileService<?> fileServicefolder = storageSourceContext.getByStorageKey(newFolderRequest.getStorageKey());
boolean flagfolder = fileServicefolder.newFolder(newFolderRequest.getPath(), newFolderRequest.getName());
//创建成功以后新增表结构
if (flagfolder) {
// tsFiles.setWorkPath(File.separator + tsFiles.getNodeId() + tsFiles.getWorkPath());
int valueAdded = tsFilesMapper.insert(tsFiles);
if (valueAdded == 1) {
LOGGER.info("表结构和本地都创建文件夹成功");
@ -664,12 +648,12 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
//校验文件夹会不会重命名
if ("FOLDER".equals(tsFiles.getIsFile())) {
//如果是文件夹 递归修改它下面的所有文件的路径
QueryWrapper<TsFiles> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("node_id", tsFiles.getNodeId());
queryWrapper.eq("task_id", tsFiles.getTaskId());
queryWrapper.eq("work_path", tsFiles.getWorkPath());
queryWrapper.eq("parent_id", tsFiles.getParentId());
queryWrapper.eq("file_name", tsFiles.getFileName());
LambdaQueryWrapper<TsFiles> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TsFiles::getNodeId, tsFiles.getNodeId());
queryWrapper.eq(TsFiles::getTaskId, tsFiles.getTaskId());
queryWrapper.eq(TsFiles::getWorkPath, tsFiles.getWorkPath());
queryWrapper.eq(TsFiles::getParentId, tsFiles.getParentId());
queryWrapper.eq(TsFiles::getFileName, tsFiles.getFileName());
int count = tsFilesMapper.selectCount(queryWrapper);
// 大于0说明 区域名称重复
if (count > 0) {
@ -754,12 +738,12 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
}
} else {
//如果是文件 直接修改就可以
QueryWrapper<TsFiles> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("node_id", tsFiles.getNodeId());
queryWrapper.eq("task_id", tsFiles.getTaskId());
queryWrapper.eq("work_path", tsFiles.getWorkPath());
queryWrapper.eq("parent_id", tsFiles.getParentId());
queryWrapper.eq("file_name", tsFiles.getFileName());
LambdaQueryWrapper<TsFiles> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TsFiles::getNodeId, tsFiles.getNodeId());
queryWrapper.eq(TsFiles::getTaskId, tsFiles.getTaskId());
queryWrapper.eq(TsFiles::getWorkPath, tsFiles.getWorkPath());
queryWrapper.eq(TsFiles::getParentId, tsFiles.getParentId());
queryWrapper.eq(TsFiles::getFileName, tsFiles.getFileName());
int count = tsFilesMapper.selectCount(queryWrapper);
// 大于0说明 区域名称重复
if (count > 0) {
@ -1352,12 +1336,12 @@ public class TsFilesServiceImpl extends ServiceImpl<TsFilesMapper, TsFiles> impl
tsFiles.setUploader(loginuser.getUsername());
// 通过 nodeid taskid 名称查询 如果存在就不 新增
QueryWrapper<TsFiles> queryWrapperTsFiles = new QueryWrapper<>();
queryWrapperTsFiles.eq("node_id", filesList.get(0).getNodeId());
queryWrapperTsFiles.eq("task_id", filesList.get(0).getTaskId());
queryWrapperTsFiles.eq("work_path", workPath);
queryWrapperTsFiles.eq("file_name", zipFileName);
queryWrapperTsFiles.eq("parent_id", filesList.get(0).getParentId());
LambdaQueryWrapper<TsFiles> queryWrapperTsFiles = new LambdaQueryWrapper<>();
queryWrapperTsFiles.eq(TsFiles::getNodeId, filesList.get(0).getNodeId());
queryWrapperTsFiles.eq(TsFiles::getTaskId, filesList.get(0).getTaskId());
queryWrapperTsFiles.eq(TsFiles::getWorkPath, workPath);
queryWrapperTsFiles.eq(TsFiles::getFileName, zipFileName);
queryWrapperTsFiles.eq(TsFiles::getParentId, filesList.get(0).getParentId());
TsFiles tsFilesdata = tsFilesMapper.selectOne(queryWrapperTsFiles);
//covered 是否覆盖 0 覆盖更新updateTime时间 1提示文件存在
if ("0".equals(covered)) {

View File

@ -172,45 +172,49 @@ public class NodesController {
}
JSONObject jsonObject1 = new JSONObject();
// 生成唯一Key
String asyncKey = taskStatusHolder.specialGenerateKey(id);
String scanKey = taskStatusHolder.specialGenerateKey(id);
// 检查任务是否已存在
String existingStatus = taskStatusHolder.getStatus(asyncKey);
if ("TASK_NOT_FOUND".equals(existingStatus)) {
String scanStatus = taskStatusHolder.getStatus(scanKey);
jsonObject1.putOpt("status", "1");
jsonObject1.putOpt("name", "扫描");
return ResponseResult.successData(jsonObject1);
String scanValue = taskStatusHolder.getValue(scanKey);
if (!StrUtil.isEmpty(scanValue)) {
if ("IN_PROGRESS".equals(scanStatus)) {
jsonObject1.putOpt("scanstatus", "0");
jsonObject1.putOpt("scanname", "扫描");
} else {
jsonObject1.putOpt("scanstatus", "1");
jsonObject1.putOpt("scanname", "扫描");
}
if ("IN_PROGRESS".equals(existingStatus)) {
jsonObject1.putOpt("status", "0");
jsonObject1.putOpt("name", "扫描");
return ResponseResult.successData(jsonObject1);
} else if ("COMPLETED".equals(existingStatus)) {
jsonObject1.putOpt("status", "1");
jsonObject1.putOpt("name", "扫描");
return ResponseResult.successData(jsonObject1);
}else {
jsonObject1.putOpt("scanstatus", "1");
jsonObject1.putOpt("scanname", "扫描");
}
// 上传生成唯一Key
String asyncKeySc = taskStatusHolder.documentUploadKey(id);
String uploadKey = taskStatusHolder.documentUploadKey(id);
// 检查任务是否已存在
String existingStatusSc = taskStatusHolder.getStatus(asyncKeySc);
if ("TASK_NOT_FOUND".equals(existingStatusSc)) {
jsonObject1.putOpt("status", "1");
jsonObject1.putOpt("name", "上传");
return ResponseResult.successData(jsonObject1);
String uploadStatus = taskStatusHolder.getStatus(uploadKey);
String uploadValue = taskStatusHolder.getValue(uploadKey);
if (!StrUtil.isEmpty(uploadValue)) {
if ("IN_PROGRESS".equals(uploadStatus)) {
jsonObject1.putOpt("uploadstatus", "0");
jsonObject1.putOpt("uploadname", "上传");
} else {
jsonObject1.putOpt("uploadstatus", "1");
jsonObject1.putOpt("uploadname", "上传");
}
if ("IN_PROGRESS".equals(existingStatusSc)) {
jsonObject1.putOpt("status", "0");
jsonObject1.putOpt("name", "上传");
return ResponseResult.successData(jsonObject1);
} else if ("COMPLETED".equals(existingStatusSc)) {
jsonObject1.putOpt("status", "1");
jsonObject1.putOpt("name", "上传");
return ResponseResult.successData(jsonObject1);
}else {
jsonObject1.putOpt("uploadstatus", "1");
jsonObject1.putOpt("uploadname", "上传");
}
return null;
//如果都为空
if (StrUtil.isEmpty(scanValue)&& StrUtil.isEmpty(uploadValue)) {
jsonObject1.putOpt("scanstatus", "1");
jsonObject1.putOpt("scanname", "扫描");
jsonObject1.putOpt("uploadstatus", "1");
jsonObject1.putOpt("uploadname", "上传");
}
return ResponseResult.successData(jsonObject1);
}