zero 1 год назад
Родитель
Сommit
3f60a5854a

+ 1 - 0
src/main/java/cn/cslg/pas/common/vo/business/MergedNameVO.java

@@ -6,6 +6,7 @@ import java.util.List;
 
 @Data
 public class MergedNameVO {
+
     private String name;
 
     private Integer projectId;

+ 57 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NestedPersonQueryBuilder.java

@@ -0,0 +1,57 @@
+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 NestedPersonQueryBuilder implements IQueryBuilder{
+    private String field = "";
+    private String value = "";
+    private String operator = "";
+    public String path = "";
+
+
+    @Override
+    public Query creteQuery() throws ParseException {
+        String str = "*";
+        String s = str.concat(value).concat("*");
+        Query query =  QueryBuilders.wildcard(i -> i.field(field).value(s));
+        Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(query));
+        return nestedQuery;
+    }
+
+    public String getField() {
+        return field;
+    }
+
+    public void setField(String field) {
+        this.field = field;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+}

+ 12 - 4
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NestedQueryBuilder.java

@@ -1,7 +1,7 @@
 package cn.cslg.pas.factorys.EsBuilderFactory;
 
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
-import org.springframework.data.elasticsearch.client.elc.QueryBuilders;
+import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -13,9 +13,17 @@ public class NestedQueryBuilder implements IQueryBuilder {
 
     @Override
     public Query creteQuery() {
-        Query query = QueryBuilders.matchQueryAsQuery(field, value, null, null);
-        Query nestedQuery = co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders.nested(z -> z.path(path).query(query));
-        return nestedQuery;
+        String str = "*";
+        String s = str.concat(value).concat("*");
+        Query query =  QueryBuilders.wildcard(i -> i.field(field).value(s));
+        Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(query));
+        Query childQuery = null;
+        if (path.equals("merge_applicant")) {
+            childQuery = QueryBuilders.hasChild(i -> i.type("merge_applicat").query(nestedQuery));
+        } else {
+            childQuery = QueryBuilders.hasChild(i -> i.type(path).query(nestedQuery));
+        }
+        return childQuery;
     }
 
     @Override

+ 29 - 0
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -1102,6 +1102,10 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
                             Map<String, List<PatentMergePerson>> appMap = this.getChildMergePerson(id, projectId, "merge_applicant");
                             if (!CollectionUtils.isEmpty(appMap)) {
                                 for (String appId : appMap.keySet()) {
+                                    if (StringUtils.isNotEmpty(name)) {
+                                        this.delSingleMerge(appId, type, name);
+                                    }
+
                                     List<PatentMergePerson> appMergeList = new ArrayList<>(mergePersonList);
                                     List<PatentMergePerson> appList = appMap.get(appId);
                                     appMergeList.addAll(appList);
@@ -1127,6 +1131,10 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
                             Map<String, List<PatentMergePerson>> rightMap = this.getChildMergePerson(id, projectId, "merge_right_holder");
                             if (!CollectionUtils.isEmpty(rightMap)) {
                                 for (String rightId : rightMap.keySet()) {
+                                    if (StringUtils.isNotEmpty(name)) {
+                                        this.delSingleMerge(rightId, type, name);
+                                    }
+
                                     ArrayList<PatentMergePerson> rightMergeList = new ArrayList<>(mergePersonList);
                                     List<PatentMergePerson> rightList = rightMap.get(rightId);
                                     rightMergeList.addAll(rightList);
@@ -1150,6 +1158,10 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
                             Map<String, List<PatentMergePerson>> inventorMap = this.getChildMergePerson(id, projectId, "merge_inventor");
                             if (!CollectionUtils.isEmpty(inventorMap)) {
                                 for (String inventorId : inventorMap.keySet()) {
+                                    if (StringUtils.isNotEmpty(name)) {
+                                        this.delSingleMerge(inventorId, type, name);
+                                    }
+
                                     ArrayList<PatentMergePerson> inventorMergeList = new ArrayList<>(mergePersonList);
                                     List<PatentMergePerson> inventorList = inventorMap.get(inventorId);
                                     inventorMergeList.addAll(inventorList);
@@ -1234,6 +1246,23 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         return indexResponse.id();
     }
 
+    //更新patent
+    public Integer updateChild(Patent patent, String id) {
+        UpdateRequest<Patent, Patent> req;
+        req = UpdateRequest.of(
+                b -> b.index("patent")
+                        .id(id)
+                        .routing(id)
+                        .doc(patent)
+        );
+        try {
+            client.update(req, Patent.class);
+            return 1;
+        } catch (IOException e) {
+            return -1;
+        }
+    }
+
     public Integer delete(List<String> ids) {
         Query query = QueryBuilders.ids(n -> n.values(ids));
         DeleteByQueryRequest request = DeleteByQueryRequest.of(i -> i.index("patent").query(query));

+ 3 - 3
src/main/resources/jsons/patent.json

@@ -177,7 +177,7 @@
     "value": "applicant",
     "field": "PA",
     "esField": "applicant.name",
-    "esClass": "nestedQueryBuilder",
+    "esClass": "nestedPersonQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -221,7 +221,7 @@
     "value": "inventor",
     "field": "IN",
     "esField": "inventor.name",
-    "esClass": "nestedQueryBuilder",
+    "esClass": "nestedPersonQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -249,7 +249,7 @@
     "value": "rightHolder",
     "field": "PE",
     "esField": "right_holder.name",
-    "esClass": "nestedQueryBuilder",
+    "esClass": "nestedPersonQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",