|
@@ -4,13 +4,16 @@ import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
|
|
|
import cn.cslg.pas.common.model.vo.UploadParamsVO;
|
|
|
import cn.cslg.pas.common.utils.DateUtils;
|
|
|
import cn.cslg.pas.common.utils.JsonUtils;
|
|
|
+import cn.cslg.pas.common.utils.StringUtils;
|
|
|
import cn.cslg.pas.domain.PQueueData;
|
|
|
import cn.cslg.pas.domain.QueueData;
|
|
|
import cn.cslg.pas.domain.Task;
|
|
|
+import cn.cslg.pas.domain.asso.AssoOsTaskQrtzTask;
|
|
|
import cn.cslg.pas.service.OutInterfaceService;
|
|
|
import cn.cslg.pas.service.PatentInstructionService;
|
|
|
import cn.cslg.pas.service.TaskService;
|
|
|
import cn.cslg.pas.service.UploadPatentBatchService;
|
|
|
+import cn.cslg.pas.service.asso.AssoOsTaskQrtzTaskService;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import lombok.Data;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
@@ -35,6 +38,7 @@ public class PantentQueueService {
|
|
|
private final UploadPatentBatchService uploadPatentBatchService;
|
|
|
private final MessageService messageService;
|
|
|
private final TaskService taskService;
|
|
|
+ private final AssoOsTaskQrtzTaskService assoOsTaskQrtzTaskService;
|
|
|
private final ExcutePatentDataExcel excutePatentDataExcel;
|
|
|
private final ExcutePatentDataEpo excutePatentDataEpo;
|
|
|
private final ExcutePatentDataStar excutePatentDataStar;
|
|
@@ -97,6 +101,22 @@ public class PantentQueueService {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
+ //若是网站导入任务,则将网站导入相关信息存入task对象中(方便生产与消费时使用)
|
|
|
+ if (task.getType().equals(3) || task.getType().equals(4)) {
|
|
|
+ AssoOsTaskQrtzTask assoOsTaskQrtzTask = assoOsTaskQrtzTaskService.getById(task.getQrtzTaskId());
|
|
|
+ List<String> configCells = Arrays.asList(assoOsTaskQrtzTask.getConfigCells().split(","));
|
|
|
+ task.setConfigCellsNum(configCells.size()); //将下载字段数量存入task对象中(为了在后面发送进度时可以根据下载字段的数量来对应消费者数量,从而确定是否完成了一个专利的下载)
|
|
|
+ task.setConfigCells(configCells);
|
|
|
+ task.setOrderBy(assoOsTaskQrtzTask.getOrderBy());
|
|
|
+ task.setOrderByType(assoOsTaskQrtzTask.getOrderByType());
|
|
|
+ task.setDBType(assoOsTaskQrtzTask.getDBType());
|
|
|
+ task.setStartNumber(assoOsTaskQrtzTask.getStartNumber());
|
|
|
+ task.setEndTime(assoOsTaskQrtzTask.getEndNumber());
|
|
|
+ task.setIsAddPatentNos(assoOsTaskQrtzTask.getIsAddPatentNos());
|
|
|
+ task.setIsDeletePatentNos(assoOsTaskQrtzTask.getIsDeletePatentNos());
|
|
|
+ task.setConditions(assoOsTaskQrtzTask.getConditions());
|
|
|
+ }
|
|
|
+
|
|
|
//TODO 调用工厂方法,工厂方法会根据任务类型创建并返回对应的生产专利方法的对象
|
|
|
IExcutePatentData excutePatentDataObject = createObject(task);
|
|
|
if (excutePatentDataObject != null) {
|
|
@@ -347,8 +367,7 @@ public class PantentQueueService {
|
|
|
if (queueData.getTask().getProjectId() != null && !queueData.getTask().getProjectId().equals(0)) {
|
|
|
//与专题库关联入库
|
|
|
uploadPatentToDBService.uploadAssoThemaPat(queueData.getUploadParamsVO(), queueData.getTask().getProjectId());
|
|
|
- }
|
|
|
- else if (queueData.getTask().getReportId() != null && !queueData.getTask().getReportId().equals(0)) {
|
|
|
+ } else if (queueData.getTask().getReportId() != null && !queueData.getTask().getReportId().equals(0)) {
|
|
|
//与报告关联入库(调用报告系统接口)
|
|
|
outInterfaceService.importAssoReportPatentNo(queueData.getTask().getReportId(), queueData.getUploadParamsVO().getPatent().getPatentNo(), queueData.getUploadParamsVO().getPatent().getName());
|
|
|
}
|
|
@@ -471,9 +490,13 @@ public class PantentQueueService {
|
|
|
//将任务id + "|" + 专利id,拼接成专利的标识(作为当前某一个消费者消费完的这个专利的数量标识)
|
|
|
String currentPatent = task.getId() + "|" + queueData.getUploadParamsVO().getPatent().getId();
|
|
|
Integer num = patentIdMap.get(currentPatent);
|
|
|
+ int needNum = 4; //临界默认设为4(即Excel导入任务默认使用5个消费者)
|
|
|
+ if (task.getType().equals(3) || task.getType().equals(4)) { //若是网站导入任务,则临界默认设为下载字段类型数量 - 1
|
|
|
+ needNum = task.getConfigCellsNum() - 1;
|
|
|
+ }
|
|
|
if (num == null) {
|
|
|
patentIdMap.put(currentPatent, 1);
|
|
|
- } else if (num < 4) {
|
|
|
+ } else if (num < needNum) {
|
|
|
patentIdMap.put(currentPatent, ++num);
|
|
|
} else {
|
|
|
/*
|