|
@@ -29,6 +29,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -136,9 +137,12 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
//设置任务的发起人
|
|
|
projectTask.setCreateId(personnelVO.getId());
|
|
|
projectTask.insert();
|
|
|
- if (projectTask.getAssoTaskId() == null && projectTask.getType() == 6) {
|
|
|
- projectTask.setAssoTaskId(projectTask.getId());
|
|
|
- projectTask.updateById();
|
|
|
+ if (projectTask.getAssoTaskId() == null) {
|
|
|
+ if (projectTask.getType() == 6 || projectTask.getType() == 7) {
|
|
|
+ projectTask.setAssoTaskId(projectTask.getId());
|
|
|
+ projectTask.updateById();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
//新增任务可能会上传附件,如果附件不为空,则添加任务与附件关联
|
|
|
if (projectTaskDTO.getFileGuids() != null) {
|
|
@@ -240,14 +244,10 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
public TaskDetailsVO queryAuditHistory(Integer taskId) throws IOException {
|
|
|
//新建返回VO类
|
|
|
TaskDetailsVO taskDetailsVO = new TaskDetailsVO();
|
|
|
+ List<HandleResultFileVO> handleResultFileVOS = new ArrayList<>();
|
|
|
+ List<AuditHistoryVO> auditHistoryVOS = new ArrayList<>();
|
|
|
//根据taskId查询此条任务详情
|
|
|
- LambdaQueryWrapper<ProjectTask> currentTaskWrapper = new LambdaQueryWrapper<>();
|
|
|
- currentTaskWrapper.eq(ProjectTask::getId, taskId);
|
|
|
- List<ProjectTask> currentTasks = this.list(currentTaskWrapper);
|
|
|
- ProjectTask currentTask = new ProjectTask();
|
|
|
- if (currentTasks != null && currentTasks.size() != 0) {
|
|
|
- currentTask = currentTasks.get(0);
|
|
|
- }
|
|
|
+ ProjectTask currentTask = this.getById(taskId);
|
|
|
//根据此条任务详情获取assoTaskId
|
|
|
Integer assoTaskId = currentTask.getAssoTaskId();
|
|
|
List<ProjectTask> allProjectTasks = new ArrayList<>();
|
|
@@ -255,39 +255,72 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
//根据assoTaskId获取最初任务的详情
|
|
|
LambdaQueryWrapper<ProjectTask> assoTaskWrapper = new LambdaQueryWrapper<>();
|
|
|
assoTaskWrapper.eq(ProjectTask::getId, assoTaskId);
|
|
|
- ProjectTask assoTask = this.list(assoTaskWrapper).get(0);
|
|
|
- //装载最初任务详情
|
|
|
ProjectTaskVO projectTaskVO = new ProjectTaskVO();
|
|
|
- BeanUtils.copyProperties(assoTask, projectTaskVO);
|
|
|
- taskDetailsVO.setProjectTaskVO(projectTaskVO);
|
|
|
- //根据assoTaskId查询所有任务的id
|
|
|
- LambdaQueryWrapper<ProjectTask> allTaskWrapper = new LambdaQueryWrapper<>();
|
|
|
- allTaskWrapper.eq(ProjectTask::getAssoTaskId, assoTaskId);
|
|
|
- allProjectTasks = this.list(allTaskWrapper);
|
|
|
+ ProjectTask assoTask = this.list(assoTaskWrapper).get(0);
|
|
|
+ if (assoTask != null) {
|
|
|
+ //装载最初任务详情
|
|
|
+ BeanUtils.copyProperties(assoTask, projectTaskVO);
|
|
|
+ taskDetailsVO.setProjectTaskVO(projectTaskVO);
|
|
|
+ if (assoTask.getType() == 7) {
|
|
|
+ //专利挖掘文件任务
|
|
|
+ LambdaQueryWrapper<PatentDigProjectFiles> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(PatentDigProjectFiles::getTaskId, assoTask.getId());
|
|
|
+ List<PatentDigProjectFiles> patentDigProjectFiles = patentDigProjectFilesService.list(queryWrapper);
|
|
|
+ List<String> fileGuids = new ArrayList<>();
|
|
|
+ List<SystemFile> systemFiles = new ArrayList<>();
|
|
|
+ if (!patentDigProjectFiles.isEmpty()) {
|
|
|
+ fileGuids = patentDigProjectFiles.stream().map(PatentDigProjectFiles::getFileGuid).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ //调用文件系统查询文件信息接口
|
|
|
+ if (!fileGuids.isEmpty()) {
|
|
|
+ String res = fileManagerService.getSystemFileFromFMS(fileGuids);
|
|
|
+ systemFiles = JSONObject.parseArray(res, SystemFile.class);
|
|
|
+ }
|
|
|
+ if (!systemFiles.isEmpty()) {
|
|
|
+ for (PatentDigProjectFiles patentDigProjectFiles1 : patentDigProjectFiles) {
|
|
|
+ HandleResultFileVO handleResultFileVO = new HandleResultFileVO();
|
|
|
+ //装载文件信息
|
|
|
+ SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(patentDigProjectFiles1.getFileGuid())).findFirst().orElse(null);
|
|
|
+ if (systemFile != null) {
|
|
|
+ BeanUtils.copyProperties(patentDigProjectFiles1, handleResultFileVO);
|
|
|
+ handleResultFileVO.setGuid(patentDigProjectFiles1.getFileGuid());
|
|
|
+ handleResultFileVO.setType(systemFile.getType());
|
|
|
+ handleResultFileVO.setOriginalName(systemFile.getOriginalName());
|
|
|
+ }
|
|
|
+ handleResultFileVOS.add(handleResultFileVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //根据assoTaskId查询所有任务的id
|
|
|
+ LambdaQueryWrapper<ProjectTask> allTaskWrapper = new LambdaQueryWrapper<>();
|
|
|
+ allTaskWrapper.eq(ProjectTask::getAssoTaskId, assoTaskId);
|
|
|
+ allProjectTasks = this.list(allTaskWrapper);
|
|
|
+ }
|
|
|
}
|
|
|
- //新建审核历史返回VO以及集合
|
|
|
- List<AuditHistoryVO> auditHistoryVOS = new ArrayList<>();
|
|
|
+ //审核历史返回VO以及集合
|
|
|
if (allProjectTasks != null) {
|
|
|
for (ProjectTask item : allProjectTasks) {
|
|
|
if (item != null) {
|
|
|
- AuditHistoryVO auditHistoryVO = new AuditHistoryVO();
|
|
|
- //任务详情VO
|
|
|
- ProjectTaskVO auditHistoryTaskVO = new ProjectTaskVO();
|
|
|
- BeanUtils.copyProperties(item, auditHistoryTaskVO);
|
|
|
- //处理结果VO
|
|
|
- TaskHandleResultVO taskHandleResultVO = new TaskHandleResultVO();
|
|
|
- LambdaQueryWrapper<TaskHandleResult> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(TaskHandleResult::getTaskId, item.getId());
|
|
|
- List<TaskHandleResult> taskHandleResults = taskHandleResultService.list(queryWrapper);
|
|
|
- if (taskHandleResults.size() != 0) {
|
|
|
- TaskHandleResult taskHandleResult = taskHandleResults.get(0);
|
|
|
- if (taskHandleResult != null) {
|
|
|
- BeanUtils.copyProperties(taskHandleResult, taskHandleResultVO);
|
|
|
- auditHistoryVO.setProjectTaskVO(auditHistoryTaskVO);
|
|
|
- auditHistoryVO.setTaskHandleResultVO(taskHandleResultVO);
|
|
|
+ if (item.getId() != item.getAssoTaskId()) {
|
|
|
+ AuditHistoryVO auditHistoryVO = new AuditHistoryVO();
|
|
|
+ //任务详情VO
|
|
|
+ ProjectTaskVO auditHistoryTaskVO = new ProjectTaskVO();
|
|
|
+ BeanUtils.copyProperties(item, auditHistoryTaskVO);
|
|
|
+ //处理结果VO
|
|
|
+ TaskHandleResultVO taskHandleResultVO = new TaskHandleResultVO();
|
|
|
+ LambdaQueryWrapper<TaskHandleResult> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(TaskHandleResult::getTaskId, item.getId());
|
|
|
+ List<TaskHandleResult> taskHandleResults = taskHandleResultService.list(queryWrapper);
|
|
|
+ if (taskHandleResults.size() != 0) {
|
|
|
+ TaskHandleResult taskHandleResult = taskHandleResults.get(0);
|
|
|
+ if (taskHandleResult != null) {
|
|
|
+ BeanUtils.copyProperties(taskHandleResult, taskHandleResultVO);
|
|
|
+ auditHistoryVO.setProjectTaskVO(auditHistoryTaskVO);
|
|
|
+ auditHistoryVO.setTaskHandleResultVO(taskHandleResultVO);
|
|
|
+ }
|
|
|
}
|
|
|
+ auditHistoryVOS.add(auditHistoryVO);
|
|
|
}
|
|
|
- auditHistoryVOS.add(auditHistoryVO);
|
|
|
}
|
|
|
}
|
|
|
taskDetailsVO.setAuditHistoryVOS(auditHistoryVOS);
|
|
@@ -298,28 +331,160 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
|
|
|
queryWrapper.in(TaskHandleResult::getTaskId, allTaskIds);
|
|
|
List<TaskHandleResult> taskHandleResults = taskHandleResultService.list(queryWrapper);
|
|
|
List<Integer> resultIds = new ArrayList<>();
|
|
|
- if (taskHandleResults != null && taskHandleResults.size() != 0) {
|
|
|
+ if (taskHandleResults != null && !taskHandleResults.isEmpty()) {
|
|
|
resultIds = taskHandleResults.stream().map(TaskHandleResult::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
- List<HandleResultFileVO> handleResultFileVOS = new ArrayList<>();
|
|
|
//根据所有的结果ids查询所有fileGuids
|
|
|
- if (resultIds != null) {
|
|
|
+ if (resultIds != null && !resultIds.isEmpty()) {
|
|
|
LambdaQueryWrapper<AssoHandleResultFile> allGuidsWrapper = new LambdaQueryWrapper<>();
|
|
|
allGuidsWrapper.in(AssoHandleResultFile::getTaskHandleResultId, resultIds);
|
|
|
List<AssoHandleResultFile> assoHandleResultFiles = assoHandleResultFileService.list(allGuidsWrapper);
|
|
|
- //新建
|
|
|
List<String> fileGuids = new ArrayList<>();
|
|
|
List<SystemFile> systemFiles = new ArrayList<>();
|
|
|
+ if (!assoHandleResultFiles.isEmpty()) {
|
|
|
+ fileGuids = assoHandleResultFiles.stream().map(AssoHandleResultFile::getFileGuid).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ //调用文件系统查询文件信息接口
|
|
|
+ if (!fileGuids.isEmpty()) {
|
|
|
+ String res = fileManagerService.getSystemFileFromFMS(fileGuids);
|
|
|
+ systemFiles = JSONObject.parseArray(res, SystemFile.class);
|
|
|
+ }
|
|
|
+ if (!systemFiles.isEmpty()) {
|
|
|
+ for (AssoHandleResultFile assoHandleResultFile : assoHandleResultFiles) {
|
|
|
+ HandleResultFileVO handleResultFileVO = new HandleResultFileVO();
|
|
|
+ //装载文件信息
|
|
|
+ SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(assoHandleResultFile.getFileGuid())).findFirst().orElse(null);
|
|
|
+ if (systemFile != null) {
|
|
|
+ BeanUtils.copyProperties(assoHandleResultFile, handleResultFileVO);
|
|
|
+ handleResultFileVO.setGuid(assoHandleResultFile.getFileGuid());
|
|
|
+ handleResultFileVO.setType(systemFile.getType());
|
|
|
+ handleResultFileVO.setOriginalName(systemFile.getOriginalName());
|
|
|
+ }
|
|
|
+ handleResultFileVOS.add(handleResultFileVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ taskDetailsVO.setSystemFileList(handleResultFileVOS);
|
|
|
+ //装载名称
|
|
|
+ this.loadTaskDetails(taskDetailsVO);
|
|
|
+ return taskDetailsVO;
|
|
|
+ }
|
|
|
|
|
|
- if (assoHandleResultFiles.size() != 0) {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据任务id查询任务详情以及处理结果以及审核历史
|
|
|
+ * @param taskId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public TaskDetailsVO getAuditHistory(Integer taskId) throws IOException {
|
|
|
+ //新建返回VO类
|
|
|
+ TaskDetailsVO taskDetailsVO = new TaskDetailsVO();
|
|
|
+ List<HandleResultFileVO> handleResultFileVOS = new ArrayList<>();
|
|
|
+ List<AuditHistoryVO> auditHistoryVOS = new ArrayList<>();
|
|
|
+ //根据taskId查询此条任务详情
|
|
|
+ ProjectTask currentTask = this.getById(taskId);
|
|
|
+ //根据此条任务详情获取assoTaskId
|
|
|
+ //使用Optional避免空指针异常:使用Optional来处理可能为空的变量,例如currentTask和assoTask。
|
|
|
+ Optional<ProjectTask> currentTaskOptional = Optional.ofNullable(currentTask);
|
|
|
+ Integer assoTaskId = currentTaskOptional.map(ProjectTask::getAssoTaskId).orElse(null);
|
|
|
+ List<ProjectTask> allProjectTasks = new ArrayList<>();
|
|
|
+ if (assoTaskId != null) {
|
|
|
+ //根据assoTaskId获取最初任务的详情
|
|
|
+ LambdaQueryWrapper<ProjectTask> assoTaskWrapper = new LambdaQueryWrapper<>();
|
|
|
+ assoTaskWrapper.eq(ProjectTask::getId, assoTaskId);
|
|
|
+ ProjectTaskVO projectTaskVO = new ProjectTaskVO();
|
|
|
+ ProjectTask assoTask = this.list(assoTaskWrapper).get(0);
|
|
|
+ if (assoTask != null) {
|
|
|
+ //装载最初任务详情
|
|
|
+ BeanUtils.copyProperties(assoTask, projectTaskVO);
|
|
|
+ taskDetailsVO.setProjectTaskVO(projectTaskVO);
|
|
|
+ if (assoTask.getType() == 7) {
|
|
|
+ //专利挖掘文件任务
|
|
|
+ LambdaQueryWrapper<PatentDigProjectFiles> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(PatentDigProjectFiles::getTaskId, assoTask.getId());
|
|
|
+ List<PatentDigProjectFiles> patentDigProjectFiles = patentDigProjectFilesService.list(queryWrapper);
|
|
|
+ List<String> fileGuids = new ArrayList<>();
|
|
|
+ List<SystemFile> systemFiles = new ArrayList<>();
|
|
|
+ if (!patentDigProjectFiles.isEmpty()) {
|
|
|
+ fileGuids = patentDigProjectFiles.stream().map(PatentDigProjectFiles::getFileGuid).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ //调用文件系统查询文件信息接口
|
|
|
+ if (!fileGuids.isEmpty()) {
|
|
|
+ String res = fileManagerService.getSystemFileFromFMS(fileGuids);
|
|
|
+ systemFiles = JSONObject.parseArray(res, SystemFile.class);
|
|
|
+ }
|
|
|
+ if (!systemFiles.isEmpty()) {
|
|
|
+ for (PatentDigProjectFiles patentDigProjectFiles1 : patentDigProjectFiles) {
|
|
|
+ HandleResultFileVO handleResultFileVO = new HandleResultFileVO();
|
|
|
+ //装载文件信息
|
|
|
+ SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(patentDigProjectFiles1.getFileGuid())).findFirst().orElse(null);
|
|
|
+ if (systemFile != null) {
|
|
|
+ BeanUtils.copyProperties(patentDigProjectFiles1, handleResultFileVO);
|
|
|
+ handleResultFileVO.setGuid(patentDigProjectFiles1.getFileGuid());
|
|
|
+ handleResultFileVO.setType(systemFile.getType());
|
|
|
+ handleResultFileVO.setOriginalName(systemFile.getOriginalName());
|
|
|
+ }
|
|
|
+ handleResultFileVOS.add(handleResultFileVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //根据assoTaskId查询所有任务的id
|
|
|
+ LambdaQueryWrapper<ProjectTask> allTaskWrapper = new LambdaQueryWrapper<>();
|
|
|
+ allTaskWrapper.eq(ProjectTask::getAssoTaskId, assoTaskId);
|
|
|
+ allProjectTasks = this.list(allTaskWrapper);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //审核历史返回VO以及集合
|
|
|
+ if (allProjectTasks != null) {
|
|
|
+ taskDetailsVO.setAuditHistoryVOS(allProjectTasks.stream()
|
|
|
+ .filter(item -> item.getId() != item.getAssoTaskId())
|
|
|
+ .map(item -> {
|
|
|
+ AuditHistoryVO auditHistoryVO = new AuditHistoryVO();
|
|
|
+ ProjectTaskVO auditHistoryTaskVO = new ProjectTaskVO();
|
|
|
+ BeanUtils.copyProperties(item, auditHistoryTaskVO);
|
|
|
+ //处理结果VO
|
|
|
+ TaskHandleResultVO taskHandleResultVO = new TaskHandleResultVO();
|
|
|
+ LambdaQueryWrapper<TaskHandleResult> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(TaskHandleResult::getTaskId, item.getId());
|
|
|
+ List<TaskHandleResult> taskHandleResults = taskHandleResultService.list(queryWrapper);
|
|
|
+ if (taskHandleResults.size() != 0) {
|
|
|
+ TaskHandleResult taskHandleResult = taskHandleResults.get(0);
|
|
|
+ if (taskHandleResult != null) {
|
|
|
+ BeanUtils.copyProperties(taskHandleResult, taskHandleResultVO);
|
|
|
+ auditHistoryVO.setProjectTaskVO(auditHistoryTaskVO);
|
|
|
+ auditHistoryVO.setTaskHandleResultVO(taskHandleResultVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ auditHistoryVOS.add(auditHistoryVO);
|
|
|
+ return auditHistoryVO;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ //全部的文件信息(获取所有的任务的id,查出所有的结果id)
|
|
|
+ List<Integer> allTaskIds = allProjectTasks.stream().map(ProjectTask::getId).collect(Collectors.toList());
|
|
|
+ LambdaQueryWrapper<TaskHandleResult> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.in(TaskHandleResult::getTaskId, allTaskIds);
|
|
|
+ List<TaskHandleResult> taskHandleResults = taskHandleResultService.list(queryWrapper);
|
|
|
+ List<Integer> resultIds = new ArrayList<>();
|
|
|
+ if (taskHandleResults != null && !taskHandleResults.isEmpty()) {
|
|
|
+ resultIds = taskHandleResults.stream().map(TaskHandleResult::getId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ //根据所有的结果ids查询所有fileGuids
|
|
|
+ if (resultIds != null && !resultIds.isEmpty()) {
|
|
|
+ LambdaQueryWrapper<AssoHandleResultFile> allGuidsWrapper = new LambdaQueryWrapper<>();
|
|
|
+ allGuidsWrapper.in(AssoHandleResultFile::getTaskHandleResultId, resultIds);
|
|
|
+ List<AssoHandleResultFile> assoHandleResultFiles = assoHandleResultFileService.list(allGuidsWrapper);
|
|
|
+ List<String> fileGuids = new ArrayList<>();
|
|
|
+ List<SystemFile> systemFiles = new ArrayList<>();
|
|
|
+ if (!assoHandleResultFiles.isEmpty()) {
|
|
|
fileGuids = assoHandleResultFiles.stream().map(AssoHandleResultFile::getFileGuid).collect(Collectors.toList());
|
|
|
}
|
|
|
//调用文件系统查询文件信息接口
|
|
|
- if (fileGuids.size() != 0) {
|
|
|
+ if (!fileGuids.isEmpty()) {
|
|
|
String res = fileManagerService.getSystemFileFromFMS(fileGuids);
|
|
|
systemFiles = JSONObject.parseArray(res, SystemFile.class);
|
|
|
}
|
|
|
- if (systemFiles.size() != 0) {
|
|
|
+ if (!systemFiles.isEmpty()) {
|
|
|
for (AssoHandleResultFile assoHandleResultFile : assoHandleResultFiles) {
|
|
|
HandleResultFileVO handleResultFileVO = new HandleResultFileVO();
|
|
|
//装载文件信息
|