Browse Source

422 保存无效证据

lwhhszx 1 năm trước cách đây
mục cha
commit
61195e2d2c

+ 70 - 0
src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java

@@ -927,4 +927,74 @@ public class EsCustomFieldService {
 
         return patentWithIdVOS;
     }
+
+
+
+
+    //查询自定义字段
+    public PatentWithIdVO getEsCustomFieldNow(EsCustomFieldDTO esCustomFieldDTO) throws Exception {
+        PatentWithIdVO patentWithIdVO = new PatentWithIdVO();
+        Integer projectId = esCustomFieldDTO.getProjectId();
+        Integer taskId = esCustomFieldDTO.getTaskId();
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        String patentNo = esCustomFieldDTO.getPatentNo();
+        //设置查询索引
+        builder.index("patent");
+
+        //栏位
+        Query q1 = QueryBuilders.term(t -> t.field("custom_field.project_id").value(projectId));
+
+        Query q2 = QueryBuilders.term((t -> t.field("custom_field.field").value(esCustomFieldDTO.getFieldId())));
+
+        Query q4 = QueryBuilders.term(t -> t.field("custom_field.field_type").value(esCustomFieldDTO.getFieldType()));
+
+        Query parentQ1 = QueryBuilders.term(t -> t.field("app_no.keyword").value(patentNo));
+        //公开号
+        Query parentQ2 = QueryBuilders.term(t -> t.field("public_no.keyword").value(patentNo));
+
+        //授权号
+        Query parentQ3 = QueryBuilders.term(t -> t.field("grant_no.keyword").value(patentNo));
+
+        Query parentQ = QueryBuilders.bool(i -> i.should(parentQ1, parentQ2, parentQ3));
+
+        Query q3 = QueryBuilders.hasParent(t -> t.parentType("patent").query(parentQ));
+
+        Query bool = null;
+
+        if (taskId == null) {
+
+            bool = QueryBuilders.bool(i -> i.must(q1, q2, q3, q4));
+        } else {
+            Query q5 = QueryBuilders.term((t -> t.field("custom_field.task_id").value(taskId)));
+            bool = QueryBuilders.bool(i -> i.must(q1, q2, q3, q4, q5));
+        }
+
+        builder.query(bool);
+        builder.sort(sortOptionsBuilder -> sortOptionsBuilder
+                .field(fieldSortBuilder -> fieldSortBuilder
+                        .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) {
+            List<Hit<Patent>> hits = response.hits().hits();
+            Hit<Patent> hit = hits.get(0);
+            Patent patent = hit.source();
+            patentWithIdVO.setPatent(patent);
+            patentWithIdVO.setId(hit.id());
+        } else {
+            patentWithIdVO = null;
+        }
+        return patentWithIdVO;
+    }
+
+
+
+
+
+    //查询自定义字段
+    public PatentWithIdVO updateEsCustomFieldState(EsCustomFieldDTO esCustomFieldDTO) throws Exception {
+        PatentWithIdVO patentWithIdVO = new PatentWithIdVO();
+      PatentWithIdVO patent =  this.getEsCustomField(esCustomFieldDTO);
+        return patentWithIdVO;
+    }
 }

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

@@ -545,12 +545,8 @@ public class EsService {
         builder.index("patent");
         Query q1 = QueryBuilders.hasParent(i -> i.parentType("patent").query(j -> j.ids(IdsQuery.of(k -> k.values(parentId)))));
         Query q2 = QueryBuilders.exists(i -> i.field("custom_field"));
-        Query q3 = null;
-        if (taskId != null) {
-            q3 = QueryBuilders.term(i -> i.field("custom_field.task_id").value(taskId));
-        } else {
-            q3 = QueryBuilders.term(i -> i.field("custom_field.project_id").value(projectId));
-        }
+        Query q3 = QueryBuilders.term(i -> i.field("custom_field.project_id").value(projectId));
+
         Query q4 = QueryBuilders.term(i -> i.field("custom_field.field").value(fieldId));
         Query finalQ = q3;
         Query bool = QueryBuilders.bool(i -> i.must(q1, q2, finalQ, q4));
@@ -580,16 +576,6 @@ public class EsService {
                     this.updateCustomFieldIfNew(patent, id);
                 }
             }
-            Iterator<Map.Entry<String, ESCustomField>> iterator = map.entrySet().iterator();
-            if (iterator.hasNext()) {
-                Map.Entry<String, ESCustomField> firstEntry = iterator.next();
-                String key = firstEntry.getKey();
-                ESCustomField esCustomField = new ESCustomField();
-                esCustomField.setIfNew(1);
-                Patent patent = new Patent();
-                patent.setESCustomField(esCustomField);
-                ifNew = this.updateCustomFieldIfNew(patent, key);
-            }
         }
         return ifNew;
     }
@@ -653,7 +639,7 @@ public class EsService {
         String dateStr = "\'" + s + "\'";
         String projectId = "ctx._source.custom_field.project_id = " + customField.getProjectId() + ";";
         String taskId = "ctx._source.custom_field.task_id = " + customField.getTaskId() + ";";
-//        String ifNew = "ctx._source.custom_field.if_new = " + customField.getIfNew() + ";";
+        String ifNew = "ctx._source.custom_field.if_new = " + 1+ ";";
         String field = "ctx._source.custom_field.field=" + customField.getField() + ";";
         String fieldType = "ctx._source.custom_field.field_type = " + customField.getFieldType() + ";";
         String personId = "ctx._source.custom_field.person_id = " + customField.getPersonId() + ";";