xiexiang il y a 1 an
Parent
commit
8f832baaf5

+ 16 - 0
src/main/java/cn/cslg/pas/common/vo/business/GetHandleResultFileVO.java

@@ -0,0 +1,16 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 任务描述与文件信息返回VO
+ * @Author xiexiang
+ * @Date 2023/11/28
+ */
+@Data
+public class GetHandleResultFileVO {
+    private String description;
+    private List<HandleResultFileVO> systemFileList;
+}

+ 3 - 3
src/main/java/cn/cslg/pas/common/vo/business/HandleResultFileVO.java

@@ -14,17 +14,17 @@ public class HandleResultFileVO {
     /**
      * 文件guid
      */
-    private String fileGuid;
+    private String guid;
 
     /**
      * 文件名称
      */
-    private String fileName;
+    private String originalName;
 
     /**
      * 文件类型
      */
-    private String fileType;
+    private String type;
 
     private String createId;
 

+ 7 - 0
src/main/java/cn/cslg/pas/common/vo/business/ProjectTaskVO.java

@@ -26,6 +26,8 @@ public class ProjectTaskVO {
      */
     private Integer projectId;
 
+    private String projectName;
+
     /**
      * 0标引任务
      * 1项目开卷审核任务
@@ -37,6 +39,11 @@ public class ProjectTaskVO {
     private Integer type;
 
     /**
+     * 所属流程id
+     */
+    private Integer processId;
+
+    /**
      * 内部人员:人员id
      * 外部人员:人员的邮箱
      */

+ 8 - 0
src/main/java/cn/cslg/pas/controller/ProjectTaskController.java

@@ -6,6 +6,7 @@ import cn.cslg.pas.common.model.cronModel.Records;
 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;
@@ -62,6 +63,13 @@ public class ProjectTaskController {
         return Response.success(id);
     }
 
+    @Operation(summary = "查询任务处理结果")
+    @GetMapping("/getTaskHandleResult")
+    public Response getTaskHandleResult(Integer taskId) throws IOException {
+        GetHandleResultFileVO getHandleResultFileVO = taskHandleResultService.getTaskHandleResult(taskId);
+        return Response.success(getHandleResultFileVO);
+    }
+
     @Operation(summary = "查询任务")
     @PostMapping("/queryProjectTask")
     public Response queryProjectTask(@RequestBody StringRequest stringRequest) throws Exception {

+ 3 - 3
src/main/java/cn/cslg/pas/service/business/PatentDigProjectFilesService.java

@@ -103,9 +103,9 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
         if (patentDigProjectFilesDTO.getFileGuid() == null && patentDigProjectFilesDTO.getFileGuid().equals("")) {
             throw new XiaoShiException("文件名guid不能为空");
         }
-//        if (patentDigProjectFilesDTO.getType()==null) {
-//            throw new XiaoShiException("文件类型不能为空");
-//        }
+        if (patentDigProjectFilesDTO.getFileGuid() != null) {
+
+        }
         PatentDigProjectFiles patentDigProjectFiles = new PatentDigProjectFiles();
         BeanUtils.copyProperties(patentDigProjectFilesDTO, patentDigProjectFiles);
         //获取登陆人信息 用于设置创建人

+ 70 - 36
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -10,10 +10,7 @@ import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.business.*;
-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.domain.business.*;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
@@ -130,8 +127,13 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         //设置任务的发起人
         projectTask.setCreateId(personnelVO.getId());
         projectTask.insert();
+        //如果新建的任务没有assoTaskId,那么将他的id设为assoTaskId
+        if (projectTask.getAssoTaskId() == null) {
+            projectTask.setAssoTaskId(projectTask.getId());
+            projectTask.updateById();
+        }
         //新增任务可能会上传附件,如果附件不为空,则添加任务与附件关联
-        if (projectTaskDTO.getFileGuids().size() != 0) {
+        if (projectTaskDTO.getFileGuids() != null) {
             AssoTaskFileDTO assoTaskFileDTO = new AssoTaskFileDTO();
             assoTaskFileDTO.setTaskId(projectTask.getId());
             assoTaskFileDTO.setFileGuids(projectTaskDTO.getFileGuids());
@@ -240,10 +242,10 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         }
         //新建审核历史返回VO以及集合
         List<AuditHistoryVO> auditHistoryVOS = new ArrayList<>();
-        AuditHistoryVO auditHistoryVO = new AuditHistoryVO();
         if (allProjectTasks != null) {
            for (ProjectTask item : allProjectTasks) {
                if (item != null) {
+                   AuditHistoryVO auditHistoryVO = new AuditHistoryVO();
                    //任务详情VO
                    ProjectTaskVO auditHistoryTaskVO = new ProjectTaskVO();
                    BeanUtils.copyProperties(item, auditHistoryTaskVO);
@@ -263,40 +265,45 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
                    auditHistoryVOS.add(auditHistoryVO);
                }
             }
+            taskDetailsVO.setAuditHistoryVOS(auditHistoryVOS);
         }
-        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<Integer> resultIds = taskHandleResultService.list(queryWrapper).stream().map(TaskHandleResult::getId).collect(Collectors.toList());
-        //根据所有的结果ids查询所有fileGuids
-        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<>();
         List<HandleResultFileVO> handleResultFileVOS = new ArrayList<>();
-        if (assoHandleResultFiles.size() != 0) {
-            fileGuids = assoHandleResultFiles.stream().map(AssoHandleResultFile::getFileGuid).collect(Collectors.toList());
-        }
-        //调用文件系统查询文件信息接口
-        if (fileGuids.size() != 0) {
-            String res = fileManagerService.getSystemFileFromFMS(fileGuids);
-            systemFiles = JSONObject.parseArray(res, SystemFile.class);
-        }
-        if (systemFiles.size() != 0) {
-            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.setFileType(systemFile.getType());
-                    handleResultFileVO.setFileName(systemFile.getOriginalName());
+        //根据所有的结果ids查询所有fileGuids
+        if (resultIds != null) {
+            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.size() != 0) {
+                fileGuids = assoHandleResultFiles.stream().map(AssoHandleResultFile::getFileGuid).collect(Collectors.toList());
+            }
+            //调用文件系统查询文件信息接口
+            if (fileGuids.size() != 0) {
+                String res = fileManagerService.getSystemFileFromFMS(fileGuids);
+                systemFiles = JSONObject.parseArray(res, SystemFile.class);
+            }
+            if (systemFiles.size() != 0) {
+                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);
                 }
-                handleResultFileVOS.add(handleResultFileVO);
             }
         }
         taskDetailsVO.setSystemFileList(handleResultFileVOS);
@@ -305,7 +312,28 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         return taskDetailsVO;
     }
 
+    /**
+     * 装载任务详情的集合
+     * @param taskDetailsVO
+     * @throws IOException
+     */
     public void loadTaskDetails(TaskDetailsVO taskDetailsVO) throws IOException {
+        //装载项目名称
+        Integer projectId = null;
+        if (taskDetailsVO.getProjectTaskVO() != null) {
+            projectId = taskDetailsVO.getProjectTaskVO().getProjectId();
+        }
+        if (projectId != null) {
+            //根据项目id查询项目名称并装载
+            LambdaQueryWrapper<PatentDigProject> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(PatentDigProject::getProjectId, projectId);
+            List<PatentDigProject> patentDigProjects = patentDigProjectService.list(queryWrapper);
+            if (patentDigProjects != null && patentDigProjects.size() != 0) {
+                PatentDigProject patentDigProject = patentDigProjects.get(0);
+                String projectName = patentDigProject.getName();
+                taskDetailsVO.getProjectTaskVO().setProjectName(projectName);
+            }
+        }
         //新建人员id集合
         List<String> createIds = new ArrayList<>();
         //添加分配任务的创建人id
@@ -355,7 +383,7 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         }
         //分配任务的负责人name
         Personnel personnel1 = personnels.stream().filter(item -> item.getId().equals(taskDetailsVO.getProjectTaskVO().getHandler())).findFirst().orElse(null);
-        if (personnel != null) {
+        if (personnel1 != null) {
             taskDetailsVO.getProjectTaskVO().setHandlerName(personnel1.getPersonnelName());
         } else {
             throw new XiaoShiException("未获取到分配任务的负责人id信息");
@@ -363,7 +391,7 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         //装载所有文件的上传人name
         for (HandleResultFileVO handleResultFileVO : taskDetailsVO.getSystemFileList()) {
             Personnel personnel2 = personnels.stream().filter(item -> item.getId().equals(handleResultFileVO.getCreateId())).findFirst().orElse(null);
-            if (personnel != null) {
+            if (personnel2 != null) {
                 handleResultFileVO.setCreateName(personnel2.getPersonnelName());
             } else {
                 throw new XiaoShiException("未获取到分配任务的负责人id信息");
@@ -372,17 +400,23 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         //装载所有审查历史中的人员name
         for (AuditHistoryVO auditHistoryVO : taskDetailsVO.getAuditHistoryVOS()) {
             Personnel personnel3 = personnels.stream().filter(item -> item.getId().equals(auditHistoryVO.getProjectTaskVO().getCreateId())).findFirst().orElse(null);
-            if (personnel != null) {
+            if (personnel3 != null) {
                 auditHistoryVO.getProjectTaskVO().setCreateName(personnel3.getPersonnelName());
             } else {
                 throw new XiaoShiException("未获取到分配任务的负责人id信息");
             }
             Personnel personnel4 = personnels.stream().filter(item -> item.getId().equals(auditHistoryVO.getProjectTaskVO().getHandler())).findFirst().orElse(null);
-            if (personnel != null) {
+            if (personnel4 != null) {
                 auditHistoryVO.getProjectTaskVO().setHandlerName(personnel4.getPersonnelName());
             } else {
                 throw new XiaoShiException("未获取到分配任务的负责人id信息");
             }
+            Personnel personnel5 = personnels.stream().filter(item -> item.getId().equals(auditHistoryVO.getTaskHandleResultVO().getCreateId())).findFirst().orElse(null);
+            if (personnel5 != null) {
+                auditHistoryVO.getTaskHandleResultVO().setCreateName(personnel5.getPersonnelName());
+            } else {
+                throw new XiaoShiException("未获取到分配任务的负责人id信息");
+            }
         }
 
     }

+ 59 - 0
src/main/java/cn/cslg/pas/service/business/TaskHandleResultService.java

@@ -3,22 +3,32 @@ package cn.cslg.pas.service.business;
 import cn.cslg.pas.common.dto.business.ProjectTaskDTO;
 import cn.cslg.pas.common.dto.business.TaskAuditResultDTO;
 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.common.vo.business.GetHandleResultFileVO;
+import cn.cslg.pas.common.vo.business.HandleResultFileVO;
 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.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.TaskHandleResultMapper;
+import cn.cslg.pas.service.common.FileManagerService;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 任务处理结果Service层
@@ -41,6 +51,9 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
     @Lazy
     private ProjectTaskService projectTaskService;
 
+    @Autowired
+    private FileManagerService fileManagerService;
+
     /**
      * 添加任务处理结果
      * @param taskAuditResultDTO
@@ -97,4 +110,50 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
         return taskHandleResult.getId();
     }
 
+
+    public GetHandleResultFileVO getTaskHandleResult(Integer taskId) throws IOException {
+        //新建任务说明以及文件信息返回VO
+        GetHandleResultFileVO getHandleResultFileVO = new GetHandleResultFileVO();
+        List<HandleResultFileVO> handleResultFileVOS = new ArrayList<>();
+        List<String> fileGuids = new ArrayList<>();
+        List<SystemFile> systemFiles = new ArrayList<>();
+        //根据任务id查询处理结果表
+        LambdaQueryWrapper<TaskHandleResult> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(TaskHandleResult::getTaskId, taskId);
+        List<TaskHandleResult> taskHandleResults = this.list(queryWrapper);
+        List<AssoHandleResultFile> assoHandleResultFiles = new ArrayList<>();
+        if (taskHandleResults != null) {
+            TaskHandleResult taskHandleResult = taskHandleResults.get(0);
+            //任务的说明字段装载
+            getHandleResultFileVO.setDescription(taskHandleResult.getDescription());
+            Integer taskHandleResultId = taskHandleResult.getId();
+            //根据处理结果id查询处理结果与文件关联表
+            LambdaQueryWrapper<AssoHandleResultFile> queryWrapper1 = new LambdaQueryWrapper<>();
+            queryWrapper1.eq(AssoHandleResultFile::getTaskHandleResultId, taskHandleResultId);
+            assoHandleResultFiles = assoHandleResultFileService.list(queryWrapper1);
+            //查询所有文件id
+            if (assoHandleResultFiles != null && assoHandleResultFiles.size() != 0) {
+                fileGuids = assoHandleResultFiles.stream().map(AssoHandleResultFile::getFileGuid).collect(Collectors.toList());
+            }
+        }
+        if (fileGuids.size() != 0) {
+            String res = fileManagerService.getSystemFileFromFMS(fileGuids);
+            systemFiles = JSONObject.parseArray(res, SystemFile.class);
+        }
+        if (systemFiles.size() != 0) {
+            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.setType(systemFile.getType());
+                    handleResultFileVO.setOriginalName(systemFile.getOriginalName());
+                    handleResultFileVOS.add(handleResultFileVO);
+                }
+            }
+        }
+        getHandleResultFileVO.setSystemFileList(handleResultFileVOS);
+        return getHandleResultFileVO;
+    }
+
 }

+ 22 - 11
src/main/resources/jsons/patentDigProjectFiles.json

@@ -8,9 +8,10 @@
     "sqlClass": "getComSql",
     "orderClass": "getComOrder",
     "groupClass": "getComGroup",
-    "ifSearch": "true",
+    "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "false"
+    "ifShow": "false",
+    "ifAsCondition": "true"
   },
   {
     "name": "挖掘项目文件名",
@@ -23,7 +24,8 @@
     "groupClass": "getComGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "项目id",
@@ -37,7 +39,8 @@
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "false",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "所属流程id",
@@ -51,7 +54,8 @@
     "ifSearch": "true",
     "ifGroup": "false",
     "ifShow": "true",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "文件guid",
@@ -65,7 +69,8 @@
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "是否最终",
@@ -79,7 +84,8 @@
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "发生时间",
@@ -93,7 +99,8 @@
     "ifSearch": "true",
     "ifGroup": "false",
     "ifShow": "true",
-    "defaultHidden": "true"
+    "defaultHidden": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "文件类型",
@@ -107,7 +114,8 @@
     "ifSearch": "false",
     "ifGroup": "true",
     "ifShow": "false",
-    "defaultHidden": "false"
+    "defaultHidden": "false",
+    "ifAsCondition": "true"
   },
   {
     "name": "描述",
@@ -121,6 +129,7 @@
     "ifSearch": "true",
     "ifGroup": "false",
     "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "创建人",
@@ -133,7 +142,8 @@
     "groupClass": "getComGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   },
   {
     "name": "创建时间",
@@ -146,6 +156,7 @@
     "groupClass": "getTimeGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true"
+    "ifShow": "true",
+    "ifAsCondition": "true"
   }
 ]

+ 42 - 0
src/test/java/cn/cslg/pas/service/ProjectTaskServiceTests.java

@@ -0,0 +1,42 @@
+package cn.cslg.pas.service;
+
+import cn.cslg.pas.common.model.request.OrderDTO;
+import cn.cslg.pas.common.model.request.StringGroupRequest;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.controller.EventController;
+import cn.cslg.pas.controller.ProjectTaskController;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.entity.ContentType;
+import org.junit.Assert;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.mock.web.MockMultipartFile;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author xiexiang
+ * @date 2023/11/28
+ */
+@SpringBootTest
+public class ProjectTaskServiceTests {
+    @Autowired
+    private ProjectTaskController projectTaskController;
+
+
+
+    @Test
+        void queryAuditHistory() throws Exception {
+        Integer taskId = 15;
+        Response response = projectTaskController.queryAuditHistory(taskId);
+        Assert.assertEquals(200,Integer.parseInt(response.getCode().toString()));
+        System.out.println(response.getData());
+    }
+
+}