Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

xiexiang vor 1 Jahr
Ursprung
Commit
d008c44325

+ 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;
     /**
      * 备注
      */

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

@@ -58,11 +58,10 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
                             .gte(JsonData.of(valueOne)).lte(JsonData.of(valueTwo)));
                     queryList.add(query);
                 }
-                Aggregation filterAgg = AggregationBuilders.filter(n -> n.bool(k -> k.must(queryList)));
-                termAgg = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                        .field("custom_field.stats_value.raw").build())
+                Aggregation terms = AggregationBuilders.terms(i -> i.field("custom_field.stats_value.raw").size(topN));
+                termAgg = new Aggregation.Builder().filter(n -> n.bool(k -> k.must(queryList)))
                         .aggregations(new HashMap() {{
-                            put("filterAgg", filterAgg);
+                            put("filterAgg", terms);
                         }}).build();
             }
         } else {
@@ -80,11 +79,10 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
                             .gte(JsonData.of(valueOne)).lte(JsonData.of(valueTwo)));
                     queryList.add(query);
                 }
-                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())
+                Aggregation terms = AggregationBuilders.terms(i -> i.field("custom_field.field_value.raw").size(topN));
+                termAgg = new Aggregation.Builder().filter(n -> n.bool(k -> k.must(queryList)))
                         .aggregations(new HashMap() {{
-                            put("filterAgg", filterAgg);
+                            put("filterAgg", terms);
                         }}).build();
             }
         }

+ 0 - 6
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/ChildNestedAnalyseBuilder.java

