浏览代码

fixed 自定义

zero 1 年之前
父节点
当前提交
57293e0b15

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

@@ -26,12 +26,21 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     private String format;
     public List<String> values = new ArrayList<>();
     public Integer projectId = null;
+    public Integer taskId = null;
 
     @Override
     public Aggregation createCountAnalyseAgg() throws Exception {
         Aggregation aggregation = null;
         List<Query> queryList = new ArrayList<>();
         Query q1 = QueryBuilders.term(i -> i.field("custom_field.field").value(fieldId));
+        if (projectId != null) {
+            Query q2 = QueryBuilders.term(i -> i.field("custom_field.project_id").value(projectId));
+            queryList.add(q2);
+        }
+        if (taskId != null) {
+            Query q3 = QueryBuilders.term(i -> i.field("custom_field.task_id").value(taskId));
+            queryList.add(q3);
+        }
         queryList.add(q1);
         Aggregation termAgg = null;
         if (ifHaveChild) {
@@ -203,4 +212,12 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public void setProjectId(Integer projectId) {
         this.projectId = projectId;
     }
+
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
 }

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

@@ -24,6 +24,7 @@ public class ChildNestedAnalyseBuilder implements IEsCountAnalysisBuilder{
     private String format;
     public List<String> values = new ArrayList<>();
     public Integer projectId = null;
+    public Integer taskId = null;
 
     public Aggregation createCountAnalyseAgg() throws Exception {
         Aggregation terms = null;
@@ -186,4 +187,14 @@ public class ChildNestedAnalyseBuilder implements IEsCountAnalysisBuilder{
     public void setProjectId(Integer projectId) {
         this.projectId = projectId;
     }
+
+    @Override
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    @Override
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
 }

+ 11 - 0
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/DateCountAnalyssBuilder.java

@@ -25,6 +25,7 @@ public class DateCountAnalyssBuilder implements IEsCountAnalysisBuilder {
     private String format;
     public List<String> values = new ArrayList<>();
     public Integer projectId = null;
+    public Integer taskId = null;
     public static final int YEAR = 4;
     public static final int MONTH = 7;
     public static final int DAY = 10;
@@ -296,4 +297,14 @@ public class DateCountAnalyssBuilder implements IEsCountAnalysisBuilder {
     public void setProjectId(Integer projectId) {
         this.projectId = projectId;
     }
+
+    @Override
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    @Override
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
 }

+ 5 - 0
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/IEsCountAnalysisBuilder.java

@@ -17,6 +17,7 @@ public interface IEsCountAnalysisBuilder {
     public List<String> values = new ArrayList<>();
     public String format = null;
     public Integer projectId = null;
+    public Integer taskId = null;
 
     public Aggregation createCountAnalyseAgg() throws Exception;
 
@@ -62,4 +63,8 @@ public interface IEsCountAnalysisBuilder {
     public Integer getProjectId();
 
     public void setProjectId(Integer projectId);
+
+    public Integer getTaskId();
+
+    public void setTaskId(Integer taskId);
 }

+ 11 - 0
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/NestedCountAnalysisBuilder.java

@@ -27,6 +27,7 @@ public class NestedCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     private String format;
     public List<String> values = new ArrayList<>();
     public Integer projectId = null;
+    public Integer taskId = null;
 
     @Override
     public Aggregation createCountAnalyseAgg() throws Exception {
@@ -144,4 +145,14 @@ public class NestedCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public void setProjectId(Integer projectId) {
         this.projectId = projectId;
     }
+
+    @Override
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    @Override
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
 }

+ 11 - 0
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/PrioritiesCountAnalysisBuilder.java

@@ -23,6 +23,7 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     private String format;
     public List<String> values = new ArrayList<>();
     public Integer projectId = null;
+    public Integer taskId = null;
     public static final int YEAR = 4;
     public static final int MONTH = 7;
     public static final int DAY = 10;
@@ -280,4 +281,14 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     public void setProjectId(Integer projectId) {
         this.projectId = projectId;
     }
+
+    @Override
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    @Override
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
 }

+ 11 - 0
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/RangeCountAnalysisBuilder.java

@@ -22,6 +22,7 @@ public class RangeCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     private String format;
     public List<String> values = new ArrayList<>();
     public Integer projectId = null;
+    public Integer taskId = null;
 
     @Override
     public Aggregation createCountAnalyseAgg() throws Exception {
@@ -160,4 +161,14 @@ public class RangeCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     public void setProjectId(Integer projectId) {
         this.projectId = projectId;
     }
+
+    @Override
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    @Override
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
 }

+ 11 - 0
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/TermsCountAnalysisBuilder.java

@@ -26,6 +26,7 @@ public class TermsCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public List<String> values = new ArrayList<>();
     private String format;
     public Integer projectId = null;
+    public Integer taskId = null;
 
     @Override
     public Aggregation createCountAnalyseAgg() throws Exception {
@@ -139,4 +140,14 @@ public class TermsCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public void setProjectId(Integer projectId) {
         this.projectId = projectId;
     }
+
+    @Override
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    @Override
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
 }

+ 40 - 9
src/main/java/cn/cslg/pas/service/business/es/EsCountService.java

@@ -21,6 +21,7 @@ import co.elastic.clients.elasticsearch._types.aggregations.*;
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import co.elastic.clients.elasticsearch.core.SearchRequest;
 import co.elastic.clients.elasticsearch.core.SearchResponse;
+import co.elastic.clients.elasticsearch.core.search.Hit;
 import com.alibaba.fastjson.JSON;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
@@ -184,7 +185,7 @@ public class EsCountService {
             }
             String format = countVO.getFormat();
             List<String> values = countVO.getValues();
-            Aggregation aggregation = this.getAggregation(countVO,projectId);
+            Aggregation aggregation = this.getAggregation(countVO, projectId, taskId);
             if (query != null) {
                 Query finalQuery = query;
                 Aggregation finalAggregation = aggregation;
@@ -415,7 +416,7 @@ public class EsCountService {
      * @return
      * @throws Exception
      */
-    public Aggregation getAggregation(EsCountVO countVO,Integer projectId) throws Exception {
+    public Aggregation getAggregation(EsCountVO countVO, Integer projectId, Integer taskId) throws Exception {
         String field = countVO.getField();
         Integer topN = countVO.getTopN();
         Boolean ifHaveChild = countVO.getIfHaveChild();
@@ -448,6 +449,7 @@ public class EsCountService {
             iEsCountAnalysisBuilder.setTopN(topN);
             iEsCountAnalysisBuilder.setFormat(format);
             iEsCountAnalysisBuilder.setProjectId(projectId);
+            iEsCountAnalysisBuilder.setTaskId(taskId);
             iEsCountAnalysisBuilder.setIfHaveChild(ifHaveChild);
             if (iEsCountAnalysisBuilder.getField().contains(".")) {
                 String path = iEsCountAnalysisBuilder.getField()
@@ -620,6 +622,32 @@ public class EsCountService {
         });
     }
 
+    public Integer getUnselectedCustomNum(Integer projectId,Integer taskId) throws Exception {
+        String condition = "";
+        if (taskId != null) {
+            condition = "taskId = " + taskId;
+        } else {
+            condition = "projectId = " + projectId;
+        }
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+        treeNode tree = expressManager.getInstance().Parse(condition, false);
+        //格式化检索式
+        //3. 从es中检索数据
+        Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent");
+        builder.query(q);
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        List<Hit<Patent>> hits = response.hits().hits();
+        Long total = response.hits().total().value();
+        List<String> list = new ArrayList<>();
+        for (Hit<Patent> hit : hits) {
+            String id = hit.id();
+            list.add(id);
+        }
+        return null;
+    }
+
     /**
      * 获取children分析后数据
      *
@@ -987,14 +1015,17 @@ public class EsCountService {
             EsCountDetailDTO dto = new EsCountDetailDTO();
             dto.setField(field);
             Aggregate aggregate = bucket.aggregations().get("filter_agg");
-            dto.setName(bucket.key().stringValue());
-            dto.setNumber(bucket.docCount());
-            dto.setTopN(topN);
-            dto.setFirstName(firstName);
-            if (aggregate != null) {
-                dto.setNumber(aggregate.filter().docCount());
+            String value = bucket.key().stringValue();
+            if (StringUtils.isNotEmpty(value)) {
+                dto.setName(value);
+                dto.setNumber(bucket.docCount());
+                dto.setTopN(topN);
+                dto.setFirstName(firstName);
+                if (aggregate != null) {
+                    dto.setNumber(aggregate.filter().docCount());
+                }
+                countDetailDTOS.add(dto);
             }
-            countDetailDTOS.add(dto);
 //            if (dto.getNumber() > 0) {
 //                detailDTOS.add(dto);
 //            }