lrj 7 kuukautta sitten
vanhempi
commit
f303b65081

+ 9 - 0
src/main/java/cn/cslg/pas/common/model/projectTask/AddFileExamineTaskDTO.java

@@ -0,0 +1,9 @@
+package cn.cslg.pas.common.model.projectTask;
+
+import lombok.Data;
+
+@Data
+public class AddFileExamineTaskDTO {
+   private FileFormDTO fileForm;
+   private TaskFormDTO taskForm;
+}

+ 11 - 0
src/main/java/cn/cslg/pas/common/model/projectTask/FileDTO.java

@@ -0,0 +1,11 @@
+package cn.cslg.pas.common.model.projectTask;
+
+import lombok.Data;
+
+@Data
+public class FileDTO {
+     private String referencesName;
+     private String guid;
+     private String projectId;
+     private String fileType;
+}

+ 12 - 0
src/main/java/cn/cslg/pas/common/model/projectTask/FileFormDTO.java

@@ -0,0 +1,12 @@
+package cn.cslg.pas.common.model.projectTask;
+
+import lombok.Data;
+
+import java.util.List;
+
+
+@Data
+public class FileFormDTO {
+    private Integer projectId;
+    private List<FileDTO> files;
+}

+ 10 - 0
src/main/java/cn/cslg/pas/common/model/projectTask/GetExamineHistoryDTO.java

@@ -0,0 +1,10 @@
+package cn.cslg.pas.common.model.projectTask;
+
+import lombok.Data;
+
+@Data
+public class GetExamineHistoryDTO {
+    private Integer taskId;
+    private String fileGuid;
+
+}

+ 8 - 0
src/main/java/cn/cslg/pas/common/model/projectTask/GetExamineMessageDTO.java

@@ -0,0 +1,8 @@
+package cn.cslg.pas.common.model.projectTask;
+
+import lombok.Data;
+
+@Data
+public class GetExamineMessageDTO {
+    private Integer taskId;
+}

+ 23 - 0
src/main/java/cn/cslg/pas/common/model/projectTask/TaskFormDTO.java

@@ -0,0 +1,23 @@
+package cn.cslg.pas.common.model.projectTask;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class TaskFormDTO {
+    private String name;
+    private String handler;
+    /**
+     * 截止时间
+     */
+    private Date deadLineTime;
+    /**
+     * 0内部人员1外部人员
+     */
+    private Integer handlerType;
+    /**
+     * 备注
+     */
+    private String description;
+}

+ 53 - 0
src/main/java/cn/cslg/pas/common/model/projectTask/TaskResultVO.java

@@ -0,0 +1,53 @@
+package cn.cslg.pas.common.model.projectTask;
+
+import cn.cslg.pas.common.model.cronModel.SystemFile;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class TaskResultVO {
+    /**
+     * 任务处理结果
+     */
+    private String handleResult;
+
+    /**
+     * 描述/说明
+     */
+    private String description;
+
+    /**
+     * 下一个审核人
+     */
+    private String nextAuditor;
+
+    /**
+     * 是否内部人员
+     */
+    private Boolean ifInner;
+
+
+
+    /**
+     * 任务id
+     */
+    private Integer taskId;
+
+    /**
+     * 创建人
+     */
+    private String createId;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 创建人
+     */
+    private String createName;
+    private List<SystemFile> files;
+}

+ 1 - 0
src/main/java/cn/cslg/pas/common/vo/business/AssoTaskFileVO.java

@@ -44,4 +44,5 @@ public class AssoTaskFileVO {
      * 创建时间
      */
     private Date createTime;
+    private String createName;
 }

+ 62 - 0
src/main/java/cn/cslg/pas/controller/projectTask/ExamineController.java

