|
@@ -1,5 +1,6 @@
|
|
|
package cn.cslg.pas.service.business;
|
|
|
|
|
|
+import cn.cslg.pas.common.dto.GetAllCountryDTO;
|
|
|
import cn.cslg.pas.common.dto.GetAllPersonDTO;
|
|
|
import cn.cslg.pas.common.dto.MergePersonQueryDTO;
|
|
|
import cn.cslg.pas.common.dto.PatentColumnDTO;
|
|
@@ -15,11 +16,14 @@ import cn.cslg.pas.common.vo.business.*;
|
|
|
import cn.cslg.pas.domain.BaseEntity;
|
|
|
import cn.cslg.pas.domain.business.FollowUp;
|
|
|
import cn.cslg.pas.domain.business.MergePerson;
|
|
|
+import cn.cslg.pas.domain.business.SystemDict;
|
|
|
import cn.cslg.pas.domain.es.Patent;
|
|
|
import cn.cslg.pas.domain.es.PatentMergePerson;
|
|
|
+import cn.cslg.pas.domain.es.PatentPerson;
|
|
|
import cn.cslg.pas.domain.es.PersonAddress;
|
|
|
import cn.cslg.pas.exception.UnLoginException;
|
|
|
import cn.cslg.pas.mapper.MergePersonMapper;
|
|
|
+import cn.cslg.pas.mapper.SystemDictMapper;
|
|
|
import cn.cslg.pas.service.business.es.EsPatentService;
|
|
|
import cn.cslg.pas.service.business.es.EsService;
|
|
|
import cn.cslg.pas.service.query.FormatQueryService;
|
|
@@ -76,6 +80,8 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
private EsPatentService esPatentService;
|
|
|
@Autowired
|
|
|
private EsService esService;
|
|
|
+ @Autowired
|
|
|
+ private SystemDictMapper systemDictMapper;
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
|
|
public Integer mergePerson(MergePersonVO vo) throws Exception {
|
|
@@ -146,10 +152,29 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
|
|
|
for (String id : map.keySet()) {
|
|
|
Patent patent = map.get(id);
|
|
|
- List<PatentMergePerson> mergeApplicants = patent.getMergeApplicant();
|
|
|
- mergePersonList.addAll(mergeApplicants);
|
|
|
- patent.setMergeApplicant(mergePersonList);
|
|
|
- patent.setMergeRightHolder(mergePersonList);
|
|
|
+ if (type == 0) {
|
|
|
+ //申请人
|
|
|
+ List<PatentMergePerson> mergeApplicants = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(patent.getMergeApplicant())) {
|
|
|
+ mergeApplicants = patent.getMergeApplicant();
|
|
|
+ }
|
|
|
+ mergeApplicants.addAll(mergePersonList);
|
|
|
+ //权利人
|
|
|
+ List<PatentMergePerson> mergeRightHolder = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(patent.getMergeRightHolder())) {
|
|
|
+ mergeRightHolder = patent.getMergeRightHolder();
|
|
|
+ }
|
|
|
+ mergeRightHolder.addAll(mergePersonList);
|
|
|
+ patent.setMergeApplicant(mergeApplicants);
|
|
|
+ patent.setMergeRightHolder(mergeRightHolder);
|
|
|
+ } else if (type == 2) {
|
|
|
+ List<PatentMergePerson> mergeInventor = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(patent.getMergeInventor())) {
|
|
|
+ mergeInventor = patent.getMergeInventor();
|
|
|
+ }
|
|
|
+ mergeInventor.addAll(mergePersonList);
|
|
|
+ patent.setMergeInventor(mergeInventor);
|
|
|
+ }
|
|
|
esService.updateMergePerson(patent, id);
|
|
|
}
|
|
|
}
|
|
@@ -157,6 +182,44 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
}
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
|
|
+ public Integer mergePersonAgain(MergePersonAgainVO vo) throws Exception {
|
|
|
+ List<String> mergedNames = vo.getNeedMergedName();
|
|
|
+ List<String> mergeName = vo.getMergeName();
|
|
|
+ List<String> nameList = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(mergedNames)) {
|
|
|
+ for (String mergedName : mergedNames) {
|
|
|
+ MergePerson person = mergePersonMapper.selectOne(new LambdaQueryWrapper<MergePerson>()
|
|
|
+ .eq(MergePerson::getProjectId, vo.getProjectId())
|
|
|
+ .eq(MergePerson::getName, mergedName));
|
|
|
+ String name = person.getMergedName();
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(mergeName)) {
|
|
|
+ nameList.addAll(mergeName);
|
|
|
+ }
|
|
|
+
|
|
|
+ MergePersonVO personVO = new MergePersonVO();
|
|
|
+ personVO.setProjectId(vo.getProjectId());
|
|
|
+ personVO.setType(vo.getType());
|
|
|
+ personVO.setName(vo.getName());
|
|
|
+ personVO.setAbbreviation(vo.getAbbreviation());
|
|
|
+ personVO.setCountry(vo.getCountry());
|
|
|
+ personVO.setProvince(vo.getProvince());
|
|
|
+ personVO.setAddress(vo.getAddress());
|
|
|
+ personVO.setRemark(vo.getRemark());
|
|
|
+ personVO.setMergedName(nameList);
|
|
|
+ return this.mergePerson(personVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
|
|
public Integer updateMergePerson(MergePersonVO vo) throws Exception {
|
|
|
//获取登陆人信息 用于设置创建人
|
|
|
PersonnelVO personnelVO = new PersonnelVO();
|
|
@@ -181,57 +244,92 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(person)) {
|
|
|
BeanUtils.copyProperties(vo, person);
|
|
|
- person.setMergedName(JSONArray.toJSONString(vo.getMergedName()));
|
|
|
+// person.setMergedName(JSONArray.toJSONString(vo.getMergedName()));
|
|
|
person.setCreateId(personnelVO.getId());
|
|
|
person.setCreateTime(new Date());
|
|
|
person.updateById();
|
|
|
|
|
|
- List<String> mergedNames = JSONArray.parseArray(mergedName, String.class);
|
|
|
- SearchRequest.Builder builder = new SearchRequest.Builder();
|
|
|
- //设置查询索引
|
|
|
- builder.index("patent");
|
|
|
+ if (!name.equals(vo.getName())) {
|
|
|
+ List<String> mergedNames = JSONArray.parseArray(mergedName, String.class);
|
|
|
+ SearchRequest.Builder builder = new SearchRequest.Builder();
|
|
|
+ //设置查询索引
|
|
|
+ builder.index("patent");
|
|
|
|
|
|
- List<Query> queries = new ArrayList<>();
|
|
|
- if (type == 0) {
|
|
|
- for (String merged : mergedNames) {
|
|
|
- Query q1 = QueryBuilders.term(i -> i.field("applicant.name.key").value(merged));
|
|
|
- Query query1 = QueryBuilders.nested(i -> i.path("applicant").query(q1));
|
|
|
- Query q2 = QueryBuilders.term(i -> i.field("right_holder.name.key").value(merged));
|
|
|
- Query query2 = QueryBuilders.nested(i -> i.path("right_holder").query(q2));
|
|
|
- queries.add(query1);
|
|
|
- queries.add(query2);
|
|
|
+ List<Query> queries = new ArrayList<>();
|
|
|
+ if (type == 0) {
|
|
|
+ for (String merged : mergedNames) {
|
|
|
+ Query q1 = QueryBuilders.term(i -> i.field("applicant.name.key").value(merged));
|
|
|
+ Query query1 = QueryBuilders.nested(i -> i.path("applicant").query(q1));
|
|
|
+ Query q2 = QueryBuilders.term(i -> i.field("right_holder.name.key").value(merged));
|
|
|
+ Query query2 = QueryBuilders.nested(i -> i.path("right_holder").query(q2));
|
|
|
+ queries.add(query1);
|
|
|
+ queries.add(query2);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (String merged : mergedNames) {
|
|
|
+ Query q = QueryBuilders.term(i -> i.field("inventor.name.key").value(merged));
|
|
|
+ Query query = QueryBuilders.nested(i -> i.path("inventor").query(q));
|
|
|
+ queries.add(query);
|
|
|
+ }
|
|
|
}
|
|
|
- } else {
|
|
|
- for (String merged : mergedNames) {
|
|
|
- Query q = QueryBuilders.term(i -> i.field("inventor.name.key").value(merged));
|
|
|
- Query query = QueryBuilders.nested(i -> i.path("inventor").query(q));
|
|
|
- queries.add(query);
|
|
|
+ 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());
|
|
|
}
|
|
|
- }
|
|
|
- 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());
|
|
|
- }
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(map)) {
|
|
|
- for (String id : map.keySet()) {
|
|
|
- Patent patent = map.get(id);
|
|
|
- List<PatentMergePerson> mergeApplicants = patent.getMergeApplicant();
|
|
|
- if (!name.equals(vo.getName())) {
|
|
|
- for (PatentMergePerson mergeApplicant : mergeApplicants) {
|
|
|
- if (mergeApplicant.getName().equals(name)) {
|
|
|
- mergeApplicant.setName(vo.getName());
|
|
|
+ if (!CollectionUtils.isEmpty(map)) {
|
|
|
+ for (String id : map.keySet()) {
|
|
|
+ Patent patent = map.get(id);
|
|
|
+ if (type == 0) {
|
|
|
+ //申请人
|
|
|
+ List<PatentMergePerson> mergeApplicants = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(patent.getMergeApplicant())) {
|
|
|
+ mergeApplicants = patent.getMergeApplicant();
|
|
|
+
|
|
|
+ for (PatentMergePerson mergeApplicant : mergeApplicants) {
|
|
|
+ if (mergeApplicant.getName().equals(name)) {
|
|
|
+ mergeApplicant.setName(vo.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ patent.setMergeApplicant(mergeApplicants);
|
|
|
+ }
|
|
|
+
|
|
|
+ //权利人
|
|
|
+ List<PatentMergePerson> mergeRightHolders = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(patent.getMergeRightHolder())) {
|
|
|
+ mergeRightHolders = patent.getMergeRightHolder();
|
|
|
+ for (PatentMergePerson mergeRightHolder : mergeRightHolders) {
|
|
|
+ if (mergeRightHolder.getName().equals(name)) {
|
|
|
+ mergeRightHolder.setName(vo.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ patent.setMergeRightHolder(mergeRightHolders);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (type == 2) {
|
|
|
+ List<PatentMergePerson> mergeInventors = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(patent.getMergeInventor())) {
|
|
|
+ mergeInventors = patent.getMergeInventor();
|
|
|
+
|
|
|
+ for (PatentMergePerson mergeInventor : mergeInventors) {
|
|
|
+ if (mergeInventor.getName().equals(name)) {
|
|
|
+ mergeInventor.setName(vo.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ patent.setMergeInventor(mergeInventors);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ esService.updateMergePerson(patent, id);
|
|
|
}
|
|
|
- patent.setMergeApplicant(mergeApplicants);
|
|
|
- patent.setMergeRightHolder(mergeApplicants);
|
|
|
- esService.updateMergePerson(patent, id);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
@@ -287,12 +385,12 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
public Records getMergePerson(GetAllPersonVO vo) throws Exception {
|
|
|
Integer projectId = vo.getProjectId();
|
|
|
Integer taskId = vo.getTaskId();
|
|
|
- Integer pageNum = vo.getPageNum();
|
|
|
- Integer pageSize = vo.getPageSize();
|
|
|
+ Long pageNum = vo.getPageNum();
|
|
|
+ Long pageSize = vo.getPageSize();
|
|
|
Integer type = vo.getType();
|
|
|
String searchCondition = "";
|
|
|
if (type == 0 && StringUtils.isNotEmpty(vo.getName())) {
|
|
|
- searchCondition = searchCondition + "PA = " + vo.getName();
|
|
|
+ searchCondition = searchCondition + "PA = " + vo.getName() + " " + "OR" + " " + "PE =" + vo.getName();
|
|
|
} else if (type == 2 && StringUtils.isNotEmpty(vo.getName())) {
|
|
|
searchCondition = searchCondition + "IN = " + vo.getName();
|
|
|
}
|
|
@@ -321,90 +419,202 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
Query q = formatQueryService.EsQueryToQuery((operateNode) tree, "patent");
|
|
|
builder.query(q);
|
|
|
//分页
|
|
|
- if (pageNum > 0 && pageSize > 0) {
|
|
|
- builder.from((pageNum - 1) * pageSize).size(pageSize);
|
|
|
- }
|
|
|
+// if (pageNum > 0 && pageSize > 0) {
|
|
|
+// builder.from((pageNum - 1) * pageSize).size(pageSize);
|
|
|
+// }
|
|
|
SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
|
|
|
List<Hit<Patent>> hits = response.hits().hits();
|
|
|
- long total = response.hits().total().value();
|
|
|
List<GetEsAllPersonDTO> personDTOS = new ArrayList<>();
|
|
|
for (Hit<Patent> hit : hits) {
|
|
|
Patent esMess = hit.source();
|
|
|
PersonAddress applicantAddr = null;
|
|
|
GetEsAllPersonDTO personDTO = new GetEsAllPersonDTO();
|
|
|
- if (ObjectUtil.isNotEmpty(esMess.getApplicantAddr())) {
|
|
|
- applicantAddr = esMess.getApplicantAddr();
|
|
|
- personDTO.setAddress(applicantAddr.getAddress());
|
|
|
- personDTO.setCountry(applicantAddr.getCountry());
|
|
|
- }
|
|
|
+ personDTO.setApplicantAddr(esMess.getApplicantAddr());
|
|
|
+ personDTO.setRightHolderAddr(esMess.getRightHolderAddr());
|
|
|
personDTO.setApplicant(esPatentService.loadName(esMess.getApplicant()));
|
|
|
personDTO.setRightHolder(esPatentService.loadName(esMess.getRightHolder()));
|
|
|
personDTO.setInventor(esPatentService.loadName(esMess.getInventor()));
|
|
|
personDTOS.add(personDTO);
|
|
|
}
|
|
|
- List<String> applicants = new ArrayList<>();
|
|
|
- List<String> inventors = new ArrayList<>();
|
|
|
- for (GetEsAllPersonDTO personDTO : personDTOS) {
|
|
|
- applicants.addAll(personDTO.getApplicant());
|
|
|
- inventors.addAll(personDTO.getInventor());
|
|
|
+
|
|
|
+ //es申请人/权利人
|
|
|
+ List<GetAllPersonDTO> personDTOList = new ArrayList<>();
|
|
|
+ //申请人
|
|
|
+ List<GetAllPersonDTO> applicantDTOS = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(personDTOS)) {
|
|
|
+ for (GetEsAllPersonDTO personDTO : personDTOS) {
|
|
|
+ PersonAddress applicantAddr = personDTO.getApplicantAddr();
|
|
|
+ if (ObjectUtil.isNotEmpty(applicantAddr)) {
|
|
|
+ List<String> applicant = personDTO.getApplicant();
|
|
|
+ for (String s : applicant) {
|
|
|
+ GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
+ dto.setName(s);
|
|
|
+ dto.setType(0);
|
|
|
+ if (StringUtils.isNotEmpty(applicantAddr.getCountry())) {
|
|
|
+ dto.setCountry(applicantAddr.getCountry());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(applicantAddr.getAddress())) {
|
|
|
+ dto.setAddress(applicantAddr.getAddress());
|
|
|
+ }
|
|
|
+ applicantDTOS.add(dto);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ List<String> applicant = personDTO.getApplicant();
|
|
|
+ for (String s : applicant) {
|
|
|
+ GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
+ dto.setName(s);
|
|
|
+ dto.setType(0);
|
|
|
+ applicantDTOS.add(dto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //权利人
|
|
|
+ List<GetAllPersonDTO> rightDTOS = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(personDTOS)) {
|
|
|
+ for (GetEsAllPersonDTO personDTO : personDTOS) {
|
|
|
+ PersonAddress rightHolderAddr = personDTO.getRightHolderAddr();
|
|
|
+ if (ObjectUtil.isNotEmpty(rightHolderAddr)) {
|
|
|
+ List<String> rightHolder = personDTO.getRightHolder();
|
|
|
+ for (String s : rightHolder) {
|
|
|
+ GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
+ dto.setName(s);
|
|
|
+ dto.setType(0);
|
|
|
+ if (StringUtils.isNotEmpty(rightHolderAddr.getCountry())) {
|
|
|
+ dto.setCountry(rightHolderAddr.getCountry());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotEmpty(rightHolderAddr.getAddress())) {
|
|
|
+ dto.setAddress(rightHolderAddr.getAddress());
|
|
|
+ }
|
|
|
+ rightDTOS.add(dto);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ List<String> rightHolder = personDTO.getRightHolder();
|
|
|
+ for (String s : rightHolder) {
|
|
|
+ GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
+ dto.setName(s);
|
|
|
+ dto.setType(0);
|
|
|
+ rightDTOS.add(dto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- List<String> applicantList = applicants.stream().distinct().collect(Collectors.toList());
|
|
|
- List<String> inventorList = inventors.stream().distinct().collect(Collectors.toList());
|
|
|
|
|
|
- IPage<MergePerson> page = new Page<>(vo.getPageNum(), vo.getPageSize());
|
|
|
- LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
|
|
|
- .eq(StringUtils.isNotEmpty(vo.getProjectId().toString()), MergePerson::getProjectId, vo.getProjectId());
|
|
|
- IPage<MergePerson> record = mergePersonMapper.selectPage(page, wrapper);
|
|
|
- List<String> applicantMergeList = new ArrayList<>();
|
|
|
- List<String> inventorMergeList = new ArrayList<>();
|
|
|
- for (MergePerson person : record.getRecords()) {
|
|
|
- if (person.getType() == 0) {
|
|
|
- applicantMergeList = JSONArray.parseArray(person.getMergedName(), String.class);
|
|
|
- } else if (person.getType() == 2) {
|
|
|
- inventorMergeList = JSONArray.parseArray(person.getMergedName(), String.class);
|
|
|
+ //申请人和权利人相同的去除
|
|
|
+ if (!CollectionUtils.isEmpty(applicantDTOS) && !CollectionUtils.isEmpty(rightDTOS)) {
|
|
|
+ for (GetAllPersonDTO applicantDTO : applicantDTOS) {
|
|
|
+ rightDTOS.removeIf(rightDTO -> applicantDTO.getName().equals(rightDTO.getName()));
|
|
|
}
|
|
|
}
|
|
|
- applicantList.removeAll(applicantMergeList);
|
|
|
- inventorList.removeAll(inventorMergeList);
|
|
|
- List<GetAllPersonDTO> applicantDTOS = new ArrayList<>();
|
|
|
+ //装载在同一个集合
|
|
|
+ personDTOList.addAll(applicantDTOS);
|
|
|
+ personDTOList.addAll(rightDTOS);
|
|
|
+
|
|
|
+ //发明人
|
|
|
List<GetAllPersonDTO> inventorDTOS = new ArrayList<>();
|
|
|
- for (String applicant : applicantList) {
|
|
|
- GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
- dto.setName(applicant);
|
|
|
- dto.setType(0);
|
|
|
- applicantDTOS.add(dto);
|
|
|
- }
|
|
|
- for (String inventor : inventorList) {
|
|
|
- GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
- dto.setName(inventor);
|
|
|
- dto.setType(2);
|
|
|
- inventorDTOS.add(dto);
|
|
|
+ if (!CollectionUtils.isEmpty(personDTOS)) {
|
|
|
+ for (GetEsAllPersonDTO personDTO : personDTOS) {
|
|
|
+ List<String> inventor = personDTO.getInventor();
|
|
|
+ for (String s : inventor) {
|
|
|
+ GetAllPersonDTO dto = new GetAllPersonDTO();
|
|
|
+ dto.setName(s);
|
|
|
+ dto.setType(2);
|
|
|
+ inventorDTOS.add(dto);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- Records records = new Records();
|
|
|
- records.setCurrent(vo.getPageNum().longValue());
|
|
|
- records.setSize(vo.getPageSize().longValue());
|
|
|
- if (vo.getType() == 0) {
|
|
|
- int size = applicantDTOS.size();
|
|
|
- records.setData(applicantDTOS.stream().limit(vo.getPageSize()).collect(Collectors.toList()));
|
|
|
- if (total >= size) {
|
|
|
- records.setTotal((long) size);
|
|
|
- } else {
|
|
|
- records.setTotal(total);
|
|
|
+ //查询合并信息表中数据
|
|
|
+// IPage<MergePerson> page = new Page<>(vo.getPageNum(), vo.getPageSize());
|
|
|
+ LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
|
|
|
+ .eq(MergePerson::getProjectId, vo.getProjectId())
|
|
|
+ .eq(StringUtils.isNotEmpty(vo.getName()), MergePerson::getName, vo.getName())
|
|
|
+ .orderByDesc(MergePerson::getCreateTime);
|
|
|
+// IPage<MergePerson> record = mergePersonMapper.selectPage(page, wrapper);
|
|
|
+ List<MergePerson> mergePersonList = mergePersonMapper.selectList(wrapper);
|
|
|
+ //合并
|
|
|
+ List<GetAllPersonDTO> mergeList = new ArrayList<>();
|
|
|
+ //申请人/权利人
|
|
|
+ List<GetAllPersonDTO> applicantMergeList = new ArrayList<>();
|
|
|
+ //发明人
|
|
|
+ List<GetAllPersonDTO> inventorMergeList = new ArrayList<>();
|
|
|
+// List<MergePerson> mergePersonList = record.getRecords();
|
|
|
+ if (!CollectionUtils.isEmpty(mergePersonList)) {
|
|
|
+ for (MergePerson person : mergePersonList) {
|
|
|
+ Integer personType = person.getType();
|
|
|
+ GetAllPersonDTO merge = new GetAllPersonDTO();
|
|
|
+ merge.setName(person.getName());
|
|
|
+ merge.setCountry(person.getCountry());
|
|
|
+ merge.setAddress(person.getAddress());
|
|
|
+ merge.setRemark(person.getRemark());
|
|
|
+ merge.setType(personType);
|
|
|
+ merge.setMergeId(person.getId());
|
|
|
+ mergeList.add(merge);
|
|
|
+
|
|
|
+ if (personType == 0) {
|
|
|
+ List<String> applicantMerges = JSONArray.parseArray(person.getMergedName(), String.class);
|
|
|
+ if (!CollectionUtils.isEmpty(applicantMerges)) {
|
|
|
+ for (String applicantMerge : applicantMerges) {
|
|
|
+ GetAllPersonDTO applicant = new GetAllPersonDTO();
|
|
|
+ applicant.setName(applicantMerge);
|
|
|
+ applicant.setCountry(person.getCountry());
|
|
|
+ applicant.setAddress(person.getAddress());
|
|
|
+ applicant.setRemark(person.getRemark());
|
|
|
+ applicant.setType(personType);
|
|
|
+ applicantMergeList.add(applicant);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (person.getType() == 2) {
|
|
|
+ List<String> inventorMerges = JSONArray.parseArray(person.getMergedName(), String.class);
|
|
|
+ if (!CollectionUtils.isEmpty(inventorMerges)) {
|
|
|
+ for (String inventorMerge : inventorMerges) {
|
|
|
+ GetAllPersonDTO inventor = new GetAllPersonDTO();
|
|
|
+ inventor.setName(inventorMerge);
|
|
|
+ inventor.setCountry(person.getCountry());
|
|
|
+ inventor.setAddress(person.getAddress());
|
|
|
+ inventor.setRemark(person.getRemark());
|
|
|
+ inventor.setType(personType);
|
|
|
+ inventorMergeList.add(inventor);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- } else if (vo.getType() == 2) {
|
|
|
- int size = inventorDTOS.size();
|
|
|
- records.setData(inventorDTOS.stream().limit(vo.getPageSize()).collect(Collectors.toList()));
|
|
|
- if (total >= size) {
|
|
|
- records.setTotal((long) size);
|
|
|
- } else {
|
|
|
- records.setTotal(total);
|
|
|
+ }
|
|
|
+ //申请人/权利人
|
|
|
+ if (!CollectionUtils.isEmpty(personDTOList) && !CollectionUtils.isEmpty(applicantMergeList)) {
|
|
|
+ for (GetAllPersonDTO applicantMerge : applicantMergeList) {
|
|
|
+ personDTOList.removeIf(personDTO -> personDTO.getName().equals(applicantMerge.getName()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //发明人
|
|
|
+ if (!CollectionUtils.isEmpty(inventorDTOS) && !CollectionUtils.isEmpty(inventorMergeList)) {
|
|
|
+ for (GetAllPersonDTO inventorMerge : inventorMergeList) {
|
|
|
+ inventorDTOS.removeIf(inventor -> inventor.getName().equals(inventorMerge.getName()));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //申请人/权利人、发明人返回数据
|
|
|
+ List<GetAllPersonDTO> list = new ArrayList<>();
|
|
|
+ if (type == 0) {
|
|
|
+ list.addAll(mergeList);
|
|
|
+ list.addAll(personDTOList);
|
|
|
+ } else {
|
|
|
+ list.addAll(mergeList);
|
|
|
+ list.addAll(inventorDTOS);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<GetAllPersonDTO> collect = list.stream().skip((pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
|
|
|
+
|
|
|
+ Records records = new Records();
|
|
|
+ records.setCurrent(pageNum);
|
|
|
+ records.setSize(pageSize);
|
|
|
+ records.setData(collect);
|
|
|
+ records.setTotal((long) list.size());
|
|
|
return records;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
|
|
public Integer delMergedName(MergedNameVO vo) throws IOException {
|
|
|
Integer type = vo.getType();
|
|
|
String delName = vo.getDelName();
|
|
@@ -468,6 +678,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
return mergePerson.getId();
|
|
|
}
|
|
|
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
|
|
|
public Integer delMergePerson(MergePersonIdVO vo) throws IOException {
|
|
|
Integer type = vo.getType();
|
|
|
MergePerson mergePerson = mergePersonMapper.selectById(vo.getId());
|
|
@@ -512,4 +723,24 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
|
|
|
}
|
|
|
return vo.getId();
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取所有国家列表查询
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<GetAllCountryDTO> getAllCountry() {
|
|
|
+ List<GetAllCountryDTO> list = new ArrayList<>();
|
|
|
+ List<SystemDict> countries = systemDictMapper.selectList(new LambdaQueryWrapper<SystemDict>()
|
|
|
+ .eq(SystemDict::getType, "COUNTRIES"));
|
|
|
+ if (!CollectionUtils.isEmpty(countries)) {
|
|
|
+ countries.forEach(county -> {
|
|
|
+ GetAllCountryDTO dto = new GetAllCountryDTO();
|
|
|
+ dto.setLabel(county.getLabel());
|
|
|
+ dto.setValue(county.getValue());
|
|
|
+ dto.setType(county.getType());
|
|
|
+ list.add(dto);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
}
|