@@ -33,12 +33,6 @@ public class ChildNestedAnalyseBuilder implements IEsCountAnalysisBuilder{
             String str = "*";
             String s = str.concat(valueOne).concat("*");
             Query query = QueryBuilders.wildcard(i -> i.field(field).value(s));
-//            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query,q1)));
-//            terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-//                    .field(field).size(topN).build())
-//                    .aggregations(new HashMap() {{
-//                        put("filter_agg", filter);
-//                    }}).build();
             Aggregation aggregation = AggregationBuilders.terms(j -> j.field(field).size(topN));
             terms = new Aggregation.Builder().filter(i -> i.bool(j -> j.must(query,q1)))
                     .aggregations(new HashMap() {{

+ 1 - 0
src/main/java/cn/cslg/pas/mapper/AssoHandleResultFileMapper.java

@@ -11,4 +11,5 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface AssoHandleResultFileMapper extends BaseMapper<AssoHandleResultFile> {
+    public Integer getResultFileNum(Integer projectId,Integer processId);
 }

+ 24 - 11
src/main/java/cn/cslg/pas/service/business/AvoidDesignService.java

@@ -7,10 +7,7 @@ import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.business.AvoidDesignVO;
-import cn.cslg.pas.domain.business.AvoidDesign;
-import cn.cslg.pas.domain.business.AvoidDesignWhole;
-import cn.cslg.pas.domain.business.Feature;
-import cn.cslg.pas.domain.business.ReportProject;
+import cn.cslg.pas.domain.business.*;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.AvoidDesignMapper;
@@ -27,6 +24,7 @@ import java.util.stream.Collectors;
 
 /**
  * 回避设计Service
+ *
  * @Author xiexiang
  * @Date 2023/12/5
  */
@@ -46,13 +44,16 @@ public class AvoidDesignService extends ServiceImpl<AvoidDesignMapper, AvoidDesi
 
     @Autowired
     private AvoidDesignWholeService avoidDesignWholeService;
+    @Autowired
+    private PatentSplitMessageService patentSplitMessageService;
 
     /**
      * 新增回避设计
+     *
      * @param avoidDesignInsertDTO
      * @return
      */
-    public List<Integer> addAvoidDesign(AvoidDesignInsertDTO avoidDesignInsertDTO){
+    public List<Integer> addAvoidDesign(AvoidDesignInsertDTO avoidDesignInsertDTO) {
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
         try {
@@ -75,20 +76,24 @@ public class AvoidDesignService extends ServiceImpl<AvoidDesignMapper, AvoidDesi
         } else {
             throw new XiaoShiException("未查询到报告专利号");
         }
+
         List<AvoidDesignDTO> avoidDesignDTOS = avoidDesignInsertDTO.getAvoidDesignDTOS();
         //根据专利号和projectId,删除特征
-        LambdaQueryWrapper<Feature> deleteWrapper =new LambdaQueryWrapper<>();
-        deleteWrapper.eq(Feature::getPatentNo, patentNo)
-                        .eq(Feature::getProjectId, projectId);
-        featureService.remove(deleteWrapper);
+        LambdaQueryWrapper<PatentSplitMessage> splitWrapper = new LambdaQueryWrapper<>();
+        splitWrapper.eq(PatentSplitMessage::getPatentNo, patentNo)
+                .eq(PatentSplitMessage::getProjectId, projectId);
+        PatentSplitMessage patentSplitMessage = patentSplitMessageService.getOne(splitWrapper, false);
+
         //根据projectId删除回避设计方向数据
         LambdaQueryWrapper<AvoidDesign> deleteWrapper2 = new LambdaQueryWrapper<>();
         deleteWrapper2.eq(AvoidDesign::getProjectId, projectId);
         this.remove(deleteWrapper2);
+
+        //删除总的设计方向
         LambdaQueryWrapper<AvoidDesignWhole> deleteWrapper3 = new LambdaQueryWrapper<>();
         deleteWrapper3.eq(AvoidDesignWhole::getProjectId, projectId);
         avoidDesignWholeService.remove(deleteWrapper3);
-        //新增总体方向
+
         //首先新增总体方向
         AvoidDesignWholeDTO avoidDesignWholeDTO = new AvoidDesignWholeDTO();
         avoidDesignWholeDTO.setContent(avoidDesignInsertDTO.getWholeContent());
@@ -97,6 +102,7 @@ public class AvoidDesignService extends ServiceImpl<AvoidDesignMapper, AvoidDesi
         if (wholeId == null) {
             throw new XiaoShiException("总体方向添加失败");
         }
+
         //新增插入回避设计方向集合
         List<AvoidDesign> avoidDesignList = new ArrayList<>();
         //遍历传入集合
@@ -109,7 +115,14 @@ public class AvoidDesignService extends ServiceImpl<AvoidDesignMapper, AvoidDesi
             feature.setExplainText(avoidDesignDTO.getExplainText());
             feature.setCreateId(personnelVO.getId());
             feature.setRightType(avoidDesignDTO.getRightType());
-            feature.insert();
+            feature.setSplitMessageId(patentSplitMessage.getId());
+            feature.setId(avoidDesignDTO.getFeatureId());
+            if (avoidDesignDTO.getFeatureId() == null) {
+                feature.insert();
+            } else {
+                feature.updateById();
+            }
+
             //获取特征id
             Integer featureId = feature.getId();
             if (avoidDesignDTO.getDirection() != null) {

+ 56 - 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<>();
@@ -298,6 +305,8 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
             LambdaQueryWrapper<PatentDigProjectFiles> queryWrapper1 = new LambdaQueryWrapper<>();
             queryWrapper1.eq(PatentDigProjectFiles::getProcessId, i).eq(PatentDigProjectFiles::getProjectId, projectId);
             Integer fileCount = (int) this.count(queryWrapper1);
+            Integer handleFileCount = assoHandleResultFileService.getBaseMapper().getResultFileNum(projectId, i);
+            fileCount += handleFileCount;
             Map<String, Integer> countMap = new HashMap<>();
             countMap.put("taskCount", taskCount);
             countMap.put("fileCount", fileCount);
@@ -308,9 +317,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 +381,43 @@ 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.setProcessId(processId);
+                    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);

+ 23 - 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;
@@ -138,6 +140,7 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
             Integer projectId = (Integer) patentDigProjectService.addMessage(patentDigProjectDTO);
             if (projectId != null) {
                 projectTaskDTO.setProjectId(projectId);
+                projectTaskDTO.setType(1);
                 Integer projectTaskId = this.addTask(projectTaskDTO);
                 if (projectTaskId != null) {
                     //将专利挖掘项目状态置为开卷审核
@@ -190,6 +193,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);
         //任务状态置为处理中
@@ -359,6 +371,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获取最初任务的详情
@@ -399,11 +412,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()

+ 10 - 20
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不能为空");
@@ -97,7 +102,7 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
         ProjectTask currentProjectTask = projectTaskService.getById(currentTaskId);
         //如果当前处理的是审核任务或者项目开卷审核任务,进入以下流程
         Integer taskType = currentProjectTask.getType();
-        if (taskType == 5 || taskType == 1) {
+        if (taskType == 5 || taskType == 1||taskType==7) {
             //判断下一个审核人
             String nextAuditor = taskHandleResult.getNextAuditor();
             if (StringUtils.isNotEmpty(nextAuditor)) {
@@ -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

+ 15 - 17
src/main/java/cn/cslg/pas/service/business/es/EsCountService.java

@@ -87,7 +87,7 @@ public class EsCountService {
                         valueDTO.setFieldId(countVO.getFieldId());
                         valueDTO.setFieldValue(Arrays.asList("\""+value+"\""));
                         customFields.add(valueDTO);
-                        this.getReturnData(searchCondition, "",customFields, taskId, projectId,
+                        this.getDatas(searchCondition, "",customFields, taskId, projectId,
                                 esCountVOS, detailDTOS, esCountDTO, value, map);
                     }
                 }
@@ -99,18 +99,19 @@ public class EsCountService {
                     } else {
                         condition = countVO.getField() + " = " + "\""+value+"\"";
                     }
-                    this.getReturnData(searchCondition, condition, customFields, taskId, projectId,
+                    this.getDatas(searchCondition, condition, customFields, taskId, projectId,
                             esCountVOS, detailDTOS, esCountDTO, value, map);
                 }
             }
         } else {
-            this.getReturnData(searchCondition, "", customFields, taskId, projectId, countVOS,
+            this.getDatas(searchCondition, "", customFields, taskId, projectId, countVOS,
                     detailDTOS, esCountDTO, "", map);
         }
         esCountDTO.setDetailDTOS(detailDTOS);
         return esCountDTO;
     }
 
+/*
     public void getReturnData(String searchCondition,String condition, List<EsCustomFieldValueDTO> customFields, Integer taskId,
                               Integer projectId, List<EsCountVO> countVOS, List<EsCountDetailDTO> detailDTOS,
                               EsCountDTO esCountDTO, String firstName, Map<String, List<EsCountDetailDTO>> map) throws Exception {
@@ -301,8 +302,9 @@ public class EsCountService {
             esCountDTO.setAnalyseMap(map);
         }
     }
+*/
 
-    public void getReturnData1(String searchCondition,String condition, List<EsCustomFieldValueDTO> customFields, Integer taskId,
+    public void getDatas(String searchCondition,String condition, List<EsCustomFieldValueDTO> customFields, Integer taskId,
                               Integer projectId, List<EsCountVO> countVOS, List<EsCountDetailDTO> detailDTOS,
                               EsCountDTO esCountDTO, String firstName, Map<String, List<EsCountDetailDTO>> map) throws Exception {
 
@@ -714,20 +716,16 @@ public class EsCountService {
         List<StringTermsBucket> list = childAgg.sterms().buckets().array();
         list.forEach(bucket -> {
             Aggregate aggregate = bucket.aggregations().get("termAgg");
-            List<StringTermsBucket> termsBuckets = aggregate.sterms().buckets().array();
+            Aggregate filterAgg = aggregate.filter().aggregations().get("filterAgg");
+            List<StringTermsBucket> termsBuckets = filterAgg.sterms().buckets().array();
             termsBuckets.forEach(termsBucket -> {
-                Aggregate termAgg = termsBucket.aggregations().get("filterAgg");
-                long count = termAgg.filter().docCount();
-                if (count > 0) {
-                    EsCountDetailDTO dto = new EsCountDetailDTO();
-                    dto.setField(field);
-                    dto.setName(termsBucket.key().stringValue());
-                    dto.setNumber(termsBucket.docCount());
-                    dto.setNumber(count);
-                    dto.setTopN(topN);
-                    if (dto.getNumber() > 0) {
-                        detailDTOS.add(dto);
-                    }
+                EsCountDetailDTO dto = new EsCountDetailDTO();
+                dto.setField(field);
+                dto.setName(termsBucket.key().stringValue());
+                dto.setNumber(termsBucket.docCount());
+                dto.setTopN(topN);
+                if (dto.getNumber() > 0) {
+                    detailDTOS.add(dto);
                 }
             });
         });

+ 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);

+ 97 - 164
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -164,38 +164,13 @@ public class EsService {
         if (!CollectionUtils.isEmpty(customFields)) {
             searchCondition = this.parseCustomField(customFields,projectId,taskId);
         }
-        if (taskId != null) {
-            if (searchCondition != null && !"".equals(searchCondition.trim())) {
-                searchCondition = "taskId = " + taskId + " AND " + searchCondition;
-            } else {
-                searchCondition = "taskId = " + taskId;
-            }
-        } else {
-            if (StringUtils.isNotEmpty(productFrom)) {
-                if (productId != null) {
-                    if (searchCondition != null && !"".equals(searchCondition.trim())) {
-                        searchCondition = "productId = " + productId + " AND " + searchCondition;
-                    } else {
-                        searchCondition = "productId = " + productId;
-                    }
-                }
-            } else {
-                if (projectId != null) {
-                    if (searchCondition != null && !"".equals(searchCondition.trim())) {
-                        searchCondition = "projectId = " + projectId + " AND " + searchCondition;
-                    } else {
-                        searchCondition = "projectId = " + projectId;
-                    }
-                }
-            }
-        }
-
+        String condition = this.appendIdsCondition(searchCondition, taskId, productFrom, projectId, productId);
 
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("patent");
         //1. 解析检索条件
-        treeNode tree = expressManager.getInstance().Parse(searchCondition, false);
+        treeNode tree = expressManager.getInstance().Parse(condition, false);
         //3. 从es中检索数据
         Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent",projectId);
         //判断同族分组
@@ -263,7 +238,6 @@ public class EsService {
             builder.from((current.intValue() - 1) * size.intValue()).size(size.intValue());
         } else {
             builder.from(0).size(99999);
-
         }
 
         //解除最大条数限制
@@ -283,44 +257,7 @@ public class EsService {
                     String id = hit.id();
                     JsonData data = hit.source();
                     Patent patent1 = JSONObject.parseObject(String.valueOf(data), Patent.class);
-                    PatentColumnDTO columnDTO = new PatentColumnDTO();
-                    BeanUtils.copyProperties(patent1, columnDTO);
-                    if (projectId != null) {
-                        try {
-                            columnDTO.setMergeApplicant(esPatentService.getMergeApp(projectId, id));
-                        } catch (IOException e) {
-                            columnDTO.setMergeApplicant(new ArrayList<>());
-                        }
-                        try {
-                            columnDTO.setMergeRightHolder(esPatentService.getMergeRight(projectId, id));
-                        } catch (IOException e) {
-                            columnDTO.setMergeRightHolder(new ArrayList<>());
-                        }
-                        try {
-                            columnDTO.setMergeInventor(esPatentService.getMergeInventor(projectId, id));
-                        } catch (IOException e) {
-                            columnDTO.setMergeInventor(new ArrayList<>());
-                        }
-                    }
-                    if (ObjectUtils.isNotEmpty(patent1.getApplicantAddr())) {
-                        PersonAddress applicantAddr = patent1.getApplicantAddr();
-                        columnDTO.setAppAddress(applicantAddr.getAddress());
-                        columnDTO.setApplicantCountry(applicantAddr.getCountry());
-                        columnDTO.setAppProvince(applicantAddr.getProvince());
-                        columnDTO.setAppCity(applicantAddr.getCity());
-                        columnDTO.setAppDistrict(applicantAddr.getDistrict());
-                    }
-                    if (ObjectUtils.isNotEmpty(patent1.getRightHolderAddr())) {
-                        PersonAddress rightAddr = patent1.getRightHolderAddr();
-                        columnDTO.setRightAddress(rightAddr.getAddress());
-                        columnDTO.setRightCountry(rightAddr.getCountry());
-                        columnDTO.setRightProvince(rightAddr.getProvince());
-                        columnDTO.setRightCity(rightAddr.getCity());
-                        columnDTO.setRightDistrict(rightAddr.getDistrict());
-                    }
-                    columnDTO.setApplicant(esPatentService.loadName(patent1.getApplicant()));
-                    columnDTO.setRightHolder(esPatentService.loadName(patent1.getRightHolder()));
-                    columnDTO.setInventor(esPatentService.loadName(patent1.getInventor()));
+                    PatentColumnDTO columnDTO = this.getPatentColumnDTO(patent1, projectId, id);
                     list.add(columnDTO);
                 });
             }
@@ -330,47 +267,8 @@ public class EsService {
             for (Hit<Patent> hit : hits) {
                 String id = hit.id();
                 Patent esMess = hit.source();
-                PatentColumnDTO columnDTO = new PatentColumnDTO();
-//            columnDTO.setPatentNo(esMess.getPatentNo());
-                BeanUtils.copyProperties(esMess, columnDTO);
-                if (projectId != null) {
-                    try {
-                        columnDTO.setMergeApplicant(esPatentService.getMergeApp(projectId, id));
-                    } catch (IOException e) {
-                        columnDTO.setMergeApplicant(new ArrayList<>());
-                    }
-                    try {
-                        columnDTO.setMergeRightHolder(esPatentService.getMergeRight(projectId, id));
-                    } catch (IOException e) {
-                        columnDTO.setMergeRightHolder(new ArrayList<>());
-                    }
-                    try {
-                        columnDTO.setMergeInventor(esPatentService.getMergeInventor(projectId, id));
-                    } catch (IOException e) {
-                        columnDTO.setMergeInventor(new ArrayList<>());
-                    }
-                }
-                if (ObjectUtils.isNotEmpty(esMess.getApplicantAddr())) {
-                    PersonAddress applicantAddr = esMess.getApplicantAddr();
-                    columnDTO.setAppAddress(applicantAddr.getAddress());
-                    columnDTO.setApplicantCountry(applicantAddr.getCountry());
-                    columnDTO.setAppProvince(applicantAddr.getProvince());
-                    columnDTO.setAppCity(applicantAddr.getCity());
-                    columnDTO.setAppDistrict(applicantAddr.getDistrict());
-                }
-                if (ObjectUtils.isNotEmpty(esMess.getRightHolderAddr())) {
-                    PersonAddress rightAddr = esMess.getRightHolderAddr();
-                    columnDTO.setRightAddress(rightAddr.getAddress());
-                    columnDTO.setRightCountry(rightAddr.getCountry());
-                    columnDTO.setRightProvince(rightAddr.getProvince());
-                    columnDTO.setRightCity(rightAddr.getCity());
-                    columnDTO.setRightDistrict(rightAddr.getDistrict());
-                }
-                columnDTO.setApplicant(esPatentService.loadName(esMess.getApplicant()));
-                columnDTO.setRightHolder(esPatentService.loadName(esMess.getRightHolder()));
-                columnDTO.setInventor(esPatentService.loadName(esMess.getInventor()));
+                PatentColumnDTO columnDTO = this.getPatentColumnDTO(esMess, projectId, id);
                 list.add(columnDTO);
-
             }
         }
         this.loadCoulumnDTO(list);
@@ -381,6 +279,81 @@ public class EsService {
         return dto;
     }
 
+    //装载专利清单列表的数据
+    public PatentColumnDTO getPatentColumnDTO(Patent patent, Integer projectId, String id) {
+        PatentColumnDTO columnDTO = new PatentColumnDTO();
+        BeanUtils.copyProperties(patent, columnDTO);
+        if (projectId != null) {
+            try {
+                columnDTO.setMergeApplicant(esPatentService.getMergeApp(projectId, id));
+            } catch (IOException e) {
+                columnDTO.setMergeApplicant(new ArrayList<>());
+            }
+            try {
+                columnDTO.setMergeRightHolder(esPatentService.getMergeRight(projectId, id));
+            } catch (IOException e) {
+                columnDTO.setMergeRightHolder(new ArrayList<>());
+            }
+            try {
+                columnDTO.setMergeInventor(esPatentService.getMergeInventor(projectId, id));
+            } catch (IOException e) {
+                columnDTO.setMergeInventor(new ArrayList<>());
+            }
+        }
+        if (ObjectUtils.isNotEmpty(patent.getApplicantAddr())) {
+            PersonAddress applicantAddr = patent.getApplicantAddr();
+            columnDTO.setAppAddress(applicantAddr.getAddress());
+            columnDTO.setApplicantCountry(applicantAddr.getCountry());
+            columnDTO.setAppProvince(applicantAddr.getProvince());
+            columnDTO.setAppCity(applicantAddr.getCity());
+            columnDTO.setAppDistrict(applicantAddr.getDistrict());
+        }
+        if (ObjectUtils.isNotEmpty(patent.getRightHolderAddr())) {
+            PersonAddress rightAddr = patent.getRightHolderAddr();
+            columnDTO.setRightAddress(rightAddr.getAddress());
+            columnDTO.setRightCountry(rightAddr.getCountry());
+            columnDTO.setRightProvince(rightAddr.getProvince());
+            columnDTO.setRightCity(rightAddr.getCity());
+            columnDTO.setRightDistrict(rightAddr.getDistrict());
+        }
+        columnDTO.setApplicant(esPatentService.loadName(patent.getApplicant()));
+        columnDTO.setRightHolder(esPatentService.loadName(patent.getRightHolder()));
+        columnDTO.setInventor(esPatentService.loadName(patent.getInventor()));
+        return columnDTO;
+    }
+
+    //拼接专题库id或其他id条件
+    public String appendIdsCondition(String searchCondition,Integer taskId,String productFrom,Integer projectId,Integer productId) {
+        String condition = "";
+        if (taskId != null) {
+            if (searchCondition != null && !"".equals(searchCondition.trim())) {
+                searchCondition = "taskId = " + taskId + " AND " + searchCondition;
+            } else {
+                searchCondition = "taskId = " + taskId;
+            }
+        } else {
+            if (StringUtils.isNotEmpty(productFrom)) {
+                if (productId != null) {
+                    if (searchCondition != null && !"".equals(searchCondition.trim())) {
+                        searchCondition = "productId = " + productId + " AND " + searchCondition;
+                    } else {
+                        searchCondition = "productId = " + productId;
+                    }
+                }
+            } else {
+                if (projectId != null) {
+                    if (searchCondition != null && !"".equals(searchCondition.trim())) {
+                        searchCondition = "projectId = " + projectId + " AND " + searchCondition;
+                    } else {
+                        searchCondition = "projectId = " + projectId;
+                    }
+                }
+            }
+        }
+        condition = searchCondition;
+        return condition;
+    }
+
     /**
      * 解析自定义栏位和值
      *
@@ -474,46 +447,25 @@ public class EsService {
         }
     }
 
-    /**
-     * @param key
-     * @param page
-     * @param limit
-     * @return
-     */
-    public List<Patent> search(String key, Integer page, Integer limit) throws IOException {
-        SearchRequest.Builder builder = new SearchRequest.Builder();
-        //设置查询索引
-        builder.index("patent");
-        //组装查询条件
-        BoolQuery.Builder boolQuery = new BoolQuery.Builder();
-        boolQuery.should(q -> q.match(v -> v
-                .query(key)
-                //字段名
-                .field("patent_no")
-        ));
-
-        //多字段匹配
-//        boolQuery.should(q -> q.matchPhrasePrefix(m -> m.query(key).field("content")));
-
-        builder.query(q -> q.bool(boolQuery.build()));
-        //分页
-        if (page != null && limit != null) {
-            builder.from(page).size(limit);
-        }
-
-        //排序
-//        builder.sort(sortOptionsBuilder -> sortOptionsBuilder
-//                .field(fieldSortBuilder -> fieldSortBuilder
-//                        .field("createTime").order(SortOrder.Desc)));
-        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-        List<Patent> list = new ArrayList<>();
-        List<Hit<Patent>> hits = response.hits().hits();
-        for (Hit<Patent> hit : hits) {
-            Patent esMess = hit.source();
-            list.add(esMess);
+    //拼接专利号
+    public String appendPatentNo(List<String> nos) {
+        String str = "NO = ";
+        if (nos.size() > 1) {
+            str = str + "(";
+            for (int i = 0; i < nos.size(); i++) {
+                String s = nos.get(i);
+                if (i != nos.size() - 1) {
+                    str = str + s + " " + "OR" + " ";
+                } else {
+                    str = str + s + ")";
+                }
+            }
+        } else {
+            for (String no : nos) {
+                str = str + no;
+            }
         }
-
-        return list;
+        return str;
     }
 
     //更新patent
@@ -1377,25 +1329,6 @@ public class EsService {
         return list;
     }
 
-    public String appendPatentNo(List<String> nos) {
-        String str = "NO = ";
-        if (nos.size() > 1) {
-            str = str + "(";
-            for (int i = 0; i < nos.size(); i++) {
-                String s = nos.get(i);
-                if (i != nos.size() - 1) {
-                    str = str + s + " " + "OR" + " ";
-                } else {
-                    str = str + s + ")";
-                }
-            }
-        } else {
-            for (String no : nos) {
-                str = str + no;
-            }
-        }
-        return str;
-    }
 }
 
 

+ 16 - 0
src/main/resources/mapper/AssoHandleResultFileMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.cslg.pas.mapper.AssoHandleResultFileMapper">
+    <select id="getResultFileNum" resultType="java.lang.Integer">
+        select count(*)  from
+        asso_handle_result_file where
+    task_handle_result_id in (select id from task_handle_result where task_id in (select id from
+          project_task where  project_id =#{projectId} and process_id =#{processId}
+
+        ))
+    </select>
+
+
+
+
+</mapper>