소스 검색

2/21 修改查询专利分页信息

lwhhszx 1 년 전
부모
커밋
eddfb4116a

+ 1 - 1
src/main/java/cn/cslg/pas/common/dto/es/EsQueryPatentFieldsDTO.java

@@ -14,6 +14,6 @@ public class EsQueryPatentFieldsDTO {
 
     List<String> patentNos;
     List<InnerFields> innerFields;
-
+    Integer taskId;
 
 }

+ 1 - 0
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -205,6 +205,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         StringRequest stringRequest = new StringRequest();
         BeanUtils.copyProperties(groupRequest, stringRequest);
         List<String> sqls = formatQueryService.reSqls(stringRequest, tableName);
+        sqls=this.loadSearchSql(sqls);
         //格式化 分组
         GroupConfig groupConfig = null;
         if (groupRequest.getGroupBy() != null) {

+ 17 - 8
src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java

@@ -454,7 +454,7 @@ public class EsCustomFieldService {
         builder.query(bool);
         builder.sort(sortOptionsBuilder -> sortOptionsBuilder
                 .field(fieldSortBuilder -> fieldSortBuilder
-                        .field("custom_field.create_time").order(SortOrder.Asc)));
+                        .field("custom_field.create_time").order(SortOrder.Desc)));
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
         long total = response.hits().total().value();
         if (total > 0) {
@@ -700,6 +700,7 @@ public class EsCustomFieldService {
         List<EsPatentFieldsVO> esPatentFieldsVOS = new ArrayList<>();
 
         Integer projectId = esQueryPatentFieldsDTO.getProjectId();
+        Integer taskId = esQueryPatentFieldsDTO.getTaskId();
         List<String> patentNos = esQueryPatentFieldsDTO.getPatentNos();
         List<InnerFields> innerFields = esQueryPatentFieldsDTO.getInnerFields();
 
@@ -713,7 +714,7 @@ public class EsCustomFieldService {
             builder.sort(sortOptionsBuilder -> sortOptionsBuilder
                     .field(fieldSortBuilder -> fieldSortBuilder
                             .field("custom_field.create_time").order(SortOrder.Desc)));
-            Query queries = this.getQueries(patentNo, innerFields, projectId);
+            Query queries = this.getQueries(patentNo, innerFields, projectId, taskId);
             builder.size(999);
             builder.query(queries);
             SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
@@ -747,7 +748,7 @@ public class EsCustomFieldService {
         return esPatentFieldsVOS;
     }
 
-    private Query getQueries(String patentNo, List<InnerFields> innerFields, Integer projectId) {
+    private Query getQueries(String patentNo, List<InnerFields> innerFields, Integer projectId, Integer taskId) {
 
         Query parentQ1 = QueryBuilders.term(t -> t.field("app_no.keyword").value(patentNo));
 
@@ -766,8 +767,16 @@ public class EsCustomFieldService {
             Query q1 = QueryBuilders.term(t -> t.field("custom_field.project_id").value(projectId));
             Query q2 = QueryBuilders.term((t -> t.field("custom_field.field").value(filedId)));
             Query q3 = QueryBuilders.term(t -> t.field("custom_field.field_type").value(fieldType));
-
-            Query fQ = QueryBuilders.bool(i -> i.must(q1, q2, q3));
+            Query fQ =null;
+            if (taskId != null) {
+                Query q4 =QueryBuilders.term(t -> t.field("custom_field.task_id").value(fieldType));
+                 fQ = QueryBuilders.bool(i -> i.must(q1, q2, q3,q4));
+                queries.add(fQ);
+            }
+            else {
+                 fQ = QueryBuilders.bool(i -> i.must(q1, q2, q3));
+                queries.add(fQ);
+            }
             queries.add(fQ);
         }
         Query query = QueryBuilders.bool(i -> i.should(queries));
@@ -827,14 +836,14 @@ public class EsCustomFieldService {
                         fieldValueVO.setValueId(item.getId());
 
                         List<String> idStrs = new ArrayList<>();
-                        List<String> pathNames =new ArrayList<>();
+                        List<String> pathNames = new ArrayList<>();
                         if (item.getPath() != null && !item.getPath().equals("")) {
                             idStrs = Arrays.asList(item.getPath().split("/"));
-                            pathNames=  treeNodeService.getBaseMapper().getTreeFieldPath(idStrs);
+                            pathNames = treeNodeService.getBaseMapper().getTreeFieldPath(idStrs);
 
                         }
                         pathNames.add(item.getName());
-                        String pathValue=   cn.cslg.pas.common.utils.StringUtils.join(pathNames,"/");
+                        String pathValue = cn.cslg.pas.common.utils.StringUtils.join(pathNames, "/");
                         fieldValueVO.setValue(pathValue);
                         fieldValueVO.setPath(item.getPath());
                         fieldValueVOS.add(fieldValueVO);

+ 9 - 1
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -684,6 +684,7 @@ public class EsPatentService {
     public Query getQuery(QueryRequest queryRequest) throws Exception {
         String searchCondition = "";
         Integer projectId = queryRequest.getProjectId();
+        Integer taskId =queryRequest.getTaskId();
         //判断表达式
         if (queryRequest instanceof StringRequest) {
             searchCondition = ((StringRequest) queryRequest).getSearchQuery();
@@ -700,7 +701,14 @@ public class EsPatentService {
             }
             searchCondition = stringBuilder.toString();
         }
-        if (projectId != null) {
+        if (taskId != null) {
+            if (searchCondition != null && !"".equals(searchCondition.trim())) {
+                searchCondition = "taskId = " + taskId + " AND " + searchCondition;
+            } else {
+                searchCondition = "taskId = " + taskId;
+            }
+        }
+       else if (projectId != null) {
             if (searchCondition != null && !"".equals(searchCondition.trim())) {
                 searchCondition = "projectId = " + projectId + " AND " + searchCondition;
             } else {

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

@@ -85,7 +85,7 @@ public class EsService {
                 .index("patent")
                 .routing(id)
                 //传入user对象
-                .document(patent)
+                .document(patent).refresh(Refresh.True).waitForActiveShards(WaitForActiveShards.of(t -> t.count(1)))
         );
         return indexResponse.id();
     }
@@ -603,7 +603,7 @@ public class EsService {
         InlineScript inlineScript = InlineScript.of(i -> i.lang("painless").source(source));
         Script script = Script.of(i -> i.inline(inlineScript));
         Query query = QueryBuilders.term(i -> i.field("_id").value(id));
-        UpdateByQueryRequest request = UpdateByQueryRequest.of(i -> i.index("patent").script(script).query(query));
+        UpdateByQueryRequest request = UpdateByQueryRequest.of(i -> i.index("patent").script(script).refresh(true).waitForActiveShards(WaitForActiveShards.of(t -> t.count(1))).query(query));
         try {
             client.updateByQuery(request);
             return 1;