zero hai 1 ano
pai
achega
e4f4bdacf2

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

@@ -45,6 +45,7 @@ public class CustomAnalysisItemSettingService extends ServiceImpl<CustomAnalysis
         configDTO.setLine(JsonUtils.jsonToPojo(temp.getLineConfig(), CustomSettingLineConfigDTO.class));
         configDTO.setTable(JsonUtils.jsonToList(temp.getTableConfig(), CustomSettingTableConfigDTO.class));
         temp.setConfig(configDTO);
+        temp.setShow(temp.getShow1());
         temp.setColorConfig(null);
         temp.setLineConfig(null);
         temp.setTableConfig(null);

+ 158 - 46
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -294,7 +294,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         for (Hit<Patent> hit : hits) {
             String id1 = hit.id();
             Patent patent = hit.source();
-            if (mergeType.equals("merge_applicat")) {
+            if (mergeType.equals("merge_applicant")) {
                 if (!CollectionUtils.isEmpty(patent.getMergeApplicant())) {
                     map.put(id1, patent.getMergeApplicant());
                 }
@@ -321,6 +321,8 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
     public Integer mergePersonAgain(MergePersonAgainVO vo) throws Exception {
         List<String> mergedNames = vo.getNeedMergedName();
         List<String> mergeName = vo.getMergedName();
+        Integer type = vo.getType();
+        Integer projectId = vo.getProjectId();
         List<String> nameList = new ArrayList<>();
         if (!CollectionUtils.isEmpty(mergedNames)) {
             for (String mergedName : mergedNames) {
@@ -331,10 +333,116 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
                 List<String> getNames = JSONArray.parseArray(name, String.class);
                 nameList.addAll(getNames);
 
-                MergePersonIdVO personIdVO = new MergePersonIdVO();
-                personIdVO.setId(person.getId());
-                personIdVO.setType(person.getType());
-                this.delMergePerson(personIdVO);
+                Map<String, Patent> map = this.getDelPatent(type, projectId, mergedName);
+                if (!CollectionUtils.isEmpty(map)) {
+                    for (String id : map.keySet()) {
+                        Patent patent = map.get(id);
+                        List<PatentMergePerson> appPersonList = new ArrayList<>();
+                        List<PatentMergePerson> rightPersonList = new ArrayList<>();
+                        List<PatentMergePerson> inventorPersonList = new ArrayList<>();
+                        if (type == 0) {
+                            if (!CollectionUtils.isEmpty(patent.getApplicant())) {
+                                List<PatentPerson> applicant = patent.getApplicant();
+                                for (PatentPerson patentPerson : applicant) {
+                                    PatentMergePerson merge = new PatentMergePerson();
+                                    merge.setName(patentPerson.getName());
+                                    merge.setType(patentPerson.getType());
+                                    merge.setOrder(patentPerson.getOrder());
+                                    merge.setProjectId(String.valueOf(projectId));
+                                    appPersonList.add(merge);
+                                }
+                            }
+                            if (!CollectionUtils.isEmpty(patent.getRightHolder())) {
+                                List<PatentPerson> rightHolder = patent.getRightHolder();
+                                for (PatentPerson patentPerson : rightHolder) {
+                                    PatentMergePerson merge = new PatentMergePerson();
+                                    merge.setName(patentPerson.getName());
+                                    merge.setType(patentPerson.getType());
+                                    merge.setOrder(patentPerson.getOrder());
+                                    merge.setProjectId(String.valueOf(projectId));
+                                    rightPersonList.add(merge);
+                                }
+                            }
+                        } else {
+                            if (!CollectionUtils.isEmpty(patent.getInventor())) {
+                                List<PatentPerson> inventor = patent.getInventor();
+                                for (PatentPerson patentPerson : inventor) {
+                                    PatentMergePerson merge = new PatentMergePerson();
+                                    merge.setName(patentPerson.getName());
+                                    merge.setType(patentPerson.getType());
+                                    merge.setOrder(patentPerson.getOrder());
+                                    merge.setProjectId(String.valueOf(projectId));
+                                    inventorPersonList.add(merge);
+                                }
+                            }
+                        }
+
+                        if (type == 0) {
+                            //申请人
+                            Map<String, List<PatentMergePerson>> appMap = this.getChildMergePerson(id, projectId, "merge_applicant");
+                            if (!CollectionUtils.isEmpty(appMap)) {
+                                for (String appId : appMap.keySet()) {
+                                    //添加子文档
+                                    Patent newPatent = new Patent();
+                                    PatentJoin patentJoin = new PatentJoin();
+                                    patentJoin.setParent(id);
+                                    patentJoin.setName("merge_applicat");
+                                    newPatent.setPatentJoin(patentJoin);
+                                    newPatent.setMergeApplicant(appPersonList);
+                                    String child = this.addChild(newPatent, id);
+                                    if (StringUtils.isEmpty(child)) {
+                                        throw new XiaoShiException("删除失败");
+                                    } else {
+                                        //删除原子文档
+                                        this.delete(Arrays.asList(appId));
+                                    }
+                                }
+                            }
+                            //权利人
+                            Map<String, List<PatentMergePerson>> rightMap = this.getChildMergePerson(id, projectId, "merge_right_holder");
+                            if (!CollectionUtils.isEmpty(rightMap)) {
+                                for (String rightId : rightMap.keySet()) {
+                                    //添加子文档
+                                    Patent newPatent = new Patent();
+                                    PatentJoin patentJoin = new PatentJoin();
+                                    patentJoin.setParent(id);
+                                    patentJoin.setName("merge_right_holder");
+                                    newPatent.setPatentJoin(patentJoin);
+                                    newPatent.setMergeInventor(rightPersonList);
+                                    String child = this.addChild(newPatent, id);
+                                    if (StringUtils.isEmpty(child)) {
+                                        throw new XiaoShiException("删除失败");
+                                    } else {
+                                        //删除原子文档
+                                        this.delete(Arrays.asList(rightId));
+                                    }
+                                }
+                            }
+                        } else {
+                            //发明人
+                            Map<String, List<PatentMergePerson>> inventorMap = this.getChildMergePerson(id, projectId, "merge_inventor");
+                            if (!CollectionUtils.isEmpty(inventorMap)) {
+                                for (String inventorId : inventorMap.keySet()) {
+                                    //添加子文档
+                                    Patent newPatent = new Patent();
+                                    PatentJoin patentJoin = new PatentJoin();
+                                    patentJoin.setParent(id);
+                                    patentJoin.setName("merge_inventor");
+                                    newPatent.setPatentJoin(patentJoin);
+                                    newPatent.setMergeInventor(inventorPersonList);
+                                    String child = this.addChild(newPatent, id);
+                                    if (StringUtils.isEmpty(child)) {
+                                        throw new XiaoShiException("删除失败");
+                                    } else {
+                                        //删除原子文档
+                                        this.delete(Arrays.asList(inventorId));
+                                    }
+                                }
+                            }
+                        }
+                    }
+                    mergePersonMapper.deleteById(person.getId());
+                }
             }
         }
 
@@ -343,8 +451,8 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         }
 
         MergePersonVO personVO = new MergePersonVO();
-        personVO.setProjectId(vo.getProjectId());
-        personVO.setType(vo.getType());
+        personVO.setProjectId(projectId);
+        personVO.setType(type);
         personVO.setName(vo.getName());
         personVO.setAbbreviation(vo.getAbbreviation());
         personVO.setCountry(vo.getCountry());
@@ -957,7 +1065,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
                         if (!CollectionUtils.isEmpty(inventorMap)) {
                             for (String inventorId : inventorMap.keySet()) {
                                 if (CollectionUtils.isEmpty(nameDatas)) {
-                                    this.delSingleMerge(inventorId, type, mergedName);
+                                    this.delSingleMerge(inventorId, type, name);
                                 }
 
                                 ArrayList<PatentMergePerson> inventorMergeList = new ArrayList<>(mergePersonList);
@@ -1011,43 +1119,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
 
             List<String> list = JSONArray.parseArray(mergedName, String.class);
             if (!CollectionUtils.isEmpty(list)) {
-
-                SearchRequest.Builder builder = new SearchRequest.Builder();
-                //设置查询索引
-                builder.index("patent");
-                List<Query> queries = new ArrayList<>();
-                if (type == 0) {
-                    //合并申请人
-                    Query idQ1 = QueryBuilders.term(i -> i.field("merge_applicant.project_id").value(projectId));
-                    Query q1 = QueryBuilders.term(i -> i.field("merge_applicant.name.raw").value(name));
-                    Query bool = QueryBuilders.bool(i -> i.must(idQ1, q1));
-                    Query query1 = QueryBuilders.nested(i -> i.path("merge_applicant").query(bool));
-                    Query childQ1 = QueryBuilders.hasChild(i -> i.type("merge_applicat").query(query1));
-                    //合并权利人
-                    Query idQ2 = QueryBuilders.term(i -> i.field("merge_right_holder.project_id").value(projectId));
-                    Query q2 = QueryBuilders.term(i -> i.field("merge_right_holder.name.raw").value(name));
-                    Query bool1 = QueryBuilders.bool(i -> i.must(idQ2, q2));
-                    Query query2 = QueryBuilders.nested(i -> i.path("merge_right_holder").query(bool1));
-                    Query childQ2 = QueryBuilders.hasChild(i -> i.type("merge_right_holder").query(query2));
-                    queries.add(childQ1);
-                    queries.add(childQ2);
-                } else {
-                    Query idQ = QueryBuilders.term(i -> i.field("merge_inventor.project_id").value(projectId));
-                    Query q = QueryBuilders.term(i -> i.field("merge_inventor.name.raw").value(name));
-                    Query bool = QueryBuilders.bool(i -> i.must(idQ, q));
-                    Query query = QueryBuilders.nested(i -> i.path("merge_inventor").query(bool));
-                    Query childQ = QueryBuilders.hasChild(i -> i.type("merge_inventor").query(query));
-                    queries.add(childQ);
-                }
-                Query query = QueryBuilders.bool(i -> i.should(queries));
-                builder.query(query);
-                SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-                List<Hit<Patent>> hits = response.hits().hits();
-                Map<String, Patent> map = new HashMap<>();
-                for (Hit<Patent> hit : hits) {
-                    String id = hit.id();
-                    map.put(id, hit.source());
-                }
+                Map<String, Patent> map = this.getDelPatent(type, projectId, name);
 
                 if (!CollectionUtils.isEmpty(map)) {
                     for (String id : map.keySet()) {
@@ -1191,6 +1263,46 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         return vo.getId();
     }
 
+    public Map<String, Patent> getDelPatent(Integer type, Integer projectId, String name) throws IOException {
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+        List<Query> queries = new ArrayList<>();
+        if (type == 0) {
+            //合并申请人
+            Query idQ1 = QueryBuilders.term(i -> i.field("merge_applicant.project_id").value(projectId));
+            Query q1 = QueryBuilders.term(i -> i.field("merge_applicant.name.raw").value(name));
+            Query bool = QueryBuilders.bool(i -> i.must(idQ1, q1));
+            Query query1 = QueryBuilders.nested(i -> i.path("merge_applicant").query(bool));
+            Query childQ1 = QueryBuilders.hasChild(i -> i.type("merge_applicat").query(query1));
+            //合并权利人
+            Query idQ2 = QueryBuilders.term(i -> i.field("merge_right_holder.project_id").value(projectId));
+            Query q2 = QueryBuilders.term(i -> i.field("merge_right_holder.name.raw").value(name));
+            Query bool1 = QueryBuilders.bool(i -> i.must(idQ2, q2));
+            Query query2 = QueryBuilders.nested(i -> i.path("merge_right_holder").query(bool1));
+            Query childQ2 = QueryBuilders.hasChild(i -> i.type("merge_right_holder").query(query2));
+            queries.add(childQ1);
+            queries.add(childQ2);
+        } else {
+            Query idQ = QueryBuilders.term(i -> i.field("merge_inventor.project_id").value(projectId));
+            Query q = QueryBuilders.term(i -> i.field("merge_inventor.name.raw").value(name));
+            Query bool = QueryBuilders.bool(i -> i.must(idQ, q));
+            Query query = QueryBuilders.nested(i -> i.path("merge_inventor").query(bool));
+            Query childQ = QueryBuilders.hasChild(i -> i.type("merge_inventor").query(query));
+            queries.add(childQ);
+        }
+        Query query = QueryBuilders.bool(i -> i.should(queries));
+        builder.query(query);
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        List<Hit<Patent>> hits = response.hits().hits();
+        Map<String, Patent> map = new HashMap<>();
+        for (Hit<Patent> hit : hits) {
+            String id = hit.id();
+            map.put(id, hit.source());
+        }
+        return map;
+    }
+
     /**
      * 获取所有国家列表查询
      * @return
@@ -1247,7 +1359,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
     }
 
     //更新patent
-    public Integer updateChild(Patent patent, String id) {
+    public Integer updateChild(Patent patent, String id, String routing) {
         UpdateRequest<Patent, Patent> req;
         req = UpdateRequest.of(
                 b -> b.index("patent")

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

@@ -567,7 +567,7 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "classify"
@@ -646,7 +646,7 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "classify"
@@ -725,7 +725,7 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "classify"
@@ -778,7 +778,7 @@
     "esClass": "prefixQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
-    "ifShow": "false",
+    "ifShow": "true",
     "ifStats": "true",
     "ifAsCondition": "true",
     "groupBy": "classify"