浏览代码

es查询接口

chenyi 1 年之前
父节点
当前提交
608787df17

+ 349 - 0
src/main/java/cn/cslg/pas/common/dto/PatentColumnDTO.java

@@ -0,0 +1,349 @@
+package cn.cslg.pas.common.dto;
+
+import cn.cslg.pas.domain.es.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PatentColumnDTO {
+    /**
+     * 专利号
+     */
+    private String patentNo;
+
+    /**
+     * 标题
+     */
+    private List<Text> title;
+
+    /**
+     * 公开说明书文本
+     */
+    private List<Text> publicFullText;
+
+    /**
+     * 授权说明书文本
+     */
+    private List<Text> grantFullText;
+
+
+    /**
+     * 摘要
+     */
+    private List<Text> abstractStr;
+
+    /**
+     * 申请人地址
+     */
+    private PersonAddress applicantAddr;
+
+    /**
+     * 权利人地址
+     */
+    private PersonAddress rightHolderAddr;
+    /**
+     * 审查员
+     */
+    private String examiner;
+
+    /**
+     * 助理审查员
+     */
+    private String aidExaminer;
+
+    /**
+     * 实审日
+     */
+    private Integer examinationDate;
+
+    /**
+     * 公开号
+     */
+    private String publicNo;
+
+    /**
+     * 公开日
+     */
+    private Integer publicDate;
+
+    /**
+     * 申请号
+     */
+    private String appNo;
+
+    /**
+     * 申请日
+     */
+    private Integer appDate;
+
+    /**
+     * 授权号
+     */
+    private String grantNo;
+
+    /**
+     * 授权日
+     */
+    private String grantDate;
+
+    /**
+     * 优先权
+     */
+    private List<Priorities> priorities;
+
+    /**
+     * 申请国家
+     */
+    private String appCountry;
+
+    /**
+     * IPC分类号(主)
+     */
+    private PatentClassify mipc;
+
+    /**
+     * ipc集合
+     */
+    private List<PatentClassify> ipc;
+
+    /**
+     * CPC分类号(主)
+     */
+    private PatentClassify mcpc;
+
+    /**
+     * cpc集合
+     */
+    private List<PatentClassify> cpc;
+
+    /**
+     * UPC分类号(主)
+     */
+    private PatentClassify mupc;
+
+
+    /**
+     * UPC集合
+     */
+    private List<PatentClassify> upc;
+
+    /**
+     * UPC分类号(主)
+     */
+    private PatentClassify mloc;
+
+
+    /**
+     * UPC集合
+     */
+    private List<PatentClassify> loc;
+
+    /**
+     * 专利状态
+     */
+    private String simpleStatus;
+
+    /**
+     * 类型
+     */
+    private String patentType;
+
+
+    /**
+     * 权利要求
+     */
+    private List<Text> claim;
+
+    /**
+     * pct申请号
+     */
+    private Integer pctAppDate;
+
+    /**
+     * pct申请日
+     */
+    private String pctAppNo;
+
+    /**
+     * pct进入日期
+     */
+    private Integer pctEnterDate;
+
+    /**
+     * pct公开日
+     */
+    private Integer pctPubDate;
+
+    /**
+     * pct公开号
+     */
+    private String pctPubNo;
+
+    /**
+     * wo指定国
+     */
+    private String wo;
+
+    /**
+     * ep申请号
+     */
+    private String epNo;
+
+    /**
+     * ep申请日
+     */
+    private String epDate;
+
+
+    /**
+     * EP指定国状态
+     */
+    private String epCountry;
+
+    /**
+     * 申请人
+     */
+    private List<PatentPerson> applicant;
+
+    /**
+     * 标准申请人
+     */
+    private List<PatentPerson> standerApplicant;
+
+    /**
+     * 合并申请人
+     */
+    private List<PatentMergePerson> mergeApplicant;
+
+    /**
+     * 申请人数量
+     */
+    private Integer applicantsNum;
+
+    /**
+     * 权利人
+     */
+    private List<PatentPerson> rightHolder;
+    /**
+     * 标准权利人
+     */
+    private List<PatentPerson> standerRightHolder;
+
+    /**
+     * 合并权利人
+     */
+    private List<PatentMergePerson> mergeRightHolder;
+
+    /**
+     * 权利人数量
+     */
+    private Integer rightHolderNum;
+
+    /**
+     * 发明人
+     */
+    private List<PatentPerson> inventor;
+    /**
+     * 合并发明人
+     */
+    private List<PatentMergePerson> mergeInventor;
+
+
+    /**
+     * 发明人数量
+     */
+    private Integer inventor_num;
+
+    /**
+     * 代理机构
+     */
+    private String agency;
+
+    /**
+     * 代理机构编号
+     */
+    private String agencyNo;
+
+    /**
+     * 代理人
+     */
+    private List<String> agent;
+
+    /**
+     * 引用专利数量
+     */
+    private Integer quotePatentNoNum;
+
+    /**
+     * 被引用专利数量
+     */
+    private Integer quotedPatentNoNum;
+
+    /**
+     * 自定义栏位
+     */
+    List<ESCustomField> ESCustomField;
+    /**
+     * 扩展同族数量
+     */
+    private Integer patsnapFamilyNum;
+    /**
+     * 扩展同族id
+     */
+    private String patsnapFamilyId;
+
+    /**
+     * INPADOC同族数量
+     */
+    private Integer inpadocFamilyNum;
+    /**
+     * INPADOC同族id
+     */
+    private String inpadocFamilyId;
+
+    /**
+     * 简单同族数量
+     */
+    private Integer simpleFamilyNum;
+    /**
+     * 简单同族id
+     */
+    private String simpleFamilyId;
+
+    /**
+     * 专题库或报告id
+     */
+    private Integer projectId;
+
+    /**
+     * 专题库或报告id
+     */
+    private String productId;
+
+    /**
+     * 专题库或报告的任务
+     */
+    EsProjectTask projectTask;
+
+    /**
+     * 导入任务
+     */
+    ESImportTask importTask;
+
+    /**
+     * 法律状态
+     */
+    List<String> legalStatus;
+
+    /**
+     * 标注
+     */
+    List<Marking> markings;
+
+    PatentJoin patentJoin;
+}

