Kaynağa Gözat

检索接口

lwhhszx 2 yıl önce
ebeveyn
işleme
e545966f88

+ 3 - 13
PAS/src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -4,7 +4,6 @@ import cn.cslg.pas.common.core.annotation.Permission;
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.model.dto.PatentDTO;
 import cn.cslg.pas.common.model.dto.PatentMarketDataDTO;
-import cn.cslg.pas.common.model.dto.UploadFileDTO;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.common.utils.auth.checkAuth;
@@ -12,23 +11,15 @@ import cn.cslg.pas.domain.Patent;
 import cn.cslg.pas.common.model.vo.*;
 import cn.cslg.pas.domain.PatentRight;
 import cn.cslg.pas.service.*;
-import cn.dev33.satoken.stp.StpUtil;
+
 import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.Parameters;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
-import org.apache.commons.compress.utils.IOUtils;
-import org.apache.tomcat.util.http.fileupload.disk.DiskFileItem;
+
 import org.springframework.context.annotation.Lazy;
-import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
-import java.io.*;
-import java.net.HttpURLConnection;
-import java.net.URL;
+
 import java.util.Collections;
 import java.util.List;
 
@@ -45,7 +36,6 @@ import java.util.List;
 @RequestMapping(Constants.API_VERSION_V2 + "/patent")
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class PatentController {
-
     private final PatentService patentService;
     private final ProjectPatentLinkService projectPatentLinkService;
     private final TaskService taskService;

+ 55 - 4
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/UploadTaskService.java

@@ -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;
+    }
+
 }