Ver código fonte

消费者专利与报告关联代码

chendayu 2 anos atrás
pai
commit
5ab84b6370

+ 52 - 90
PAS/src/main/java/cn/cslg/pas/common/core/CreateTaskThread.java

@@ -31,96 +31,58 @@ public class CreateTaskThread implements InitializingBean {
 
     @Override
     public void afterPropertiesSet() throws Exception {
-//        //初始化任务队列
-//        //查找任务状态为0(队列中)和1(进行中)的任务
-//        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getStatus, new ArrayList<>(Arrays.asList(0, 1))));
-//        if (tasks.size() > 0) {
-//            //过滤出任务ids
-//            List<Integer> taskIds = tasks.stream().map(Task::getId).collect(Collectors.toList());
-//            //过滤出进行中的任务的id
-//            List<Task> doingTasks = tasks.stream().filter(item -> item.getStatus() == 1).collect(Collectors.toList());
-//            List<Integer> doingTaskIds = doingTasks.stream().map(Task::getId).collect(Collectors.toList());
-//            if (doingTaskIds.size() > 0) {
-//                //先将进行中的任务(项目重启后进行中的任务仅会有1个)的id先存入任务队列,再将其余存入
-//                pantentQueueService.taskQueueAddTask(Arrays.asList(doingTaskIds.get(0)));
-//                taskIds.removeAll(doingTaskIds);
-//            }
-//            pantentQueueService.taskQueueAddTask(taskIds);
-//        }
-//
-//        //生产者线程
-//        Thread threadProducer = new Thread(pantentQueueService::addPatnetToQueue);
-//        threadProducer.start();
-//
-//        //装载专利著录线程
-//        Thread threadSetPatentZhuLu = new Thread(pantentQueueService::setPatentZhuLu);
-//        threadSetPatentZhuLu.start();
-//        //装载权要线程
-//        Thread threadSetPatentClaim = new Thread(pantentQueueService::setPatentRight);
-//        threadSetPatentClaim.start();
-//        //装载说明书文本线程
-//        Thread threadSetPatentInstructionText = new Thread(pantentQueueService::setPatentInstructionText);
-//        threadSetPatentInstructionText.start();
-//        //装载说明书pdf线程
-//        Thread threadSetPatentInstructionPDF = new Thread(pantentQueueService::setPatentInstructionPDF);
-//        threadSetPatentInstructionPDF.start();
-//        //装载摘要附图线程
-//        Thread threadSetPatentPicture = new Thread(pantentQueueService::setPatentImage);
-//        threadSetPatentPicture.start();
-//
-//
-//        //消费者1线程(摘要附图)
-//        Thread threadConsumer1 = new Thread(() -> {
-//            try {
-//                pantentQueueService.pushPatentImageToDB();
-//            } catch (InterruptedException | IOException e) {
-//                e.printStackTrace();
-//            }
-//        });
-//        threadConsumer1.start();
-//
-//
-//        //消费者2线程(著录项目)
-//        Thread threadConsumer2 = new Thread(() -> {
-//            try {
-//                pantentQueueService.pushPatentZhuLuToDB();
-//            } catch (InterruptedException | IOException e) {
-//                e.printStackTrace();
-//            }
-//        });
-//        threadConsumer2.start();
-//
-//
-//        //消费者3线程(权利要求)
-//        Thread threadConsumer3 = new Thread(() -> {
-//            try {
-//                pantentQueueService.pushPatentRightToDB();
-//            } catch (InterruptedException | IOException e) {
-//                e.printStackTrace();
-//            }
-//        });
-//        threadConsumer3.start();
-//
-//
-//        //消费者4线程(说明书文本消费者)
-//        Thread threadConsumer4 = new Thread(() -> {
-//            try {
-//                pantentQueueService.pushPatentInstructionTextToDB();
-//            } catch (InterruptedException | IOException e) {
-//                e.printStackTrace();
-//            }
-//        });
-//        threadConsumer4.start();
-//
-//        //消费者5线程(说明书pdf消费者)
-//        Thread threadConsumer5 = new Thread(() -> {
-//            try {
-//                pantentQueueService.pushPatentInstructionPDFToDB();
-//            } catch (InterruptedException | IOException e) {
-//                e.printStackTrace();
-//            }
-//        });
-//        threadConsumer5.start();
+        //初始化任务队列
+        //查找任务状态为0(队列中)和1(进行中)的任务
+        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().in(Task::getStatus, new ArrayList<>(Arrays.asList(0, 1))));
+        if (tasks.size() > 0) {
+            //过滤出任务ids
+            List<Integer> taskIds = tasks.stream().map(Task::getId).collect(Collectors.toList());
+            //过滤出进行中的任务的id
+            List<Task> doingTasks = tasks.stream().filter(item -> item.getStatus() == 1).collect(Collectors.toList());
+            List<Integer> doingTaskIds = doingTasks.stream().map(Task::getId).collect(Collectors.toList());
+            if (doingTaskIds.size() > 0) {
+                //先将进行中的任务(项目重启后进行中的任务仅会有1个)的id先存入任务队列,再将其余存入
+                pantentQueueService.taskQueueAddTask(Arrays.asList(doingTaskIds.get(0)));
+                taskIds.removeAll(doingTaskIds);
+            }
+            pantentQueueService.taskQueueAddTask(taskIds);
+        }
+
+        //生产者线程
+        Thread threadProducer = new Thread(pantentQueueService::addPatnetToQueue);
+        threadProducer.start();
+
+        //装载专利著录线程
+        Thread threadSetPatentZhuLu = new Thread(pantentQueueService::setPatentZhuLu);
+        threadSetPatentZhuLu.start();
+        //装载权要线程
+        Thread threadSetPatentClaim = new Thread(pantentQueueService::setPatentRight);
+        threadSetPatentClaim.start();
+        //装载说明书文本线程
+        Thread threadSetPatentInstructionText = new Thread(pantentQueueService::setPatentInstructionText);
+        threadSetPatentInstructionText.start();
+        //装载说明书pdf线程
+        Thread threadSetPatentInstructionPDF = new Thread(pantentQueueService::setPatentInstructionPDF);
+        threadSetPatentInstructionPDF.start();
+        //装载摘要附图线程
+        Thread threadSetPatentPicture = new Thread(pantentQueueService::setPatentImage);
+        threadSetPatentPicture.start();
+
+        //消费者1线程(摘要附图)
+        Thread threadConsumer1 = new Thread(pantentQueueService::pushPatentImageToDB);
+        threadConsumer1.start();
+        //消费者2线程(著录项目)
+        Thread threadConsumer2 = new Thread(pantentQueueService::pushPatentZhuLuToDB);
+        threadConsumer2.start();
+        //消费者3线程(权利要求)
+        Thread threadConsumer3 = new Thread(pantentQueueService::pushPatentRightToDB);
+        threadConsumer3.start();
+        //消费者4线程(说明书文本消费者)
+        Thread threadConsumer4 = new Thread(pantentQueueService::pushPatentInstructionTextToDB);
+        threadConsumer4.start();
+        //消费者5线程(说明书pdf消费者)
+        Thread threadConsumer5 = new Thread(pantentQueueService::pushPatentInstructionPDFToDB);
+        threadConsumer5.start();
 
     }
 

