瀏覽代碼

3/8 专利挖掘bug修改

lwhhszx 1 年之前
父節點
當前提交
302156969f

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

@@ -87,4 +87,5 @@ public class ProjectTaskDTO {
     private Integer processId;
 
     private List<String> fileGuids;
+    private  String taskPath;
 }

+ 6 - 1
src/main/java/cn/cslg/pas/domain/business/ProjectTask.java

@@ -9,6 +9,7 @@ import java.util.Date;
 
 /**
  * project与任务
+ *
  * @Author xiexiang
  * @Date 2023/11/15
  */
@@ -80,7 +81,11 @@ public class ProjectTask extends BaseEntity<ProjectTask> {
      */
     @TableField(value = "asso_task_id")
     private Integer assoTaskId;
-
+    /**
+     * 任务路径
+     */
+    @TableField(value = "task_path")
+    private String taskPath;
     /**
      * 备注
      */

+ 1 - 1
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/ChildCountAnalysisBuilder.java

@@ -82,7 +82,7 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
                 }
                 Aggregation filterAgg = AggregationBuilders.filter(n -> n.bool(k -> k.must(queryList)));
                 termAgg = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                        .field("custom_field.field_value.raw").build())
+                         .field("custom_field.field_value.raw").size(topN).build())
                         .aggregations(new HashMap() {{
                             put("filterAgg", filterAgg);
                         }}).build();

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

@@ -11,10 +11,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.PatentDigProjectFilesVO;
-import cn.cslg.pas.domain.business.AssoProjectFile;
-import cn.cslg.pas.domain.business.AssoTaskFile;
-import cn.cslg.pas.domain.business.PatentDigProjectFiles;
-import cn.cslg.pas.domain.business.ProjectTask;
+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;
@@ -41,6 +38,7 @@ import java.util.stream.Collectors;
 
 /**
  * 专利挖掘项目文件Service层
+ *
  * @Author xiexiang
  * @Date 2023/11/8
  */
@@ -74,12 +72,16 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     @Autowired
     private AssoProjectFileService assoProjectFileService;
-
+    @Autowired
+    @Lazy
+    private TaskHandleResultService taskHandleResultService;
+    @Autowired
+    private AssoHandleResultFileService assoHandleResultFileService;
 
     @Override
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
         //根据专题库/报告id查询自定义栏位
-        List<String> sqls = formatQueryService.reSqls(queryRequest,"patentDigProjectFiles");
+        List<String> sqls = formatQueryService.reSqls(queryRequest, "patentDigProjectFiles");
         //根据sql查询自定义栏位信息
         List<PatentDigProjectFilesVO> patentDigProjectFilesVOS = patentDigProjectFilesMapper.getPatentDigProjectFiles(sqls.get(0), sqls.get(1), sqls.get(2));
         //查询总数
@@ -120,6 +122,7 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     /**
      * 新增专利挖掘项目文件
+     *
      * @param object
      * @return
      */
@@ -144,7 +147,7 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
         }
         List<Integer> ids = new ArrayList<>();
 
