|
@@ -25,20 +25,22 @@ import org.springframework.context.ApplicationContext;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
|
|
+import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.concurrent.CopyOnWriteArrayList;
|
|
import java.util.concurrent.locks.Condition;
|
|
import java.util.concurrent.locks.Condition;
|
|
import java.util.concurrent.locks.Lock;
|
|
import java.util.concurrent.locks.Lock;
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
import java.util.concurrent.locks.ReentrantLock;
|
|
|
|
|
|
public class SavePatentToEsThread extends Thread {
|
|
public class SavePatentToEsThread extends Thread {
|
|
private ApplicationContext applicationContext;
|
|
private ApplicationContext applicationContext;
|
|
- private List<UploadPatentWebDTO> uploadPatentWebDTOS = new ArrayList<>();
|
|
|
|
|
|
+ private List<UploadPatentWebDTO> uploadPatentWebDTOS = new CopyOnWriteArrayList<>();
|
|
private Lock taskLock = new ReentrantLock();
|
|
private Lock taskLock = new ReentrantLock();
|
|
private Condition taskCondition = taskLock.newCondition();
|
|
private Condition taskCondition = taskLock.newCondition();
|
|
private TaskThread taskThread;
|
|
private TaskThread taskThread;
|
|
private ImportTaskAMVO importTaskAMVO;
|
|
private ImportTaskAMVO importTaskAMVO;
|
|
private Boolean ifProductAll = false;
|
|
private Boolean ifProductAll = false;
|
|
-
|
|
|
|
|
|
+ private Integer i=0;
|
|
@Override
|
|
@Override
|
|
public void run() {
|
|
public void run() {
|
|
while ((!ifProductAll || uploadPatentWebDTOS.size() > 0) && importTaskAMVO.getState().equals(1)) {
|
|
while ((!ifProductAll || uploadPatentWebDTOS.size() > 0) && importTaskAMVO.getState().equals(1)) {
|
|
@@ -61,9 +63,10 @@ public class SavePatentToEsThread extends Thread {
|
|
PatentWithIdVO patentWithIdVO = esService.getIdByPatentNo(patent.getPatentNo());
|
|
PatentWithIdVO patentWithIdVO = esService.getIdByPatentNo(patent.getPatentNo());
|
|
String patentId = null;
|
|
String patentId = null;
|
|
// 若查出专利则更新
|
|
// 若查出专利则更新
|
|
|
|
+ Patent orgPatent =null;
|
|
if (patentWithIdVO != null) {
|
|
if (patentWithIdVO != null) {
|
|
patentId = patentWithIdVO.getId();
|
|
patentId = patentWithIdVO.getId();
|
|
- Patent orgPatent = patentWithIdVO.getPatent();
|
|
|
|
|
|
+ orgPatent = patentWithIdVO.getPatent();
|
|
BeanUtils.copyProperties(patent, orgPatent, FormatUtil.getNullPropertyNames(patent));
|
|
BeanUtils.copyProperties(patent, orgPatent, FormatUtil.getNullPropertyNames(patent));
|
|
esService.updatePatent(orgPatent, patentWithIdVO.getId());
|
|
esService.updatePatent(orgPatent, patentWithIdVO.getId());
|
|
} else {
|
|
} else {
|
|
@@ -71,6 +74,7 @@ public class SavePatentToEsThread extends Thread {
|
|
patentJoin.setName("patent");
|
|
patentJoin.setName("patent");
|
|
patent.setPatentJoin(patentJoin);
|
|
patent.setPatentJoin(patentJoin);
|
|
patentId = esService.addPatent(patent);
|
|
patentId = esService.addPatent(patent);
|
|
|
|
+ orgPatent= patent;
|
|
}
|
|
}
|
|
//判断是否和专题库或报告关联
|
|
//判断是否和专题库或报告关联
|
|
ImportTaskAMVO importTaskAMVO = taskThread.getImportTaskAMVO();
|
|
ImportTaskAMVO importTaskAMVO = taskThread.getImportTaskAMVO();
|
|
@@ -81,6 +85,7 @@ public class SavePatentToEsThread extends Thread {
|
|
if (patentId != null) {
|
|
if (patentId != null) {
|
|
Boolean ifInproject = esService.searchPatent(patentId, importTaskAMVO.getProjectId());
|
|
Boolean ifInproject = esService.searchPatent(patentId, importTaskAMVO.getProjectId());
|
|
if (!ifInproject) {
|
|
if (!ifInproject) {
|
|
|
|
+ System.out.println("多添加的专利:"+patent.getPatentNo());
|
|
Patent patentChild = new Patent();
|
|
Patent patentChild = new Patent();
|
|
PatentJoin patentJoin = new PatentJoin();
|
|
PatentJoin patentJoin = new PatentJoin();
|
|
patentJoin.setParent(patentId);
|
|
patentJoin.setParent(patentId);
|
|
@@ -91,7 +96,7 @@ public class SavePatentToEsThread extends Thread {
|
|
//当导入专题库时添加默认合并申请人
|
|
//当导入专题库时添加默认合并申请人
|
|
if (importTaskAMVO.getProjectType() != null && importTaskAMVO.getProjectType().equals(0)) {
|
|
if (importTaskAMVO.getProjectType() != null && importTaskAMVO.getProjectType().equals(0)) {
|
|
EsMergePersonService esMergePersonService = applicationContext.getBean(EsMergePersonService.class);
|
|
EsMergePersonService esMergePersonService = applicationContext.getBean(EsMergePersonService.class);
|
|
- esMergePersonService.addDefaultMergePerson(patent, patentId, importTaskAMVO.getProjectId());
|
|
|
|
|
|
+ esMergePersonService.addDefaultMergePerson(orgPatent, patentId, importTaskAMVO.getProjectId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -171,12 +176,16 @@ public class SavePatentToEsThread extends Thread {
|
|
}
|
|
}
|
|
|
|
|
|
public void awakeTask(UploadPatentWebDTO uploadPatentWebDTO) {
|
|
public void awakeTask(UploadPatentWebDTO uploadPatentWebDTO) {
|
|
- UploadPatentWebDTO uploadPatentWebDTO1 = new UploadPatentWebDTO();
|
|
|
|
- BeanUtils.copyProperties(uploadPatentWebDTO, uploadPatentWebDTO1);
|
|
|
|
- uploadPatentWebDTOS.add(uploadPatentWebDTO1);
|
|
|
|
- if (taskLock.tryLock()) {
|
|
|
|
- taskCondition.signalAll();
|
|
|
|
- taskLock.unlock();
|
|
|
|
|
|
+ synchronized ("") {
|
|
|
|
+ UploadPatentWebDTO uploadPatentWebDTO1 = new UploadPatentWebDTO();
|
|
|
|
+ BeanUtils.copyProperties(uploadPatentWebDTO, uploadPatentWebDTO1);
|
|
|
|
+ i++;
|
|
|
|
+ System.out.println("添加了"+i);
|
|
|
|
+ uploadPatentWebDTOS.add(uploadPatentWebDTO1);
|
|
|
|
+ if (taskLock.tryLock()) {
|
|
|
|
+ taskCondition.signalAll();
|
|
|
|
+ taskLock.unlock();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|