|
@@ -294,7 +294,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
for (Hit<Patent> hit : hits) {
|
|
for (Hit<Patent> hit : hits) {
|
|
String id1 = hit.id();
|
|
String id1 = hit.id();
|
|
Patent patent = hit.source();
|
|
Patent patent = hit.source();
|
|
- if (mergeType.equals("merge_applicat")) {
|
|
|
|
|
|
+ if (mergeType.equals("merge_applicant")) {
|
|
if (!CollectionUtils.isEmpty(patent.getMergeApplicant())) {
|
|
if (!CollectionUtils.isEmpty(patent.getMergeApplicant())) {
|
|
map.put(id1, 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 {
|
|
public Integer mergePersonAgain(MergePersonAgainVO vo) throws Exception {
|
|
List<String> mergedNames = vo.getNeedMergedName();
|
|
List<String> mergedNames = vo.getNeedMergedName();
|
|
List<String> mergeName = vo.getMergedName();
|
|
List<String> mergeName = vo.getMergedName();
|
|
|
|
+ Integer type = vo.getType();
|
|
|
|
+ Integer projectId = vo.getProjectId();
|
|
List<String> nameList = new ArrayList<>();
|
|
List<String> nameList = new ArrayList<>();
|
|
if (!CollectionUtils.isEmpty(mergedNames)) {
|
|
if (!CollectionUtils.isEmpty(mergedNames)) {
|
|
for (String mergedName : mergedNames) {
|
|
for (String mergedName : mergedNames) {
|
|
@@ -331,10 +333,116 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
List<String> getNames = JSONArray.parseArray(name, String.class);
|
|
List<String> getNames = JSONArray.parseArray(name, String.class);
|
|
nameList.addAll(getNames);
|
|
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();
|
|
MergePersonVO personVO = new MergePersonVO();
|
|
- personVO.setProjectId(vo.getProjectId());
|
|
|
|
- personVO.setType(vo.getType());
|
|
|
|
|
|
+ personVO.setProjectId(projectId);
|
|
|
|
+ personVO.setType(type);
|
|
personVO.setName(vo.getName());
|
|
personVO.setName(vo.getName());
|
|
personVO.setAbbreviation(vo.getAbbreviation());
|
|
personVO.setAbbreviation(vo.getAbbreviation());
|
|
personVO.setCountry(vo.getCountry());
|
|
personVO.setCountry(vo.getCountry());
|
|
@@ -957,7 +1065,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
if (!CollectionUtils.isEmpty(inventorMap)) {
|
|
if (!CollectionUtils.isEmpty(inventorMap)) {
|
|
for (String inventorId : inventorMap.keySet()) {
|
|
for (String inventorId : inventorMap.keySet()) {
|
|
if (CollectionUtils.isEmpty(nameDatas)) {
|
|
if (CollectionUtils.isEmpty(nameDatas)) {
|
|
- this.delSingleMerge(inventorId, type, mergedName);
|
|
|
|
|
|
+ this.delSingleMerge(inventorId, type, name);
|
|
}
|
|
}
|
|
|
|
|
|
ArrayList<PatentMergePerson> inventorMergeList = new ArrayList<>(mergePersonList);
|
|
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);
|
|
List<String> list = JSONArray.parseArray(mergedName, String.class);
|
|
if (!CollectionUtils.isEmpty(list)) {
|
|
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)) {
|
|
if (!CollectionUtils.isEmpty(map)) {
|
|
for (String id : map.keySet()) {
|
|
for (String id : map.keySet()) {
|
|
@@ -1191,6 +1263,46 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
return vo.getId();
|
|
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
|
|
* @return
|
|
@@ -1247,7 +1359,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
}
|
|
}
|
|
|
|
|
|
//更新patent
|
|
//更新patent
|
|
- public Integer updateChild(Patent patent, String id) {
|
|
|
|
|
|
+ public Integer updateChild(Patent patent, String id, String routing) {
|
|
UpdateRequest<Patent, Patent> req;
|
|
UpdateRequest<Patent, Patent> req;
|
|
req = UpdateRequest.of(
|
|
req = UpdateRequest.of(
|
|
b -> b.index("patent")
|
|
b -> b.index("patent")
|