+ 59 - 0
PAS/src/main/java/cn/cslg/pas/common/model/dto/QrtzTaskAddNewDTO.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.common.model.dto;
 
+import cn.cslg.pas.common.model.vo.ProjectImportPatentVO;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
@@ -19,6 +20,10 @@ public class QrtzTaskAddNewDTO {
      */
     private Integer projectId;
     /**
+     * 报告id
+     */
+    private Integer reportId;
+    /**
      * 任务类型(0普通任务 1定时任务)
      */
     private Integer taskType;
@@ -47,4 +52,58 @@ public class QrtzTaskAddNewDTO {
      */
     private String taskName;
 
+    //以下为自定义字段和文件夹信息 ↓
+    /**
+     * 自定义字段ids
+     */
+    private List<ProjectImportPatentVO.Field> fieldList;
+    /**
+     * 文件夹ids
+     */
+    private List<Integer> folderIds;
+
+    /**
+     * 自定义字段信息
+     */
+    @Data
+    public static class Field {
+        /**
+         * 自定义字段id
+         */
+        private Integer fieldId;
+        /**
+         * 自定义字段类型(6为树)
+         */
+        private Integer type;
+        /**
+         * 选项id
+         */
+        private Integer optionId;
+        private String text;
+    }
+
+    /**
+     * 文件夹信息
+     */
+    @Data
+    public static class Folder {
+        /**
+         * 文件夹id
+         */
+        private Integer id;
+        /**
+         * 上级文件夹id
+         */
+        private Integer parentId;
+        /**
+         * 文件夹名称
+         */
+        private String name;
+        private Boolean selected;
+        /**
+         * 子级文件夹们
+         */
+        private List<ProjectImportPatentVO.Folder> children;
+    }
+
 }

+ 4 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProjectImportPatentVO.java

@@ -16,6 +16,10 @@ public class ProjectImportPatentVO {
      */
     private Integer projectId;
     /**
+     * 报告id
+     */
+    private Integer reportId;
+    /**
      * 数据来源(1.智慧芽 2.合享 3.Patentics)
      */
     private String sourceId;

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/controller/TaskController.java

@@ -67,7 +67,7 @@ public class TaskController {
     }
 
     @PostMapping("addTask")
-    @Operation(summary = "新增网站导入专利任务")
+    @Operation(summary = "新增导入专利任务")
     public String add(@RequestBody QrtzTaskAddNewDTO qrtzTaskAddNewDTO) throws IOException, SchedulerException {
         log.info("开始处理【新增网站导入专利任务】的请求,请求参数为:{}", qrtzTaskAddNewDTO);
         AssoOsTaskQrtzTask assoOsTaskQrtzTask = new AssoOsTaskQrtzTask();

+ 0 - 4
PAS/src/main/java/cn/cslg/pas/domain/QueueData.java

@@ -24,9 +24,5 @@ public class QueueData implements Serializable {
      * 专利实体类
      */
     private UploadParamsVO uploadParamsVO;
-    /**
-     * 前台参数实体类
-     */
-    private ProjectImportPatentVO projectImportPatentVO;
 
 }

+ 6 - 1
PAS/src/main/java/cn/cslg/pas/domain/Task.java

@@ -38,10 +38,15 @@ public class Task extends BaseEntity<Task> {
     private Integer startTime;
 
     /**
-     * 专题库
+     * 专题库id
      */
     @TableField("tid")
     private Integer projectId;
+    /**
+     * 报告id
+     */
+    @TableField("rid")
+    private Integer reportId;
 
     /**
      * 导入导出字段数量

+ 15 - 1
PAS/src/main/java/cn/cslg/pas/service/OutInterfaceService.java

@@ -37,6 +37,8 @@ public class OutInterfaceService {
     private String OPSUrl;
     @Value("${PASUrl}")
     private String PASUrl;
+    @Value("${RMSUrl}")
+    private String RMSUrl;
 
     /**
      * 根据人员名称模糊查询人员ids
@@ -60,7 +62,6 @@ public class OutInterfaceService {
      * @return 返回装载着人员列表数据的data的String
      */
     public String getPersonnelByIdsFromPCS(List<Integer> ids) throws IOException {
-
         String param = new Gson().toJson(ids);
         RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
         OkHttpClient okHttpClient = new OkHttpClient.Builder()
@@ -198,4 +199,17 @@ public class OutInterfaceService {
         return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
     }
 
+    public String importAssoReportPatentNo(Integer reportId, String patentNo) throws IOException {
+        OkHttpClient httpClient = new OkHttpClient.Builder()
+                .pingInterval(400, TimeUnit.SECONDS) // 设置 PING 帧发送间隔
+                .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
+                .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
+                .build();
+        Request request = new Request.Builder()
+                .url(RMSUrl + "/api/report/api/compare/addSingle?reportId=" + reportId + "&patentNo=" + patentNo)
+                .get()
+                .build();
+        return Objects.requireNonNull(httpClient.newCall(request).execute().body()).string();
+    }
+
 }

+ 21 - 4
PAS/src/main/java/cn/cslg/pas/service/TaskService.java

@@ -21,12 +21,14 @@ import cn.cslg.pas.service.upLoadPatent.PantentQueueService;
 import cn.hutool.core.io.FileUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -120,9 +122,13 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> implements ITaskS
         //task.setStartTime(DateUtils.getDateTime());
         //任务状态(0.队列中 1.进行中 2.成功 3.失败)
         task.setStatus(0);
-        if (projectImportPatentVO.getProjectId() != null) {
+        //判断当前导入专利任务是与专题库关联还是与报告关联
+        if (projectImportPatentVO.getProjectId() != null && projectImportPatentVO.getReportId() == null) {
             //专题库id
             task.setProjectId(projectImportPatentVO.getProjectId());
+        } else if (projectImportPatentVO.getProjectId() == null && projectImportPatentVO.getReportId() != null) {
+            //报告id
+            task.setReportId(projectImportPatentVO.getReportId());
         }
         //文件名称
         task.setFileName(fileDTO.getFileName());
@@ -144,7 +150,7 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> implements ITaskS
         task.setSuccessNum(0);
         //失败条数
         task.setDefaultNum(0);
-        //前台参数json格式
+        //前台参数json格式(数据源配置、自定义字段、文件夹信息)
         task.setPramJson(json);
 
         //数据入任务表
@@ -166,8 +172,14 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> implements ITaskS
         //task.setStartTime(DateUtils.getDateTime());
         //任务状态(0.队列中 1.进行中 2.成功 3.失败)
         task.setStatus(0);
-        //专题库id
-        task.setProjectId(qrtzTaskAddNewDTO.getProjectId());
+        //判断当前导入专利任务是与专题库关联还是与报告关联
+        if (qrtzTaskAddNewDTO.getProjectId() != null && qrtzTaskAddNewDTO.getReportId() == null) {
+            //专题库id
+            task.setProjectId(qrtzTaskAddNewDTO.getProjectId());
+        } else if (qrtzTaskAddNewDTO.getProjectId() == null && qrtzTaskAddNewDTO.getReportId() != null) {
+            //报告id
+            task.setReportId(qrtzTaskAddNewDTO.getReportId());
+        }
         //专利总数量
         task.setTotal(total);
         //任务类型 (1Excel导入 2导出 3欧专局导入 4专利之星导入)
@@ -182,6 +194,11 @@ public class TaskService extends ServiceImpl<TaskMapper, Task> implements ITaskS
         task.setDefaultNum(0);
         //所属任务条件id
         task.setQrtzTaskId(assoOsTaskQrtzTask.getId());
+        //自定义字段和文件夹信息
+        ProjectImportPatentVO projectImportPatentVO = new ProjectImportPatentVO();
+        BeanUtils.copyProperties(qrtzTaskAddNewDTO, projectImportPatentVO);
+        String json = JSONObject.toJSONString(projectImportPatentVO);
+        task.setPramJson(json);
 
         //数据入任务表
         log.info("任务表(os_task)新增数据");

+ 3 - 3
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -253,7 +253,7 @@ public class UploadPatentBatchService {
 
             //保存专题库关联专利信息(表"os_thematic_pid")
             if (uploadParamsVO.getPatent() != null) {
-                patentThematicPidBusiness(uploadParamsVO, projectImportPatentVO);
+                patentThematicPidBusiness(uploadParamsVO, projectImportPatentVO.getProjectId());
             }
 
             //保存标引内容关联专利信息(表"os_patent_field_patent_link"、"os_patent_field_text")
@@ -563,8 +563,8 @@ public class UploadPatentBatchService {
         patentApplicantService.updatePatentApplicantAddress(patentApplicantAddressParams);
     }
 
-    public void patentThematicPidBusiness(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
-        projectPatentLinkService.updateProjectPatent(projectImportPatentVO.getProjectId(), uploadParamsVO.getPatent().getId());
+    public void patentThematicPidBusiness(UploadParamsVO uploadParamsVO, Integer projectId) {
+        projectPatentLinkService.updateProjectPatent(projectId, uploadParamsVO.getPatent().getId());
     }
 
     public void patentProjectFieldPatentLinkBusiness(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/ExcutePatentDataEpo.java

@@ -249,7 +249,7 @@ public class ExcutePatentDataEpo implements IExcutePatentData {
                         if (patentCell.getProjectId() != null) {
                             projectPatentLinkService.updateProjectPatent(patentCell.getProjectId(), uploadParamsVO.getPatent().getId());
                         }
-                        pantentQueueService.patentToQueue(task, uploadParamsVO, null);
+                        pantentQueueService.patentToQueue(task, uploadParamsVO);
                     }
 
                 } catch (XiaoShiException e) {

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/ExcutePatentDataExcel.java

@@ -60,7 +60,7 @@ public class ExcutePatentDataExcel implements IExcutePatentData {
             UploadParamsVO uploadParamsVO = excuteDataToVOService.fileToPatentVO(patentData, jsonData);
 
             //专利丢入5个消费者队列,并唤醒5个消费者线程
-            pantentQueueService.patentToQueue(task, uploadParamsVO, projectImportPatentVO);
+            pantentQueueService.patentToQueue(task, uploadParamsVO);
         }
     }
 

+ 20 - 12
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/PantentQueueService.java

@@ -3,9 +3,11 @@ package cn.cslg.pas.service.upLoadPatent;
 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.domain.PQueueData;
 import cn.cslg.pas.domain.QueueData;
 import cn.cslg.pas.domain.Task;
+import cn.cslg.pas.service.OutInterfaceService;
 import cn.cslg.pas.service.PatentInstructionService;
 import cn.cslg.pas.service.TaskService;
 import cn.cslg.pas.service.UploadPatentBatchService;
@@ -37,6 +39,7 @@ public class PantentQueueService {
     private final ExcutePatentDataEpo excutePatentDataEpo;
     private final ExcutePatentDataStar excutePatentDataStar;
     private final PatentInstructionService patentInstructionService;
+    private final OutInterfaceService outInterfaceService;
     private final List<Integer> taskQueueList = new ArrayList<>();
     private final List<PQueueData> setPatentImageQueueList = new ArrayList<>();
     private final List<PQueueData> setPatentZhuluQueueList = new ArrayList<>();
@@ -131,8 +134,7 @@ public class PantentQueueService {
                     projectImportPatentVO.setProjectId(task.getProjectId());
                     QueueData queueData = new QueueData()
                             .setTask(task)
-                            .setUploadParamsVO(pQueueData.getUploadParamsVO())
-                            .setProjectImportPatentVO(projectImportPatentVO);
+                            .setUploadParamsVO(pQueueData.getUploadParamsVO());
                     //装载完成,将其丢入著录消费者队列,并唤醒著录消费者线程
                     patentZhuluQueueList.add(queueData);
                     patentZhuluLock.lock();
@@ -341,12 +343,20 @@ public class PantentQueueService {
                     queueData = patentZhuluQueueList.remove(0);
                     //著录项目入库
                     uploadPatentToDBService.uploadPatentZhulu(queueData.getUploadParamsVO());
-                    //专题库与专利关联入库
-                    uploadPatentToDBService.uploadAssoThemaPat(queueData.getUploadParamsVO(), queueData.getProjectImportPatentVO());
+                    //判断是与专题库关联还是与报告关联
+                    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)) {
+                        //与报告关联入库(调用报告系统接口)
+                        outInterfaceService.importAssoReportPatentNo(queueData.getTask().getReportId(), queueData.getUploadParamsVO().getPatent().getPatentNo());
+                    }
+
+                    ProjectImportPatentVO projectImportPatentVO = JsonUtils.jsonToPojo(queueData.getTask().getPramJson(), ProjectImportPatentVO.class);
                     //自定义字段标引与专利关联入库
-                    uploadPatentToDBService.uploadAssoFieldPat(queueData.getUploadParamsVO(), queueData.getProjectImportPatentVO());
+                    uploadPatentToDBService.uploadAssoFieldPat(queueData.getUploadParamsVO(), projectImportPatentVO);
                     //文件夹与专利关联入库
-                    uploadPatentToDBService.uploadAssoPorPat(queueData.getUploadParamsVO(), queueData.getProjectImportPatentVO());
+                    uploadPatentToDBService.uploadAssoPorPat(queueData.getUploadParamsVO(), projectImportPatentVO);
                     //Websocket发送message:通过WebSocket 在每一次循环结束后 向前端发送完成进度
                     sendMessage(queueData);
                 } else {
@@ -564,19 +574,17 @@ public class PantentQueueService {
     /**
      * 专利丢入5个消费者队列,并唤醒5个消费者线程
      *
-     * @param task                  任务对象
-     * @param uploadParamsVO        专利实体类对象
-     * @param projectImportPatentVO 专利与专题库关联数据对象
+     * @param task           任务对象
+     * @param uploadParamsVO 专利实体类对象
      */
-    public void patentToQueue(Task task, UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
+    public void patentToQueue(Task task, UploadParamsVO uploadParamsVO) {
         //保存专利基础数据(专利表"os_patent")
         uploadPatentBatchService.getOneOrInsertOne(uploadParamsVO);
 
 
         QueueData queueData = new QueueData()
                 .setTask(task)
-                .setUploadParamsVO(uploadParamsVO)
-                .setProjectImportPatentVO(projectImportPatentVO);
+                .setUploadParamsVO(uploadParamsVO);
 
         //专利分别加入5个消费者队列
         patentImageQueueList.add(queueData);

+ 5 - 5
PAS/src/main/java/cn/cslg/pas/service/upLoadPatent/UploadPatentToDBService.java

@@ -150,13 +150,13 @@ public class UploadPatentToDBService {
     /**
      * 专题库与专利关联
      *
-     * @param uploadParamsVO        专利内容
-     * @param projectImportPatentVO 专题库关联专利内容(专题库id、专利id)
+     * @param uploadParamsVO 专利内容
+     * @param projectId      专题库id
      */
-    public void uploadAssoThemaPat(UploadParamsVO uploadParamsVO, ProjectImportPatentVO projectImportPatentVO) {
+    public void uploadAssoThemaPat(UploadParamsVO uploadParamsVO, Integer projectId) {
         //保存专题库与专利关联(表"os_thematic_pid")
-        if (uploadParamsVO.getPatent() != null && projectImportPatentVO != null) {
-            uploadPatentBatchService.patentThematicPidBusiness(uploadParamsVO, projectImportPatentVO);
+        if (uploadParamsVO.getPatent() != null && projectId != null) {
+            uploadPatentBatchService.patentThematicPidBusiness(uploadParamsVO, projectId);
         }
     }
 

+ 2 - 1
PAS/src/main/resources/application-dev.yml

@@ -59,4 +59,5 @@ authorUrl: http://localhost:8871
 PCSUrl: http://localhost:8871
 #OPSUrl: http://192.168.1.24:5001
 OPSUrl: http://139.224.24.90:5001
-PASUrl: http://localhost:8877
+PASUrl: http://localhost:8877
+RMSUrl: http://localhost:8872