|
@@ -91,7 +91,12 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
String orderBy = importTaskAMVO.getOrderBy(); //排序字段
|
|
String orderBy = importTaskAMVO.getOrderBy(); //排序字段
|
|
String orderByType = importTaskAMVO.getOrderByType(); //排序类型
|
|
String orderByType = importTaskAMVO.getOrderByType(); //排序类型
|
|
String dbType = importTaskAMVO.getDbType(); //检索数据库类型
|
|
String dbType = importTaskAMVO.getDbType(); //检索数据库类型
|
|
- Integer doneNum = importTaskAMVO.getDoneNum();
|
|
|
|
|
|
+ Integer taskStartNum = importTaskAMVO.getDoneNum();
|
|
|
|
+ List<String> addPatentNos = new ArrayList<>();
|
|
|
|
+ String patentNoStr =importTaskAMVO.getPatentNoStr();
|
|
|
|
+ if(patentNoStr!=null){
|
|
|
|
+ addPatentNos = JSONArray.parseArray(patentNoStr);
|
|
|
|
+ }
|
|
int patentNum = 10000;
|
|
int patentNum = 10000;
|
|
|
|
|
|
//检索式
|
|
//检索式
|
|
@@ -101,14 +106,24 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
|
|
|
|
//获得返回的的多个检索式 patentStarListDtos
|
|
//获得返回的的多个检索式 patentStarListDtos
|
|
if (importTaskAMVO.getType().equals(4)) {
|
|
if (importTaskAMVO.getType().equals(4)) {
|
|
- patentStarListDtos = patentStarApiService.getSplitedConditions(new PatentStarListDTO()
|
|
|
|
- .setCurrentQuery(conditions)
|
|
|
|
- .setOrderBy(orderBy)
|
|
|
|
- .setOrderByType(orderByType)
|
|
|
|
- .setDBType(dbType), patentNum);
|
|
|
|
|
|
+ if (addPatentNos != null && addPatentNos.size() != 0) {
|
|
|
|
+ PatentStarListDTO patentStarListDTO = new PatentStarListDTO();
|
|
|
|
+ patentStarListDTO.setCurrentQuery(conditions)
|
|
|
|
+ .setOrderBy(orderBy)
|
|
|
|
+ .setOrderByType(orderByType)
|
|
|
|
+ .setDBType(dbType);
|
|
|
|
+ patentStarListDtos = patentStarApiService.splitPatentNoByType(addPatentNos, patentStarListDTO);
|
|
|
|
+ } else {
|
|
|
|
+ patentStarListDtos = patentStarApiService.getSplitedConditions(new PatentStarListDTO()
|
|
|
|
+ .setCurrentQuery(conditions)
|
|
|
|
+ .setOrderBy(orderBy)
|
|
|
|
+ .setOrderByType(orderByType)
|
|
|
|
+ .setDBType(dbType), patentNum);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
//当专利为专利号导入时
|
|
//当专利为专利号导入时
|
|
- if (importTaskAMVO.getType().equals(2)) {
|
|
|
|
|
|
+ else if (importTaskAMVO.getType().equals(2)) {
|
|
PatentStarListDTO patentStarListDTO = new PatentStarListDTO();
|
|
PatentStarListDTO patentStarListDTO = new PatentStarListDTO();
|
|
patentStarListDTO.setCurrentQuery(conditions)
|
|
patentStarListDTO.setCurrentQuery(conditions)
|
|
.setOrderBy(orderBy)
|
|
.setOrderBy(orderBy)
|
|
@@ -119,7 +134,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
}
|
|
}
|
|
|
|
|
|
//当专利为专利号文件导入时
|
|
//当专利为专利号文件导入时
|
|
- if (importTaskAMVO.getType().equals(3)) {
|
|
|
|
|
|
+ else if (importTaskAMVO.getType().equals(3)) {
|
|
FileManagerService fileManagerService = applicationContext.getBean(FileManagerService.class);
|
|
FileManagerService fileManagerService = applicationContext.getBean(FileManagerService.class);
|
|
|
|
|
|
String res = fileManagerService.getSystemFileFromFMS(Arrays.asList(importTaskAMVO.getFileGuid()));
|
|
String res = fileManagerService.getSystemFileFromFMS(Arrays.asList(importTaskAMVO.getFileGuid()));
|
|
@@ -150,19 +165,28 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
char ifAddPicture = importTaskAMVO.getIfAddPicture();
|
|
char ifAddPicture = importTaskAMVO.getIfAddPicture();
|
|
char ifAddFullText = importTaskAMVO.getIfAddFullText();
|
|
char ifAddFullText = importTaskAMVO.getIfAddFullText();
|
|
char ifPdf = importTaskAMVO.getIfAddPDF();
|
|
char ifPdf = importTaskAMVO.getIfAddPDF();
|
|
|
|
+
|
|
//下载字段
|
|
//下载字段
|
|
- int index=doneNum;
|
|
|
|
|
|
+ int index = taskStartNum;
|
|
|
|
+
|
|
//已经跳过的数量
|
|
//已经跳过的数量
|
|
Integer overNum = 0;
|
|
Integer overNum = 0;
|
|
|
|
+
|
|
|
|
+ Integer lastOverNum = overNum;
|
|
|
|
+
|
|
|
|
+ //检索式检索
|
|
while (patentStarListDtos.size() > 0) {
|
|
while (patentStarListDtos.size() > 0) {
|
|
PatentStarListDTO patentStarListDto = patentStarListDtos.remove(0);
|
|
PatentStarListDTO patentStarListDto = patentStarListDtos.remove(0);
|
|
Integer total = patentStarListDto.getTotal();
|
|
Integer total = patentStarListDto.getTotal();
|
|
- Integer lastTotalNum = overNum;
|
|
|
|
|
|
+ lastOverNum = overNum;
|
|
overNum += total;
|
|
overNum += total;
|
|
- if (overNum < doneNum) {
|
|
|
|
|
|
+
|
|
|
|
+ if (overNum < taskStartNum) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- Integer startNum = doneNum - lastTotalNum;
|
|
|
|
|
|
+
|
|
|
|
+ Integer trueStartNum = taskStartNum > lastOverNum ? taskStartNum : lastOverNum;
|
|
|
|
+ Integer startNum = trueStartNum - lastOverNum;
|
|
Calculate calculate = DateUtils.calculateFromStartAndEndNumber(startNum, total, 50);
|
|
Calculate calculate = DateUtils.calculateFromStartAndEndNumber(startNum, total, 50);
|
|
Integer startPage = calculate.getStartPage();
|
|
Integer startPage = calculate.getStartPage();
|
|
Integer endPage = calculate.getEndPage();
|
|
Integer endPage = calculate.getEndPage();
|
|
@@ -173,19 +197,23 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
patentStarListDTOTemp.setPageNum(i + 1);
|
|
patentStarListDTOTemp.setPageNum(i + 1);
|
|
patentStarListDTOTemp.setRowCount(50);
|
|
patentStarListDTOTemp.setRowCount(50);
|
|
//调用一般接口返回一批专利著录相关数据
|
|
//调用一般接口返回一批专利著录相关数据
|
|
|
|
+
|
|
Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDTOTemp);
|
|
Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDTOTemp);
|
|
|
|
+
|
|
if (resultMap == null || (Integer) resultMap.get("total") == 0) {
|
|
if (resultMap == null || (Integer) resultMap.get("total") == 0) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
List<StarPatentVO> starPatents = (List<StarPatentVO>) resultMap.get("records");
|
|
List<StarPatentVO> starPatents = (List<StarPatentVO>) resultMap.get("records");
|
|
|
|
+
|
|
|
|
+ if ((i * 50 + starPatents.size()) < startNum) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ Integer pageStartNum = (i * 50) >= startNum ? 0 : startNum - (i * 50);
|
|
|
|
+ Integer pageEndNum = starPatents.size();
|
|
//遍历这一页的专利
|
|
//遍历这一页的专利
|
|
- for (int j = 0; j < starPatents.size(); j++) {
|
|
|
|
- if ((i * 50 + j) < startNum) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
|
|
+ for (int j = pageStartNum; j < pageEndNum; j++) {
|
|
UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
|
|
UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
|
|
Patent patent = new Patent();
|
|
Patent patent = new Patent();
|
|
-
|
|
|
|
//装载start
|
|
//装载start
|
|
uploadPatentWebDTO.setStarPatentVO(starPatents.get(j));
|
|
uploadPatentWebDTO.setStarPatentVO(starPatents.get(j));
|
|
uploadPatentWebDTO.setPatent(patent);
|
|
uploadPatentWebDTO.setPatent(patent);
|
|
@@ -193,24 +221,30 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
uploadPatentWebDTO.setIndex(index);
|
|
uploadPatentWebDTO.setIndex(index);
|
|
uploadPatentWebDTO.setTotalCounter(addPatentCounter);
|
|
uploadPatentWebDTO.setTotalCounter(addPatentCounter);
|
|
uploadPatentWebDTO.setHaveSaveCounter(0);
|
|
uploadPatentWebDTO.setHaveSaveCounter(0);
|
|
|
|
+
|
|
if (ifCataloguing == '1') {
|
|
if (ifCataloguing == '1') {
|
|
getCataloguingFromWebThread.awakeTask(uploadPatentWebDTO);
|
|
getCataloguingFromWebThread.awakeTask(uploadPatentWebDTO);
|
|
}
|
|
}
|
|
|
|
+
|
|
if (ifAddPicture == '1') {
|
|
if (ifAddPicture == '1') {
|
|
getPatentPictureFromWebThread.awakeTask(uploadPatentWebDTO);
|
|
getPatentPictureFromWebThread.awakeTask(uploadPatentWebDTO);
|
|
}
|
|
}
|
|
|
|
+
|
|
if (ifAddFullText == '1') {
|
|
if (ifAddFullText == '1') {
|
|
getRightAndFullTextFromWebThread.awakeTask(uploadPatentWebDTO);
|
|
getRightAndFullTextFromWebThread.awakeTask(uploadPatentWebDTO);
|
|
}
|
|
}
|
|
|
|
+
|
|
if (ifPdf == '1') {
|
|
if (ifPdf == '1') {
|
|
getPatentPDFFromWebThread.awakeTask(uploadPatentWebDTO);
|
|
getPatentPDFFromWebThread.awakeTask(uploadPatentWebDTO);
|
|
}
|
|
}
|
|
- index+=1;
|
|
|
|
|
|
+ index += 1;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
- doneNum = overNum;
|
|
|
|
|
|
+
|
|
|
|
+ taskStartNum = overNum;
|
|
}
|
|
}
|
|
|
|
+
|
|
if (ifCataloguing == '1') {
|
|
if (ifCataloguing == '1') {
|
|
getCataloguingFromWebThread.setIfProductAll(true);
|
|
getCataloguingFromWebThread.setIfProductAll(true);
|
|
}
|
|
}
|
|
@@ -226,9 +260,7 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
//生产消费到一半时,发生错误异常,将任务状态置为完成
|
|
//生产消费到一半时,发生错误异常,将任务状态置为完成
|
|
-// task = taskService.getById(task.getId());
|
|
|
|
-// task.setStatus(2);
|
|
|
|
-// taskService.updateById(task);
|
|
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -240,17 +272,10 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
this.importTaskAMVO = taskThread.getImportTaskAMVO();
|
|
this.importTaskAMVO = taskThread.getImportTaskAMVO();
|
|
}
|
|
}
|
|
|
|
|
|
- //加入es保存队列
|
|
|
|
-// public void savePatentToEs(UploadPatentWebDTO uploadPatentWebDTO) {
|
|
|
|
-// uploadPatentWebDTO.setCounter(uploadPatentWebDTO.getCounter() + 1);
|
|
|
|
-// if (uploadPatentWebDTO.getTotalCounter().equals(uploadPatentWebDTO.getCounter())) {
|
|
|
|
-// savePatentToEsThread.awakeTask(uploadPatentWebDTO);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
|
|
|
|
public void loadPatentMessageDone(UploadPatentWebDTO uploadPatentWebDTO) {
|
|
public void loadPatentMessageDone(UploadPatentWebDTO uploadPatentWebDTO) {
|
|
synchronized ("装载专利信息") {
|
|
synchronized ("装载专利信息") {
|
|
- if (importTaskAMVO.getPatentMessageShouldSaveCounter() > 1) {
|
|
|
|
|
|
+ if (importTaskAMVO.getMessageThreadCounter() > 1) {
|
|
// 根据index查询是否有相同的
|
|
// 根据index查询是否有相同的
|
|
List<UploadPatentWebDTO> dtos = uploadPatentWebDTOS.stream()
|
|
List<UploadPatentWebDTO> dtos = uploadPatentWebDTOS.stream()
|
|
.filter(item -> item.getIndex().equals(uploadPatentWebDTO.getIndex())).collect(Collectors.toList());
|
|
.filter(item -> item.getIndex().equals(uploadPatentWebDTO.getIndex())).collect(Collectors.toList());
|
|
@@ -260,10 +285,9 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
BeanUtils.copyProperties(patent, orgPatent, FormatUtil.getNullPropertyNames(patent));
|
|
BeanUtils.copyProperties(patent, orgPatent, FormatUtil.getNullPropertyNames(patent));
|
|
Patent patent1 = new Patent();
|
|
Patent patent1 = new Patent();
|
|
BeanUtils.copyProperties(orgPatent, patent1);
|
|
BeanUtils.copyProperties(orgPatent, patent1);
|
|
- uploadPatentWebDTOS.removeIf(i->i.getIndex().equals(uploadPatentWebDTO.getIndex()));
|
|
|
|
|
|
+ uploadPatentWebDTOS.removeIf(i -> i.getIndex().equals(uploadPatentWebDTO.getIndex()));
|
|
savePatentToEsThread.awakeTask(patent1);
|
|
savePatentToEsThread.awakeTask(patent1);
|
|
- }
|
|
|
|
- else {
|
|
|
|
|
|
+ } else {
|
|
uploadPatentWebDTOS.add(uploadPatentWebDTO);
|
|
uploadPatentWebDTOS.add(uploadPatentWebDTO);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -277,11 +301,10 @@ public class ImportFromWebToEsService implements PatentImportImp {
|
|
|
|
|
|
|
|
|
|
public void setPatentToEsProductAll() {
|
|
public void setPatentToEsProductAll() {
|
|
- importTaskAMVO.setHaveSaveMessageCounter(importTaskAMVO.getHaveSaveMessageCounter() + 1);
|
|
|
|
- if (importTaskAMVO.getPatentMessageShouldSaveCounter().equals(importTaskAMVO.getHaveSaveMessageCounter())) {
|
|
|
|
|
|
+ importTaskAMVO.setMessageThreadDoneCounter(importTaskAMVO.getThreadDoneCounter() + 1);
|
|
|
|
+ if (importTaskAMVO.getMessageThreadCounter().equals(importTaskAMVO.getMessageThreadDoneCounter())) {
|
|
savePatentToEsThread.setIfProductAll(true);
|
|
savePatentToEsThread.setIfProductAll(true);
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
private void loadPatent(StarPatentVO starPatentVO, Patent patent) {
|
|
private void loadPatent(StarPatentVO starPatentVO, Patent patent) {
|