+ 4 - 2
src/main/java/cn/cslg/pas/common/dto/PatentDTO.java

@@ -6,7 +6,9 @@ import lombok.Data;
 import java.util.List;
 
 @Data
-public class PatentDTO{
+public class PatentDTO {
+
     private Long total;
-    private List<Patent> patents;
+
+    private List<PatentColumnDTO> patents;
 }

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

@@ -2,6 +2,7 @@ package cn.cslg.pas.controller;
 
 import cn.cslg.pas.common.core.base.Constants;
 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.factorys.businessFactory.Business;

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

@@ -54,12 +54,12 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> implements
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
-        PatentDTO patents = esService.esSearch(queryRequest);
+        PatentDTO patentDTO = esService.esSearch(queryRequest);
         Records records = new Records();
         records.setCurrent(queryRequest.getCurrent());
         records.setSize(queryRequest.getSize());
-        records.setData(patents);
-        records.setTotal(patents.getTotal());
+        records.setData(patentDTO.getPatents());
+        records.setTotal(patentDTO.getTotal());
         return records;
     }
 

+ 12 - 6
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -1,5 +1,6 @@
 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.model.request.MapRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
@@ -116,17 +117,19 @@ public class EsService {
             searchCondition = ((StringRequest) queryRequest).getSearchQuery();
         } else if (queryRequest instanceof MapRequest) {
             Map<String, Object> map = ((MapRequest) queryRequest).getSearchQuery();
+            StringBuilder stringBuilder = new StringBuilder();
             for (String key : map.keySet()) {
                 Object value = map.get(key);
-                if (searchCondition != "") {
-                    searchCondition = "AND" + key + "=" + value;
+                if (!"".contentEquals(stringBuilder)) {
+                    stringBuilder = stringBuilder.append(" AND ").append(key).append("=").append(value);
                 } else {
-                    searchCondition = key + "=" + value;
+                    stringBuilder = stringBuilder.append(key).append("=").append(value);
                 }
             }
+            searchCondition = stringBuilder.toString();
         }
         if (projectId != null) {
-            if (searchCondition != null && searchCondition != "") {
+            if (searchCondition != null && !"".equals(searchCondition.trim())) {
                 searchCondition = "projectId = " + projectId + " AND " + searchCondition;
             } else {
                 searchCondition = "projectId = " + projectId;
@@ -152,12 +155,15 @@ public class EsService {
                         .field("public_date").order(SortOrder.Desc)));
 
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-        List<Patent> list = new ArrayList<>();
+        List<PatentColumnDTO> list = new ArrayList<>();
         List<Hit<Patent>> hits = response.hits().hits();
         long total = response.hits().total().value();
         for (Hit<Patent> hit : hits) {
             Patent esMess = hit.source();
-            list.add(esMess);
+            PatentColumnDTO columnDTO = new PatentColumnDTO();
+//            columnDTO.setPatentNo(esMess.getPatentNo());
+            BeanUtils.copyProperties(esMess, columnDTO);
+            list.add(columnDTO);
         }
         dto.setTotal(total);
         dto.setPatents(list);

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

@@ -18,7 +18,9 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.File;
 import java.io.FileInputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -107,6 +109,14 @@ public class EventServiceTests {
 
     @Test
     void test11() throws Exception {
+//        MapRequest mapRequest = new MapRequest();
+//        Map<String, Object> map = new HashMap<>();
+//        map.put("titleTextContent", "电子");
+//        map.put("patentNo", "CN201199922Y");
+//        mapRequest.setSearchQuery(map);
+//        mapRequest.setCurrent(0L);
+//        mapRequest.setSize(50L);
+//        mapRequest.setProjectId(1);
         StringRequest stringRequest = new StringRequest();
         stringRequest.setSearchQuery("titleTextContent=电子");
         stringRequest.setCurrent(0L);