Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

lwhhszx před 1 rokem
rodič
revize
64d18fd9fe

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

@@ -25,6 +25,7 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public String fieldId = null;
     private String format;
     public List<String> values = new ArrayList<>();
+    public Integer projectId = null;
 
     @Override
     public Aggregation createCountAnalyseAgg() throws Exception {
@@ -34,7 +35,6 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
         queryList.add(q1);
         Aggregation termAgg = null;
         if (ifHaveChild) {
-
             if (!CollectionUtils.isEmpty(values)) {
                 termAgg = AggregationBuilders.terms(i -> i.field("custom_field.stats_value.raw").include(j -> j.terms(values)).size(topN));
             } else {
@@ -195,4 +195,12 @@ public class ChildCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public void setValues(List<String> values) {
         this.values = values;
     }
+
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
 }

+ 25 - 3
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/ChildNestedAnalyseBuilder.java

@@ -23,23 +23,35 @@ public class ChildNestedAnalyseBuilder implements IEsCountAnalysisBuilder{
     public String fieldId = null;
     private String format;
     public List<String> values = new ArrayList<>();
+    public Integer projectId = null;
 
     public Aggregation createCountAnalyseAgg() throws Exception {
         Aggregation terms = null;
+        Query q1 = QueryBuilders.term(i -> i.field(path + ".project_id").value(projectId));
         if (StringUtils.isNotEmpty(valueOne)) {
             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)));
+            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();
         } else if (!CollectionUtils.isEmpty(values)) {
-            terms = AggregationBuilders.terms(i -> i.field(field).include(j -> j.terms(values)).size(topN));
+            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(q1)));
+            terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
+                    .field(field).include(j -> j.terms(values)).size(topN).build())
+                    .aggregations(new HashMap() {{
+                        put("filter_agg", filter);
+                    }}).build();
         } else {
-            terms = AggregationBuilders.terms(j -> j.field(field).size(topN));
+            Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(q1)));
+            terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
+                    .field(field).size(topN).build())
+                    .aggregations(new HashMap() {{
+                        put("filter_agg", filter);
+                    }}).build();
         }
         Aggregation finalTerms = terms;
         Aggregation aggregation = new Aggregation.Builder().nested(new NestedAggregation.Builder().
@@ -164,4 +176,14 @@ public class ChildNestedAnalyseBuilder implements IEsCountAnalysisBuilder{
     public void setValues(List<String> values) {
         this.values = values;
     }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
 }

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

@@ -24,6 +24,7 @@ public class DateCountAnalyssBuilder implements IEsCountAnalysisBuilder {
     public String fieldId = null;
     private String format;
     public List<String> values = new ArrayList<>();
+    public Integer projectId = null;
     public static final int YEAR = 4;
     public static final int MONTH = 7;
     public static final int DAY = 10;
@@ -285,4 +286,14 @@ public class DateCountAnalyssBuilder implements IEsCountAnalysisBuilder {
     public void setValues(List<String> values) {
         this.values = values;
     }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
 }

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

@@ -16,6 +16,7 @@ public interface IEsCountAnalysisBuilder {
     public String fieldId = null;
     public List<String> values = new ArrayList<>();
     public String format = null;
+    public Integer projectId = null;
 
     public Aggregation createCountAnalyseAgg() throws Exception;
 
@@ -58,4 +59,7 @@ public interface IEsCountAnalysisBuilder {
 
     public void setFormat(String format);
 
+    public Integer getProjectId();
+
+    public void setProjectId(Integer projectId);
 }

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

@@ -26,6 +26,7 @@ public class NestedCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public String fieldId = null;
     private String format;
     public List<String> values = new ArrayList<>();
+    public Integer projectId = null;
 
     @Override
     public Aggregation createCountAnalyseAgg() throws Exception {
@@ -133,4 +134,14 @@ public class NestedCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public void setFormat(String format) {
         this.format = format;
     }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
 }

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

@@ -22,6 +22,7 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     public String fieldId = null;
     private String format;
     public List<String> values = new ArrayList<>();
+    public Integer projectId = null;
     public static final int YEAR = 4;
     public static final int MONTH = 7;
     public static final int DAY = 10;
@@ -269,4 +270,14 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     public void setValues(List<String> values) {
         this.values = values;
     }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
 }

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

@@ -21,6 +21,7 @@ public class RangeCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     public String fieldId = null;
     private String format;
     public List<String> values = new ArrayList<>();
+    public Integer projectId = null;
 
     @Override
     public Aggregation createCountAnalyseAgg() throws Exception {
@@ -149,4 +150,14 @@ public class RangeCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     public void setValues(List<String> values) {
         this.values = values;
     }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
 }

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

@@ -25,6 +25,7 @@ public class TermsCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public String fieldId = null;
     public List<String> values = new ArrayList<>();
     private String format;
+    public Integer projectId = null;
 
     @Override
     public Aggregation createCountAnalyseAgg() throws Exception {
@@ -128,4 +129,14 @@ public class TermsCountAnalysisBuilder implements IEsCountAnalysisBuilder {
     public void setFormat(String format) {
         this.format = format;
     }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
 }

+ 3 - 2
src/main/java/cn/cslg/pas/service/business/es/EsCountService.java

@@ -184,7 +184,7 @@ public class EsCountService {
             }
             String format = countVO.getFormat();
             List<String> values = countVO.getValues();
-            Aggregation aggregation = this.getAggregation(countVO);
+            Aggregation aggregation = this.getAggregation(countVO,projectId);
             if (query != null) {
                 Query finalQuery = query;
                 Aggregation finalAggregation = aggregation;
@@ -415,7 +415,7 @@ public class EsCountService {
      * @return
      * @throws Exception
      */
-    public Aggregation getAggregation(EsCountVO countVO) throws Exception {
+    public Aggregation getAggregation(EsCountVO countVO,Integer projectId) throws Exception {
         String field = countVO.getField();
         Integer topN = countVO.getTopN();
         Boolean ifHaveChild = countVO.getIfHaveChild();
@@ -447,6 +447,7 @@ public class EsCountService {
             iEsCountAnalysisBuilder.setFieldType(String.valueOf(fieldType));
             iEsCountAnalysisBuilder.setTopN(topN);
             iEsCountAnalysisBuilder.setFormat(format);
+            iEsCountAnalysisBuilder.setProjectId(projectId);
             iEsCountAnalysisBuilder.setIfHaveChild(ifHaveChild);
             if (iEsCountAnalysisBuilder.getField().contains(".")) {
                 String path = iEsCountAnalysisBuilder.getField()

+ 2 - 2
src/main/resources/mapper/PermissionRecordMapper.xml

@@ -7,7 +7,7 @@
                DATE_FORMAT(license_time, '%Y-%m') as licenseTime
         from permission_record
         where patent_no = #{patentNo}
-        group by DATE_FORMAT(license_time, '%Y-%m');
+        group by licenseTime;
     </select>
 
     <select id="selectLicenseeYearList" resultType="cn.cslg.pas.common.dto.es.SelectValueCurveDTO">
@@ -15,7 +15,7 @@
                CONCAT(DATE_FORMAT(license_time, '%Y'),'年') as licenseTime
         from permission_record
         where patent_no = #{patentNo}
-        group by DATE_FORMAT(license_time, '%Y');
+        group by licenseTime;
     </select>
 
     <select id="selectLicenseeQuarterList" resultType="cn.cslg.pas.common.dto.es.SelectValueCurveDTO">

+ 40 - 12
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -9,6 +9,7 @@ import cn.cslg.pas.common.dto.es.EsCustomFieldValueDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.*;
 import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.utils.StringUtils;
 import cn.cslg.pas.common.vo.business.EsCountVO;
 import cn.cslg.pas.common.vo.business.PatentKinVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
@@ -40,6 +41,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 
@@ -254,18 +256,18 @@ public class EventServiceTests {
 
     @Test
     void test9() throws IOException {
-        PatentNoVO vo = new PatentNoVO();
-        vo.setPatentNo("CN201910069334.7");
-        PatentColumnDTO columnDTO = patentService.selectPatentDetail(vo);
-        System.out.println(columnDTO);
-
-//        String s = "asfassafsafe";
-//        Map<Character, Long> map = s.chars().mapToObj(c->(char)c).collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
-//        System.out.println(map);
-//
-//        List<String> stringList = Arrays.asList("apple", "apple", "balana", "origin", "apple", "balana");
-//        Map<String, Long> collect = stringList.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
-//        System.out.println("----" + collect);
+//        PatentNoVO vo = new PatentNoVO();
+//        vo.setPatentNo("CN201910069334.7");
+//        PatentColumnDTO columnDTO = patentService.selectPatentDetail(vo);
+//        System.out.println(columnDTO);
+
+        String s = "asfassafsafe";
+        Map<Character, Long> map = s.chars().mapToObj(c->(char)c).collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
+        System.out.println(map);
+
+        List<String> stringList = Arrays.asList("apple", "apple", "balana", "origin", "apple", "balana");
+        Map<String, Long> collect = stringList.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
+        System.out.println("----" + collect);
     }
 
     @Test
@@ -472,4 +474,30 @@ public class EventServiceTests {
         System.out.println(ids);
     }
 
+    @Test
+    public void test102() {
+        String s = "a47efjerAksu&*s/e";
+        String s2 = s.replaceAll("[^a-zA-Z]", "").toLowerCase(Locale.ROOT);
+        String p = s.replace("/", "P");
+        System.out.println(p);
+        System.out.println("s2 = " + s2);
+        List<Character> list1 = Arrays.asList('a', 'b', 'c', 'd','e','f','g','h','i','j','k','l','m','n');
+        String s1 = s.toLowerCase(Locale.ROOT);
+        int length = s1.length();
+        List<Character> list = new ArrayList<>();
+        for (int i = 0; i < length; i++) {
+            char c = s1.charAt(i);
+            if (list1.contains(c)) {
+                list.add(c);
+            }
+        }
+        Collections.sort(list);
+        System.out.println(list);
+        String join = StringUtils.join(list, "");
+        System.out.println("------" + join);
+
+        Map<Character, Long> collect = list.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
+        System.out.println(collect);
+    }
+
 }