zero преди 1 година
родител
ревизия
9b4d7a9268

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

@@ -279,9 +279,12 @@ public class EsCountService {
         List<String> list = new ArrayList<>();
         for (StringTermsBucket termsBucket : termsBuckets) {
             String key = termsBucket.key().stringValue();
-            PatentColumnDTO columnDTO = esService.getPatentColumnDTO(key, projectId, esField);
+            PatentColumnDTO columnDTO = esService.getPatentColumnDTOByGroup(key, projectId, esField);
             list.add(columnDTO.getPatentId());
         }
+        if (CollectionUtils.isEmpty(list)) {
+            list.add("159753");
+        }
         result = esService.appendIds(list);
         return result;
     }

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

@@ -355,7 +355,7 @@ public class EsCustomFieldService {
             List<StringTermsBucket> termsBuckets = agg.sterms().buckets().array();
             for (StringTermsBucket termsBucket : termsBuckets) {
                 String key = termsBucket.key().stringValue();
-                PatentColumnDTO columnDTO = esService.getPatentColumnDTO(key, projectId, esField);
+                PatentColumnDTO columnDTO = esService.getPatentColumnDTOByGroup(key, projectId, esField);
                 patentNos.add(columnDTO.getPatentNo());
             }
         } else {

+ 7 - 4
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -214,7 +214,7 @@ public class EsService {
             List<StringTermsBucket> termsBuckets = agg.sterms().buckets().array();
             for (StringTermsBucket termsBucket : termsBuckets) {
                 String key = termsBucket.key().stringValue();
-                PatentColumnDTO columnDTO = this.getPatentColumnDTO(key, projectId, esField);
+                PatentColumnDTO columnDTO = this.getPatentColumnDTOByGroup(key, projectId, esField);
                 list.add(columnDTO);
             }
         } else {
@@ -382,13 +382,16 @@ public class EsService {
     }
 
     //封装专利清单的同族分组
-    public PatentColumnDTO getPatentColumnDTO(String key, Integer projectId, String field) throws Exception {
+    public PatentColumnDTO getPatentColumnDTOByGroup(String key, Integer projectId, String field) throws Exception {
         PatentColumnDTO dto = new PatentColumnDTO();
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
         builder.index("patent");
-        Query query = QueryBuilders.term(i -> i.field(field).value(key));
-        builder.query(query);
+        Query query = QueryBuilders.term(i -> i.field("project_id").value(projectId));
+        Query q1 = QueryBuilders.hasChild(i -> i.type("project").query(query));
+        Query q2 = QueryBuilders.term(i -> i.field(field).value(key));
+        Query bool = QueryBuilders.bool(i -> i.must(q1, q2));
+        builder.query(bool);
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
         List<Hit<Patent>> hits = response.hits().hits();
         if (!CollectionUtils.isEmpty(hits)) {

Файловите разлики са ограничени, защото са твърде много
+ 5 - 1
src/test/java/cn/cslg/pas/service/EventServiceTests.java