|
@@ -1,16 +1,16 @@
|
|
|
package cn.cslg.pas.service.importPatent;
|
|
|
|
|
|
+import cn.cslg.pas.common.dto.UploadPatentWebDTO;
|
|
|
import cn.cslg.pas.common.model.cronModel.SystemFile;
|
|
|
import cn.cslg.pas.common.utils.ReadExcelUtils;
|
|
|
-import cn.cslg.pas.common.vo.ImportTaskAMVO;
|
|
|
-import cn.cslg.pas.common.vo.PatentData;
|
|
|
-import cn.cslg.pas.common.vo.UploadParamsVO;
|
|
|
-import cn.cslg.pas.common.vo.UploadSettingVO;
|
|
|
+import cn.cslg.pas.common.vo.*;
|
|
|
import cn.cslg.pas.domain.es.Patent;
|
|
|
import cn.cslg.pas.domain.es.Text;
|
|
|
import cn.cslg.pas.service.common.ExcuteDataToVOService;
|
|
|
import cn.cslg.pas.service.common.ExcuteUploadSettingService;
|
|
|
import cn.cslg.pas.service.common.FileManagerService;
|
|
|
+import cn.cslg.pas.service.common.PatentStarApiService;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import org.apache.commons.compress.utils.IOUtils;
|
|
|
import org.apache.poi.ss.usermodel.Sheet;
|
|
@@ -24,42 +24,61 @@ import java.io.InputStream;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.locks.Condition;
|
|
|
+import java.util.concurrent.locks.Lock;
|
|
|
+import java.util.concurrent.locks.ReentrantLock;
|
|
|
|
|
|
@Configurable
|
|
|
public class GetCataloguingFromWebThread extends Thread {
|
|
|
|
|
|
private ImportTaskAMVO importTaskAMVO;
|
|
|
private ApplicationContext applicationContext;
|
|
|
- private SavePatentToEsThread savePatentToEsThread;
|
|
|
+ private ImportFromWebToEsService importFromWebToEsService;
|
|
|
+ private PatentStarApiService patentStarApiService;
|
|
|
+ private List<UploadPatentWebDTO> uploadPatentWebDTOs;
|
|
|
+ private final Lock taskLock = new ReentrantLock();
|
|
|
+ private final Condition taskCondition = taskLock.newCondition();
|
|
|
@Override
|
|
|
public void run() {
|
|
|
try {
|
|
|
+ while ( uploadPatentWebDTOs.size() > 0||importTaskAMVO.getProgressVO().equals(1)) {
|
|
|
|
|
|
+ //判断任务队列是否有任务,若没有则线程等待唤醒
|
|
|
+ if (uploadPatentWebDTOs.size() == 0) {
|
|
|
+ taskLock.lock();
|
|
|
+ taskCondition.await();
|
|
|
+ }
|
|
|
+ //根据专利申请号查询著录并装载信息
|
|
|
+ UploadPatentWebDTO uploadPatentWebDTO = uploadPatentWebDTOs.remove(0);
|
|
|
+ String chinaPatentZhuLuStr = patentStarApiService.getCnBibApi(uploadPatentWebDTO.getPatent().getAppNo());
|
|
|
+ if (chinaPatentZhuLuStr != null && !chinaPatentZhuLuStr.trim().equals("") && !chinaPatentZhuLuStr.equals("{}") && !chinaPatentZhuLuStr.contains("请求不合法")) {
|
|
|
+ List<ChinaPatentZhuLu> chinaPatentZhuLus = JSON.parseArray(chinaPatentZhuLuStr, ChinaPatentZhuLu.class);
|
|
|
+ ChinaPatentZhuLu chinaPatentZhuLu = chinaPatentZhuLus.get(0);
|
|
|
+ importFromWebToEsService.savePatentToEs(uploadPatentWebDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public GetCataloguingFromWebThread(TaskThread taskThread, SavePatentToEsThread savePatentToEsThread) {
|
|
|
- this.importTaskAMVO =taskThread.getImportTaskAMVO();
|
|
|
- this.savePatentToEsThread = savePatentToEsThread;
|
|
|
+
|
|
|
+ public GetCataloguingFromWebThread(TaskThread taskThread, ImportFromWebToEsService importFromWebToEsService) {
|
|
|
+ this.importTaskAMVO = taskThread.getImportTaskAMVO();
|
|
|
+ this.importFromWebToEsService = importFromWebToEsService;
|
|
|
this.applicationContext = taskThread.getApplicationContext();
|
|
|
}
|
|
|
-// public void awakeTask(Patent patent) {
|
|
|
-// patents.add(patent);
|
|
|
-// if (taskLock.tryLock()) {
|
|
|
-// taskCondition.signalAll();
|
|
|
-// taskLock.unlock();
|
|
|
-// }
|
|
|
-// }
|
|
|
- //如果是中国专利,就将申请号作为专利号
|
|
|
-// if (patent.getPatentNo().contains("CN")) {
|
|
|
-// patent.setPatentNo(patent.getAppNo()); //将申请号设为专利号patentNo
|
|
|
-// }
|
|
|
+ public void awakeTask(UploadPatentWebDTO uploadPatentWebDTO) {
|
|
|
+ uploadPatentWebDTOs.add(uploadPatentWebDTO);
|
|
|
+ if (taskLock.tryLock()) {
|
|
|
+ taskCondition.signalAll();
|
|
|
+ taskLock.unlock();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- //装载权利要求
|
|
|
+ //装载权利要求
|
|
|
|
|
|
|
|
|
}
|