@@ -0,0 +1,62 @@
+package cn.cslg.pas.controller.projectTask;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.business.*;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.projectTask.AddFileExamineTaskDTO;
+import cn.cslg.pas.common.model.projectTask.GetExamineHistoryDTO;
+import cn.cslg.pas.common.model.projectTask.GetExamineMessageDTO;
+import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.business.AssoTaskFileVO;
+import cn.cslg.pas.common.vo.business.GetHandleResultFileVO;
+import cn.cslg.pas.common.vo.business.TaskDetailsVO;
+import cn.cslg.pas.factorys.businessFactory.Business;
+import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
+import cn.cslg.pas.service.business.AssoTaskFileService;
+import cn.cslg.pas.service.business.ProjectTaskService;
+import cn.cslg.pas.service.business.TaskHandleResultService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * 项目任务的Controller层
+ * @Author xiexiang
+ * @Date 2023/11/22
+ */
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/examine")
+@RestController
+public class ExamineController {
+    @Autowired
+    private ProjectTaskService projectTaskService;
+
+    @Autowired
+    private AssoTaskFileService assoTaskFileService;
+
+    @Operation(summary = "添加挖掘项目开卷审核任务")
+    @PostMapping("/addFileExamineTask")
+    public Response addFileExamineTask(@RequestBody AddFileExamineTaskDTO addFileExamineTaskDTO) {
+        Integer id = projectTaskService.addFileExamineTask(addFileExamineTaskDTO);
+        return Response.success(id);
+    }
+    @Operation(summary = "添加挖掘项目开卷审核任务")
+    @PostMapping("/getExamineMessage")
+    public Response getExamineMessage(@RequestBody GetExamineMessageDTO getExamineMessageDTO) throws IOException {
+        Integer taskId =getExamineMessageDTO.getTaskId();
+        List<AssoTaskFileVO> assoTaskFiles = assoTaskFileService.getAssoTaskFile(taskId);
+        return Response.success(assoTaskFiles);
+    }
+    @Operation(summary = "添加挖掘项目开卷审核任务")
+    @PostMapping("/getExamineHistory")
+    public Response getExamineHistory(@RequestBody GetExamineHistoryDTO getExamineHistoryDTO) throws IOException {
+        List<AssoTaskFileVO> assoTaskFiles = projectTaskService.getExamineHistory(getExamineHistoryDTO);
+        return Response.success(assoTaskFiles);
+    }
+
+}

+ 2 - 0
src/main/java/cn/cslg/pas/domain/business/AssoTaskFile.java

@@ -26,6 +26,8 @@ public class AssoTaskFile extends BaseEntity<AssoTaskFile> {
      */
     @TableField(value = "file_guid")
     private String fileGuid;
+    @TableField(value = "root_file_guid")
+    private String rootFileGuid;
 
     /**
      * 说明

+ 60 - 8
src/main/java/cn/cslg/pas/service/business/AssoTaskFileService.java

@@ -1,19 +1,20 @@
 package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.dto.business.AssoTaskFileDTO;
+import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.business.AssoTaskFileVO;
-import cn.cslg.pas.domain.business.AssoHandleResultFile;
-import cn.cslg.pas.domain.business.AssoTaskFile;
-import cn.cslg.pas.domain.business.ProjectTask;
-import cn.cslg.pas.domain.business.TaskHandleResult;
+import cn.cslg.pas.common.vo.business.ProjectTaskVO;
+import cn.cslg.pas.domain.business.*;
+import cn.cslg.pas.exception.ExceptionEnum;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.AssoTaskFileMapper;
 import cn.cslg.pas.service.common.FileManagerService;
+import cn.cslg.pas.service.permissions.PermissionService;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -28,6 +29,7 @@ import java.util.stream.Collectors;
 
 /**
  * 任务与文件关联表的Service
+ *
  * @Author xiexiang
  * @Date 2023/11/24
  */
@@ -41,14 +43,16 @@ public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTas
 
     @Autowired
     private FileManagerService fileManagerService;
-
+    @Autowired
+    private PermissionService permissionService;
 
     /**
      * 添加任务与文件关联
+     *
      * @param assoTaskFileDTO
      * @return
      */
-    public List<Integer> addTaskFile(AssoTaskFileDTO assoTaskFileDTO){
+    public List<Integer> addTaskFile(AssoTaskFileDTO assoTaskFileDTO) {
         if (assoTaskFileDTO.getTaskId() == null) {
             throw new XiaoShiException("任务id不能为空");
         }
@@ -57,7 +61,7 @@ public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTas
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
 
         List<String> fileGuids = assoTaskFileDTO.getFileGuids();
         List<AssoTaskFile> assoTaskFiles = new ArrayList<>();
@@ -75,6 +79,7 @@ public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTas
 
     /**
      * 查询文件与任务关联
+     *
      * @param taskId
      * @return
      */
@@ -104,18 +109,65 @@ public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTas
                 }
             }
         }
+        this.loadProjectTaskFiles(assoTaskFileVOS);
         return assoTaskFileVOS;
     }
 
     /**
      * 删除任务与文件关联表
+     *
      * @param ids
      */
