Bladeren bron

6/6 修改装载优先权日

lwhhszx 1 jaar geleden
bovenliggende
commit
2b8cd70047

+ 18 - 45
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -587,37 +587,28 @@ public class EsPatentService {
         Long current = queryRequest.getCurrent();
         Long size = queryRequest.getSize();
         EsPatentCommonVO esPatentCommonVO = esService.tranPatentRequestToComVO(queryRequest);
-              esPatentCommonVO.setStartNum(current);
-              esPatentCommonVO.setEndNum(current+size);
-              esPatentCommonVO.setCurrent(null);
-              esPatentCommonVO.setSize(null);
+        esPatentCommonVO.setStartNum(current);
+        esPatentCommonVO.setEndNum(current + size);
+        esPatentCommonVO.setCurrent(null);
+        esPatentCommonVO.setSize(null);
         SearchRequest.Builder builder = esService.getCommonPatent(esPatentCommonVO);
         Records records = new Records();
-        if (esPatentCommonVO.getEsField() == null || esPatentCommonVO.getEsField().equals("")) {
-            SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-            List<Hit<Patent>> hits = response.hits().hits();
-            for (Hit<Patent> hit : hits) {
-                PatentPageMessageVO patentPageMessageVO = new PatentPageMessageVO();
-                patentPageMessageVO.setPatentNo(hit.source().getPatentNo());
-                patentPageMessageVOS.add(patentPageMessageVO);
-            }
-            records.setTotal(response.hits().total().value());
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        List<Hit<Patent>> hits = response.hits().hits();
+        for (Hit<Patent> hit : hits) {
+            PatentPageMessageVO patentPageMessageVO = new PatentPageMessageVO();
+            patentPageMessageVO.setPatentNo(hit.source().getPatentNo());
+            patentPageMessageVOS.add(patentPageMessageVO);
+        }
+        long total = 0L;
+        if (StringUtils.isNotEmpty(esPatentCommonVO.getEsField())) {
+            Aggregate aggregate = response.aggregations().get("count");
+            total = aggregate.cardinality().value();
         } else {
-            SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-            Aggregate statsAgg = response.aggregations().get("statsBucket");
-            Long total = statsAgg.statsBucket().count();
-            records.setTotal(total);
-            Aggregate agg = response.aggregations().get("Agg");
-            List<StringTermsBucket> termsBuckets = agg.sterms().buckets().array();
-
-            for (StringTermsBucket termsBucket : termsBuckets) {
-                PatentPageMessageVO patentPageMessageVO = new PatentPageMessageVO();
-                String key = termsBucket.key().stringValue();
-                PatentWithIdVO patentWithIdVO = esService.getPatentColumnDTOByGroup2(key, esPatentCommonVO.getProjectId(), esPatentCommonVO.getEsField());
-                patentPageMessageVO.setPatentNo(patentWithIdVO.getPatent().getPatentNo());
-                patentPageMessageVOS.add(patentPageMessageVO);
-            }
+            total = response.hits().total().value();
         }
+        records.setTotal(total);
+
         records.setSize(size);
         records.setCurrent(current);
         records.setData(patentPageMessageVOS);
@@ -804,8 +795,6 @@ public class EsPatentService {
         esPatentCommonVO.setStartNum(startNum);
         esPatentCommonVO.setEndNum(endNum);
         SearchRequest.Builder builder = esService.getCommonPatent(esPatentCommonVO);
-        if (esPatentCommonVO.getEsField() == null || esPatentCommonVO.getEsField().equals("")) {
-
             SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
             List<Hit<Patent>> hits = response.hits().hits();
             for (Hit<Patent> hit : hits) {
@@ -817,22 +806,6 @@ public class EsPatentService {
                     patentWithIdVOS.add(patentWithIdVO);
                 }
             }
-        } else {
-            SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-            Aggregate agg = response.aggregations().get("Agg");
-            List<StringTermsBucket> termsBuckets = agg.sterms().buckets().array();
-
-            for (StringTermsBucket termsBucket : termsBuckets) {
-                String key = termsBucket.key().stringValue();
-                PatentWithIdVO patentWithIdVO = esService.getPatentColumnDTOByGroup2(key, esPatentCommonVO.getProjectId(), esPatentCommonVO.getEsField());
-                if ((patentNos == null || patentNos.size() == 0) || (!patentNos.contains(patentWithIdVO.getPatent().getPatentNo()))) {
-                    PatentNoWithIdVO patentNoWithIdVO = new PatentNoWithIdVO();
-                    patentNoWithIdVO.setId(patentWithIdVO.getId());
-                    patentNoWithIdVO.setPatentNo(patentWithIdVO.getPatent().getPatentNo());
-                    patentWithIdVOS.add(patentNoWithIdVO);
-                }
-            }
-        }
         return patentWithIdVOS;
     }
 }

+ 27 - 2
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -319,6 +319,7 @@ public class EsService {
 
     /**
      * 获取公共排序方法
+     *
      * @param dtoList
      * @return
      */
@@ -834,9 +835,8 @@ public class EsService {
      * @throws IOException
      */
     public EsPatentFamilyDTO addEsPatentFamily(Patent patent, List<String> nos, String type) throws Exception {
-        EsPatentFamilyDTO esDTO = new EsPatentFamilyDTO();
 
-        List<String> absentList = new ArrayList<>();
+        EsPatentFamilyDTO esDTO = new EsPatentFamilyDTO();
 
         PatentFamilyMessage patentFamilyMessage = null;
         String id = "";
@@ -946,6 +946,11 @@ public class EsService {
             patentFamilyMessage.getPatent().addAll(patents);
 
         }
+        List<FamilyPatent> familyPatents1 =patentFamilyMessage.getPatent();
+        if(familyPatents1.size()!=0){
+            List<FamilyPatent> familyPatentsNew =this.getDistFamilyPatents(familyPatents1);
+            patentFamilyMessage.setPatent(familyPatentsNew);
+        }
         //当id不为null时
         if (!id.equals("")) {
 
@@ -961,9 +966,28 @@ public class EsService {
         }
         esDTO.setPatentFamilyId(id);
         esDTO.setFamilyNum(patentFamilyMessage.getPatent().size());
+
         return esDTO;
     }
 
+    private List<FamilyPatent> getDistFamilyPatents(List<FamilyPatent> familyPatents) {
+        List<FamilyPatent> familyPatentsNew = new ArrayList<>();
+        for (int i = 0; i < familyPatents.size(); i++) {
+            FamilyPatent familyPatent = familyPatents.get(i);
+            FamilyPatent familyPatentNew = familyPatentsNew.stream().filter(item ->(item.getPublicNo()!=null&& item.getPublicNo().equals(familyPatent.getPublicNo()))
+                    || (item.getGrantNo()!=null&&item.getGrantNo().equals(familyPatent.getGrantNo()))).findFirst().orElse(null);
+            if (familyPatentNew == null) {
+                familyPatentsNew.add(familyPatent);
+            } else {
+                if (familyPatentNew.getGrantNo() == null && familyPatent.getAppNo() == null) {
+                    familyPatentsNew.remove(familyPatentNew);
+                    familyPatentsNew.add(familyPatent);
+                }
+            }
+        }
+        return familyPatentsNew;
+    }
+
     /**
      * 添加同族
      *
@@ -1543,6 +1567,7 @@ public class EsService {
 
     /**
      * 装载条件
+     *
      * @param queryRequest
      * @return
      */