chendayu 2 роки тому
батько
коміт
b7f187e259

+ 6 - 0
RMS/src/main/java/cn/cslg/report/common/model/dto/ReportDTO.java

@@ -181,4 +181,10 @@ public class ReportDTO  {
     private List<Integer> conclusionIds;
     private List<Integer> copyIds;
     private List<String> types;
+
+    /**
+     * 事件
+     */
+    private List<EventAddNewDTO> eventAddNewDTOs;
+
 }

+ 19 - 15
RMS/src/main/java/cn/cslg/report/controller/ReportController.java

@@ -32,6 +32,7 @@ import java.util.List;
 public class ReportController {
     private final ReportService reportService;
     private final ReportReferencesService reportReferencesService;
+
     /**
      * @param report 报告类
      * @author 沈永艺
@@ -42,11 +43,11 @@ public class ReportController {
     @Operation(summary = "新增报告")
     @checkAuth(FunId = "/pcs/report/add")
     @Transactional(rollbackFor = Exception.class)
-    public String addReport(String report, List<MultipartFile> files) {
+    public String addReport(String report, List<MultipartFile> files) throws IOException {
         if (report != null) {
             //新建报告并返回报告Id
-            ReportDTO report1 =JSONObject.parseObject(report,ReportDTO.class);
-            Integer reportId = reportService.addReport(report1,files);
+            ReportDTO report1 = JSONObject.parseObject(report, ReportDTO.class);
+            Integer reportId = reportService.addReport(report1, files);
             return Response.success("添加成功");
         } else {
             return Response.error("网络异常");
@@ -55,11 +56,11 @@ public class ReportController {
 
     @RequestMapping(value = "/updateReport", method = RequestMethod.POST)
     @Operation(summary = "修改报告")
-    public String updateReport( String report, List<MultipartFile> files) throws IOException {
+    public String updateReport(String report, List<MultipartFile> files) throws IOException {
         if (report != null) {
-            ReportDTO report1 =JSONObject.parseObject(report,ReportDTO.class);
+            ReportDTO report1 = JSONObject.parseObject(report, ReportDTO.class);
             report1.setScenarioId(StringUtils.join(report1.getScenarioList(), ","));
-            Boolean flag = reportService.updateReport(report1,files);
+            Boolean flag = reportService.updateReport(report1, files);
             if (flag) {
                 return Response.success("添加成功");
             } else {
@@ -82,31 +83,34 @@ public class ReportController {
     public String deleReport(Integer id) throws IOException {
         return reportService.reportDele(id);
     }
+
     @RequestMapping(value = "/addFile", method = RequestMethod.POST)
     @Operation(summary = "文件上传")
-    public  String addFile(String jsons, List<MultipartFile> files) throws IOException{
+    public String addFile(String jsons, List<MultipartFile> files) throws IOException {
         ReportReferences reportReferences = JSONObject.parseObject(jsons, ReportReferences.class);
 
-        return reportReferencesService.add(reportReferences,files);
+        return reportReferencesService.add(reportReferences, files);
     }
+
     @PostMapping(value = "selectfile")
     @Operation(summary = "文件查询")
-    public String queryLitigationHistory(@RequestBody ReportReferences reportReferences)throws IOException{
-            return reportReferencesService.queryReportReferences(reportReferences);
+    public String queryLitigationHistory(@RequestBody ReportReferences reportReferences) throws IOException {
+        return reportReferencesService.queryReportReferences(reportReferences);
     }
+
     @GetMapping("/deletefile")
     @Operation(summary = "删除文件")
-    public String deleFile(int id)throws IOException{
+    public String deleFile(int id) throws IOException {
         return reportReferencesService.delete(id);
     }
 
     @PostMapping(value = "updatefiles")
     @Operation(summary = "文件修改")
     @Transactional(rollbackFor = Exception.class)
-   public  String updatefiles(String jsons, List<MultipartFile> files) throws IOException {
+    public String updatefiles(String jsons, List<MultipartFile> files) throws IOException {
         ReportReferences reportReferences = JSONObject.parseObject(jsons, ReportReferences.class);
         Boolean ja = reportReferencesService.updateReportReferences(reportReferences, files);
-        if(ja){
+        if (ja) {
             return Response.success();
         }
         return Response.error();
@@ -115,8 +119,8 @@ public class ReportController {
     @GetMapping(value = "updateStatus")
     @Operation(summary = "修改报告状态")
     @Transactional(rollbackFor = Exception.class)
-    public String updateStatus(Integer reportId,Integer status){
-        reportService.updateStatus(reportId,status);
+    public String updateStatus(Integer reportId, Integer status) {
+        reportService.updateStatus(reportId, status);
         return Response.success();
     }
 

+ 69 - 40
RMS/src/main/java/cn/cslg/report/service/OutInterfaceService.java

@@ -3,6 +3,7 @@ package cn.cslg.report.service;
 import cn.cslg.report.common.core.base.Constants;
 import cn.cslg.report.common.model.PASPatentVO;
 import cn.cslg.report.common.model.ProjectSourceVO;
+import cn.cslg.report.common.model.dto.EventAddNewDTO;
 import cn.cslg.report.common.model.dto.PasUserDTO;
 import cn.cslg.report.common.model.vo.*;
 import cn.cslg.report.common.utils.CacheUtils;
@@ -192,6 +193,7 @@ public class OutInterfaceService {
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
     /**
      * @title 分页查询人员
      * @description 接口来源:PCS
@@ -205,7 +207,7 @@ public class OutInterfaceService {
         map.put("tenant", personnelVO.getTenant());
         map.put("size", personnelVO.getSize());
         map.put("current", personnelVO.getCurrent());
-        map.put("notInPersonIds",personnelVO.getNotInPersonIds());
+        map.put("notInPersonIds", personnelVO.getNotInPersonIds());
         JSONObject json = new JSONObject(map);
         RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
         OkHttpClient okHttpClient = new OkHttpClient();
@@ -226,7 +228,7 @@ public class OutInterfaceService {
 
         String param = new Gson().toJson(ids);
         RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
-        OkHttpClient okHttpClient =new OkHttpClient.Builder()
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
                 .connectTimeout(60, TimeUnit.SECONDS)
                 .writeTimeout(60, TimeUnit.SECONDS)
                 .readTimeout(60, TimeUnit.SECONDS)
@@ -321,6 +323,7 @@ public class OutInterfaceService {
 
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
     public String getPatentNos(Integer projectId) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
@@ -355,7 +358,7 @@ public class OutInterfaceService {
         Report report = reportService.getById(patentVO.getReportId());
         if (type == 0) {
             patentVO.setProjectId(report.getProjectId());
-             patentVO.setImportTaskId(taskIds);
+            patentVO.setImportTaskId(taskIds);
 
         }
         String param = new Gson().toJson(patentVO);
@@ -372,6 +375,27 @@ public class OutInterfaceService {
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
 
+    /**
+     * 调用分析系统新增事件接口
+     *
+     * @param eventAddNewDTOs
+     * @return
+     */
+    public String getEventIdsFromPAS(List<EventAddNewDTO> eventAddNewDTOs) throws IOException {
+        String param = new Gson().toJson(eventAddNewDTOs);
+        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(PASUrl + "/api/v2/event/addNew")
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
     public String getConPantentNos(PatentVO patentVO, int type) throws IOException {
         LambdaQueryWrapper<ImportTask> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ImportTask::getReportId, patentVO.getReportId());
@@ -386,25 +410,25 @@ public class OutInterfaceService {
             map.put("endNumber", patentVO.getEndNumber());
         }
         //专利名称
-        map.put("patentName",patentVO.getPatentName());
+        map.put("patentName", patentVO.getPatentName());
         //专利摘要
-        map.put("abstractStr",patentVO.getAbstractStr());
+        map.put("abstractStr", patentVO.getAbstractStr());
         map.put("size", patentVO.getSize());
         map.put("current", patentVO.getCurrent());
         map.put("patentNos", patentVO.getPatentNos());
         //申请人名字
-        map.put("applicationName",patentVO.getApplicationName());
+        map.put("applicationName", patentVO.getApplicationName());
         //申请号
-        map.put("applicationNo",patentVO.getApplicationNo());
+        map.put("applicationNo", patentVO.getApplicationNo());
         //专利号
-        map.put("patentNo",patentVO.getPatentNo());
+        map.put("patentNo", patentVO.getPatentNo());
         //权利人名字
-        map.put("obligeeName" ,patentVO.getObligeeName());
+        map.put("obligeeName", patentVO.getObligeeName());
         map.put("notInPatentNos", patentVO.getNotInPatentNos());
         //分类号(IPC,UPC,CPC)
-        map.put("numberCpc",patentVO.getNumberCpc());
-        map.put("numberIpc",patentVO.getNumberIpc());
-        map.put("numberUpc",patentVO.getNumberUpc());
+        map.put("numberCpc", patentVO.getNumberCpc());
+        map.put("numberIpc", patentVO.getNumberIpc());
+        map.put("numberUpc", patentVO.getNumberUpc());
         JSONObject json = new JSONObject(map);
         RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
         OkHttpClient okHttpClient = new OkHttpClient.Builder()
@@ -418,29 +442,32 @@ public class OutInterfaceService {
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
     //根据专利号列表获得专利详情
-  public String  getPatentDTOListForRMS(PatentVO patentVO) throws  IOException{
-      Map<String, Object> map = new HashMap<>();
-      map.put("patentNos", patentVO.getPatentNos());
-      JSONObject json = new JSONObject(map);
-      RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
-      OkHttpClient okHttpClient = new OkHttpClient
-              .Builder()
-              .connectTimeout(60, TimeUnit.SECONDS)
-              .writeTimeout(60, TimeUnit.SECONDS)
-              .readTimeout(60, TimeUnit.SECONDS)
-              .build();;;
-      Request request = new Request.Builder()
-              .url(PASUrl + "/api/v2/system/getPatentDTOListForRMS")
-              .post(requestBody)
-              .build();
-      return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
-
-
-  }
+    public String getPatentDTOListForRMS(PatentVO patentVO) throws IOException {
+        Map<String, Object> map = new HashMap<>();
+        map.put("patentNos", patentVO.getPatentNos());
+        JSONObject json = new JSONObject(map);
+        RequestBody requestBody = RequestBody.create(JSON, String.valueOf(json));
+        OkHttpClient okHttpClient = new OkHttpClient
+                .Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        ;
+        ;
+        Request request = new Request.Builder()
+                .url(PASUrl + "/api/v2/system/getPatentDTOListForRMS")
+                .post(requestBody)
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+
+
+    }
 
     public String getComPatentNos(PatentVO patentVO) throws IOException {
-        if(patentVO.getReportId()!=null) {
+        if (patentVO.getReportId() != null) {
             LambdaQueryWrapper<ImportTask> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.eq(ImportTask::getReportId, patentVO.getReportId());
             Report report = reportService.getById(patentVO.getReportId());
@@ -471,7 +498,7 @@ public class OutInterfaceService {
                 .connectTimeout(300, TimeUnit.SECONDS)//设置连接超时时间
                 .readTimeout(300, TimeUnit.SECONDS)//设置读取超时时间
                 .build();
-            String param = new Gson().toJson(taskParams);
+        String param = new Gson().toJson(taskParams);
         RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
         Request request = new Request.Builder()
                 .url(PASUrl + "/api/v2/project/import/sysPatent")
@@ -511,6 +538,7 @@ public class OutInterfaceService {
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
     /**
      * @title 获得分析系统自定义字段选项
      * @description 获得分析系统自定义字段选项
@@ -519,7 +547,7 @@ public class OutInterfaceService {
     public String getPatentQueryTree(Integer projectId) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .url(PASUrl + "/api/v2/project/field/tree?projectId="+projectId)
+                .url(PASUrl + "/api/v2/project/field/tree?projectId=" + projectId)
                 .get()
                 .build();
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
@@ -550,22 +578,23 @@ public class OutInterfaceService {
     public String getPersonIdByNamePCS(String personName) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .url(PCSUrl + "/permission/api/system/getPersonIdByName?personName="+personName)
+                .url(PCSUrl + "/permission/api/system/getPersonIdByName?personName=" + personName)
                 .get()
                 .build();
 
-        return  Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
+
     public List<Integer> getDutyDepartsFromPCS(Integer personId) throws IOException {
         OkHttpClient okHttpClient = new OkHttpClient();
         Request request = new Request.Builder()
-                .url(PCSUrl + "/permission/api/system/getDutyDeparts?personId="+personId)
+                .url(PCSUrl + "/permission/api/system/getDutyDeparts?personId=" + personId)
                 .get()
                 .build();
-String resBody =okHttpClient.newCall(request).execute().body().string();
+        String resBody = okHttpClient.newCall(request).execute().body().string();
 
-        List<Integer> ids = JSONArray.parseArray(resBody,Integer.class);
-        return  ids;
+        List<Integer> ids = JSONArray.parseArray(resBody, Integer.class);
+        return ids;
 
     }
 

+ 75 - 75
RMS/src/main/java/cn/cslg/report/service/business/AssoTaskPersonelService.java

@@ -35,8 +35,8 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 @SuppressWarnings({"all"})
 public class AssoTaskPersonelService extends ServiceImpl<AssoTaskPersonelMapper, AssoTaskPersonel> {
-   private final  AssoTaskPersonelMapper assoTaskPersonelMapper ;
-   private final OutInterfaceService outInterfaceService;
+    private final AssoTaskPersonelMapper assoTaskPersonelMapper;
+    private final OutInterfaceService outInterfaceService;
     public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
     @Value("${PCSUrl}")
     private String PCSUrl;
@@ -44,32 +44,32 @@ public class AssoTaskPersonelService extends ServiceImpl<AssoTaskPersonelMapper,
     private String PASUrl;
 
 
-
-    public  void test(){}
+    public void test() {
+    }
 
     /**
-     * @function 根据报告id 删除任务人员关联表对应实体assoTaskPersonel
      * @param reportId
      * @return
      * @throws IOException
+     * @function 根据报告id 删除任务人员关联表对应实体assoTaskPersonel
      */
     @Transactional(rollbackFor = Exception.class)
-    public String deleAssoTaskPersonel(Integer reportId) throws IOException{
-        LambdaQueryWrapper<AssoTaskPersonel> wrappers =new LambdaQueryWrapper();
-        wrappers.eq(AssoTaskPersonel::getReportId,reportId);
-         this.remove(wrappers);
+    public String deleAssoTaskPersonel(Integer reportId) throws IOException {
+        LambdaQueryWrapper<AssoTaskPersonel> wrappers = new LambdaQueryWrapper();
+        wrappers.eq(AssoTaskPersonel::getReportId, reportId);
+        this.remove(wrappers);
         return Response.success();
     }
 
     /**
-     * @function:当前登陆人的id状态 任务id 状态 该条专利位置分页处理拿到专利号
      * @param personelId当前登录人的id
-     * @param state 状态 1已读 0 未读 3 全部
-     * @param taskId 任务id
-     * @param location 该条专利位置
+     * @param state              状态 1已读 0 未读 3 全部
+     * @param taskId             任务id
+     * @param location           该条专利位置
      * @throws IOException
+     * @function:当前登陆人的id状态 任务id 状态 该条专利位置分页处理拿到专利号
      */
-    public String pagination(PatentVO patentVO)throws IOException {
+    public String pagination(PatentVO patentVO) throws IOException {
         Map<String, Object> map = new HashMap<>();
         List<String> patentNumber = new ArrayList<>();
         if (patentVO.getTaskStatus().equals(3)) {
@@ -100,44 +100,44 @@ public class AssoTaskPersonelService extends ServiceImpl<AssoTaskPersonelMapper,
             JSONObject jsonObject = JSONObject.parseObject(res);
             JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.get("data").toString());
             List<JSONObject> jsonObjects = JSONArray.parseArray(jsonObject1.get("records").toString(), JSONObject.class);
-           List<Patents> list= new ArrayList<>();
+            List<Patents> list = new ArrayList<>();
 
-           for(JSONObject obj:jsonObjects){
+            for (JSONObject obj : jsonObjects) {
 
-               Patents patent = obj.toJavaObject(obj, Patents.class);
-               list.add(patent);
+                Patents patent = obj.toJavaObject(obj, Patents.class);
+                list.add(patent);
 
-           }
-            if(list.size()==0){
+            }
+            if (list.size() == 0) {
 
                 return Response.success();
             }
 
-           if(list.size()==1){
-               map.put("currentID", list.get(0).getId());
-               map.put("behindID",null);
-               map.put("frontID", null);
-               map.put("totalNumber" , list.size());
-               map.put("frontPatentNo",null);
-               map.put("currentPatentNo",list.get(0).getPatentNo());
-               map.put("behindPatentNo",null);
-               map.put("frontNumber",0);
-               map.put("behindNumber",0);
-            return Response.success(map);
+            if (list.size() == 1) {
+                map.put("currentID", list.get(0).getId());
+                map.put("behindID", null);
+                map.put("frontID", null);
+                map.put("totalNumber", list.size());
+                map.put("frontPatentNo", null);
+                map.put("currentPatentNo", list.get(0).getPatentNo());
+                map.put("behindPatentNo", null);
+                map.put("frontNumber", 0);
+                map.put("behindNumber", 0);
+                return Response.success(map);
 
-           }
+            }
             jsonObject1.put("type", "first");
             map.put("currentID", list.get(0).getId());
-            map.put("behindID",list.get(1).getId());
+            map.put("behindID", list.get(1).getId());
             map.put("frontID", null);
-            map.put("totalNumber" , list.size());
-            map.put("frontNumber",0);
-            map.put("behindNumber",list.size()-1);
-            map.put("location",1);
-            map.put("frontPatentNo",null);
-            map.put("currentPatentNo",list.get(0).getPatentNo());
-            map.put("behindPatentNo",list.get(1).getPatentNo());
-            return  Response.success(map);
+            map.put("totalNumber", list.size());
+            map.put("frontNumber", 0);
+            map.put("behindNumber", list.size() - 1);
+            map.put("location", 1);
+            map.put("frontPatentNo", null);
+            map.put("currentPatentNo", list.get(0).getPatentNo());
+            map.put("behindPatentNo", list.get(1).getPatentNo());
+            return Response.success(map);
         } else {
             patentVO.setStartNumber(patentVO.getLocPosition() - 2);
             patentVO.setEndNumber(patentVO.getLocPosition());
@@ -145,50 +145,50 @@ public class AssoTaskPersonelService extends ServiceImpl<AssoTaskPersonelMapper,
             JSONObject jsonObject = JSONObject.parseObject(res);
             JSONObject jsonObject1 = JSONObject.parseObject(jsonObject.get("data").toString());
             List<JSONObject> jsonObjects = JSONArray.parseArray(jsonObject1.get("records").toString(), JSONObject.class);
-            List<Patents> list= new ArrayList<>();
-            for(JSONObject obj:jsonObjects){
+            List<Patents> list = new ArrayList<>();
+            for (JSONObject obj : jsonObjects) {
                 Patents patent = obj.toJavaObject(obj, Patents.class);
                 list.add(patent);
 
             }
 
-            if(list.size()==1){
+            if (list.size() == 1) {
                 map.put("currentID", list.get(0).getId());
-                map.put("behindID",null);
+                map.put("behindID", null);
                 map.put("frontID", null);
-                map.put("totalNumber" , list.size());
-                map.put("frontPatentNo",null);
-                map.put("currentPatentNo",list.get(0).getPatentNo());
-                map.put("behindPatentNo",null);
-                map.put("frontNumber",0);
-                map.put("behindNumber",0);
-                return  Response.success(map);
+                map.put("totalNumber", list.size());
+                map.put("frontPatentNo", null);
+                map.put("currentPatentNo", list.get(0).getPatentNo());
+                map.put("behindPatentNo", null);
+                map.put("frontNumber", 0);
+                map.put("behindNumber", 0);
+                return Response.success(map);
 
             }
-            if(patentVO.getLocPosition()>=list.size()) {
-                map.put("currentID", list.get(list.size()-1).getId());
-                map.put("behindID",null);
-                map.put("frontID",list.get(list.size()-2).getId());
-                map.put("totalNumber" , list.size());
-                map.put("frontNumber",list.size()-1);
-                map.put("behindNumber",0);
-                map.put("location",list.size());
-                map.put("frontPatentNo",list.get(list.size()-2).getPatentNo());
-                map.put("currentPatentNo",list.get(list.size()-1).getPatentNo());
-                map.put("behindPatentNo",null);
-                return  Response.success(map);
+            if (patentVO.getLocPosition() >= list.size()) {
+                map.put("currentID", list.get(list.size() - 1).getId());
+                map.put("behindID", null);
+                map.put("frontID", list.get(list.size() - 2).getId());
+                map.put("totalNumber", list.size());
+                map.put("frontNumber", list.size() - 1);
+                map.put("behindNumber", 0);
+                map.put("location", list.size());
+                map.put("frontPatentNo", list.get(list.size() - 2).getPatentNo());
+                map.put("currentPatentNo", list.get(list.size() - 1).getPatentNo());
+                map.put("behindPatentNo", null);
+                return Response.success(map);
             }
-            map.put("currentID", list.get(patentVO.getLocPosition()-1).getId());
-            map.put("behindID",list.get(patentVO.getLocPosition()).getId());
-            map.put("frontID",list.get(patentVO.getLocPosition()-2).getId());
-            map.put("totalNumber" , list.size());
-            map.put("frontNumber",patentVO.getLocPosition()-1);
-            map.put("behindNumber", list.size()-patentVO.getLocPosition());
-            map.put("location",patentVO.getLocPosition());
-            map.put("frontPatentNo",list.get(patentVO.getLocPosition()-2).getPatentNo());
-            map.put("currentPatentNo",list.get(patentVO.getLocPosition()-1).getPatentNo());
-            map.put("behindPatentNo",list.get(patentVO.getLocPosition()).getPatentNo());
-            return  Response.success(map);
+            map.put("currentID", list.get(patentVO.getLocPosition() - 1).getId());
+            map.put("behindID", list.get(patentVO.getLocPosition()).getId());
+            map.put("frontID", list.get(patentVO.getLocPosition() - 2).getId());
+            map.put("totalNumber", list.size());
+            map.put("frontNumber", patentVO.getLocPosition() - 1);
+            map.put("behindNumber", list.size() - patentVO.getLocPosition());
+            map.put("location", patentVO.getLocPosition());
+            map.put("frontPatentNo", list.get(patentVO.getLocPosition() - 2).getPatentNo());
+            map.put("currentPatentNo", list.get(patentVO.getLocPosition() - 1).getPatentNo());
+            map.put("behindPatentNo", list.get(patentVO.getLocPosition()).getPatentNo());
+            return Response.success(map);
 
 
         }

+ 38 - 10
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -1,6 +1,7 @@
 package cn.cslg.report.service.business;
 
 import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.dto.EventAddNewDTO;
 import cn.cslg.report.common.model.dto.ReportDTO;
 import cn.cslg.report.common.model.vo.ClientVO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
@@ -15,6 +16,7 @@ import cn.cslg.report.entity.*;
 import cn.cslg.report.entity.asso.AssoReportFile;
 import cn.cslg.report.entity.asso.AssoReportPerson;
 import cn.cslg.report.mapper.ReportMapper;
+import cn.cslg.report.service.IAssoEventReportService;
 import cn.cslg.report.service.IAvoidDesignDirectionService;
 import cn.cslg.report.service.IProductService;
 import cn.cslg.report.service.OutInterfaceService;
@@ -70,6 +72,8 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
     private final CopyService copyService;
     private final SystemDictItemService systemDictItemService;
     private final AssoReportPersonService assoReportPersonService;
+    private final IAssoEventReportService assoEventReportService;
+
     private Report loadReport(ReportDTO reportDto) {
         Report report = new Report();
         //装载基本信息
@@ -125,7 +129,7 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
      * @author 沈永艺
      */
     @Transactional(rollbackFor = Exception.class)
-    public Integer addReport(ReportDTO reportDto, List<MultipartFile> files) {
+    public Integer addReport(ReportDTO reportDto, List<MultipartFile> files) throws IOException {
         //新增报告
         Report report = this.loadReport(reportDto);
         report.insert();
@@ -164,6 +168,30 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         } else {
             reportFieldService.addDefaultField(report.getId(), report.getType());
         }
+
+
+        //新增事件(若有事件)
+        List<EventAddNewDTO> eventAddNewDTOs = reportDto.getEventAddNewDTOs();
+        if (eventAddNewDTOs != null && eventAddNewDTOs.size() > 0) {
+            List<Integer> eventIds = new ArrayList<>();
+            //过滤去除已有事件(已有事件无需新增,只做关联)
+            List<EventAddNewDTO> oldEventAddNewDTOs = eventAddNewDTOs.stream().filter(item -> item.getId() != null).collect(Collectors.toList());
+            eventAddNewDTOs.removeAll(oldEventAddNewDTOs);
+            if (eventAddNewDTOs.size() > 0) {
+                //调用分析系统新增事件接口
+                String res = outInterfaceService.getEventIdsFromPAS(eventAddNewDTOs);
+                JSONObject jsonObject = JSONObject.parseObject(res);
+                List<Integer> newEventIds = JSONObject.parseObject(jsonObject.get("data").toString(), ArrayList.class);
+                eventIds.addAll(newEventIds);
+            }
+            for (EventAddNewDTO oldEventAddNewDTO : oldEventAddNewDTOs) {
+                eventIds.add(oldEventAddNewDTO.getId());
+            }
+            //新增事件和报告关联
+            assoEventReportService.addNew(eventIds, report.getId());
+
+        }
+
         return report.getId();
 
     }
@@ -228,12 +256,12 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
      */
     public List<Report> reportData(List<Report> reports) throws IOException {
         PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-          //根据登录人id获得登录人被分享的报告id
-        LambdaQueryWrapper<AssoReportPerson> wrapper =new LambdaQueryWrapper<>();
+        //根据登录人id获得登录人被分享的报告id
+        LambdaQueryWrapper<AssoReportPerson> wrapper = new LambdaQueryWrapper<>();
         wrapper.select(AssoReportPerson::getReportId);
-        wrapper.eq(AssoReportPerson::getPersonId,personnelVO.getId());
-        Function<Object,Integer> f = (o -> Integer.parseInt(o.toString())) ;
-        List<Integer> shareIds =assoReportPersonService.listObjs(wrapper,f);
+        wrapper.eq(AssoReportPerson::getPersonId, personnelVO.getId());
+        Function<Object, Integer> f = (o -> Integer.parseInt(o.toString()));
+        List<Integer> shareIds = assoReportPersonService.listObjs(wrapper, f);
 
         //提出报告Id
         List<Integer> reportIds = reports.stream().map(Report::getId).collect(Collectors.toList());
@@ -279,14 +307,14 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
         //过滤报告
         for (Report item : reports) {
             //装载登录人在报告中的角色
-            List<Integer> roles =new ArrayList<>();
-            if(item.getCreatePersonId().equals(personnelVO.getId())){
+            List<Integer> roles = new ArrayList<>();
+            if (item.getCreatePersonId().equals(personnelVO.getId())) {
                 roles.add(0);
             }
-            if(item.getPersonId()!=null&&item.getPersonId().equals(personnelVO.getId())){
+            if (item.getPersonId() != null && item.getPersonId().equals(personnelVO.getId())) {
                 roles.add(1);
             }
-            if(shareIds.contains(item.getId())){
+            if (shareIds.contains(item.getId())) {
                 roles.add(2);
             }
             item.setLoginRole(roles);