xiexiang 1 year ago
parent
commit
61687bef3c

+ 5 - 0
src/main/java/cn/cslg/pas/common/vo/business/ProjectTaskVO.java

@@ -31,8 +31,13 @@ public class ProjectTaskVO {
      */
     private String projectName;
 
+    /**
+     * 项目类型
+     */
     private Integer projectType;
 
+    private Integer reportType;
+
     private String patentNo;
 
     /**

+ 7 - 0
src/main/java/cn/cslg/pas/controller/FTOController.java

@@ -113,4 +113,11 @@ public class FTOController {
         TortCompareRecordVO tortCompareRecordVO = ftoCompareRecordService.getFTOAssitResult(patentNo,taskId, type);
         return Response.success(tortCompareRecordVO);
     }
+
+    @Operation(summary = "查询报告详情以及对比结果")
+    @GetMapping("/getReportDetails")
+    public Response getReportDetails(Integer projectId, String patentNo){
+        ftoCompareRecordService.getLastRecord(projectId, patentNo);
+        return null;
+    }
 }

+ 22 - 13
src/main/java/cn/cslg/pas/service/business/FTOCompareRecordService.java

@@ -87,13 +87,9 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         if (getFeatureSplitDTO.getSplitType() == null) {
             throw new XiaoShiException("splitType不能为空");
         }
-        LambdaQueryWrapper<ProjectTask> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ProjectTask::getId, taskId);
-        ProjectTask projectTask = projectTaskService.getOne(queryWrapper, false);
-        if (projectTask != null) {
-            getFeatureSplitDTO.setProjectId(projectTask.getProjectId());
-        }
-        Integer projectId = getFeatureSplitDTO.getProjectId();
+        //根据任务id获取报告id
+        Integer projectId = tortCompareRecordService.getProjectIdByTaskId(taskId);
+        getFeatureSplitDTO.setProjectId(projectId);
         //返回的VO类
         TortCompareRecordVO tortCompareRecordVO = new TortCompareRecordVO();
         tortCompareRecordVO.setProjectId(projectId);
@@ -103,8 +99,8 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         List<PatentRightVo> patentRightVos = new ArrayList<>();
         //判断是否重拆
         if (getFeatureSplitDTO.getIfReSplit() == true) {//重拆
-            //重拆需要清空原有对比结果表
-            // 根据分配任务id和报告id删除对比结果
+            // 重拆需要清空原有对比结果表
+            // 根据任务id和专利号删除对比结果
             LambdaQueryWrapper<FTOCompareRecord> deleteWrapper = new LambdaQueryWrapper<>();
             deleteWrapper.eq(FTOCompareRecord::getProjectTaskId, taskId)
                     .eq(FTOCompareRecord::getCompareFileNumber, patentNo);
@@ -235,7 +231,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         }
         List<TortDTO> tortDTOS = tortCompareRecordDTO.getTortDTOS();
         //不能将特征一次性全部删除,使用处理特征方法
-        if (!tortDTOS.isEmpty()) {
+        if (tortDTOS.isEmpty()) {
             throw new XiaoShiException("传入特征集合不能为空");
         }
         //查询出原来的特征id集合
@@ -293,7 +289,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
                 feature.setSysOrder(order);
                 feature.updateById();
                 // 新增对比结果
-                Integer id = this.addCompareRecords(patentNo, projectId, item);
+                Integer id = this.addCompareRecords(patentNo, projectId, taskId, item);
                 if (id != null) {
                     ftoIds.add(id);
                 }
@@ -302,6 +298,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
                 feature.setRightSort(item.getRightSort());
                 feature.setPatentNo(patentNo);
                 feature.setProjectId(projectId);
+                feature.setProjectTaskId(taskId);
                 feature.setContent(item.getContent());
                 feature.setExplainText(item.getExplainText());
                 feature.setCreateId(personnelVO.getId());
@@ -310,7 +307,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
                 feature.insert();
                 item.setFeatureId(feature.getId());
                 // 新增对比结果
-                Integer id = this.addCompareRecords(patentNo, projectId, item);
+                Integer id = this.addCompareRecords(patentNo, projectId, taskId, item);
                 if (id != null) {
                     ftoIds.add(id);
                 }
@@ -324,9 +321,10 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
      * 对比结果入库
      * @param patentNo
      * @param projectId
+     * @param taskId
      * @param tortDTO
      */
-    public Integer addCompareRecords(String patentNo, Integer projectId, TortDTO tortDTO){
+    public Integer addCompareRecords(String patentNo, Integer projectId, Integer taskId, TortDTO tortDTO){
         Integer featureId = tortDTO.getFeatureId();
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
@@ -344,6 +342,7 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
             ftoCompareRecord.setCompareResult(tortDTO.getCompareResult());
             ftoCompareRecord.setCompareDescription(tortDTO.getCompareDescription());
             ftoCompareRecord.setTargetDescription(tortDTO.getTargetDescription());
+            ftoCompareRecord.setProjectTaskId(taskId);
             ftoCompareRecord.setCreateId(personnelVO.getId());
             ftoCompareRecord.insert();
             return ftoCompareRecord.getId();
@@ -724,5 +723,15 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         }
     }
 
+    public void getLastRecord(Integer projectId, String patentNo){
+        LambdaQueryWrapper<FTOCompareRecord> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(FTOCompareRecord::getCompareFileNumber, patentNo)
+                .eq(FTOCompareRecord::getProjectId, projectId)
+                .eq(FTOCompareRecord::getIfFinal, true)
+                .eq(FTOCompareRecord::getIfOriginal, false)
+                .orderByDesc(FTOCompareRecord::getCreateTime);
+        List<FTOCompareRecord> ftoCompareRecords = this.list(queryWrapper);
+
+    }
 
 }

