zero 1 ano atrás
pai
commit
9b7f2df863

+ 6 - 0
src/main/java/cn/cslg/pas/common/core/base/IfConstant.java

@@ -0,0 +1,6 @@
+package cn.cslg.pas.common.core.base;
+
+public class IfConstant {
+    public static final Integer NO = 0;
+    public static final Integer YES = 1;
+}

+ 4 - 2
src/main/java/cn/cslg/pas/common/model/request/OrderDTO.java

@@ -4,6 +4,8 @@ import lombok.Data;
 
 @Data
 public class OrderDTO {
- private String orderBy;
- private Integer orderType;
+    //排序字段
+    private String orderBy;
+    //排序顺序 0=升序  1=降序
+    private Integer orderType;
 }

+ 9 - 1
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/MatchPhaseQueryBuilder.java

@@ -1,14 +1,22 @@
 package cn.cslg.pas.factorys.EsBuilderFactory;
 
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
 import org.springframework.stereotype.Component;
 
+import java.text.ParseException;
+
 @Component
-public class MatchPhaseQueryBuilder {
+public class MatchPhaseQueryBuilder implements IQueryBuilder{
     private String field = "";
     private String value = "";
     private String operator = "";
     public String path = "";
 
+    @Override
+    public Query creteQuery() throws ParseException {
+        return null;
+    }
+
     public String getField() {
         return field;
     }

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

@@ -1,8 +1,10 @@
 package cn.cslg.pas.service.business.es;
 
+import cn.cslg.pas.common.core.base.IfConstant;
 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.OrderDTO;
 import cn.cslg.pas.common.model.request.QueryRequest;
 import cn.cslg.pas.common.model.request.StringRequest;
 import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
@@ -23,6 +25,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -113,6 +116,7 @@ public class EsService {
         Integer projectId = queryRequest.getProjectId();
         Long current = queryRequest.getCurrent();
         Long size = queryRequest.getSize();
+        //判断表达式
         if (queryRequest instanceof StringRequest) {
             searchCondition = ((StringRequest) queryRequest).getSearchQuery();
         } else if (queryRequest instanceof MapRequest) {
@@ -144,15 +148,31 @@ public class EsService {
         //3. 从es中检索数据
         Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent");
         //4. 返回数据
-        //分页
-        if (current != null && size != null) {
-            builder.from(current.intValue()).size(size.intValue());
-        }
         builder.query(q);
         //排序
-        builder.sort(sortOptionsBuilder -> sortOptionsBuilder
-                .field(fieldSortBuilder -> fieldSortBuilder
-                        .field("public_date").order(SortOrder.Desc)));
+        List<OrderDTO> dtoList = queryRequest.getOrderDTOList();
+        if (!CollectionUtils.isEmpty(dtoList)) {
+            for (OrderDTO orderDTO : dtoList) {
+                if (orderDTO.getOrderType().equals(IfConstant.NO)) {
+                    builder.sort(sortOptionsBuilder -> sortOptionsBuilder
+                            .field(fieldSortBuilder -> fieldSortBuilder
+                                    .field(orderDTO.getOrderBy()).order(SortOrder.Asc)));
+                } else {
+                    builder.sort(sortOptionsBuilder -> sortOptionsBuilder
+                            .field(fieldSortBuilder -> fieldSortBuilder
+                                    .field(orderDTO.getOrderBy()).order(SortOrder.Desc)));
+                }
+            }
+        } else {
+            builder.sort(sortOptionsBuilder -> sortOptionsBuilder
+                    .field(fieldSortBuilder -> fieldSortBuilder
+                            .field("public_date").order(SortOrder.Desc)));
+        }
+
+        //分页
+        if (current > 0 && size > 0) {
+            builder.from((current.intValue()-1)*size.intValue()).size(size.intValue());
+        }
 
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
         List<PatentColumnDTO> list = new ArrayList<>();

+ 125 - 53
src/main/resources/jsons/patent.json

@@ -5,7 +5,43 @@
     "value": "patentNo",
     "field": "patentNo",
     "esField": "patent_no",
-    "esClass": "keyWordQueryBuilder",
+    "esClass": "wildcardQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "ifAsCondition": "true"
+  },
+  {
+    "name": "申请号",
+    "type": "String",
+    "value": "AN",
+    "field": "AN",
+    "esField": "app_no",
+    "esClass": "wildcardQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "ifAsCondition": "true"
+  },
+  {
+    "name": "公开号",
+    "type": "String",
+    "value": "PN",
+    "field": "PN",
+    "esField": "public_no",
+    "esClass": "wildcardQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "ifAsCondition": "true"
+  },
+  {
+    "name": "授权号",
+    "type": "String",
+    "value": "GN",
+    "field": "GN",
+    "esField": "grant_no",
+    "esClass": "wildcardQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
@@ -14,8 +50,8 @@
   {
     "name": "公开日",
     "type": "String",
-    "value": "publicDate",
-    "field": "publicDate",
+    "value": "PD",
+    "field": "PD",
     "esField": "public_date",
     "esClass": "dateQueryBuilder",
     "ifSearch": "false",
@@ -26,8 +62,8 @@
   {
     "name": "申请日",
     "type": "String",
-    "value": "appDate",
-    "field": "appDate",
+    "value": "AD",
+    "field": "AD",
     "esField": "app_date",
     "esClass": "dateQueryBuilder",
     "ifSearch": "false",
@@ -38,8 +74,8 @@
   {
     "name": "授权日",
     "type": "String",
-    "value": "grantDate",
-    "field": "grantDate",
+    "value": "GD",
+    "field": "GD",
     "esField": "grant_date",
     "esClass": "dateQueryBuilder",
     "ifSearch": "false",
@@ -48,7 +84,7 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "家族",
+    "name": "家族数量",
     "type": "String",
     "value": "simpleFamilyNum",
     "field": "simpleFamilyNum",
@@ -74,7 +110,7 @@
   {
     "name": "摘要",
     "type": "String",
-    "value": "abstractStr",
+    "value": "TX",
     "field": "abstractStr",
     "esField": "abstract_str",
     "esClass": "matchQueryBuilder",
@@ -86,8 +122,8 @@
   {
     "name": "摘要内容",
     "type": "String",
-    "value": "abstractStrTextContent",
-    "field": "abstractStrTextContent",
+    "value": "AB",
+    "field": "AB",
     "esField": "abstract_str.text_content",
     "esClass": "nestedQueryBuilder",
     "ifSearch": "false",
@@ -98,8 +134,8 @@
   {
     "name": "标题",
     "type": "String",
-    "value": "title",
-    "field": "title",
+    "value": "TX",
+    "field": "TX",
     "esField": "title",
     "esClass": "matchQueryBuilder",
     "ifSearch": "false",
@@ -110,8 +146,8 @@
   {
     "name": "标题内容",
     "type": "String",
-    "value": "titleTextContent",
-    "field": "titleTextContent",
+    "value": "TI",
+    "field": "TI",
     "esField": "title.text_content",
     "esClass": "nestedQueryBuilder",
     "ifSearch": "false",
@@ -134,8 +170,8 @@
   {
     "name": "申请人",
     "type": "String",
-    "value": "applicant",
-    "field": "applicant",
+    "value": "PA",
+    "field": "PA",
     "esField": "applicant",
     "esClass": "nestedQueryBuilder",
     "ifSearch": "false",
@@ -146,8 +182,8 @@
   {
     "name": "发明人",
     "type": "String",
-    "value": "inventor",
-    "field": "inventor",
+    "value": "IN",
+    "field": "IN",
     "esField": "inventor",
     "esClass": "nestedQueryBuilder",
     "ifSearch": "false",
@@ -158,8 +194,8 @@
   {
     "name": "权利人",
     "type": "String",
-    "value": "rightHolder",
-    "field": "rightHolder",
+    "value": "PE",
+    "field": "PE",
     "esField": "right_holder",
     "esClass": "nestedQueryBuilder",
     "ifSearch": "false",
@@ -194,8 +230,8 @@
   {
     "name": "代理机构",
     "type": "String",
-    "value": "agency",
-    "field": "agency",
+    "value": "AGN",
+    "field": "AGN",
     "esField": "agency",
     "esClass": "matchQueryBuilder",
     "ifSearch": "false",
@@ -204,12 +240,12 @@
     "ifAsCondition": "true"
   },
   {
-    "name": "代理人",
+    "name": "代理人名称",
     "type": "String",
     "value": "agent",
     "field": "agent",
     "esField": "agent",
-    "esClass": "keyWordQueryBuilder",
+    "esClass": "matchQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
@@ -218,8 +254,8 @@
   {
     "name": "引用专利数量",
     "type": "Integer",
-    "value": "quotePatentNoNum",
-    "field": "quotePatentNoNum",
+    "value": "CC",
+    "field": "CC",
     "esField": "quote_patent_no_num",
     "esClass": "numberQueryBuilder",
     "ifSearch": "false",
@@ -254,8 +290,8 @@
   {
     "name": "申请人地址",
     "type": "String",
-    "value": "applicantAddr",
-    "field": "applicantAddr",
+    "value": "DZ",
+    "field": "DZ",
     "esField": "applicant_addr",
     "esClass": "matchQueryBuilder",
     "ifSearch": "false",
@@ -276,11 +312,23 @@
     "ifAsCondition": "true"
   },
   {
+    "name": "申请人国家",
+    "type": "String",
+    "value": "CO",
+    "field": "CO",
+    "esField": "applicant_addr.country",
+    "esClass": "keyWordQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "ifAsCondition": "true"
+  },
+  {
     "name": "申请人省份",
     "type": "String",
     "value": "appProvince",
     "field": "appProvince",
-    "esField": "province",
+    "esField": "applicant_addr.province",
     "esClass": "matchPhasePrefixQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
@@ -292,7 +340,7 @@
     "type": "String",
     "value": "appCity",
     "field": "appCity",
-    "esField": "city",
+    "esField": "applicant_addr.city",
     "esClass": "matchPhasePrefixQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
@@ -304,7 +352,7 @@
     "type": "String",
     "value": "appDistrict",
     "field": "appDistrict",
-    "esField": "district",
+    "esField": "applicant_addr.district",
     "esClass": "matchPhasePrefixQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
@@ -324,11 +372,23 @@
     "ifAsCondition": "true"
   },
   {
+    "name": "权利人国家",
+    "type": "String",
+    "value": "rightCountry",
+    "field": "rightCountry",
+    "esField": "right_holder_addr.country",
+    "esClass": "keyWordQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "ifAsCondition": "true"
+  },
+  {
     "name": "权利人省份",
     "type": "String",
     "value": "rightProvince",
     "field": "rightProvince",
-    "esField": "province",
+    "esField": "right_holder_addr.province",
     "esClass": "matchPhasePrefixQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
@@ -340,7 +400,7 @@
     "type": "String",
     "value": "rightCity",
     "field": "rightCity",
-    "esField": "city",
+    "esField": "right_holder_addr.city",
     "esClass": "matchPhasePrefixQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
@@ -352,7 +412,7 @@
     "type": "String",
     "value": "rightDistrict",
     "field": "rightDistrict",
-    "esField": "district",
+    "esField": "right_holder_addr.district",
     "esClass": "matchPhasePrefixQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
@@ -362,8 +422,8 @@
   {
     "name": "IPC分类号",
     "type": "String",
-    "value": "mipc",
-    "field": "mipc",
+    "value": "MC",
+    "field": "MC",
     "esField": "mipc",
     "esClass": "matchPhasePrefixQueryBuilder",
     "ifSearch": "false",
@@ -376,8 +436,8 @@
     "type": "String",
     "value": "mipcLevel1",
     "field": "mipcLevel1",
-    "esField": "level1",
-    "esClass": "matchPhasePrefixQueryBuilder",
+    "esField": "mipc.level1",
+    "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
@@ -388,8 +448,8 @@
     "type": "String",
     "value": "mipcLevel2",
     "field": "mipcLevel2",
-    "esField": "level2",
-    "esClass": "matchPhasePrefixQueryBuilder",
+    "esField": "mipc.level2",
+    "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
@@ -400,8 +460,8 @@
     "type": "String",
     "value": "mipcLevel3",
     "field": "mipcLevel3",
-    "esField": "level3",
-    "esClass": "matchPhasePrefixQueryBuilder",
+    "esField": "mipc.level3",
+    "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
@@ -412,8 +472,8 @@
     "type": "String",
     "value": "mipcLevel4",
     "field": "mipcLevel4",
-    "esField": "level4",
-    "esClass": "matchPhasePrefixQueryBuilder",
+    "esField": "mipc.level4",
+    "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
@@ -424,8 +484,8 @@
     "type": "String",
     "value": "mipcLevel5",
     "field": "mipcLevel5",
-    "esField": "level5",
-    "esClass": "matchPhasePrefixQueryBuilder",
+    "esField": "mipc.level5",
+    "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "true",
@@ -434,8 +494,8 @@
   {
     "name": "权利要求",
     "type": "String",
-    "value": "claim",
-    "field": "claim",
+    "value": "TX",
+    "field": "TX",
     "esField": "claim",
     "esClass": "nestedQueryBuilder",
     "ifSearch": "false",
@@ -444,6 +504,18 @@
     "ifAsCondition": "true"
   },
   {
+    "name": "权利要求内容",
+    "type": "String",
+    "value": "CL",
+    "field": "CL",
+    "esField": "claim.text_content",
+    "esClass": "nestedQueryBuilder",
+    "ifSearch": "false",
+    "ifGroup": "false",
+    "ifShow": "true",
+    "ifAsCondition": "true"
+  },
+  {
     "name": "专利状态",
     "type": "String",
     "value": "simpleStatus",
@@ -458,8 +530,8 @@
   {
     "name": "专利类型",
     "type": "String",
-    "value": "patentType",
-    "field": "patentType",
+    "value": "PT",
+    "field": "PT",
     "esField": "patent_type",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",
@@ -470,8 +542,8 @@
   {
     "name": "法律状态",
     "type": "String",
-    "value": "legalStatus",
-    "field": "legalStatus",
+    "value": "LG",
+    "field": "LG",
     "esField": "legal_status",
     "esClass": "keyWordQueryBuilder",
     "ifSearch": "false",