Pārlūkot izejas kodu

5/30 修改查询自定义栏位报错问题

lwhhszx 1 gadu atpakaļ
vecāks
revīzija
ecd1d19f48

+ 23 - 2
src/main/java/cn/cslg/pas/common/utils/DateUtils.java

@@ -731,7 +731,28 @@ public class DateUtils {
         return (int) timeStamp;
     }
 
-    public static void main(String[] args) {
-        System.out.println(12%50);
+    public static String strToStr(String dateString,String dateForm) {
+        try {
+            SimpleDateFormat sf1;
+            if (dateString.contains("-")) {
+                sf1 = new SimpleDateFormat("yyyy-MM-dd");
+            } else if (dateString.contains("/")) {
+                sf1 = new SimpleDateFormat("yyyy/MM/dd");
+            } else if (dateString.contains(":")) {
+                sf1 = new SimpleDateFormat("yyyy:MM:dd");
+            } else if (dateString.contains(".")) {
+                sf1 = new SimpleDateFormat("yyyy.MM.dd");
+            } else {
+                sf1 = new SimpleDateFormat("yyyyMMdd");
+            }
+
+
+            SimpleDateFormat format = new SimpleDateFormat(dateForm);
+            Date a= sf1.parse(dateString);
+           String reDate= format.format(a);
+            return reDate;
+        } catch (Exception e) {
+            return "";
+        }
     }
 }

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

@@ -173,6 +173,7 @@ public class CustomFieldController {
             records.setData(list);
         }
         catch (Exception e){
+            e.printStackTrace();
             return Response.error(e.getMessage());
         }
 

+ 20 - 18
src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java

@@ -719,7 +719,8 @@ 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, taskId);
+            Query queries = this.getQueries(patentNo,innerFields,projectId,taskId);
+
             builder.size(999);
             builder.query(queries);
             SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
@@ -730,19 +731,21 @@ public class EsCustomFieldService {
                 List<Hit<Patent>> hits = response.hits().hits();
                 for (Hit<Patent> hit : hits) {
                     Patent patent = hit.source();
-                    ESCustomField esCustomField = patent.getESCustomField();
-                    ESCustomField esCustomField1 = esCustomFields.stream()
-                            .filter(item -> item.getField().equals(esCustomField.getField()) && item.getFieldType().equals(esCustomField.getFieldType()))
-                            .findFirst().orElse(null);
-
-                    if (esCustomField1 == null) {
-                        esCustomFields.add(esCustomField);
-                        InnerPatentFieldsVO innerPatentFieldsVO = new InnerPatentFieldsVO();
-                        innerPatentFieldsVO.setField(esCustomField.getField());
-                        innerPatentFieldsVO.setFieldType(esCustomField.getFieldType());
-                        List<FieldValueVO> fieldValueVOS = this.getCustomFieldValues(esCustomField.getFieldType(), esCustomField.getFieldValue());
-                        innerPatentFieldsVO.setFieldValueVOS(fieldValueVOS);
-                        innerPatentFieldsVOS.add(innerPatentFieldsVO);
+                    if(patent.getESCustomField()!=null) {
+                        ESCustomField esCustomField = patent.getESCustomField();
+                        ESCustomField esCustomField1 = esCustomFields.stream()
+                                .filter(item -> item.getField().equals(esCustomField.getField()) && item.getFieldType().equals(esCustomField.getFieldType()))
+                                .findFirst().orElse(null);
+
+                        if (esCustomField1 == null) {
+                            esCustomFields.add(esCustomField);
+                            InnerPatentFieldsVO innerPatentFieldsVO = new InnerPatentFieldsVO();
+                            innerPatentFieldsVO.setField(esCustomField.getField());
+                            innerPatentFieldsVO.setFieldType(esCustomField.getFieldType());
+                            List<FieldValueVO> fieldValueVOS = this.getCustomFieldValues(esCustomField.getFieldType(), esCustomField.getFieldValue());
+                            innerPatentFieldsVO.setFieldValueVOS(fieldValueVOS);
+                            innerPatentFieldsVOS.add(innerPatentFieldsVO);
+                        }
                     }
                 }
             }
@@ -772,15 +775,14 @@ 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  q5 =QueryBuilders.term(t->t.field("custom_field.if_new").value(1));
             Query fQ =null;
             if (taskId != null) {
                 Query q4 =QueryBuilders.term(t -> t.field("custom_field.task_id").value(taskId));
-                fQ = QueryBuilders.bool(i -> i.must(q1, q2, q3,q4));
-                queries.add(fQ);
+                fQ = QueryBuilders.bool(i -> i.must(q1, q2, q3,q4,q5));
             }
             else {
-                 fQ = QueryBuilders.bool(i -> i.must(q1, q2, q3));
-                queries.add(fQ);
+                 fQ = QueryBuilders.bool(i -> i.must(q1, q2, q3,q5));
             }
             queries.add(fQ);
         }

+ 5 - 2
src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java

@@ -400,7 +400,7 @@ public class GetCataloguingFromWebThread extends Thread {
                 String pr = chinaPatentZhuLu.getPR();
                 String[] prStrs = pr.split(" ");
                 String priorityNo = prStrs[0];
-                if(chinaPatentZhuLu.getPRD()!=null){
+                if (chinaPatentZhuLu.getPRD() != null) {
 
                 }
                 String prDate = "";
@@ -412,7 +412,10 @@ public class GetCataloguingFromWebThread extends Thread {
                 String pCountry = priorityNo.substring(0, 2);
                 priorities.setPriorityCountry(pCountry);
                 //装载优先权日
-                priorities.setPriorityDate(prDate);
+                if (prDate != null) {
+                    String a = DateUtils.strToStr(prDate, "yyyy-MM-dd");
+                    priorities.setPriorityDate(a);
+                }
                 patent.setPriorities(Arrays.asList(priorities));
 
             }