+ 16 - 5
src/main/java/cn/cslg/pas/service/business/FeatureService.java

@@ -77,8 +77,9 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
         LambdaQueryWrapper<Feature> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(Feature::getProjectId, projectId)
                 .eq(Feature::getPatentNo, patentNo);
-            wrapper.eq(Feature::getSplitMessageId,patentSplitMessage.getId());
-
+        if (patentSplitMessage != null) {
+            wrapper.eq(Feature::getSplitMessageId, patentSplitMessage.getId());
+        }
         List<Feature> allFeatures = new ArrayList<>();
         //如果是不重拆
         if (!ifReSplit) {
@@ -93,19 +94,26 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
                 patentSplitMessage.setProjectId(projectId);
                 patentSplitMessage.setTenantId(personnelVO.getTenantId());
                 patentSplitMessage.setCreateId(personnelVO.getId());
+                if(taskId!=null) {
+                    patentSplitMessage.setTaskId(taskId);
+                }
                 patentSplitMessage.insert();
-                allFeatures = this.splitFeature(splitBy, splitType, patentNo, projectId, patentRights,patentSplitMessage.getId());
+                allFeatures = this.splitFeature(splitBy, splitType, patentNo, projectId,taskId, patentRights,patentSplitMessage.getId());
             }
         }
         //当重拆时新建
         else {
+            if(patentSplitMessage==null) {
+                throw new XiaoShiException("未拆分过,请重新选择拆分方式");
+            }
+
             //更新拆分信息
             patentSplitMessage.setCreateTime(new Date());
             patentSplitMessage.setCreateId(personnelVO.getId());
             patentSplitMessage.updateById();
             //清除原本的
             this.remove(wrapper);
-            allFeatures = this.splitFeature(splitBy, splitType, patentNo, projectId, patentRights,patentSplitMessage.getId());
+            allFeatures = this.splitFeature(splitBy, splitType, patentNo, projectId,taskId, patentRights, patentSplitMessage.getId());
 
         }
         //装载信息并返回
@@ -256,7 +264,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
     }
 
 
