|
@@ -6,25 +6,28 @@ import cn.cslg.pas.common.model.dto.UploadFileDTO;
|
|
|
import cn.cslg.pas.common.model.outApi.PatentStarListDto;
|
|
|
import cn.cslg.pas.common.utils.*;
|
|
|
import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
|
|
|
+import cn.cslg.pas.domain.Patent;
|
|
|
import cn.cslg.pas.domain.Project;
|
|
|
import cn.cslg.pas.domain.SerachBiblioData;
|
|
|
import cn.cslg.pas.domain.WebLoginConfig;
|
|
|
import cn.cslg.pas.domain.asso.TaskCondition;
|
|
|
+import cn.cslg.pas.service.PatentService;
|
|
|
import cn.cslg.pas.service.ProjectService;
|
|
|
import cn.cslg.pas.service.TaskService;
|
|
|
import cn.cslg.pas.service.WebLoginConfigService;
|
|
|
import cn.cslg.pas.service.asso.AssoOsTaskQrtzTaskService;
|
|
|
import cn.cslg.pas.service.outApi.PatentStarApiService;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
-
|
|
|
import java.io.IOException;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.function.Function;
|
|
|
|
|
|
/**
|
|
|
* 导入专利任务的业务层
|
|
@@ -46,7 +49,7 @@ public class UploadTaskService {
|
|
|
private final WebLoginConfigService webLoginConfigService;
|
|
|
private final PatentStarApiService patentStarApiService;
|
|
|
private final ProjectService projectService;
|
|
|
-
|
|
|
+ private final PatentService patentService;
|
|
|
/**
|
|
|
* 新增Excel导入任务
|
|
|
*
|
|
@@ -66,7 +69,6 @@ public class UploadTaskService {
|
|
|
pantentQueueService.taskQueueAddTask(Arrays.asList(taskId));
|
|
|
pantentQueueService.awakeTasktch();
|
|
|
}
|
|
|
-
|
|
|
/**
|
|
|
* 新增Epo网站导入任务
|
|
|
*
|
|
@@ -87,7 +89,6 @@ public class UploadTaskService {
|
|
|
if (serachBiblioData == null || serachBiblioData.getTotals() == 0) {
|
|
|
ThrowException.throwXiaoShiException("根据检索信息未检索到相关专利,请尝试更换检索信息");
|
|
|
}
|
|
|
-
|
|
|
//任务与任务条件关联表新增数据
|
|
|
TaskCondition taskCondition = new TaskCondition();
|
|
|
taskCondition
|
|
@@ -220,4 +221,54 @@ public class UploadTaskService {
|
|
|
return taskCondition;
|
|
|
}
|
|
|
|
|
|
+ public String addPatentNoTask(TaskAddNewDTO qrtzTaskAddNewDTO) throws IOException {
|
|
|
+ //校验参数
|
|
|
+ if (qrtzTaskAddNewDTO == null || qrtzTaskAddNewDTO.getConditions() == null) {
|
|
|
+ return Response.error("请输入专利号");
|
|
|
+ }
|
|
|
+
|
|
|
+ String condition = this.setPatentNosToCondition(qrtzTaskAddNewDTO.getConditions());
|
|
|
+ if(condition==null){
|
|
|
+ return Response.success("所有专利都已存在");
|
|
|
+ }
|
|
|
+ qrtzTaskAddNewDTO.setConditions(condition);
|
|
|
+ TaskCondition assoOsTaskQrtzTask = new TaskCondition();
|
|
|
+ //新增欧专局网站导入任务
|
|
|
+ if (qrtzTaskAddNewDTO.getTaskType2().equals(3)) {
|
|
|
+ assoOsTaskQrtzTask = this.addEpoTask(qrtzTaskAddNewDTO);
|
|
|
+ //新增专利之星网站导入任务
|
|
|
+ } else if (qrtzTaskAddNewDTO.getTaskType2().equals(4)) {
|
|
|
+ assoOsTaskQrtzTask = this.addPatentStarTask(qrtzTaskAddNewDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ return Response.success("添加任务完成");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public String setPatentNosToCondition(String patentNosStr) {
|
|
|
+ String[] patentNo = patentNosStr.split("[,|,]");
|
|
|
+ List<String> patentNos = Arrays.asList(patentNo);
|
|
|
+ //根据专利号从本数据库中查找专利
|
|
|
+ LambdaQueryWrapper<Patent> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.in(Patent::getPatentNo,patentNos);
|
|
|
+ Function<Object, String> f = (o -> o.toString());
|
|
|
+ List<String> dbPatentNos = patentService.listObjs(queryWrapper, f);
|
|
|
+ //获得本系统不包含的专利
|
|
|
+ patentNos.removeAll(dbPatentNos);
|
|
|
+ if(patentNos.size()==0){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ //将本系统不包含的专利拼接成条件
|
|
|
+ String patentNoCondition =StringUtils.join(patentNos," OR ");
|
|
|
+ StringBuilder stringBuilder =new StringBuilder();
|
|
|
+ stringBuilder.append("(PN=(")
|
|
|
+ .append(patentNoCondition)
|
|
|
+ .append(")")
|
|
|
+ .append("OR GN=(")
|
|
|
+ .append(patentNoCondition)
|
|
|
+ .append("))");
|
|
|
+ String conditions =stringBuilder.toString();
|
|
|
+ return conditions;
|
|
|
+ }
|
|
|
+
|
|
|
}
|