xiexiang 1 ano atrás
pai
commit
26c0f2d94f

+ 6 - 11
src/main/java/cn/cslg/pas/common/dto/business/PatentDigProjectFilesDTO.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.common.dto.business;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 新增专利挖掘文件DTO
@@ -29,12 +30,7 @@ public class PatentDigProjectFilesDTO {
     /**
      * 文件guid
      */
-    private String fileGuid;
-
-    /**
-     * 文件名称
-     */
-    private String name;
+    private List<String> fileGuids;
 
     /**
      * 是否最终
@@ -47,13 +43,12 @@ public class PatentDigProjectFilesDTO {
     private Date eventDate;
 
     /**
-     * 文件类型
-     */
-    private Integer type;
-
-    /**
      * 描述
      */
     private String description;
 
+    /**
+     * 直接提交审核,需要提交审核任务,类型为7
+     */
+    private ProjectTaskDTO projectTaskDTO;
 }

+ 3 - 1
src/main/java/cn/cslg/pas/common/dto/business/ProjectTaskDTO.java

@@ -24,7 +24,9 @@ public class ProjectTaskDTO {
      * 2检索条件任务
      * 3对比任务
      * 4协同任务
-     * 5任务审核任务
+     * 5审核任务
+     * 6分配任务
+     * 7专利挖掘一批文件的审核任务
      */
     private Integer type;
 

+ 0 - 63
src/main/java/cn/cslg/pas/common/dto/business/UpdatePatentDigProjectFilesDTO.java

@@ -1,63 +0,0 @@
-package cn.cslg.pas.common.dto.business;
-
-import lombok.Data;
-
-import java.util.Date;
-
-/**
- * 更新专利挖掘文件DTO
- * @Author xiexiang
- * @Date 2023/11/15
- */
-@Data
-public class UpdatePatentDigProjectFilesDTO {
-    /**
-     * id
-     */
-    private Integer id;
-
-    /**
-     * 项目id
-     */
-    private Integer projectId;
-
-    /**
-     * 任务id
-     */
-    private Integer taskId;
-
-    /**
-     * 所属流程id
-     */
-    private Integer processId;
-
-    /**
-     * 文件guid
-     */
-    private String fileGuid;
-
-    /**
-     * 文件名称
-     */
-    private String name;
-
-    /**
-     * 是否最终
-     */
-    private Boolean ifFinal;
-
-    /**
-     * 发生时间
-     */
-    private Date event_date;
-
-    /**
-     * 文件类型
-     */
-    private Integer type;
-
-    /**
-     * 描述
-     */
-    private String description;
-}

+ 5 - 0
src/main/java/cn/cslg/pas/common/vo/business/PatentDigProjectFilesVO.java

@@ -36,6 +36,11 @@ public class PatentDigProjectFilesVO {
     private Integer processId;
 
     /**
+     * 所属流程
+     */
+    private String processName;
+
+    /**
      * 文件guid
      */
     private String fileGuid;

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

@@ -47,6 +47,11 @@ public class ProjectTaskVO {
     private Integer processId;
 
     /**
+     * 所属流程名称
+     */
+    private String processName;
+
+    /**
      * 内部人员:人员id
      * 外部人员:人员的邮箱
      */

+ 11 - 8
src/main/java/cn/cslg/pas/controller/PatentDigProjectFilesController.java

@@ -10,6 +10,7 @@ import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
+import cn.cslg.pas.service.business.PatentDigProjectFilesService;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +34,9 @@ public class PatentDigProjectFilesController {
     @Autowired
     private BusinessFactory businessFactory;
 
+    @Autowired
+    private PatentDigProjectFilesService patentDigProjectFilesService;
+
     @Operation(summary = "查询专利挖掘项目文件")
     @PostMapping("/queryPatentDigProjectFiles")
     public Response queryPatentDigProjectFiles(@RequestBody StringRequest stringRequest) throws Exception {
@@ -60,14 +64,6 @@ public class PatentDigProjectFilesController {
         return Response.success(id);
     }
 
-    @Operation(summary = "更新专利挖掘项目文件")
-    @PostMapping("/updatePatentDigProjectFiles")
-    public Response updatePatentDigProjectFiles(@RequestBody PatentDigProjectFilesDTO patentDigProjectFilesDTO){
-        Business business = businessFactory.getClass("patentDigProjectFilesService");
-        Integer id = (Integer) business.addMessage(patentDigProjectFilesDTO);
-        return Response.success(id);
-    }
-
     @Operation(summary = "删除专利挖掘项目文件")
     @PostMapping("/deletePatentDigProjectFiles")
     public String deletePatentDigProjectFiles(@RequestBody List<Integer> ids) throws IOException {
@@ -75,4 +71,11 @@ public class PatentDigProjectFilesController {
         business.deleteMessage(ids);
         return Response.success();
     }
+
+    @Operation(summary = "上传文件后的提交审核")
+    @PostMapping("/addPDProjectFilesTask")
+    public Response addPDProjectFilesTask(@RequestBody PatentDigProjectFilesDTO patentDigProjectFilesDTO){
+        Integer taskId = patentDigProjectFilesService.addPDProjectFilesTask(patentDigProjectFilesDTO);
+        return Response.success(taskId);
+    }
 }

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

@@ -11,6 +11,7 @@ import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
 import cn.cslg.pas.service.business.ProjectTaskService;
 import cn.cslg.pas.service.business.TaskHandleResultService;
+import cn.hutool.http.HttpStatus;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -92,6 +93,16 @@ public class ProjectTaskController {
         return Response.success();
     }
 
+    @Operation(summary = "更改任务状态:0完成,1取消,2缺少资料")
+    @GetMapping("/updateTaskStatus")
+    public Response updateTaskStatus(Integer taskId, Integer type){
+        try {
+            projectTaskService.finishTask(taskId, type);
+            return Response.success("成功");
+        } catch (Exception e) {
+            return Response.error("失败");
+        }
+    }
 
 //    @Operation(summary = "查询任务与附件关联")
 //    @PostMapping("/getAssoTaskFile")

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

@@ -1,10 +1,10 @@
 package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.dto.business.PatentDigProjectFilesDTO;
-import cn.cslg.pas.common.dto.business.UpdatePatentDigProjectFilesDTO;
 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.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.utils.CacheUtils;
@@ -15,18 +15,23 @@ import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.mapper.PatentDigProjectFilesMapper;
+import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.permissions.PermissionService;
 import cn.cslg.pas.service.query.FormatQueryService;
 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 org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 专利挖掘项目文件Service层
@@ -51,6 +56,13 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
     @Autowired
     private PermissionService permissionService;
 
+    @Autowired
+    private FileManagerService fileManagerService;
+
+    @Autowired
+    @Lazy
+    private ProjectTaskService projectTaskService;
+
 
     @Override
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
@@ -78,7 +90,10 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     @Override
     public Object deleteMessage(List<Integer> ids) throws IOException {
-        return null;
+        if (!ids.isEmpty()) {
+            this.removeBatchByIds(ids);
+        }
+        return ids;
     }
 
     @Override
@@ -91,23 +106,23 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
         return null;
     }
 
+    /**
+     * 新增专利挖掘项目文件
+     * @param object
+     * @return
+     */
     @Override
     public Object addMessage(Object object) {
-        if (object.equals(null)) {
-            throw new XiaoShiException("传入参数不能为空");
-        }
+        //object to patentDigProjectFilesDTO
         PatentDigProjectFilesDTO patentDigProjectFilesDTO = (PatentDigProjectFilesDTO) object;
+        //判断projectId是否为空
         if (patentDigProjectFilesDTO.getProjectId() == null) {
             throw new XiaoShiException("projectId不能为空");
         }
-        if (patentDigProjectFilesDTO.getFileGuid() == null && patentDigProjectFilesDTO.getFileGuid().equals("")) {
-            throw new XiaoShiException("文件名guid不能为空");
-        }
-        if (patentDigProjectFilesDTO.getFileGuid() != null) {
-
+        //判断processId是否为空
+        if (patentDigProjectFilesDTO.getProcessId() == null) {
+            throw new XiaoShiException("processId不能为空");
         }
-        PatentDigProjectFiles patentDigProjectFiles = new PatentDigProjectFiles();
-        BeanUtils.copyProperties(patentDigProjectFilesDTO, patentDigProjectFiles);
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
         try {
@@ -115,31 +130,49 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
         } catch (Exception e) {
             throw new UnLoginException("未登录");
         }
-        patentDigProjectFiles.setCreateId(personnelVO.getId());
-        patentDigProjectFiles.insert();
-        return patentDigProjectFiles.getId();
+        List<Integer> ids = new ArrayList<>();
+
+        if (patentDigProjectFilesDTO.getFileGuids() != null && !patentDigProjectFilesDTO.getFileGuids().isEmpty()){
+            List<String> fileGuids = patentDigProjectFilesDTO.getFileGuids();
+            List<SystemFile> systemFiles = new ArrayList<>();
+            List<PatentDigProjectFiles> patentDigProjectFilesS = new ArrayList<>();
+            //调用文件系统查询文件信息接口
+            if (fileGuids.size() != 0) {
+                try {
+                    String res = fileManagerService.getSystemFileFromFMS(fileGuids);
+                    systemFiles = JSONObject.parseArray(res, SystemFile.class);
+                    if (systemFiles.size() != 0) {
+                        for (String item : fileGuids) {
+                            SystemFile systemFile = systemFiles.stream().filter(item1 -> item1.getGuid().equals(item)).findFirst().orElse(null);
+                            PatentDigProjectFiles patentDigProjectFiles = new PatentDigProjectFiles();
+                            BeanUtils.copyProperties(patentDigProjectFilesDTO, patentDigProjectFiles);
+                            patentDigProjectFiles.setFileGuid(item);
+                            patentDigProjectFiles.setName(systemFile.getOriginalName());
+                            patentDigProjectFiles.setCreateId(personnelVO.getId());
+                            patentDigProjectFilesS.add(patentDigProjectFiles);
+                        }
+                        this.saveBatch(patentDigProjectFilesS);
+                    }
+                } catch (Exception e) {
+                    throw new XiaoShiException("查询文件信息错误");
+                }
+            }
+
+            patentDigProjectFilesS.forEach(item -> {
+                ids.add(item.getId());
+            });
+        }
+
+        return ids;
     }
 
     @Override
     public Object updateMessage(Object object) {
-        if (object == null) {
-            throw new XiaoShiException("传入参数不能为空");
-        }
-        UpdatePatentDigProjectFilesDTO updatePatentDigProjectFilesDTO = (UpdatePatentDigProjectFilesDTO) object;
-        if (updatePatentDigProjectFilesDTO.getProjectId() == null) {
-            throw new XiaoShiException("projectId不能为空");
-        }
-//        if (updatePatentDigProjectFilesDTO.getType() == null) {
-//            throw new XiaoShiException("文件类型不能为空");
-//        }
-        PatentDigProjectFiles patentDigProjectFiles = this.getById(updatePatentDigProjectFilesDTO.getId());
-        BeanUtils.copyProperties(updatePatentDigProjectFilesDTO, patentDigProjectFiles);
-        patentDigProjectFiles.updateById();
-        return patentDigProjectFiles.getId();
+        return null;
     }
 
     /**
-     * 装载
+     * 装载专利挖掘文件列表信息
      * @param patentDigProjectFilesVOS
      */
     private void loadPatentDigProjectFiles(List<PatentDigProjectFilesVO> patentDigProjectFilesVOS) throws IOException {
@@ -166,6 +199,52 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
             } else {
                 throw new XiaoShiException("未获取到当前登陆人信息");
             }
+            //调用查询流程名称方法
+            String name = this.getProcessName(patentDigProjectFilesVO.getProcessId());
+            patentDigProjectFilesVO.setProcessName(name);
+        }
+    }
+
+    /**
+     * 装载流程名
+     * @param processId
+     * @return
+     */
+    public String getProcessName(Integer processId){
+        String name = null;
+        Map<Integer, String> processMap = new HashMap<>();
+        processMap.put(1, "创新点梳理");
+        processMap.put(2, "查新检索");
+        processMap.put(3, "保护主题规划");
+        processMap.put(4, "独权撰写");
+        processMap.put(5, "从权撰写");
+        processMap.put(6, "申请文件定稿");
+        processMap.put(7, "说明书规划撰写");
+        name = processMap.get(processId);
+        return name;
+    }
+
+    /**
+     * 上传专利挖掘项目文件后提交审核,新增专利挖掘文件审核记录
+     * @param patentDigProjectFilesDTO
+     * @return
+     */
+    public Integer addPDProjectFilesTask(PatentDigProjectFilesDTO patentDigProjectFilesDTO){
+        //首先调用新增文件接口
+        List<Integer> ids = (List<Integer>) this.addMessage(patentDigProjectFilesDTO);
+        //其次调用新增任务接口
+        Integer taskId = projectTaskService.addTask(patentDigProjectFilesDTO.getProjectTaskDTO());
+        if (!ids.isEmpty()) {
+            LambdaQueryWrapper<PatentDigProjectFiles> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.in(PatentDigProjectFiles::getId, ids);
+            List<PatentDigProjectFiles> patentDigProjectFiles = this.list(queryWrapper);
+            if (!patentDigProjectFiles.isEmpty()) {
+                patentDigProjectFiles.forEach(item -> {
+                    item.setTaskId(taskId);
+                });
+                this.updateBatchById(patentDigProjectFiles);
+            }
         }
+        return taskId;
     }
 }

+ 47 - 0
src/main/java/cn/cslg/pas/service/business/PatentNoSplitterService.java

@@ -0,0 +1,47 @@
+package cn.cslg.pas.service.business;
+
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/12/1
+ */
+@Service
+public class PatentNoSplitterService {
+
+    public List<List<String>> splitPatentNoByType(List<String> originalList) {
+        List<String> cnStrings = new ArrayList<>();
+        List<String> wdStrings = new ArrayList<>();
+        List<List<String>> result = new ArrayList<>();
+        result.add(cnStrings);
+        result.add(wdStrings);
+        // 记录CN类型的字符串数量
+        int cnCount = 0;
+        // 记录WD类型的字符串数量
+        int wdCount = 0;
+        //遍历初始集合
+        for (String str : originalList) {
+            if (str.startsWith("CN")) {
+                cnStrings.add(str);
+                cnCount++;
+                if (cnCount >= 1000) {
+                    cnStrings = new ArrayList<>();
+                    result.add(cnStrings);
+                    cnCount = 0;
+                }
+            } else if (str.startsWith("WD")) {
+                wdStrings.add(str);
+                wdCount++;
+                if (wdCount >= 1000) {
+                    wdStrings = new ArrayList<>();
+                    result.add(wdStrings);
+                    wdCount = 0;
+                }
+            }
+        }
+        return result;
+    }
+}

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

@@ -49,6 +49,9 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
     private PatentDigProjectService patentDigProjectService;
 
     @Autowired
+    private PatentDigProjectFilesService patentDigProjectFilesService;
+
+    @Autowired
     private FormatQueryService formatQueryService;
 
     @Autowired
@@ -135,6 +138,7 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         projectTask.insert();
         if (projectTask.getAssoTaskId() == null && projectTask.getType() == 6) {
             projectTask.setAssoTaskId(projectTask.getId());
+            projectTask.updateById();
         }
         //新增任务可能会上传附件,如果附件不为空,则添加任务与附件关联
         if (projectTaskDTO.getFileGuids() != null) {
@@ -223,6 +227,8 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
             } else {
                 throw new XiaoShiException("未获取到当前登陆人信息");
             }
+            String name = patentDigProjectFilesService.getProcessName(projectTaskVO.getProcessId());
+            projectTaskVO.setProcessName(name);
         }
     }
 
