chenyi 1 year ago
parent
commit
80bdcf302e

+ 60 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/ParentQueryBuilder.java

@@ -0,0 +1,60 @@
+package cn.cslg.pas.factorys.EsBuilderFactory;
+
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+
+@Component
+public class ParentQueryBuilder implements IQueryBuilder{
+    private String field = "";
+    private String value = "";
+    private String operator = "";
+    public String path = "";
+
+    @Override
+    public Query creteQuery() throws ParseException {
+        return QueryBuilders.parentId(parent -> parent.type("project").id(value));
+    }
+
+    @Override
+    public String getField() {
+        return null;
+    }
+
+    @Override
+    public void setField(String field) {
+
+    }
+
+    @Override
+    public String getValue() {
+        return null;
+    }
+
+    @Override
+    public void setValue(String value) {
+
+    }
+
+    @Override
+    public String getOperator() {
+        return null;
+    }
+
+    @Override
+    public void setOperator(String operator) {
+
+    }
+
+    @Override
+    public String getPath() {
+        return null;
+    }
+
+    @Override
+    public void setPath(String path) {
+
+    }
+}

+ 60 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/ProjectQueryBuilder.java

@@ -0,0 +1,60 @@
+package cn.cslg.pas.factorys.EsBuilderFactory;
+
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+
+@Component
+public class ProjectQueryBuilder implements IQueryBuilder{
+    private String field = "";
+    private String value = "";
+    private String operator = "";
+    public String path = "";
+
+    @Override
+    public Query creteQuery() throws ParseException {
+        return QueryBuilders.term(t -> t.field(field).value(value));
+    }
+
+    @Override
+    public String getField() {
+        return null;
+    }
+
+    @Override
+    public void setField(String field) {
+
+    }
+
+    @Override
+    public String getValue() {
+        return null;
+    }
+
+    @Override
+    public void setValue(String value) {
+
+    }
+
+    @Override
+    public String getOperator() {
+        return null;
+    }
+
+    @Override
+    public void setOperator(String operator) {
+
+    }
+
+    @Override
+    public String getPath() {
+        return null;
+    }
+
+    @Override
+    public void setPath(String path) {
+
+    }
+}

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

@@ -1,48 +1,22 @@
 package cn.cslg.pas.service.business;
 
 import cn.cslg.pas.common.dto.PatentDTO;
-import cn.cslg.pas.common.dto.business.EventDTO;
-import cn.cslg.pas.common.dto.business.UpdateEventDTO;
 import cn.cslg.pas.common.model.cronModel.*;
 import cn.cslg.pas.common.model.request.GroupRequest;
 import cn.cslg.pas.common.model.request.QueryRequest;
-import cn.cslg.pas.common.model.request.StringRequest;
-import cn.cslg.pas.common.utils.CacheUtils;
-import cn.cslg.pas.common.utils.LoginUtils;
-import cn.cslg.pas.common.vo.business.EventCountVO;
-import cn.cslg.pas.common.vo.business.EventVO;
-import cn.cslg.pas.domain.business.AssoEventFile;
-import cn.cslg.pas.domain.business.Event;
-import cn.cslg.pas.domain.business.SystemDict;
 import cn.cslg.pas.domain.es.Patent;
-import cn.cslg.pas.exception.UnLoginException;
-import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.businessFactory.Business;
-import cn.cslg.pas.factorys.reGroupFactory.QueryGroupFactory;
-import cn.cslg.pas.factorys.reGroupFactory.QueryGroupImp;
-import cn.cslg.pas.mapper.AssoProjectEventMapper;
-import cn.cslg.pas.mapper.EventMapper;
 import cn.cslg.pas.mapper.PatentMapper;
 import cn.cslg.pas.service.business.es.EsService;
-import cn.cslg.pas.service.common.FileManagerService;
-import cn.cslg.pas.service.permissions.PermissionService;
-import cn.cslg.pas.service.query.FormatQueryService;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
-import java.util.stream.Collectors;
 
 @Service
 @Slf4j
@@ -95,3 +69,5 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> implements
 
 
 }
+
+

+ 12 - 2
src/main/java/cn/cslg/pas/service/query/FormatQueryService.java

@@ -397,8 +397,18 @@ public class FormatQueryService {
         if (operate1.gettype().equals(enuType.Logic)) {
             Query q1 = this.EsQueryToQuery((operateNode) Left, configName);
             Query q2 = this.EsQueryToQuery((operateNode) Right, configName);
-            query = QueryBuilders.bool(i -> i.must(q1, q2));
-        } else if (operate1.gettype().equals(enuType.Assignment)){
+            switch (operate1.getShowName()) {
+                case "AND":
+                    query = QueryBuilders.bool(i -> i.must(q1, q2));
+                    break;
+                case "OR":
+                    query = QueryBuilders.bool(i -> i.should(q1, q2));
+                    break;
+                case "NOT":
+                    query = QueryBuilders.bool(i -> i.must(q1).mustNot(q2));
+                    break;
+            }
+        } else if (operate1.gettype().equals(enuType.Assignment)) {
             //比较运算符
             IQueryBuilder iQueryBuilder = null;
             String field = Left.ToString();

+ 17 - 1
src/main/resources/jsons/patent.json

@@ -50,9 +50,25 @@
   {
     "name": "子文档号",
     "type": "String",
+    "value": "childId",
+    "field": "childId",
+    "esField": "child_id",
+    "esClass": "childQueryBuilder"
+  },
+  {
+    "name": "父文档号",
+    "type": "String",
+    "value": "parentId",
+    "field": "parentId",
+    "esField": "parent_id",
+    "esClass": "parentQueryBuilder"
+  },
+  {
+    "name": "文档号",
+    "type": "String",
     "value": "projectId",
     "field": "projectId",
     "esField": "project_id",
-    "esClass": "childQueryBuilder"
+    "esClass": "projectQueryBuilder"
   }
 ]

+ 5 - 3
src/test/java/cn/cslg/pas/service/EsServiceTests.java

@@ -74,12 +74,14 @@ public class EsServiceTests {
     @Test
     void search() throws Exception {
         StringRequest stringRequest = new StringRequest();
-        stringRequest.setSearchQuery("titleTextContent=电子");
+        stringRequest.setSearchQuery("patentNo=CN201199922Y and (simpleFamilyNum>1 or simpleFamilyNum=0)");
         stringRequest.setCurrent(0L);
         stringRequest.setSize(50L);
         stringRequest.setProjectId(1);
-        Object o = patentService.queryMessage(stringRequest);
-        System.out.println(o);
+        PatentDTO patentDTO = esService.esSearch(stringRequest);
+        System.out.println(patentDTO);
+//        Object o = patentService.queryMessage(stringRequest);
+//        System.out.println(o);
 //        List<PatentDTO> list = esService.esSearch("patentNo=CN201199922Y and simpleFamilyNum>1 or simpleFamilyNum=0", 0, 50,null);
 //        List<Patent> list = esService.Search("titleTextContent=电子 or projectId=1", 0, 50,null);
 //        List<Patent> list = esService.Search("patentNo=CN201199922Y and simpleFamilyNum>1", 0, 50,null);

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

@@ -119,6 +119,7 @@ public class EventServiceTests {
 //        mapRequest.setProjectId(1);
         StringRequest stringRequest = new StringRequest();
         stringRequest.setSearchQuery("titleTextContent=电子");
+//        stringRequest.setSearchQuery("patentNo=CN201199922Y and (simpleFamilyNum>1 or simpleFamilyNum=0)");
         stringRequest.setCurrent(0L);
         stringRequest.setSize(50L);
         stringRequest.setProjectId(1);