|
@@ -37,14 +37,15 @@ public class GetCataloguingFromWebThread extends Thread {
|
|
|
private ApplicationContext applicationContext;
|
|
|
private ImportFromWebToEsService importFromWebToEsService;
|
|
|
private PatentStarApiService patentStarApiService;
|
|
|
- private List<UploadPatentWebDTO> uploadPatentWebDTOs;
|
|
|
+ private List<UploadPatentWebDTO> uploadPatentWebDTOs = new ArrayList<>();
|
|
|
private final Lock taskLock = new ReentrantLock();
|
|
|
private final Condition taskCondition = taskLock.newCondition();
|
|
|
+ private Boolean ifProductAll = false;
|
|
|
|
|
|
@Override
|
|
|
public void run() {
|
|
|
try {
|
|
|
- while (uploadPatentWebDTOs.size() > 0 || importTaskAMVO.getProgressVO().equals(1)) {
|
|
|
+ while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getProgressVO().equals(1)) {
|
|
|
|
|
|
//判断任务队列是否有任务,若没有则线程等待唤醒
|
|
|
if (uploadPatentWebDTOs.size() == 0) {
|
|
@@ -53,14 +54,21 @@ public class GetCataloguingFromWebThread extends Thread {
|
|
|
}
|
|
|
//根据专利申请号查询著录并装载信息
|
|
|
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);
|
|
|
- this.loadPatent(uploadPatentWebDTO, chinaPatentZhuLu);
|
|
|
- importFromWebToEsService.savePatentToEs(uploadPatentWebDTO);
|
|
|
+ String patentZhuLuStr = "";
|
|
|
+ if (importTaskAMVO.getDbType().equals("CN")) {
|
|
|
+ patentZhuLuStr = patentStarApiService.getCnBibApi(uploadPatentWebDTO.getPatent().getAppNo());
|
|
|
+ } else {
|
|
|
+ patentZhuLuStr = patentStarApiService.getENBibApi(uploadPatentWebDTO.getPatent().getAppNo());
|
|
|
+ }
|
|
|
+ if (patentZhuLuStr != null && !patentZhuLuStr.trim().equals("") && !patentZhuLuStr.equals("{}") && !patentZhuLuStr.contains("请求不合法")) {
|
|
|
+ this.loadPatent(uploadPatentWebDTO);
|
|
|
+ if (importTaskAMVO.getDbType().equals("CN")) {
|
|
|
+ this.loadCNPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent());
|
|
|
+ } else {
|
|
|
+ this.loadWorldPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent());
|
|
|
+ }
|
|
|
}
|
|
|
+ importFromWebToEsService.savePatentToEs(uploadPatentWebDTO);
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
@@ -83,9 +91,15 @@ public class GetCataloguingFromWebThread extends Thread {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void setIfProductAll(Boolean ifProductAll) {
|
|
|
+
|
|
|
+ this.ifProductAll = ifProductAll;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
//装载专利信息
|
|
|
- private void loadPatent(UploadPatentWebDTO uploadPatentWebDTO, ChinaPatentZhuLu chinaPatentZhuLu) {
|
|
|
+ private void loadPatent(UploadPatentWebDTO uploadPatentWebDTO) {
|
|
|
+ String country = "";
|
|
|
Patent patent = uploadPatentWebDTO.getPatent();
|
|
|
StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
|
|
|
//装载专利类型
|
|
@@ -103,8 +117,8 @@ public class GetCataloguingFromWebThread extends Thread {
|
|
|
//装载申请人地址
|
|
|
if (starPatentVO.getApplicationAddress() != null && !starPatentVO.getApplicationAddress().equals("")) {
|
|
|
String applicationAddress = starPatentVO.getApplicationAddress();
|
|
|
- List<String> addresses = AddressSplitter.splitAddress(applicationAddress);
|
|
|
- PersonAddress personAddress =new PersonAddress();
|
|
|
+ List<String> addresses = AddressSplitter.splitAddress(applicationAddress);
|
|
|
+ PersonAddress personAddress = new PersonAddress();
|
|
|
personAddress.setProvince(addresses.get(0));
|
|
|
personAddress.setCity(addresses.get(1));
|
|
|
personAddress.setDistrict(addresses.get(2));
|
|
@@ -113,16 +127,16 @@ public class GetCataloguingFromWebThread extends Thread {
|
|
|
|
|
|
//装载IPC分类号
|
|
|
if (starPatentVO.getIpcListStr() != null && !starPatentVO.getIpcListStr().equals("")) {
|
|
|
- List<PatentClassify> patentClassifies =new ArrayList<>();
|
|
|
- List<String> ipcArr =Arrays.asList(starPatentVO.getIpcListStr().split(";"));
|
|
|
- for(int i=0;i<ipcArr.size();i++){
|
|
|
+ List<PatentClassify> patentClassifies = new ArrayList<>();
|
|
|
+ List<String> ipcArr = Arrays.asList(starPatentVO.getIpcListStr().split(";"));
|
|
|
+ for (int i = 0; i < ipcArr.size(); i++) {
|
|
|
PatentClassify patentClassify = PatentClassifySplitter.split(ipcArr.get(i));
|
|
|
patentClassifies.add(patentClassify);
|
|
|
- if(i==0){
|
|
|
- patent.setMipc(patentClassify);
|
|
|
- }
|
|
|
+ if (i == 0) {
|
|
|
+ patent.setMipc(patentClassify);
|
|
|
+ }
|
|
|
}
|
|
|
- patent.setIpc(patentClassifies);
|
|
|
+ patent.setIpc(patentClassifies);
|
|
|
}
|
|
|
|
|
|
//装载公告日
|
|
@@ -133,7 +147,7 @@ public class GetCataloguingFromWebThread extends Thread {
|
|
|
|
|
|
//装载摘要
|
|
|
if (starPatentVO.getAbstractStr() != null && !starPatentVO.getAbstractStr().equals("")) {
|
|
|
- Text text =new Text();
|
|
|
+ Text text = new Text();
|
|
|
text.setLanguage(patent.getAppCountry());
|
|
|
text.setIfOrigin(true);
|
|
|
text.setTextContent(starPatentVO.getAbstractStr());
|
|
@@ -149,26 +163,285 @@ public class GetCataloguingFromWebThread extends Thread {
|
|
|
//装载发明人
|
|
|
if (starPatentVO.getInventorStr() != null && !starPatentVO.getInventorStr().equals("")) {
|
|
|
List<String> patentInventorNames = Arrays.asList(starPatentVO.getInventorStr().split(";"));
|
|
|
- List<PatentPerson> patentPeople =new ArrayList<>();
|
|
|
- for (int i =0;i<patentInventorNames.size() ; i++) {
|
|
|
- PatentPerson patentPerson =new PatentPerson();
|
|
|
+ List<PatentPerson> patentPeople = new ArrayList<>();
|
|
|
+ for (int i = 0; i < patentInventorNames.size(); i++) {
|
|
|
+ PatentPerson patentPerson = new PatentPerson();
|
|
|
patentPerson.setOrder(0);
|
|
|
patentPerson.setType("1");
|
|
|
patentPerson.setName(patentInventorNames.get(i));
|
|
|
patentPeople.add(patentPerson);
|
|
|
}
|
|
|
+ patent.setInventor(patentPeople);
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载申请号
|
|
|
+ if (starPatentVO.getApplicationNo() != null && !starPatentVO.getApplicationNo().equals("")) {
|
|
|
+ patent.setAppNo(starPatentVO.getApplicationNo());
|
|
|
+ country = starPatentVO.getApplicationNo().substring(0, 2);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载公开号
|
|
|
+ if (starPatentVO.getPublicNo() != null && !starPatentVO.getPublicNo().equals("")) {
|
|
|
+ patent.setPublicNo(starPatentVO.getPublicNo());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (starPatentVO.getPublicAccreditNo() != null && !starPatentVO.getPublicAccreditNo().equals("")) {
|
|
|
+ patent.setGrantNo(starPatentVO.getPublicAccreditNo());
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载申请人
|
|
|
+ if (starPatentVO.getApplicantStr() != null && !starPatentVO.getApplicantStr().equals("")) {
|
|
|
+ List<String> names = Arrays.asList(starPatentVO.getApplicantStr().split(";"));
|
|
|
+ List<PatentPerson> patentPeople = new ArrayList<>();
|
|
|
+ for (int i = 0; i < names.size(); i++) {
|
|
|
+ PatentPerson patentPerson = new PatentPerson();
|
|
|
+ patentPerson.setOrder(0);
|
|
|
+ patentPerson.setType("1");
|
|
|
+ patentPerson.setName(names.get(i));
|
|
|
+ patentPeople.add(patentPerson);
|
|
|
+ }
|
|
|
patent.setApplicant(patentPeople);
|
|
|
}
|
|
|
+
|
|
|
+ //装载代理人
|
|
|
+ if (starPatentVO.getAgentStr() != null && !starPatentVO.getAgentStr().equals("")) {
|
|
|
+ List<String> patentAgents = Arrays.asList(starPatentVO.getAgentStr().split(";"));
|
|
|
+ if (patentAgents != null && patentAgents.size() != 0) {
|
|
|
+ patent.setAgent(patentAgents);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载公开日
|
|
|
+ if (starPatentVO.getPublicDate() != null && !starPatentVO.getPublicDate().equals("")) {
|
|
|
+// int timeStamp = stringDateToTimeStamp(starPatent.getPublicDate());
|
|
|
+// uploadParamsVO.getPatent().setPublicDate(timeStamp);
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载标题
|
|
|
+ if (starPatentVO.getName() != null && !starPatentVO.getName().equals("")) {
|
|
|
+ Text text = new Text();
|
|
|
+ text.setLanguage(country);
|
|
|
+ text.setIfOrigin(true);
|
|
|
+ text.setTextContent(starPatentVO.getName());
|
|
|
+ patent.setTitle(Arrays.asList(text));
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载权利人
|
|
|
+ if (starPatentVO.getCurrentApplicantStr() != null && !starPatentVO.getCurrentApplicantStr().equals("")) {
|
|
|
+ List<String> names = Arrays.asList(starPatentVO.getCurrentApplicantStr().split(";"));
|
|
|
+ List<PatentPerson> patentPeople = new ArrayList<>();
|
|
|
+ for (int i = 0; i < names.size(); i++) {
|
|
|
+ PatentPerson patentPerson = new PatentPerson();
|
|
|
+ patentPerson.setOrder(0);
|
|
|
+ patentPerson.setType("1");
|
|
|
+ patentPerson.setName(names.get(i));
|
|
|
+ patentPeople.add(patentPerson);
|
|
|
+ }
|
|
|
+ patent.setRightHolder(patentPeople);
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载法律状态(os_patent表status字段值)
|
|
|
+ Integer status = starPatentVO.getLG();
|
|
|
+ if (status != null) {
|
|
|
+ //有效(有权)
|
|
|
+ if (status == 1) {
|
|
|
+ patent.setSimpleStatus("3");
|
|
|
+ //失效(无权)
|
|
|
+ } else if (status == 2) {
|
|
|
+ patent.setSimpleStatus("2");
|
|
|
+ //审中(审中)
|
|
|
+ } else if (status == 3) {
|
|
|
+ patent.setSimpleStatus("1");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载优先权
|
|
|
+ if (starPatentVO.getPriorityNo() != null && !starPatentVO.getPriorityNo().equals("")) {
|
|
|
+ Priorities priorities = new Priorities();
|
|
|
+ priorities.setPriorityNo(starPatentVO.getPriorityNo());
|
|
|
+ String pCountry = starPatentVO.getApplicationNo().substring(0, 2);
|
|
|
+ priorities.setPriorityCountry(pCountry);
|
|
|
+ //装载优先权日
|
|
|
+ if (starPatentVO.getPriorityDate() != null && !starPatentVO.getPriorityDate().equals("")) {
|
|
|
+
|
|
|
+ }
|
|
|
+ patent.setPriorities(Arrays.asList(priorities));
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载受理局
|
|
|
+ if (starPatentVO.getBureau() != null && !starPatentVO.getBureau().equals("")) {
|
|
|
+ patent.setAppCountry(starPatentVO.getBureau());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//装载中国专利
|
|
|
- private void loadCNPatent(){
|
|
|
+ private void loadCNPatent(String chinaPatentZhuLuStr, Patent patent) {
|
|
|
|
|
|
- }
|
|
|
+ if (chinaPatentZhuLuStr != null && !chinaPatentZhuLuStr.trim().equals("") && !chinaPatentZhuLuStr.equals("{}") && !chinaPatentZhuLuStr.contains("请求不合法")) {
|
|
|
+ List<ChinaPatentZhuLu> chinaPatentZhuLus = JSON.parseArray(chinaPatentZhuLuStr, ChinaPatentZhuLu.class);
|
|
|
+ ChinaPatentZhuLu chinaPatentZhuLu = chinaPatentZhuLus.get(0);
|
|
|
+ //装载申请人地址
|
|
|
+ if (patent.getApplicantAddr() == null) {
|
|
|
+ if (chinaPatentZhuLu.getDZ() != null && !chinaPatentZhuLu.getDZ().equals("")) {
|
|
|
+ List<String> addresses = AddressSplitter.splitAddress(chinaPatentZhuLu.getDZ());
|
|
|
+ PersonAddress personAddress = new PersonAddress();
|
|
|
+ personAddress.setProvince(addresses.get(0));
|
|
|
+ personAddress.setCity(addresses.get(1));
|
|
|
+ personAddress.setDistrict(addresses.get(2));
|
|
|
+ patent.setApplicantAddr(personAddress);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //装载代理人
|
|
|
+ if (patent.getAgent() == null || patent.getAgent().size() == 0) {
|
|
|
+ if (chinaPatentZhuLu.getAT() != null && !chinaPatentZhuLu.getAT().equals("")) {
|
|
|
+ List<String> patentAgents = Arrays.asList(chinaPatentZhuLu.getAT().split(";"));
|
|
|
+ if (patentAgents != null && patentAgents.size() != 0) {
|
|
|
+ patent.setAgent(patentAgents);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // 装载世界专利
|
|
|
- private void loadWorldPatent(){
|
|
|
+ //装载发明人
|
|
|
+ if (patent.getInventor() == null || patent.getInventor().size() == 0) {
|
|
|
|
|
|
+ if (chinaPatentZhuLu.getIV() != null && !chinaPatentZhuLu.getIV().equals("")) {
|
|
|
+ List<String> patentInventorNames = Arrays.asList(chinaPatentZhuLu.getIV().split(";"));
|
|
|
+ List<PatentPerson> patentPeople = new ArrayList<>();
|
|
|
+ for (int i = 0; i < patentInventorNames.size(); i++) {
|
|
|
+ PatentPerson patentPerson = new PatentPerson();
|
|
|
+ patentPerson.setOrder(0);
|
|
|
+ patentPerson.setType("1");
|
|
|
+ patentPerson.setName(patentInventorNames.get(i));
|
|
|
+ patentPeople.add(patentPerson);
|
|
|
+ }
|
|
|
+ patent.setInventor(patentPeople);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //装载优先权号、优先权国家、优先权日
|
|
|
+ if (patent.getPriorities() == null) {
|
|
|
+ Priorities priorities = new Priorities();
|
|
|
+ priorities.setPriorityNo(chinaPatentZhuLu.getPR());
|
|
|
+ String pCountry = chinaPatentZhuLu.getPR().substring(0, 2);
|
|
|
+ priorities.setPriorityCountry(pCountry);
|
|
|
+ patent.setPriorities(Arrays.asList(priorities));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 装载世界专利
|
|
|
+ private void loadWorldPatent(String worldPatentZhuLuStr, Patent patent) {
|
|
|
+ String country = "";
|
|
|
+ List<WorldPatentZhuLu> worldPatentZhuLus = JSON.parseArray(worldPatentZhuLuStr, WorldPatentZhuLu.class);
|
|
|
+ WorldPatentZhuLu worldPatentZhuLu = worldPatentZhuLus.get(0);
|
|
|
+
|
|
|
+ //装载公开号
|
|
|
+ if (patent.getPublicNo() == null || patent.getPublicNo().equals("")) {
|
|
|
+ patent.setPublicNo(worldPatentZhuLu.getDocdbPubNo());
|
|
|
+ }
|
|
|
+ //装载申请号
|
|
|
+ if (patent.getAppNo() == null || patent.getAppNo().equals("")) {
|
|
|
+ patent.setAppNo(worldPatentZhuLu.getEpoAppNo());
|
|
|
+ }
|
|
|
+ //装载申请日
|
|
|
+ if (patent.getAppDate() == null) {
|
|
|
+// int timeStamp = stringDateToTimeStamp(worldPatentZhuLu.getAppDate());
|
|
|
+// uploadParamsVO.getPatent().setApplicationDate(timeStamp);
|
|
|
+ }
|
|
|
+ //装载公开日
|
|
|
+ if (patent.getPublicDate() == null) {
|
|
|
+// int timeStamp = stringDateToTimeStamp(worldPatentZhuLu.getPubDate());
|
|
|
+// uploadParamsVO.getPatent().setPublicDate(timeStamp);
|
|
|
+ }
|
|
|
+ //装载IPC分类号
|
|
|
+ if (patent.getIpc() == null || patent.getIpc().size() == 0) {
|
|
|
+ List<PatentClassify> patentClassifies = new ArrayList<>();
|
|
|
+ List<String> ipcArr = Arrays.asList(worldPatentZhuLu.getIpc().split(";"));
|
|
|
+ for (int i = 0; i < ipcArr.size(); i++) {
|
|
|
+ PatentClassify patentClassify = PatentClassifySplitter.split(ipcArr.get(i));
|
|
|
+ patentClassifies.add(patentClassify);
|
|
|
+ if (i == 0) {
|
|
|
+ patent.setMipc(patentClassify);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ patent.setIpc(patentClassifies);
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载CPC分类号
|
|
|
+ if (patent.getCpc() == null || patent.getCpc().size() == 0) {
|
|
|
+ if (worldPatentZhuLu.getCpc() != null && !worldPatentZhuLu.getCpc().equals("")) {
|
|
|
+ List<PatentClassify> patentClassifies = new ArrayList<>();
|
|
|
+ List<String> cpcArr = Arrays.asList(worldPatentZhuLu.getCpc().split(";"));
|
|
|
+ for (int i = 0; i < cpcArr.size(); i++) {
|
|
|
+ PatentClassify patentClassify = PatentClassifySplitter.split(cpcArr.get(i));
|
|
|
+ patentClassifies.add(patentClassify);
|
|
|
+ if (i == 0) {
|
|
|
+ patent.setMipc(patentClassify);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ patent.setCpc(patentClassifies);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ //装载申请人
|
|
|
+ if (patent.getApplicant() == null || patent.getApplicant().size() == 0) {
|
|
|
+ List<String> names = Arrays.asList(worldPatentZhuLu.getPa().split(";"));
|
|
|
+ List<PatentPerson> patentPeople = new ArrayList<>();
|
|
|
+ for (int i = 0; i < names.size(); i++) {
|
|
|
+ PatentPerson patentPerson = new PatentPerson();
|
|
|
+ patentPerson.setOrder(0);
|
|
|
+ patentPerson.setType("1");
|
|
|
+ patentPerson.setName(names.get(i));
|
|
|
+ patentPeople.add(patentPerson);
|
|
|
+ }
|
|
|
+ patent.setApplicant(patentPeople);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //装载发明人
|
|
|
+ if (patent.getInventor() == null || patent.getInventor().size() == 0) {
|
|
|
+ if (worldPatentZhuLu.getIv() != null && !worldPatentZhuLu.getIv().equals("")) {
|
|
|
+ List<String> patentInventorNames = Arrays.asList(worldPatentZhuLu.getIv().split(";"));
|
|
|
+ List<PatentPerson> patentPeople = new ArrayList<>();
|
|
|
+ for (int i = 0; i < patentInventorNames.size(); i++) {
|
|
|
+ PatentPerson patentPerson = new PatentPerson();
|
|
|
+ patentPerson.setOrder(0);
|
|
|
+ patentPerson.setType("1");
|
|
|
+ patentPerson.setName(patentInventorNames.get(i));
|
|
|
+ patentPeople.add(patentPerson);
|
|
|
+ }
|
|
|
+ patent.setInventor(patentPeople);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载优先权号、优先权国家、优先权日
|
|
|
+ if (patent.getPriorities() == null) {
|
|
|
+ Priorities priorities = new Priorities();
|
|
|
+ priorities.setPriorityNo(worldPatentZhuLu.getPr());
|
|
|
+ String pCountry = worldPatentZhuLu.getPr().substring(0, 2);
|
|
|
+ priorities.setPriorityCountry(pCountry);
|
|
|
+ patent.setPriorities(Arrays.asList(priorities));
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载标题
|
|
|
+ if (patent.getTitle() == null || patent.getTitle().size() != 0) {
|
|
|
+ Text text = new Text();
|
|
|
+ text.setLanguage(country);
|
|
|
+ text.setIfOrigin(true);
|
|
|
+ text.setTextContent(worldPatentZhuLu.getTitle());
|
|
|
+ patent.setTitle(Arrays.asList(text));
|
|
|
+ }
|
|
|
+ //装载摘要
|
|
|
+ if (patent.getAbstractStr() == null || patent.getAbstractStr().equals("")) {
|
|
|
+ Text text = new Text();
|
|
|
+ text.setLanguage(patent.getAppCountry());
|
|
|
+ text.setIfOrigin(true);
|
|
|
+ text.setTextContent(worldPatentZhuLu.getAbstract());
|
|
|
+ patent.setAbstractStr(Arrays.asList(text));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
}
|