@@ -455,7 +461,70 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
 
     }
 
-
+    /**
+     * 取消/完成任务
+     * @param taskId
+     * @param type
+     */
+    public void finishTask(Integer taskId, Integer type){
+        //处理人直接完成任务
+        LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ProjectTask::getId, taskId);
+        List<ProjectTask> projectTasks = this.list(queryWrapper);
+        ProjectTask projectTask = new ProjectTask();
+        if (!projectTasks.isEmpty()) {
+            //查询出当前任务的类型
+            projectTask = projectTasks.get(0);
+            //如果是分配任务
+            if (projectTask.getType() == 6) {
+                //类型为0,需要完成任务
+                if (type == 0) {
+                    //完成需要判断不为审核中
+                    if (projectTask.getStatus() != 1) {
+                        projectTask.setStatus(3);
+                        projectTask.updateById();
+                    } else {
+                        throw new XiaoShiException("任务状态为审核中,不可以完成");
+                    }
+                } else if (type == 1) {
+                    //类型为1,取消任务
+                    projectTask.setStatus(5);
+                    projectTask.updateById();
+                    //所关联的审核任务的状态为处理中的设置为取消
+                    //根据assoTaskId查询出所有任务,过滤状态为处理中的
+                    Integer assoTaskId = projectTask.getAssoTaskId();
+                    if (assoTaskId != null) {
+                        LambdaQueryWrapper<ProjectTask> queryWrapper1 = new LambdaQueryWrapper<>();
+                        queryWrapper1.eq(ProjectTask::getAssoTaskId, assoTaskId).eq(ProjectTask::getStatus, 2);
+                        List<ProjectTask> projectTasks1 = this.list(queryWrapper1);
+                        if (!projectTasks1.isEmpty()) {
+                            projectTasks1.forEach(item -> {
+                                item.setStatus(5);
+                            });
+                            this.updateBatchById(projectTasks1);
+                        }
+                    }
+                }
+                //开卷审核项目
+            } else if (projectTask.getType() == 1) {
+                if (type == 0) {
+                    //直接同意
+                    projectTask.setStatus(3);
+                    projectTask.updateById();
+                } else if (type == 1) {
+                    //取消
+                    projectTask.setStatus(5);
+                    projectTask.updateById();
+                } else if (type == 2) {
+                    //缺少资料
+                    projectTask.setStatus(4);
+                    projectTask.updateById();
+                }
+            }
+        } else {
+            throw new XiaoShiException("该任务不存在");
+        }
+    }
 
     @Override
     public Object addMessage(Object object, List<MultipartFile> files) {
@@ -464,10 +533,6 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
 
     @Override
     public Object deleteMessage(List<Integer> ids) throws IOException {
-        //TODO
-        //删除审核结果与文件关联表
-        //删除审核结果表
-        //删除任务表
         return null;
     }
 

+ 22 - 35
src/main/java/cn/cslg/pas/service/business/TaskHandleResultService.java

@@ -6,6 +6,7 @@ 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.utils.StringUtils;
 import cn.cslg.pas.common.vo.business.GetHandleResultFileVO;
 import cn.cslg.pas.common.vo.business.HandleResultFileVO;
 import cn.cslg.pas.domain.business.AssoHandleResultFile;
@@ -58,50 +59,44 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
      * @return
      */
     public Integer addTaskAuditResult(TaskHandleResultDTO taskHandleResultDTO){
-        //新建入表实体类
-        TaskHandleResult taskHandleResult = new TaskHandleResult();
-        //判空
+        //判断任务id是否为空
         if (taskHandleResultDTO.getTaskId() == null) {
             throw new XiaoShiException("任务id不能为空");
         }
-        BeanUtils.copyProperties(taskHandleResultDTO, taskHandleResult);
         //获取登录人信息
-        PersonnelVO personnelVO = new PersonnelVO();
-        try {
-            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        //构造TaskHandleResult对象并进行属性拷贝
+        TaskHandleResult taskHandleResult = new TaskHandleResult();
+        BeanUtils.copyProperties(taskHandleResultDTO, taskHandleResult);
         taskHandleResult.setCreateId(personnelVO.getId());
         //任务处理结果入库
         taskHandleResult.insert();
         //如果任务处理结果中 文件集合不为空,则需要将文件与处理结果关联
         List<String> fileGuids = taskHandleResultDTO.getFileGuids();
-        Integer taskAuditResultId = taskHandleResult.getId();
-        if (fileGuids != null && fileGuids.size() != 0) {
+        if (fileGuids != null && !fileGuids.isEmpty()) {
             List<AssoHandleResultFile> assoHandleResultFiles = new ArrayList<>();
             //遍历装载处理结果与文件关联对象集合
             for (String item : fileGuids) {
                 AssoHandleResultFile assoHandleResultFile = new AssoHandleResultFile();
-                assoHandleResultFile.setTaskHandleResultId(taskAuditResultId);
+                assoHandleResultFile.setTaskHandleResultId(taskHandleResult.getId());
                 assoHandleResultFile.setFileGuid(item);
-                //TODO
-                assoHandleResultFile.setCreateId("328");
+                assoHandleResultFile.setCreateId(personnelVO.getId());
                 assoHandleResultFiles.add(assoHandleResultFile);
             }
+            //保存批量关联记录
             assoHandleResultFileService.saveBatch(assoHandleResultFiles);
         }
         //根据处理结果id查询对应的任务id
-        TaskHandleResult taskHandleResult1 = this.getById(taskAuditResultId);
-        Integer currentTaskId = taskHandleResult1.getTaskId();
+        Integer currentTaskId = taskHandleResult.getTaskId();
         //根据任务id查询任务类型
         ProjectTask currentProjectTask = projectTaskService.getById(currentTaskId);
         //如果当前处理的是审核任务,进入以下流程
         if (currentProjectTask.getType() == 5) {
-            //如果下一个审核人不为空,则需要新建一个审核任务
-            if (taskHandleResult.getNextAuditor() != null && taskHandleResult.getNextAuditor() != "") {
-                Integer taskId = taskHandleResult.getTaskId();
-                ProjectTask projectTask = projectTaskService.getById(taskId);
+            //判断下一个审核人
+            String nextAuditor = taskHandleResult.getNextAuditor();
+            if (StringUtils.isNotEmpty(nextAuditor)) {
+                //如果下一个审核人不为空,则需要新建一个审核任务
+                ProjectTask projectTask = projectTaskService.getById(taskHandleResult.getTaskId());
                 ProjectTaskDTO projectTaskDTO = new ProjectTaskDTO();
                 //下一个审核任务的名称
                 projectTaskDTO.setName(projectTask.getName() + "-审核任务");
@@ -114,32 +109,26 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
                 //审核人
                 projectTaskDTO.setHandler(taskHandleResult.getNextAuditor());
                 //是否内部人员
-                if (taskHandleResult.getIfInner() == true) {
-                    projectTaskDTO.setHandlerType(0);
-                } else {
-                    projectTaskDTO.setHandlerType(1);
-                }
+                projectTaskDTO.setHandlerType(taskHandleResult.getIfInner() ? 0 : 1);
                 //截止时间
                 projectTaskDTO.setDeadLineTime(taskHandleResultDTO.getDeadLineTime());
                 //上一级任务id
-                projectTaskDTO.setLastTaskId(taskId);
+                projectTaskDTO.setLastTaskId(taskHandleResult.getTaskId());
                 //被审核的任务id
                 projectTaskDTO.setAssoTaskId(projectTask.getAssoTaskId());
+
                 Integer id = projectTaskService.addTask(projectTaskDTO);
                 //新建审核任务完成之后,需要将审核任务的状态置为完成
                 if (id != null) {
-                    //根据处理结果中的任务id,将此条任务id查询出来
-                    //设置为完成
                     currentProjectTask.setStatus(3);
                     currentProjectTask.updateById();
                 }
             } else {
                 //下一个审核人为空
                 ProjectTask projectTask = projectTaskService.getById(taskHandleResultDTO.getTaskId());
-                Integer assoTaskId = projectTask.getAssoTaskId();
                 //如果是返回修改,则分配任务状态设置为处理中,当前审核任务的状态设置为已完成
                 if (taskHandleResult.getIfBack() == true) {
-                    ProjectTask projectTask1 = projectTaskService.getById(assoTaskId);
+                    ProjectTask projectTask1 = projectTaskService.getById(projectTask.getAssoTaskId());
                     projectTask1.setStatus(2);
                     projectTask1.updateById();
                     currentProjectTask.setStatus(3);
@@ -148,9 +137,9 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
                     //直接点击确定
                     //将所有关联任务的状态设置为完成
                     LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
-                    queryWrapper.eq(ProjectTask::getAssoTaskId, assoTaskId);
+                    queryWrapper.eq(ProjectTask::getAssoTaskId, projectTask.getAssoTaskId());
                     List<ProjectTask> projectTasks = projectTaskService.list(queryWrapper);
-                    if (projectTasks != null && projectTasks.size() != 0) {
+                    if (!projectTasks.isEmpty()) {
                         projectTasks.forEach(
                                 item -> {
                                     item.setStatus(3);
@@ -163,8 +152,6 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
         } else {
             //当前处理的任务是分配任务
             //将分配任务的状态设置为审核中
-            //根据处理结果中的任务id,将此条任务id查询出来
-            //设置为完成
             currentProjectTask.setStatus(2);
             currentProjectTask.updateById();
         }

+ 4 - 4
src/main/java/cn/cslg/pas/service/common/PersonFieldService.java

@@ -41,10 +41,10 @@ public class PersonFieldService {
         String key = SecureUtil.md5(tableName + RedisConf.SYMBOL_COLON + userId);
         String json = redisUtil.get(RedisConf.USER_FIELD + RedisConf.SYMBOL_COLON + key);
 
-        //如果查到
-        if (StringUtils.isNotEmpty(json)) {
-            return JsonUtils.jsonToList(json, PersonSelfFieldVO.class);
-        }
+//        //如果查到
+//        if (StringUtils.isNotEmpty(json)) {
+//            return JsonUtils.jsonToList(json, PersonSelfFieldVO.class);
+//        }
         String fieldJson = "";
         //如果没查询到,则获取所有栏位添加到redis里
         try {

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

@@ -14,7 +14,7 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "挖掘项目文件名",
+    "name": "文件名",
     "type": "String",
     "value": "name",
     "field": "name",
@@ -43,8 +43,23 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "所属流程id",
-    "type": "Integer",
+    "name": "所属流程",
+    "type": "String",
+    "value": "processName",
+    "field": "processName",
+    "sqlField": "process_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true",
+    "ifAsCondition": "false"
+  },
+  {
+    "name": "所属流程",
+    "type": "Array",
     "value": "processId",
     "field": "processId",
     "sqlField": "process_id",
@@ -53,8 +68,8 @@
     "groupClass": "getComGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true",
-    "defaultHidden": "true",
+    "ifShow": "false",
+    "defaultHidden": "false",
     "ifAsCondition": "true"
   },
   {
@@ -68,7 +83,7 @@
     "groupClass": "getComGroup",
     "ifSearch": "false",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "defaultHidden": "true",
     "ifAsCondition": "true"
   },
@@ -98,7 +113,7 @@
     "groupClass": "getEntrustGroup",
     "ifSearch": "true",
     "ifGroup": "false",
-    "ifShow": "true",
+    "ifShow": "false",
     "defaultHidden": "true",
     "ifAsCondition": "true"
   },

+ 30 - 0
src/main/resources/jsons/projectTask.json

@@ -58,6 +58,36 @@
     "ifAsCondition": "false"
   },
   {
+    "name": "所属流程",
+    "type": "String",
+    "value": "processName",
+    "field": "processName",
+    "sqlField": "process_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "defaultHidden": "true",
+    "ifAsCondition": "false"
+  },
+  {
+    "name": "所属流程",
+    "type": "Array",
+    "value": "processId",
+    "field": "processId",
+    "sqlField": "process_id",
+    "sqlClass": "getComSql",
+    "orderClass": "getComOrder",
+    "groupClass": "getComGroup",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "false",
+    "defaultHidden": "false",
+    "ifAsCondition": "true"
+  },
+  {
     "name": "任务类型",
     "type": "Integer",
     "value": "type",

+ 1 - 1
src/main/resources/mapper/ProjectTaskMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="cn.cslg.pas.mapper.ProjectTaskMapper">
     <select id="getProjectTask" resultType="cn.cslg.pas.common.vo.business.ProjectTaskVO">
         select id,name,project_id,type,handler,handler_type as handlerType,deadline_time as deadLineTime,finish_time as finishTime, description,
-               last_task_id as lastTaskId,asso_task_id as assoTaskId,status,progress,result,create_id as createId,create_time as createTime
+               last_task_id as lastTaskId,asso_task_id as assoTaskId,status,process_id as processId,progress,result,create_id as createId,create_time as createTime
         from project_task
         <if test="sql1!=''">
             where ${sql1}

+ 32 - 2
src/test/java/cn/cslg/pas/service/ProjectTaskServiceTests.java

@@ -5,6 +5,7 @@ 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 cn.cslg.pas.service.business.PatentNoSplitterService;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.http.entity.ContentType;
 import org.junit.Assert;
@@ -16,8 +17,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 
 /**
@@ -29,6 +29,9 @@ public class ProjectTaskServiceTests {
     @Autowired
     private ProjectTaskController projectTaskController;
 
+    @Autowired
+    private PatentNoSplitterService patentNoSplitterService;
+
 
 
     @Test
@@ -51,4 +54,31 @@ public class ProjectTaskServiceTests {
 //        Response response = projectTaskController.addTaskAuditResult();
     }
 
+    @Test
+        void splitPatentNo(){
+        List<String> strings = new ArrayList<>();
+//        Set<String> CNStrings = new HashSet<>();
+//        Random random = new Random();
+//        while (CNStrings.size() < 5000) {
+//            String randomString = "CN" + random.nextInt(10); // "CN"开头的随机数字字符串
+//            CNStrings.add(randomString);
+//        }
+//        strings.addAll(CNStrings);
+//        Set<String> WDStrings = new HashSet<>();
+//        Random random1 = new Random();
+//        while (WDStrings.size() < 5000) {
+//            String randomString = "WD" + random1.nextInt(10); // "WD"开头的随机数字字符串
+//            WDStrings.add(randomString);
+//        }
+//        strings.addAll(WDStrings);
+        for (int i = 0; i < 5000; i++) {
+            strings.add("CN123456789");
+            strings.add("WD987654321");
+        }
+        List<List<String>> results = patentNoSplitterService.splitPatentNoByType(strings);
+
+        System.out.println(results);
+    }
+
+
 }