优化代码提交
This commit is contained in:
parent
87ea4e16fc
commit
bc564dd4da
@ -15,10 +15,6 @@ public class TaskStatusHolder {
|
||||
return taskId + ":" + nodeId;
|
||||
}
|
||||
|
||||
public String generateKeybyId(List<String> dataset) {
|
||||
return dataset + ":" ;
|
||||
}
|
||||
|
||||
// 生成专项扫描唯一Key:project_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);
|
||||
}
|
||||
}
|
||||
|
@ -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("对比失败");
|
||||
|
@ -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)) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user