-    public void deleteAssoTaskFile(List<Integer> ids){
+    public void deleteAssoTaskFile(List<Integer> ids) {
         if (ids.size() != 0) {
             this.removeBatchByIds(ids);
         } else {
             throw new XiaoShiException("需要删除的ids不为空");
         }
     }
+
+    public void loadProjectTaskFiles(List<AssoTaskFileVO> assoTaskFileVOS) throws IOException {
+        List<String> createIds = new ArrayList<>();
+
+        assoTaskFileVOS.forEach(
+                item -> {
+                    if (item.getCreateId() != null) {
+                        createIds.add(item.getCreateId());
+                    }
+
+                }
+        );
+        List<Personnel> personnels = new ArrayList<>();
+
+        //查询发起人名称
+        if (createIds.size() != 0) {
+            String res = permissionService.getPersonnelByIdsFromPCS(createIds);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+        }
+
+        //装载信息
+        for (AssoTaskFileVO assoTaskFileVO : assoTaskFileVOS) {
+            String createId = assoTaskFileVO.getCreateId();
+            //装载人员信息
+            Personnel personnel = personnels.stream().filter(item -> item.getId().equals(createId)).findFirst().orElse(null);
+            if (personnel != null) {
+                assoTaskFileVO.setCreateName(personnel.getPersonnelName());
+            }
+
+
+        }
+    }
+
+    public AssoTaskFile getAssoTaskFileByGuid(String guid) {
+        LambdaQueryWrapper<AssoTaskFile> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(AssoTaskFile::getFileGuid, guid);
+        AssoTaskFile assoTaskFile = this.getOne(queryWrapper);
+        if (assoTaskFile == null) {
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "文件不存在");
+        }
+        return assoTaskFile;
+
+
+    }
 }

+ 214 - 0
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -5,6 +5,7 @@ import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.cronModel.SystemFile;
+import cn.cslg.pas.common.model.projectTask.*;
 import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
@@ -1352,4 +1353,217 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         }
     }
 