-        if (patentDigProjectFilesDTO.getFileGuids() != null && !patentDigProjectFilesDTO.getFileGuids().isEmpty()){
+        if (patentDigProjectFilesDTO.getFileGuids() != null && !patentDigProjectFilesDTO.getFileGuids().isEmpty()) {
             List<String> fileGuids = patentDigProjectFilesDTO.getFileGuids();
             List<SystemFile> systemFiles = new ArrayList<>();
             List<PatentDigProjectFiles> patentDigProjectFilesS = new ArrayList<>();
@@ -185,6 +188,7 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     /**
      * 装载专利挖掘文件列表信息
+     *
      * @param patentDigProjectFilesVOS
      */
     private void loadPatentDigProjectFiles(List<PatentDigProjectFilesVO> patentDigProjectFilesVOS) throws IOException {
@@ -239,10 +243,11 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     /**
      * 装载流程名
+     *
      * @param processId
      * @return
      */
-    public String getProcessName(Integer processId){
+    public String getProcessName(Integer processId) {
         String name = null;
         Map<Integer, String> processMap = new HashMap<>();
         processMap.put(1, "创新点梳理");
@@ -258,10 +263,11 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     /**
      * 上传专利挖掘项目文件后提交审核,新增专利挖掘文件审核记录
+     *
      * @param patentDigProjectFilesDTO
      * @return
      */
-    public Integer addPDProjectFilesTask(PatentDigProjectFilesDTO patentDigProjectFilesDTO){
+    public Integer addPDProjectFilesTask(PatentDigProjectFilesDTO patentDigProjectFilesDTO) {
         //首先调用新增文件接口
         List<Integer> ids = (List<Integer>) this.addMessage(patentDigProjectFilesDTO);
         //其次调用新增任务接口
@@ -286,10 +292,11 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     /**
      * 获取流程信息
+     *
      * @param projectId
      * @return
      */
-    public Map<Integer, Map<String, Integer>> getProcessInfo(Integer projectId){
+    public Map<Integer, Map<String, Integer>> getProcessInfo(Integer projectId) {
         Map<Integer, Map<String, Integer>> processInfo = new HashMap<>();
         for (int i = 1; i < 8; i++) {
             LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
@@ -308,9 +315,10 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     /**
      * 查询专利挖掘项目所有文件
+     *
      * @param queryPatentDigProjectFilesDTO
      */
-    public List<PatentDigProjectFilesVO> getPatentDigProjectFiles(QueryPatentDigProjectFilesDTO queryPatentDigProjectFilesDTO){
+    public List<PatentDigProjectFilesVO> getPatentDigProjectFiles(QueryPatentDigProjectFilesDTO queryPatentDigProjectFilesDTO) {
         List<PatentDigProjectFilesVO> patentDigProjectFilesVOS = new ArrayList<>();
         //查询本表
         if (queryPatentDigProjectFilesDTO == null) {
@@ -371,20 +379,42 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
                     patentDigProjectFilesVOS.add(patentDigProjectFilesVO);
                 });
             }
+
+            //查询审核历史里的文件
+            LambdaQueryWrapper<TaskHandleResult> queryWrapper3 = new LambdaQueryWrapper<>();
+            queryWrapper3.in(TaskHandleResult::getTaskId, taskIds);
+            List<TaskHandleResult> taskHandleResults = taskHandleResultService.list(queryWrapper3);
+            if (taskHandleResults != null && taskHandleResults.size() > 0) {
+                List<Integer> resultIds = taskHandleResults.stream().map(TaskHandleResult::getId).collect(Collectors.toList());
+                LambdaQueryWrapper<AssoHandleResultFile> queryWrapper4 = new LambdaQueryWrapper<>();
+                queryWrapper4.in(AssoHandleResultFile::getTaskHandleResultId, resultIds);
+                List<AssoHandleResultFile> assoHandleResultFiles = assoHandleResultFileService.list(queryWrapper4);
+                assoHandleResultFiles.forEach(item -> {
+                    PatentDigProjectFilesVO patentDigProjectFilesVO = new PatentDigProjectFilesVO();
+                    patentDigProjectFilesVO.setProjectId(projectId);
+                    patentDigProjectFilesVO.setFileGuid(item.getFileGuid());
+                    patentDigProjectFilesVO.setCreateId(item.getCreateId());
+                    patentDigProjectFilesVO.setCreateTime(item.getCreateTime());
+                    patentDigProjectFilesVOS.add(patentDigProjectFilesVO);
+                });
+
+            }
         }
         //查询项目下的文件
-        LambdaQueryWrapper<AssoProjectFile> queryWrapper2 = new LambdaQueryWrapper<>();
-        queryWrapper2.eq(AssoProjectFile::getProjectId, projectId);
-        List<AssoProjectFile> assoProjectFiles = assoProjectFileService.list(queryWrapper2);
-        if (!assoProjectFiles.isEmpty()) {
-            assoProjectFiles.forEach(item -> {
-                PatentDigProjectFilesVO patentDigProjectFilesVO = new PatentDigProjectFilesVO();
-                patentDigProjectFilesVO.setProjectId(projectId);
-                patentDigProjectFilesVO.setFileGuid(item.getFileGuid());
-                patentDigProjectFilesVO.setCreateId(item.getCreateId());
-                patentDigProjectFilesVO.setCreateTime(item.getCreateTime());
-                patentDigProjectFilesVOS.add(patentDigProjectFilesVO);
-            });
+        if (taskId == null) {
+            LambdaQueryWrapper<AssoProjectFile> queryWrapper2 = new LambdaQueryWrapper<>();
+            queryWrapper2.eq(AssoProjectFile::getProjectId, projectId);
+            List<AssoProjectFile> assoProjectFiles = assoProjectFileService.list(queryWrapper2);
+            if (!assoProjectFiles.isEmpty()) {
+                assoProjectFiles.forEach(item -> {
+                    PatentDigProjectFilesVO patentDigProjectFilesVO = new PatentDigProjectFilesVO();
+                    patentDigProjectFilesVO.setProjectId(projectId);
+                    patentDigProjectFilesVO.setFileGuid(item.getFileGuid());
+                    patentDigProjectFilesVO.setCreateId(item.getCreateId());
+                    patentDigProjectFilesVO.setCreateTime(item.getCreateTime());
+                    patentDigProjectFilesVOS.add(patentDigProjectFilesVO);
+                });
+            }
         }
         try {
             this.loadPatentDigProjectFiles(patentDigProjectFilesVOS);

+ 22 - 1
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -9,6 +9,7 @@ import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.FormatUtil;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.common.vo.business.*;
@@ -31,6 +32,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.joda.time.format.FormatUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -189,6 +191,15 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
                 projectTaskDTO.setProcessId(projectTask.getProcessId());
             }
         }
+
+        if(projectTaskDTO.getLastTaskId()!=null){
+            ProjectTask projectTask =this.getById(projectTaskDTO.getLastTaskId());
+            if (projectTask.getTaskPath() == null) {
+                projectTaskDTO.setTaskPath(projectTask.getId().toString());
+            } else {
+                projectTaskDTO.setTaskPath(projectTask.getTaskPath() + "/" + projectTask.getId().toString());
+            }
+        }
         ProjectTask projectTask = new ProjectTask();
         BeanUtils.copyProperties(projectTaskDTO, projectTask);
         //任务状态置为处理中
@@ -358,6 +369,7 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         //使用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获取最初任务的详情
@@ -398,11 +410,20 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
                     }
                 }
                 //根据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.eq(ProjectTask::getAssoTaskId, assoTaskId);
+                allTaskWrapper.in(ProjectTask::getId, ids);
                 allProjectTasks = this.list(allTaskWrapper);
             }
         }
+
+
         //审核历史返回VO以及集合
         if (allProjectTasks != null) {
             auditHistoryVOS = allProjectTasks.stream()

+ 9 - 19
src/main/java/cn/cslg/pas/service/business/TaskHandleResultService.java

@@ -24,12 +24,14 @@ import org.springframework.stereotype.Service;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
  * 任务处理结果Service层
+ *
  * @Author xiexiang
  * @Date 2023/11/22
  */
@@ -57,13 +59,16 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
 
     @Autowired
     private ReportProjectService reportProjectService;
+    @Autowired
+    private PatentDigProjectFilesService patentDigProjectFilesService;
 
     /**
      * 添加任务处理结果
+     *
      * @param taskHandleResultDTO
      * @return
      */
-    public Integer addTaskAuditResult(TaskHandleResultDTO taskHandleResultDTO){
+    public Integer addTaskAuditResult(TaskHandleResultDTO taskHandleResultDTO) {
         //判断任务id是否为空
         if (taskHandleResultDTO.getTaskId() == null) {
             throw new XiaoShiException("任务id不能为空");
@@ -124,8 +129,10 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
                 projectTaskDTO.setLastTaskId(taskHandleResult.getTaskId());
                 //被审核的任务id
                 projectTaskDTO.setAssoTaskId(projectTask.getAssoTaskId());
+                //添加任务路径
 
                 Integer id = projectTaskService.addTask(projectTaskDTO);
+
                 //新建审核任务完成之后,需要将审核任务的状态置为完成
                 if (id != null) {
                     currentProjectTask.setStatus(3);
@@ -157,24 +164,6 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
                     }
                     //如果是 项目开卷审核任务 需要将项目的状态设置为完成
                     if (taskType == 1) {
-//                        ProjectTask projectTask1 = projectTaskService.getById(projectTask.getAssoTaskId());
-//                        if (projectTask1 != null) {
-//                            Integer projectId = projectTask1.getProjectId();
-//                            Project project = projectService.getById(projectId);
-//                            if (project != null) {
-//                                Integer projectType = project.getType();
-//                                if (projectType == 2) {
-//                                    LambdaQueryWrapper<ReportProject> queryWrapper1 = new LambdaQueryWrapper<>();
-//                                    queryWrapper1.eq(ReportProject::getProjectId, projectId);
-//                                    ReportProject reportProject = reportProjectService.getOne(queryWrapper1, false);
-//                                    if (reportProject != null) {
-//                                        reportProject.setStatus(3);
-//                                        reportProject.updateById();
-//                                    }
-//                                }
-//                            }
-//                        }
-
                         Optional<ProjectTask> optionalProjectTask = projectTaskService.getByIdOpt(projectTask.getAssoTaskId());
                         optionalProjectTask.ifPresent(task -> {
                             Integer projectId = task.getProjectId();
@@ -203,6 +192,7 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
 
     /**
      * 根据分配任务id查询它的文件信息集合以及说明
+     *
      * @param taskId
      * @return
      * @throws IOException

+ 1 - 1
src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java

@@ -232,7 +232,7 @@ public class EsCustomFieldService {
                         List<Integer> fieldIds = FormatUtil.StringTOIntegerList(addValues);
                         //根据树节点id查询树节点
                         LambdaQueryWrapper<TreeNode> queryWrapper = new LambdaQueryWrapper<>();
-                        queryWrapper.eq(TreeNode::getId, fieldIds);
+                        queryWrapper.in(TreeNode::getId, fieldIds);
                         List<TreeNode> treeNodes = treeNodeService.list(queryWrapper);
                         //遍历节点
                         List<String> reStateValues = new ArrayList<>(addValues);