zero 1 rok temu
rodzic
commit
c560a5362f

+ 10 - 0
src/main/java/cn/cslg/pas/common/vo/business/PatentNoVO.java

@@ -0,0 +1,10 @@
+package cn.cslg.pas.common.vo.business;
+
+import lombok.Data;
+
+@Data
+public class PatentNoVO {
+
+    //专利号
+    private String patentNo;
+}

+ 9 - 0
src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -1,12 +1,14 @@
 package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.model.request.MapRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.business.EsCountVO;
+import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.factorys.businessFactory.Business;
 import cn.cslg.pas.factorys.businessFactory.BusinessFactory;
 import cn.cslg.pas.service.business.es.EsCountService;
@@ -44,4 +46,11 @@ public class PatentController {
         return Response.success(dto);
     }
 
+    @Operation(summary = "查询专利详情")
+    @PostMapping("/selectPatentDetail")
+    public Response selectPatentDetail(@RequestBody PatentNoVO vo) throws Exception {
+        PatentColumnDTO dto = esCountService.selectPatentDetail(vo);
+        return Response.success(dto);
+    }
+
 }

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

@@ -1,11 +1,13 @@
 package cn.cslg.pas.service.business.es;
 
+import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.PatentDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
 import cn.cslg.pas.common.dto.business.EsCountDetailDTO;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.vo.EsConfigVO;
 import cn.cslg.pas.common.vo.business.EsCountVO;
+import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.domain.es.Patent;
 import cn.cslg.pas.factorys.EsBuilderFactory.IQueryBuilder;
 import cn.cslg.pas.factorys.EsCountBuilderFactory.EsCountBuilderFactory;
@@ -13,18 +15,23 @@ import cn.cslg.pas.factorys.EsCountBuilderFactory.IEsCountBuilder;
 import cn.cslg.pas.service.business.CommonService;
 import co.elastic.clients.elasticsearch.ElasticsearchClient;
 import co.elastic.clients.elasticsearch._types.aggregations.*;
+import co.elastic.clients.elasticsearch._types.query_dsl.HasChildQuery;
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
 import co.elastic.clients.elasticsearch.core.SearchRequest;
 import co.elastic.clients.elasticsearch.core.SearchResponse;
+import co.elastic.clients.elasticsearch.core.search.Hit;
 import co.elastic.clients.json.JsonData;
 import com.alibaba.fastjson.JSON;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.data.elasticsearch.client.elc.ElasticsearchAggregations;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
@@ -61,7 +68,7 @@ public class EsCountService {
             Integer topN = vo.getTopN();
 
             SearchRequest.Builder builder = new SearchRequest.Builder();
-            builder.index("patent_v1");
+            builder.index("patent");
             IEsCountBuilder iEsCountBuilder = null;
             String json = CommonService.readJsonFile("esCount.json");
             List<EsConfigVO> esConfigVOS = JSON.parseArray(json, EsConfigVO.class);
@@ -140,4 +147,28 @@ public class EsCountService {
         esCountDTO.setDetailDTOS(detailDTOS);
         return esCountDTO;
     }
+
+    /**
+     * 根据专利号查询专利详情
+     * @param vo
+     * @return
+     * @throws IOException
+     */
+    public PatentColumnDTO selectPatentDetail(PatentNoVO vo) throws IOException {
+        PatentColumnDTO dto = new PatentColumnDTO();
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+        Query q = QueryBuilders.term(i -> i.field("patent_no.keyword").value(vo.getPatentNo()));
+        Query query = QueryBuilders.bool(i -> i.must(q));
+        builder.query(query);
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        List<PatentColumnDTO> list = new ArrayList<>();
+        List<Hit<Patent>> hits = response.hits().hits();
+        for (Hit<Patent> hit : hits) {
+            Patent esMess = hit.source();
+            BeanUtils.copyProperties(esMess, dto);
+        }
+        return dto;
+    }
 }

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

@@ -1,5 +1,6 @@
 package cn.cslg.pas.service;
 
+import cn.cslg.pas.common.dto.PatentColumnDTO;
 import cn.cslg.pas.common.dto.PatentDTO;
 import cn.cslg.pas.common.dto.business.EsCountDTO;
 import cn.cslg.pas.common.dto.business.EsPatentFamilyDTO;
@@ -8,6 +9,7 @@ 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.vo.business.EsCountVO;
+import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.controller.EventController;
 import cn.cslg.pas.controller.PatentController;
 import cn.cslg.pas.domain.es.FamilyPatent;
@@ -213,6 +215,7 @@ public class EventServiceTests {
         SelectClaimDTO dto = esService.selectClaim("CN102324864A");
         System.out.println(dto);
     }
+
     @Test
     void test8() throws Exception {
         List<EsCountVO> countVOS = new ArrayList<>();
@@ -235,4 +238,12 @@ public class EventServiceTests {
         System.out.println(esCountDTO);
 
     }
+
+    @Test
+    void test9() throws IOException {
+        PatentNoVO vo = new PatentNoVO();
+        vo.setPatentNo("CN201910069334.7");
+        PatentColumnDTO columnDTO = esCountService.selectPatentDetail(vo);
+        System.out.println(columnDTO);
+    }
 }