Explorar o código

Merge remote-tracking branch 'origin/master'

lwhhszx hai 1 ano
pai
achega
a286145ccf

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

@@ -35,7 +35,7 @@ public class ChildNestedAnalyseBuilder implements IEsCountAnalysisBuilder{
             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())
+                    .field(field).size(100).build())
                     .aggregations(new HashMap() {{
                         put("filter_agg", filter);
                     }}).build();

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

@@ -38,7 +38,7 @@ public class NestedCountAnalysisBuilder implements IEsCountAnalysisBuilder {
             Query query = QueryBuilders.wildcard(i -> i.field(field).value(s));
             Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
             terms = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                    .field(field).size(topN).build())
+                    .field(field).size(100).build())
                     .aggregations(new HashMap() {{
                         put("filter_agg", filter);
                     }}).build();

+ 13 - 7
src/main/java/cn/cslg/pas/factorys/EsCountAnalyseBuilderFactory/PrioritiesCountAnalysisBuilder.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.factorys.EsCountAnalyseBuilderFactory;
 import co.elastic.clients.elasticsearch._types.aggregations.*;
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
+import co.elastic.clients.json.JsonData;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
@@ -32,12 +33,17 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
     public Aggregation createCountAnalyseAgg() throws Exception {
         Aggregation aggregation = null;
         if (StringUtils.isNotEmpty(valueOne) && StringUtils.isNotEmpty(valueTwo)) {
+            SimpleDateFormat format = new SimpleDateFormat("yyyy");
+            Date beginDate = format.parse(valueOne);
+            long beginTime = beginDate.getTime();
             String end = String.valueOf(Integer.parseInt(valueTwo) + 1);
-            Query query = QueryBuilders.range(j -> j.field(field).from(valueOne).to(end).format("yyyy"));
+            Date endDate = format.parse(end);
+            long endTime = endDate.getTime();
+            Query query = QueryBuilders.range(j -> j.field(field).gte(JsonData.of(beginTime)).lt(JsonData.of(endTime)));
             Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
             aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
                     .field(field).format("yyyy")
-                    .calendarInterval(CalendarInterval.Year).build())
+                    .calendarInterval(CalendarInterval.Year).timeZone("+08:00").build())
                     .aggregations(new HashMap() {{
                         put("filter_agg", filter);
                     }}).build();
@@ -164,9 +170,9 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
             aggregation = AggregationBuilders.dateRange(i -> i.field(field).format("yyyy-MM").ranges(rangeExpressions));
         } else if (StringUtils.isNotEmpty(format) && CollectionUtils.isEmpty(values)) {
             if (format.equals("年")) {
-                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year));
+                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year).timeZone("+08:00"));
             } else if (format.equals("半年")) {
-                Aggregation halfYearAgg = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month));
+                Aggregation halfYearAgg = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month).timeZone("+08:00"));
                 aggregation = new Aggregation.Builder().dateHistogram(new DateHistogramAggregation.Builder()
                         .field(field).format("yyyy")
                         .calendarInterval(CalendarInterval.Year).build())
@@ -174,12 +180,12 @@ public class PrioritiesCountAnalysisBuilder implements IEsCountAnalysisBuilder{
                             put("halfYearAgg", halfYearAgg);
                         }}).build();
             } else if (format.equals("季")) {
-                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Quarter));
+                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Quarter).timeZone("+08:00"));
             } else if (format.equals("月")) {
-                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month));
+                aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy-MM").calendarInterval(CalendarInterval.Month).timeZone("+08:00"));
             }
         } else {
-            aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year));
+            aggregation = AggregationBuilders.dateHistogram(i -> i.field(field).format("yyyy").calendarInterval(CalendarInterval.Year).timeZone("+08:00"));
 
         }
 

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

@@ -37,7 +37,7 @@ public class TermsCountAnalysisBuilder implements IEsCountAnalysisBuilder {
             Query query = QueryBuilders.wildcard(i -> i.field(field).value(s));
             Aggregation filter = AggregationBuilders.filter(n -> n.bool(k -> k.must(query)));
             aggregation = new Aggregation.Builder().terms(new TermsAggregation.Builder()
-                    .field(field).size(topN).build())
+                    .field(field).size(100).build())
                     .aggregations(new HashMap() {{
                         put("filter_agg", filter);
                     }}).build();

+ 9 - 3
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -289,6 +289,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         Query bool = QueryBuilders.bool(i -> i.must(q, query));
         builder.query(bool);
 
+        builder.trackTotalHits(i -> i.enabled(true));
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
         List<Hit<Patent>> hits = response.hits().hits();
         Map<String, List<PatentMergePerson>> map = new HashMap<>();
@@ -1070,13 +1071,18 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
                         Map<String, List<PatentMergePerson>> rightMap = this.getChildMergePerson(id, projectId, "merge_right_holder");
                         if (!CollectionUtils.isEmpty(rightMap)) {
                             for (String rightId : rightMap.keySet()) {
-                                if (CollectionUtils.isEmpty(nameDatas)) {
-                                    this.delSingleMerge(rightId, type, name);
-                                }
+//                                if (CollectionUtils.isEmpty(nameDatas)) {
+//                                    this.delSingleMerge(rightId, type, name);
+//                                }
 
                                 ArrayList<PatentMergePerson> rightMergeList = new ArrayList<>(mergePersonList);
                                 List<PatentMergePerson> rightList = rightMap.get(rightId);
                                 rightMergeList.addAll(rightList);
+                                if (CollectionUtils.isEmpty(nameDatas)) {
+                                    if (!CollectionUtils.isEmpty(rightMergeList)) {
+                                        rightMergeList.removeIf(right -> right.getName().equals(name));
+                                    }
+                                }
                                 //添加子文档
                                 Patent newPatent = new Patent();
                                 PatentJoin patentJoin = new PatentJoin();

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

@@ -204,6 +204,8 @@ public class EsCountService {
             } else {
                 builder.aggregations("Agg", aggregation);
             }
+            //解除最大条数限制
+            builder.trackTotalHits(i -> i.enabled(true));
             SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
             Aggregate agg = response.aggregations().get("Agg");
             if (query != null) {

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

@@ -334,7 +334,10 @@ public class EsPatentService {
         String guids = fileManagerService.getPatentPictureGuids(appNo);
         if (StringUtils.isNotEmpty(guids)) {
             JSONObject jsonObject = JSONObject.parseObject(guids);
-            list = JSONArray.parseArray(jsonObject.get("data").toString(), String.class);
+            String data = jsonObject.get("data").toString();
+            if (StringUtils.isNotEmpty(data)) {
+                list = JSONArray.parseArray(data, String.class);
+            }
         }
         return list;
     }