+    public ProjectTask addTaskByTaskFormDTO(TaskFormDTO taskFormDTO, Integer projectId) {
+        String name = taskFormDTO.getName();
+        Integer handleType = taskFormDTO.getHandlerType();
+        String handleName = taskFormDTO.getHandler();
+        Date deadLineTime = taskFormDTO.getDeadLineTime();
+        ProjectTask projectTask = new ProjectTask();
+        projectTask.setName(name);
+        projectTask.setHandlerType(handleType);
+        projectTask.setHandler(handleName);
+        projectTask.setDeadLineTime(deadLineTime);
+        projectTask.setProjectId(projectId);
+        //任务状态置为处理中
+        projectTask.setStatus(2);
+        //获取登录人信息
+        PersonnelVO personnelVO = new PersonnelVO();
+        personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        //设置任务的发起人
+        projectTask.setCreateId(personnelVO.getId());
+        projectTask.insert();
+        return projectTask;
+    }
+
+    public void addProjectTaskFileByFormDTO(FileFormDTO fileFormDTO, Integer taskId) {
+        List<FileDTO> fileDTOS = fileFormDTO.getFiles();
+        List<String> fileGuids = fileDTOS.stream().map(FileDTO::getGuid).collect(Collectors.toList());
+        if (fileGuids != null && fileGuids.size() > 0) {
+            AssoTaskFileDTO assoTaskFileDTO = new AssoTaskFileDTO();
+            assoTaskFileDTO.setTaskId(taskId);
+            assoTaskFileDTO.setFileGuids(fileGuids);
+            assoTaskFileService.addTaskFile(assoTaskFileDTO);
+        }
+    }
+
+    public Integer addFileExamineTask(AddFileExamineTaskDTO addFileExamineTaskDTO) {
+        FileFormDTO fileFormDTO = addFileExamineTaskDTO.getFileForm();
+        TaskFormDTO taskFormDTO = addFileExamineTaskDTO.getTaskForm();
+        Integer projectId = fileFormDTO.getProjectId();
+        ProjectTask projectTask = this.addTaskByTaskFormDTO(taskFormDTO, projectId);
+        Integer taskId = projectTask.getId();
+        this.addProjectTaskFileByFormDTO(fileFormDTO, taskId);
+
+        //如果是内部人员
+        if (projectTask.getHandlerType().equals(0)) {
+            this.checkProjectPerson(1, projectTask.getHandler(), projectTask.getProjectId(), projectTask.getId());
+        }
+        return projectTask.getId();
+    }
+
+    /**
+     * 根据任务id查询任务详情以及处理结果以及审核历史
+     *
+     * @param taskId
+     * @return
+     */
+    public TaskDetailsVO getExamineHistory(GetExamineHistoryDTO getExamineHistoryDTO) throws IOException {
+        Integer taskId = getExamineHistoryDTO.getTaskId();
+        String fileGuid = getExamineHistoryDTO.getFileGuid();
+        String rootGuid = fileGuid;
+        if (fileGuid != null) {
+            AssoTaskFile assoTaskFile = assoTaskFileService.getAssoTaskFileByGuid(fileGuid);
+            if (taskId == null) {
+                taskId = assoTaskFile.getTaskId();
+            }
+            if (assoTaskFile.getRootFileGuid() != null) {
+                rootGuid = assoTaskFile.getRootFileGuid();
+            }
+        }
+        //根据taskId 查询任务
+        ProjectTask projectTask = this.getById(taskId);
+        Integer rootTaskId = projectTask.getAssoTaskId();
+        if (rootTaskId == null) {
+            rootTaskId = projectTask.getId();
+        }
+
+        LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ProjectTask::getAssoTaskId, rootTaskId)
+                .orderByAsc(ProjectTask::getCreateTime);
+        List<ProjectTask> projectTasks = this.list(queryWrapper);
+        List<Integer> taskIds = projectTasks.stream().map(ProjectTask::getId).collect(Collectors.toList());
+
+        LambdaQueryWrapper<AssoTaskFile> taskFileQueryWrapper = new LambdaQueryWrapper<>();
+        taskFileQueryWrapper.in(AssoTaskFile::getTaskId, taskIds);
+        if (fileGuid != null) {
+            taskFileQueryWrapper.eq(AssoTaskFile::getRootFileGuid, rootGuid);
+        }
+        List<AssoTaskFile> assoTaskFiles =assoTaskFileService.list(taskFileQueryWrapper);
+        List<String> fileGuids =assoTaskFiles.stream().map(AssoTaskFile::getFileGuid).collect(Collectors.toList());
+
+        LambdaQueryWrapper<TaskHandleResult> resultLambdaQueryWrapper=new LambdaQueryWrapper<>();
+        resultLambdaQueryWrapper.in(TaskHandleResult::getTaskId,taskIds);
+        List<TaskHandleResult> taskHandleResults =taskHandleResultService.list(resultLambdaQueryWrapper);
+
+        taskHandleResults.forEach(item->{
+
+        });
+        //新建返回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);
+        String taskPath = currentTaskOptional.map(ProjectTask::getTaskPath).orElse(null);
+        List<ProjectTask> allProjectTasks = new ArrayList<>();
+        if (assoTaskId != null) {
+            //根据assoTaskId获取最初任务的详情
+            ProjectTaskVO projectTaskVO = new ProjectTaskVO();
+            ProjectTask assoTask = this.getById(assoTaskId);
+            if (assoTask != null) {
+                //装载最初任务详情
+                BeanUtils.copyProperties(assoTask, projectTaskVO);
+                taskDetailsVO.setProjectTaskVO(projectTaskVO);
+                //根据assoTaskId查询所有任务的id
+                List<Integer> ids = new ArrayList<>();
+                ids.add(taskId);
+                if (taskPath != null) {
+                    List<String> a = Arrays.asList(taskPath.split("/"));
+                    List<Integer> b = FormatUtil.StringTOIntegerList(a);
+                    ids.addAll(b);
+                }
+                LambdaQueryWrapper<ProjectTask> allTaskWrapper = new LambdaQueryWrapper<>();
+                allTaskWrapper.in(ProjectTask::getId, ids);
+                allProjectTasks = this.list(allTaskWrapper);
+            }
+        }
+
+
+        //审核历史返回VO以及集合
+        if (allProjectTasks != null) {
+            auditHistoryVOS = allProjectTasks.stream()
+                    //过滤筛选掉分配任务的信息
+                    .filter(item -> item.getId() != item.getAssoTaskId())
+                    .map(item -> {
+                        //新建VO
+                        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);
+                                return auditHistoryVO;
+                            }
+                        }
+                        return null;//返回空值不装到列表中
+                    })
+                    //过滤掉空对象
+                    .filter(Objects::nonNull)
+                    .sorted(Comparator.comparing(
+                            a -> a.getTaskHandleResultVO(),
+                            Comparator.nullsLast(Comparator.comparing(TaskHandleResultVO::getCreateTime, Comparator.reverseOrder()))))
+                    .collect(Collectors.toList());
+
+            taskDetailsVO.setAuditHistoryVOS(auditHistoryVOS);
+        }
+        //全部的文件信息(获取所有的任务的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.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.setSource(2);
+                        handleResultFileVO.setType(systemFile.getType());
+                        handleResultFileVO.setOriginalName(systemFile.getOriginalName());
+                    }
+                    handleResultFileVOS.add(handleResultFileVO);
+                }
+            }
+        }
+        taskDetailsVO.setSystemFileList(handleResultFileVOS.stream()
+                .sorted(Comparator.comparing(HandleResultFileVO::getCreateTime).reversed())
+                .collect(Collectors.toList()));
+        //装载名称
+        this.loadTaskDetails(taskDetailsVO);
+        return taskDetailsVO;
+    }
 }