|
@@ -6,9 +6,7 @@ import cn.cslg.pas.common.utils.FormatUtil;
|
|
|
import cn.cslg.pas.common.vo.ImportTaskAMVO;
|
|
|
import cn.cslg.pas.common.vo.PatentWithIdVO;
|
|
|
import cn.cslg.pas.domain.business.ImportTask;
|
|
|
-import cn.cslg.pas.domain.es.ESImportTask;
|
|
|
-import cn.cslg.pas.domain.es.Patent;
|
|
|
-import cn.cslg.pas.domain.es.PatentJoin;
|
|
|
+import cn.cslg.pas.domain.es.*;
|
|
|
import cn.cslg.pas.service.business.CompareLiteratureService;
|
|
|
import cn.cslg.pas.service.business.ImportTaskService;
|
|
|
import cn.cslg.pas.service.business.es.*;
|
|
@@ -16,9 +14,11 @@ import cn.cslg.pas.service.common.FileManagerService;
|
|
|
import cn.cslg.pas.service.common.MessageService;
|
|
|
import cn.cslg.pas.service.common.PatentStarApiService;
|
|
|
import cn.cslg.pas.service.common.TranslateService;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.ApplicationContext;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
@@ -29,6 +29,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
|
|
import java.util.concurrent.locks.Condition;
|
|
|
import java.util.concurrent.locks.Lock;
|
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
|
+import java.util.function.BiConsumer;
|
|
|
|
|
|
public class SavePatentToEsThread extends Thread {
|
|
|
private ApplicationContext applicationContext;
|
|
@@ -104,12 +105,50 @@ public class SavePatentToEsThread extends Thread {
|
|
|
patentId = esService.addPatent(patent);
|
|
|
orgPatent = patent;
|
|
|
}
|
|
|
+ if (importTaskAMVO.getProjectId() != null && StringUtils.isNotEmpty(patentId)) {
|
|
|
+ long mergePersonCount = esService.getMergePersonCount(importTaskAMVO.getProjectId(), patentId);
|
|
|
+ if (mergePersonCount < 1) {
|
|
|
+ //合并申请人
|
|
|
+ if (!CollectionUtils.isEmpty(orgPatent.getApplicant())) {
|
|
|
+ List<PatentMergePerson> mergeAppPerson = this.createMergePerson(orgPatent.getApplicant(), importTaskAMVO.getProjectId());
|
|
|
+ Patent newPatent = new Patent();
|
|
|
+ newPatent.setMergeApplicant(mergeAppPerson);
|
|
|
+ PatentJoin patentJoin = new PatentJoin();
|
|
|
+ patentJoin.setParent(patentId);
|
|
|
+ patentJoin.setName("merge_applicat");
|
|
|
+ newPatent.setPatentJoin(patentJoin);
|
|
|
+ esService.addChildPatent(newPatent, patentId);
|
|
|
+ }
|
|
|
+ //合并权利人
|
|
|
+ if (!CollectionUtils.isEmpty(orgPatent.getRightHolder())) {
|
|
|
+ List<PatentMergePerson> mergeAppPerson = this.createMergePerson(orgPatent.getRightHolder(), importTaskAMVO.getProjectId());
|
|
|
+ Patent newPatent = new Patent();
|
|
|
+ newPatent.setMergeRightHolder(mergeAppPerson);
|
|
|
+ PatentJoin patentJoin = new PatentJoin();
|
|
|
+ patentJoin.setParent(patentId);
|
|
|
+ patentJoin.setName("merge_right_holder");
|
|
|
+ newPatent.setPatentJoin(patentJoin);
|
|
|
+ esService.addChildPatent(newPatent, patentId);
|
|
|
+ }
|
|
|
+ //合并发明人
|
|
|
+ if (!CollectionUtils.isEmpty(orgPatent.getInventor())) {
|
|
|
+ List<PatentMergePerson> mergeAppPerson = this.createMergePerson(orgPatent.getInventor(), importTaskAMVO.getProjectId());
|
|
|
+ Patent newPatent = new Patent();
|
|
|
+ newPatent.setMergeInventor(mergeAppPerson);
|
|
|
+ PatentJoin patentJoin = new PatentJoin();
|
|
|
+ patentJoin.setParent(patentId);
|
|
|
+ patentJoin.setName("merge_inventor");
|
|
|
+ newPatent.setPatentJoin(patentJoin);
|
|
|
+ esService.addChildPatent(newPatent, patentId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
//判断是否和专题库或报告关联
|
|
|
ImportTaskAMVO importTaskAMVO = taskThread.getImportTaskAMVO();
|
|
|
|
|
|
//添加专利向量信息
|
|
|
EsPatentVectorService esPatentVectorService = applicationContext.getBean(EsPatentVectorService.class);
|
|
|
- esPatentVectorService.asyncAddPatentVector(orgPatent,patentId);
|
|
|
+ esPatentVectorService.asyncAddPatentVector(orgPatent, patentId);
|
|
|
//和专题库或报告进行关联
|
|
|
if (importTaskAMVO.getProjectId() != null) {
|
|
|
|
|
@@ -134,7 +173,7 @@ public class SavePatentToEsThread extends Thread {
|
|
|
|
|
|
//添加报告对比文件
|
|
|
CompareLiteratureService compareLiteratureService = applicationContext.getBean(CompareLiteratureService.class);
|
|
|
- compareLiteratureService.addCompareLiteratureToProject(importTaskAMVO,patent);
|
|
|
+ compareLiteratureService.addCompareLiteratureToProject(importTaskAMVO, patent);
|
|
|
|
|
|
|
|
|
}
|
|
@@ -220,6 +259,20 @@ public class SavePatentToEsThread extends Thread {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private List<PatentMergePerson> createMergePerson(List<PatentPerson> personList, Integer projectId) {
|
|
|
+ List<PatentMergePerson> mergePersonList = new ArrayList<>();
|
|
|
+ if (!CollectionUtils.isEmpty(personList)) {
|
|
|
+ for (PatentPerson person : personList) {
|
|
|
+ PatentMergePerson merge = new PatentMergePerson();
|
|
|
+ merge.setName(person.getName());
|
|
|
+ merge.setType(person.getType());
|
|
|
+ merge.setOrder(person.getOrder());
|
|
|
+ merge.setProjectId(String.valueOf(projectId));
|
|
|
+ mergePersonList.add(merge);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return mergePersonList;
|
|
|
+ }
|
|
|
|
|
|
public void setIfProductAll(Boolean ifProductAll) {
|
|
|
this.ifProductAll = ifProductAll;
|