-    public List<Feature> splitFeature(Integer splitBy, Integer splitType, String patentNo, Integer projectId, List<RePatentClaim> patentRights,Integer splitMessageId) throws IOException {
+    public List<Feature> splitFeature(Integer splitBy, Integer splitType, String patentNo, Integer projectId,Integer taskId, List<RePatentClaim> patentRights,Integer splitMessageId) throws IOException {
         List<Feature> allFeatures = new ArrayList<>();
         PersonnelVO personnelVO = new PersonnelVO();
         personnelVO.setId("1");
@@ -302,6 +310,9 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
                 feature.setRightType(patentRights.get(i).getType());
                 feature.setTenantId(personnelVO.getTenantId());
                 feature.setSplitMessageId(splitMessageId);
+                if(taskId!=null){
+                    feature.setProjectTaskId(taskId);
+                }
                 featureList.add(feature);
             }
             if (featureList.size() > 0) {

+ 28 - 15
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -304,6 +304,14 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
             Project project = projects.stream().filter(item -> item.getId().equals(projectTaskVO.getProjectId())).findFirst().orElse(null);
             projectTaskVO.setProjectName(project.getName());
             projectTaskVO.setProjectType(project.getType());
+            if (project.getType().equals(2)) {//报告
+                LambdaQueryWrapper<ReportProject> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(ReportProject::getProjectId, projectTaskVO.getProjectId());
+                ReportProject reportProject = reportProjectService.getOne(queryWrapper, false);
+                if (reportProject != null) {
+                    projectTaskVO.setReportType(reportProject.getReportType());
+                }
+            }
         }
     }
 
@@ -1017,21 +1025,26 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
         }
         List<String> patentNos = tortTaskDTO.getPatentNos();
         if (!patentNos.isEmpty()) {
-            List<CompareLiterature> compareLiteratures = new ArrayList<>();
-            //3.从侵权分析中获得对比结果,并复制保存
-            for (String patentNo : patentNos) {
-                ftoCompareRecordService.copyTortCompareRecords(projectId, taskId, personnelVO.getId(), patentNo);
-                //4.新增CompareLi
-                CompareLiterature compareLiterature = new CompareLiterature();
-                compareLiterature.setLiteratureNo(patentNo);
-                compareLiterature.setType(1);
-                compareLiterature.setProjectId(projectId);
-                compareLiterature.setProjectTaskId(taskId);
-                compareLiterature.setCreateId(personnelVO.getId());
-                compareLiteratures.add(compareLiterature);
-            }
-            if (!compareLiteratures.isEmpty()) {
-                compareLiteratureService.saveBatch(compareLiteratures);
+//            List<CompareLiterature> compareLiteratures = new ArrayList<>();
+//            //3.从侵权分析中获得对比结果,并复制保存
+//            for (String patentNo : patentNos) {
+//                ftoCompareRecordService.copyTortCompareRecords(projectId, taskId, personnelVO.getId(), patentNo);
+//                //4.新增CompareLiterature
+//                CompareLiterature compareLiterature = new CompareLiterature();
+//                compareLiterature.setLiteratureNo(patentNo);
+//                compareLiterature.setType(1);
+//                compareLiterature.setProjectId(projectId);
+//                compareLiterature.setProjectTaskId(taskId);
+//                compareLiterature.setCreateId(personnelVO.getId());
+//                compareLiteratures.add(compareLiterature);
+//            }
+//            if (!compareLiteratures.isEmpty()) {
+//                compareLiteratureService.saveBatch(compareLiteratures);
+//            }
+            try {
+                this.addCompareLiteratureByNosToEs(patentNos, taskId, projectId);
+            } catch (Exception e) {
+                throw new XiaoShiException(e.toString());
             }
         }
         //4.发送邮件通知协同人和抄送人

+ 1 - 1
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -865,7 +865,7 @@ public class EsService {
                 String claim = StringUtils.strip(JSON.toJSONString(esMess.getClaim()), "[]");
                 ContentDetailDTO contentDetailDTO = JSONObject.parseObject(claim, ContentDetailDTO.class);
                 if (contentDetailDTO.getIfOrigin()) {
-                    dto.setClaim(contentDetailDTO.getTextContent());
+                    dto.setClaim(contentDetailDTO.getTextContent().replaceAll("\t",""));
                 }
             }
         }