|
@@ -125,7 +125,7 @@ public class UploadTaskService {
|
|
|
public TaskCondition addPatentStarTask(TaskAddNewDTO taskAddNewDTO) throws IOException {
|
|
|
log.info("开始处理【新增专利之星下载接口导入专利】的业务,参数为:{}", taskAddNewDTO);
|
|
|
|
|
|
- //检查任务合法性1(判断要导入的专题库或报告是否存在)
|
|
|
+ //检查任务合法性1(检查要导入的专题库或报告是否存在)
|
|
|
if (taskAddNewDTO.getProjectId() != null) {
|
|
|
Project project = projectService.getById(taskAddNewDTO.getProjectId());
|
|
|
if (project == null) {
|
|
@@ -158,7 +158,7 @@ public class UploadTaskService {
|
|
|
.setDBType(taskAddNewDTO.getDBType());
|
|
|
Map<String, Object> resultMap = patentStarApiService.patentStarSearchApi(patentStarListDto);
|
|
|
if (resultMap == null || (Integer) resultMap.get("total") == 0) {
|
|
|
- ThrowException.throwXiaoShiException("未检索到相关专利,请尝试更改检索式或检索条件信息");
|
|
|
+ ThrowException.throwXiaoShiException("未检索到相关专利");
|
|
|
}
|
|
|
|
|
|
|
|
@@ -226,8 +226,9 @@ public class UploadTaskService {
|
|
|
log.info("开始处理【根据专利号导入专利任务】的业务,参数为:{}", taskAddNewDTO);
|
|
|
|
|
|
//检查合法性
|
|
|
- if (taskAddNewDTO == null || taskAddNewDTO.getConditions() == null) {
|
|
|
+ if (taskAddNewDTO == null || taskAddNewDTO.getConditions() == null || taskAddNewDTO.getConditions().trim().equals("")) {
|
|
|
ThrowException.throwXiaoShiException("请输入专利号");
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
String isAddPatentNosStr = taskAddNewDTO.getConditions();
|
|
@@ -235,10 +236,12 @@ public class UploadTaskService {
|
|
|
//根据专利号生成检索式
|
|
|
String condition = this.setPatentNosToCondition(taskAddNewDTO.getConditions());
|
|
|
if (condition == null) {
|
|
|
- ThrowException.throwXiaoShiException("本批专利都已存在");
|
|
|
+ ThrowException.throwXiaoShiException("尝试导入的专利号在本系统中均已存在");
|
|
|
}
|
|
|
|
|
|
taskAddNewDTO
|
|
|
+ .setProjectId(taskAddNewDTO.getProjectId())
|
|
|
+ .setReportId(taskAddNewDTO.getReportId())
|
|
|
.setConditions(condition)
|
|
|
.setEndNumber(0)
|
|
|
.setIsAddPatentNos(Arrays.asList(isAddPatentNosStr.split("[,|,]")))
|
|
@@ -247,12 +250,11 @@ public class UploadTaskService {
|
|
|
.setOrderByType("DESC")
|
|
|
.setConfigCells(Arrays.asList("1", "2", "3", "4", "6"))
|
|
|
.setConfigId(2)
|
|
|
- .setReportId(taskAddNewDTO.getReportId())
|
|
|
.setTaskName("多个专利号导入方式任务")
|
|
|
.setTaskType(0)
|
|
|
.setTaskType2(4);
|
|
|
|
|
|
- //判断网站类型
|
|
|
+ //根据下载的网站类型新增任务
|
|
|
if (taskAddNewDTO.getTaskType2().equals(3)) {
|
|
|
this.addEpoTask(taskAddNewDTO);
|
|
|
} else if (taskAddNewDTO.getTaskType2().equals(4)) {
|
|
@@ -265,29 +267,24 @@ public class UploadTaskService {
|
|
|
public String setPatentNosToCondition(String patentNosStr) {
|
|
|
String[] patentNo = patentNosStr.split("[,|,]");
|
|
|
List<String> patentNos = Arrays.asList(patentNo);
|
|
|
- if (patentNos.size() == 0) {
|
|
|
- ThrowException.throwXiaoShiException("请按照格式要求正确输入专利号");
|
|
|
+ //判断若用户输入的多个专利号字符长度超过了一个专利号长度,而拆分后专利号集合只有一个元素,则定义为用户输入的格式不正确
|
|
|
+ if (patentNosStr.length() > 24 && patentNos.size() == 1) {
|
|
|
+ ThrowException.throwXiaoShiException("请按照格式要求正确输入专利号(注意:不允许出现空格)");
|
|
|
}
|
|
|
//根据专利号从本数据库中查找专利
|
|
|
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 builder = new StringBuilder();
|
|
|
- builder.append("(PN=(")
|
|
|
- .append(patentNoCondition)
|
|
|
- .append(")")
|
|
|
- .append(" OR GN=(")
|
|
|
- .append(patentNoCondition)
|
|
|
- .append("))");
|
|
|
- return builder + "";
|
|
|
+ String conditions = "PN=(" + patentNoCondition + ") OR GN=(" + patentNoCondition + ")";
|
|
|
+ return conditions;
|
|
|
}
|
|
|
|
|
|
}
|