|
@@ -177,7 +177,10 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
for (String mergedName : mergedNames) {
|
|
|
this.delSingleMerge(appId, type, mergedName);
|
|
|
}
|
|
|
- this.add(appId, type, mergePersonList);
|
|
|
+ Integer num = this.add(appId, type, mergePersonList);
|
|
|
+ if (num < 0) {
|
|
|
+ throw new XiaoShiException("合并失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -191,7 +194,10 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
for (String mergedName : mergedNames) {
|
|
|
this.delSingleMerge(rightId, type, mergedName);
|
|
|
}
|
|
|
- this.add(rightId, type, mergePersonList);
|
|
|
+ Integer num = this.add(rightId, type, mergePersonList);
|
|
|
+ if (num < 0) {
|
|
|
+ throw new XiaoShiException("合并失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -205,12 +211,17 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
for (String mergedName : mergedNames) {
|
|
|
this.delSingleMerge(inventorId, type, mergedName);
|
|
|
}
|
|
|
- this.add(inventorId, type, mergePersonList);
|
|
|
+ Integer add = this.add(inventorId, type, mergePersonList);
|
|
|
+ if (add < 0) {
|
|
|
+ throw new XiaoShiException("合并失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new XiaoShiException("合并失败");
|
|
|
}
|
|
|
return person.getId();
|
|
|
}
|
|
@@ -250,31 +261,6 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
- public List<EsMergePersonDTO> getChildMergePersonDTO(String id, Integer projectId, String mergeType) throws IOException {
|
|
|
- List<EsMergePersonDTO> list = new ArrayList<>();
|
|
|
- String path = mergeType + "." + "project_id";
|
|
|
- SearchRequest.Builder builder = new SearchRequest.Builder();
|
|
|
- //设置查询索引
|
|
|
- builder.index("patent");
|
|
|
- Query idQ = QueryBuilders.term(i -> i.field(path).value(projectId));
|
|
|
- Query query = QueryBuilders.nested(i -> i.path(mergeType).query(idQ));
|
|
|
- IdsQuery idsQuery = IdsQuery.of(n -> n.values(Arrays.asList(id)));
|
|
|
- Query q = QueryBuilders.hasParent(i -> i.parentType("patent").query(j -> j.ids(idsQuery)));
|
|
|
- Query bool = QueryBuilders.bool(i -> i.must(q, query));
|
|
|
- builder.query(bool);
|
|
|
- SearchResponse<PatentMergePerson> response = client.search(builder.build(), PatentMergePerson.class);
|
|
|
- List<Hit<PatentMergePerson>> hits = response.hits().hits();
|
|
|
- for (Hit<PatentMergePerson> hit : hits) {
|
|
|
- PatentMergePerson person = hit.source();
|
|
|
- EsMergePersonDTO dto = new EsMergePersonDTO();
|
|
|
- dto.setId(hit.id());
|
|
|
- dto.setRouting(hit.routing());
|
|
|
- BeanUtils.copyProperties(person, dto);
|
|
|
- list.add(dto);
|
|
|
- }
|
|
|
- return list;
|
|
|
- }
|
|
|
-
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
|
|
public Integer mergePersonAgain(MergePersonAgainVO vo) throws Exception {
|
|
|
List<String> mergedNames = vo.getNeedMergedName();
|
|
@@ -368,7 +354,6 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
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 bool = QueryBuilders.bool(i -> i.must(idQ, q));
|
|
|
Query childQ = QueryBuilders.hasChild(i -> i.type("merge_inventor").query(query));
|
|
|
queries.add(childQ);
|
|
|
}
|
|
@@ -409,6 +394,8 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new XiaoShiException("编辑失败");
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -550,36 +537,18 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
if (type == 0) {
|
|
|
Query q1 = QueryBuilders.term(i -> i.field("merge_applicant.project_id").value(projectId));
|
|
|
Query query1 = QueryBuilders.nested(i -> i.path("merge_applicant").query(q1));
|
|
|
- if (StringUtils.isNotEmpty(name)) {
|
|
|
- Query q3 = QueryBuilders.match(i -> i.field("merge_applicant.name").query(name));
|
|
|
- Query query3 = QueryBuilders.nested(i -> i.path("merge_applicant").query(q3));
|
|
|
- Query bool = QueryBuilders.bool(i -> i.must(query1).should(query3));
|
|
|
- queries.add(bool);
|
|
|
- } else {
|
|
|
- queries.add(query1);
|
|
|
- }
|
|
|
+ Query childQ1 = QueryBuilders.hasChild(i -> i.type("merge_applicat").query(query1));
|
|
|
+ queries.add(childQ1);
|
|
|
|
|
|
Query q2 = QueryBuilders.term(i -> i.field("merge_right_holder.project_id").value(projectId));
|
|
|
Query query2 = QueryBuilders.nested(i -> i.path("merge_right_holder").query(q2));
|
|
|
- if (StringUtils.isNotEmpty(name)) {
|
|
|
- Query q4 = QueryBuilders.match(i -> i.field("merge_right_holder.name").query(name));
|
|
|
- Query query4 = QueryBuilders.nested(i -> i.path("merge_applicant").query(q4));
|
|
|
- Query bool1 = QueryBuilders.bool(i -> i.must(query2).should(query4));
|
|
|
- queries.add(bool1);
|
|
|
- } else {
|
|
|
- queries.add(query2);
|
|
|
- }
|
|
|
+ Query childQ2 = QueryBuilders.hasChild(i -> i.type("merge_right_holder").query(query2));
|
|
|
+ queries.add(childQ2);
|
|
|
} else {
|
|
|
Query q = QueryBuilders.term(i -> i.field("merge_inventor.project_id").value(projectId));
|
|
|
Query query = QueryBuilders.nested(i -> i.path("merge_inventor").query(q));
|
|
|
- if (StringUtils.isNotEmpty(name)) {
|
|
|
- Query q5 = QueryBuilders.match(i -> i.field("merge_inventor.name").query(name));
|
|
|
- Query query5 = QueryBuilders.nested(i -> i.path("merge_inventor").query(q5));
|
|
|
- Query bool1 = QueryBuilders.bool(i -> i.must(query).should(query5));
|
|
|
- queries.add(bool1);
|
|
|
- } else {
|
|
|
- queries.add(query);
|
|
|
- }
|
|
|
+ Query childQ = QueryBuilders.hasChild(i -> i.type("merge_inventor").query(query));
|
|
|
+ queries.add(childQ);
|
|
|
}
|
|
|
Query bool = QueryBuilders.bool(i -> i.should(queries));
|
|
|
builder.query(bool);
|
|
@@ -591,26 +560,53 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
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) {
|
|
|
- Patent esMess = hit.source();
|
|
|
- GetEsAllPersonDTO personDTO = new GetEsAllPersonDTO();
|
|
|
- if (!CollectionUtils.isEmpty(esMess.getMergeInventor())) {
|
|
|
- personDTO.setMergeApplicant(esPatentService.loadMergeName(esMess.getMergeApplicant()));
|
|
|
- }
|
|
|
- if (!CollectionUtils.isEmpty(esMess.getMergeRightHolder())) {
|
|
|
- personDTO.setMergeRightHolder(esPatentService.loadMergeName(esMess.getMergeRightHolder()));
|
|
|
- }
|
|
|
- if (!CollectionUtils.isEmpty(esMess.getMergeInventor())) {
|
|
|
- personDTO.setMergeInventor(esPatentService.loadMergeName(esMess.getMergeInventor()));
|
|
|
+ String id = hit.id();
|
|
|
+ map.put(id, hit.source());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(map)) {
|
|
|
+ for (String id : map.keySet()) {
|
|
|
+ GetEsAllPersonDTO personDTO = new GetEsAllPersonDTO();
|
|
|
+ if (type == 0) {
|
|
|
+ //申请人
|
|
|
+ Map<String, List<PatentMergePerson>> appMap = this.getChildMergePerson(id, projectId, "merge_applicant");
|
|
|
+ if (!CollectionUtils.isEmpty(appMap)) {
|
|
|
+ for (String appId : appMap.keySet()) {
|
|
|
+ List<PatentMergePerson> appList = appMap.get(appId);
|
|
|
+ List<String> collect = appList.stream().map(PatentMergePerson::getName).collect(Collectors.toList());
|
|
|
+ personDTO.setMergeApplicant(collect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //权利人
|
|
|
+ Map<String, List<PatentMergePerson>> rightMap = this.getChildMergePerson(id, projectId, "merge_right_holder");
|
|
|
+ if (!CollectionUtils.isEmpty(rightMap)) {
|
|
|
+ for (String rightId : rightMap.keySet()) {
|
|
|
+ List<PatentMergePerson> rightList = rightMap.get(rightId);
|
|
|
+ List<String> collect = rightList.stream().map(PatentMergePerson::getName).collect(Collectors.toList());
|
|
|
+ personDTO.setMergeRightHolder(collect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //发明人
|
|
|
+ Map<String, List<PatentMergePerson>> inventorMap = this.getChildMergePerson(id, projectId, "merge_inventor");
|
|
|
+ if (!CollectionUtils.isEmpty(inventorMap)) {
|
|
|
+ for (String inventorId : inventorMap.keySet()) {
|
|
|
+ List<PatentMergePerson> inventorList = inventorMap.get(inventorId);
|
|
|
+ List<String> collect = inventorList.stream().map(PatentMergePerson::getName).collect(Collectors.toList());
|
|
|
+ personDTO.setMergeInventor(collect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ personDTOS.add(personDTO);
|
|
|
}
|
|
|
- personDTOS.add(personDTO);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//es申请人/权利人
|
|
|
- List<GetAllPersonDTO> personDTOList = new ArrayList<>();
|
|
|
List<String> mergeList = new ArrayList<>();
|
|
|
if (!CollectionUtils.isEmpty(personDTOS)) {
|
|
|
if (type == 0) {
|
|
@@ -625,8 +621,6 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
rightList = personDTO.getMergeRightHolder();
|
|
|
mergeList.addAll(rightList);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
} else {
|
|
|
for (GetEsAllPersonDTO personDTO : personDTOS) {
|
|
@@ -640,26 +634,44 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ List<GetAllPersonDTO> personDTOList = new ArrayList<>();
|
|
|
+ List<GetAllPersonDTO> mergePersonList = new ArrayList<>();
|
|
|
+ List<GetAllPersonDTO> personList = new ArrayList<>();
|
|
|
+
|
|
|
List<String> nameList = mergeList.stream().distinct().collect(Collectors.toList());
|
|
|
for (String key : nameList) {
|
|
|
- GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
- dto.setName(key);
|
|
|
MergePerson person = mergePersonMapper.selectOne(new LambdaQueryWrapper<MergePerson>()
|
|
|
- .eq(MergePerson::getName, key));
|
|
|
+ .eq(MergePerson::getName, key)
|
|
|
+ .eq(MergePerson::getProjectId, projectId));
|
|
|
if (ObjectUtils.isNotEmpty(person)) {
|
|
|
+ GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
+ dto.setName(person.getName());
|
|
|
dto.setMergeId(person.getId());
|
|
|
dto.setType(person.getType());
|
|
|
dto.setRemark(person.getRemark());
|
|
|
dto.setAbbreviation(person.getAbbreviation());
|
|
|
dto.setCountry(person.getCountry());
|
|
|
dto.setProvince(person.getProvince());
|
|
|
+ dto.setAddress(person.getAddress());
|
|
|
+ mergePersonList.add(dto);
|
|
|
+ } else {
|
|
|
+ GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
+ dto.setName(key);
|
|
|
+ personList.add(dto);
|
|
|
}
|
|
|
- personDTOList.add(dto);
|
|
|
}
|
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(mergePersonList)) {
|
|
|
+ List<GetAllPersonDTO> collect = mergePersonList.stream().sorted(Comparator.comparing(GetAllPersonDTO::getName)).collect(Collectors.toList());
|
|
|
+ personDTOList.addAll(collect);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(personList)) {
|
|
|
+ List<GetAllPersonDTO> collect = personList.stream().sorted(Comparator.comparing(GetAllPersonDTO::getName)).collect(Collectors.toList());
|
|
|
+ personDTOList.addAll(collect);
|
|
|
+ }
|
|
|
|
|
|
- List<GetAllPersonDTO> collect = personDTOList.stream().skip((pageNum - 1) * pageSize).limit(pageSize)
|
|
|
- .sorted(Comparator.comparing(GetAllPersonDTO::getName).reversed()).collect(Collectors.toList());
|
|
|
+ List<GetAllPersonDTO> collect = personDTOList.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
|
|
|
|
|
Records records = new Records();
|
|
|
records.setCurrent(pageNum);
|
|
@@ -804,6 +816,8 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new XiaoShiException("移除失败");
|
|
|
}
|
|
|
}
|
|
|
return mergePerson.getId();
|
|
@@ -932,8 +946,9 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new XiaoShiException("删除失败");
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
return vo.getId();
|
|
@@ -1054,24 +1069,33 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
|
|
|
|
|
|
public Integer add(String id,Integer type,List<PatentMergePerson> mergePersonList) {
|
|
|
- String source = "";
|
|
|
- if (type == 0) {
|
|
|
- source = "if (ctx._source.merge_applicant != null) {ctx._source.merge_applicant.add(params.data)} else { List list = new ArrayList();list.add(params.data);ctx._source.merge_applicant = list;}" +
|
|
|
- "if (ctx._source.merge_right_holder != null) { ctx._source.merge_right_holder.add(params.data)} else { List list = new ArrayList();list.add(params.data);ctx._source.merge_right_holder = list;}";
|
|
|
- } else {
|
|
|
- source = "if (ctx._source.merge_inventor != null) {ctx._source.merge_inventor.add(params.data)} else { List list = new ArrayList();list.add(params.data);ctx._source.merge_inventor = list;}";
|
|
|
- }
|
|
|
- String finalSource = source;
|
|
|
- InlineScript inlineScript = InlineScript.of(i -> i.lang("painless").params("data", JsonData.of(mergePersonList)).source(finalSource));
|
|
|
- Script script = Script.of(i -> i.inline(inlineScript));
|
|
|
- Query query = QueryBuilders.term(i -> i.field("_id").value(id));
|
|
|
- UpdateByQueryRequest request = UpdateByQueryRequest.of(i -> i.index("patent").script(script).query(query));
|
|
|
- try {
|
|
|
- client.updateByQuery(request);
|
|
|
- return 1;
|
|
|
- } catch (IOException e) {
|
|
|
- return -1;
|
|
|
+ Integer flag = null;
|
|
|
+ for (PatentMergePerson mergePerson : mergePersonList) {
|
|
|
+ Map<String, JsonData> map = new HashMap<>();
|
|
|
+ map.put("name", JsonData.of(mergePerson.getName()));
|
|
|
+ map.put("project_id", JsonData.of(mergePerson.getProjectId()));
|
|
|
+ map.put("type", JsonData.of(mergePerson.getType()));
|
|
|
+ map.put("order", JsonData.of(mergePerson.getOrder()));
|
|
|
+ String source = "";
|
|
|
+ if (type == 0) {
|
|
|
+ source = "if (ctx._source.merge_applicant != null) {ctx._source.merge_applicant.add(params.data)} else { List list = new ArrayList();list.add(params.data);ctx._source.merge_applicant = list;}" +
|
|
|
+ "if (ctx._source.merge_right_holder != null) { ctx._source.merge_right_holder.add(params.data)} else { List list = new ArrayList();list.add(params.data);ctx._source.merge_right_holder = list;}";
|
|
|
+ } else {
|
|
|
+ source = "if (ctx._source.merge_inventor != null) {ctx._source.merge_inventor.add(params.data)} else { List list = new ArrayList();list.add(params.data);ctx._source.merge_inventor = list;}";
|
|
|
+ }
|
|
|
+ String finalSource = source;
|
|
|
+ InlineScript inlineScript = InlineScript.of(i -> i.lang("painless").params("data", JsonData.of(map)).source(finalSource));
|
|
|
+ Script script = Script.of(i -> i.inline(inlineScript));
|
|
|
+ Query query = QueryBuilders.term(i -> i.field("_id").value(id));
|
|
|
+ UpdateByQueryRequest request = UpdateByQueryRequest.of(i -> i.index("patent").script(script).query(query));
|
|
|
+ try {
|
|
|
+ client.updateByQuery(request);
|
|
|
+ flag += 1;
|
|
|
+ } catch (IOException e) {
|
|
|
+ flag += -1;
|
|
|
+ }
|
|
|
}
|
|
|
+ return flag;
|
|
|
}
|
|
|
|
|
|
public Integer edit(String id,Integer type,String oldName, String newName) {
|