zero há 1 ano atrás
pai
commit
553ba61018

+ 17 - 0
src/main/java/cn/cslg/pas/common/dto/business/ClaimDetailDTO.java

@@ -0,0 +1,17 @@
+package cn.cslg.pas.common.dto.business;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+public class ClaimDetailDTO {
+
+    @JsonProperty("text_content")
+    private String textContent;
+
+    @JsonProperty("language")
+    private String language;
+
+    @JsonProperty("if_origin")
+    private Boolean ifOrigin;
+}

+ 9 - 0
src/main/java/cn/cslg/pas/common/dto/business/SelectClaimDTO.java

@@ -0,0 +1,9 @@
+package cn.cslg.pas.common.dto.business;
+
+import lombok.Data;
+
+@Data
+public class SelectClaimDTO {
+    //权利要求
+    private String claim;
+}

+ 43 - 0
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -5,7 +5,9 @@ import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.PatentDTO;
 //import cn.cslg.pas.common.dto.business.EsPatentFamilyDTO;
 import cn.cslg.pas.common.dto.PatentStarListDTO;
+import cn.cslg.pas.common.dto.business.ClaimDetailDTO;
 import cn.cslg.pas.common.dto.business.EsPatentFamilyDTO;
+import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.model.request.MapRequest;
 import cn.cslg.pas.common.model.request.OrderDTO;
 import cn.cslg.pas.common.model.request.QueryRequest;
@@ -27,7 +29,10 @@ import co.elastic.clients.elasticsearch.core.search.Hit;
 import co.elastic.clients.elasticsearch.core.search.HitsMetadata;
 import co.elastic.clients.elasticsearch.core.search.TotalHits;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -729,6 +734,44 @@ public class EsService {
         }
         return "";
     }
+
+    /**
+     * 查询权利要求
+     * @param patentNo
+     * @return
+     */
+    public SelectClaimDTO selectClaim(String patentNo) throws IOException {
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+        //原始数据
+        Query q = QueryBuilders.term(t -> t.field("claim.if_origin").value(true));
+        //申请号
+        Query q1 = QueryBuilders.term(t -> t.field("app_no").value(patentNo));
+        //公开号
+        Query q2 = QueryBuilders.term(t -> t.field("public_no").value(patentNo));
+        //授权号
+        Query q3 = QueryBuilders.term(t -> t.field("grant_no").value(patentNo));
+        Query query = QueryBuilders.bool(i -> i.should(q1, q2, q3));
+        Query bool = QueryBuilders.bool(i -> i.must(q,query));
+        builder.query(bool);
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        SelectClaimDTO dto = new SelectClaimDTO();
+        List<Hit<Patent>> hits = response.hits().hits();
+        long total = response.hits().total().value();
+        for (Hit<Patent> hit : hits) {
+            Patent esMess = hit.source();
+            dto.setClaim(JSON.toJSONString(esMess.getClaim()));
+//            if (esMess != null) {
+//                String claim = StringUtils.strip(JSON.toJSONString(esMess.getClaim()), "[]");
+//                ClaimDetailDTO claimDetailDTO = JSONObject.parseObject(claim, ClaimDetailDTO.class);
+//                if (claimDetailDTO.getIfOrigin()) {
+//                    dto.setClaim(claimDetailDTO.getTextContent());
+//                }
+//            }
+        }
+        return dto;
+    }
 }
 
 

+ 7 - 0
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -2,6 +2,7 @@ package cn.cslg.pas.service;
 
 import cn.cslg.pas.common.dto.PatentDTO;
 import cn.cslg.pas.common.dto.business.EsPatentFamilyDTO;
+import cn.cslg.pas.common.dto.business.SelectClaimDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.*;
 import cn.cslg.pas.common.utils.Response;
@@ -198,4 +199,10 @@ public class EventServiceTests {
         EsPatentFamilyDTO test = esService.addEsPatentFamily(stringList, "test");
         System.out.println(test);
     }
+
+    @Test
+    void test5() throws IOException {
+        SelectClaimDTO dto = esService.selectClaim("CN102324864A");
+        System.out.println(dto);
+    }
 }