Bläddra i källkod

今日修改bug推送

chendayu 2 år sedan
förälder
incheckning
c8a3da84d8

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

@@ -44,7 +44,7 @@ public class ReportDTO {
     @Schema(description = "报告类别(0无效分析1第三方意见2稳定性分析3FTO调查4侵权分析5回避设计6图表分析7无效应对报告)")
     private Integer type;
     /**
-     * 报告状态
+     * 报告状态(0开卷审核 1创建中 2处理中 3完成 4取消开卷 5补资料中)
      */
     @Schema(description = "报告状态")
     private Integer status;

+ 8 - 3
RMS/src/main/java/cn/cslg/report/common/model/vo/SplitVO.java

@@ -12,12 +12,18 @@ import lombok.experimental.Accessors;
  */
 @Data
 @Accessors(chain = true)
-@Schema(description="拆分VO类",required = true)
+@Schema(description = "拆分VO类", required = true)
 public class SplitVO {
     @Schema(description = "专利号")
-   private String patentNo;
+    private String patentNo;
+    /**
+     * 0仅拆主权要 1全部拆分
+     */
     @Schema(description = "拆分类型")
     private Integer splitType;
+    /**
+     * 0逗号拆分 1分号拆分 2逗号和分号拆分
+     */
     @Schema(description = "拆分形式")
     private Integer splitBy;
     @JsonProperty("ReportId")
@@ -27,5 +33,4 @@ public class SplitVO {
     private Integer taskId;
 
 
-
 }

+ 24 - 17
RMS/src/main/java/cn/cslg/report/common/utils/PatentRightUtils.java

@@ -184,7 +184,7 @@ public class PatentRightUtils {
                 }
 
                 String regex;
-                if (content.contains("@")) {
+                if (content.contains("@2")) {
                     regex = "@[0-9]+";
                 } else if (content.contains("[001]")) {
                     regex = "\\[[0-9]+]";
@@ -193,7 +193,7 @@ public class PatentRightUtils {
                 }
 
                 Matcher matcher = Pattern.compile(regex).matcher(content);
-                Matcher matcherOut = Pattern.compile("@[0-9]+").matcher(contentOut);
+                Matcher matcherOut = Pattern.compile(regex).matcher(contentOut);
                 while (matcher.find()) {
                     content = content.replaceFirst(matcher.group(), "\n" + matcher.group().substring(matcher.group().indexOf("@") + 1));
                 }
@@ -259,11 +259,13 @@ public class PatentRightUtils {
                                     .setContent(strs[i])
                                     .setSort(i)
                                     .setParentSort((Integer.parseInt(parentNum) - 1) + "");
-                            //当翻译的长度大于原文权要的长度时,将剩下所有的译文给最后一条原文
-                            if (strsOut.length > strs.length && strs.length == (i + 1)) {
-                                patentRight.setContentOut(String.join(" ", Arrays.copyOfRange(strsOut, i, strsOut.length)));
-                            } else {
-                                patentRight.setContentOut(strsOut[i]);
+                            if (strsOut.length - 1 >= i) {
+                                //当翻译的长度大于原文权要的长度时,将剩下所有的译文给最后一条原文
+                                if (strsOut.length > strs.length && strs.length == (i + 1)) {
+                                    patentRight.setContentOut(String.join(" ", Arrays.copyOfRange(strsOut, i, strsOut.length)));
+                                } else {
+                                    patentRight.setContentOut(strsOut[i]);
+                                }
                             }
                             patentRights.add(patentRight);
                         } else if (matcher3.find()) {
@@ -280,11 +282,13 @@ public class PatentRightUtils {
                                     .setContent(strs[i])
                                     .setSort(i)
                                     .setParentSort(builder.substring(0, builder.lastIndexOf(",")));
-                            //当翻译的长度大于原文权要的长度时,将剩下所有的译文给最后一条原文
-                            if (strsOut.length > strs.length && strs.length == (i + 1)) {
-                                patentRight.setContentOut(String.join(" ", Arrays.copyOfRange(strsOut, i, strsOut.length)));
-                            } else {
-                                patentRight.setContentOut(strsOut[i]);
+                            if (strsOut.length - 1 >= i) {
+                                //当翻译的长度大于原文权要的长度时,将剩下所有的译文给最后一条原文
+                                if (strsOut.length > strs.length && strs.length == (i + 1)) {
+                                    patentRight.setContentOut(String.join(" ", Arrays.copyOfRange(strsOut, i, strsOut.length)));
+                                } else {
+                                    patentRight.setContentOut(strsOut[i]);
+                                }
                             }
                             patentRights.add(patentRight);
                         }
@@ -296,11 +300,13 @@ public class PatentRightUtils {
                                 .setContent(strs[i])
                                 .setSort(i)
                                 .setParentSort("-1");
-                        //当翻译的长度大于原文权要的长度时,将剩下所有的译文给最后一条原文
-                        if (strsOut.length > strs.length && strs.length == (i + 1)) {
-                            patentRight.setContentOut(String.join(" ", Arrays.copyOfRange(strsOut, i, strsOut.length)));
-                        } else {
-                            patentRight.setContentOut(strsOut[i]);
+                        if (strsOut.length - 1 >= i) {
+                            //当翻译的长度大于原文权要的长度时,将剩下所有的译文给最后一条原文
+                            if (strsOut.length > strs.length && strs.length == (i + 1)) {
+                                patentRight.setContentOut(String.join(" ", Arrays.copyOfRange(strsOut, i, strsOut.length)));
+                            } else {
+                                patentRight.setContentOut(strsOut[i]);
+                            }
                         }
                         patentRights.add(patentRight);
                     }
@@ -309,6 +315,7 @@ public class PatentRightUtils {
 
             return patentRights;
         } catch (Exception e) {
+            e.printStackTrace();
             return new ArrayList<>();
         }
     }

+ 3 - 2
RMS/src/main/java/cn/cslg/report/controller/FeatureController.java

@@ -80,6 +80,7 @@ public class FeatureController {
     public String addSingleFeature(@RequestBody FeaturesDTO featuresDTO) throws IOException {
         return featureService.addSingleFeature(featuresDTO);
     }
+
     @RequestMapping(value = "/deleteSingleFeature", method = RequestMethod.GET)
     @Operation(summary = "删除单个特征")
     public String deleteSingleFeature(Integer featureId) throws IOException {
@@ -89,9 +90,9 @@ public class FeatureController {
 
     @RequestMapping(value = "/getFeatureList", method = RequestMethod.GET)
     @Operation(summary = "查询特征列表")
-    public String getFeatureList(Integer reportId,Integer rightSort) throws IOException {
+    public String getFeatureList(Integer reportId, Integer rightSort) throws IOException {
 
-        return featureService.getFeatureList(reportId,rightSort);
+        return featureService.getFeatureList(reportId, rightSort);
     }
 
 }

+ 123 - 121
RMS/src/main/java/cn/cslg/report/service/business/CompareMessageService.java

@@ -47,72 +47,73 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
         // 获取登录人信息
         PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
         List<CompareMessage> compareMessages = new ArrayList<>();
-        Features feature=new Features();
+        Features feature = new Features();
         //根据登录人Id,报告Id,标的专利号查询特征
         LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
         if (vos.get(0).getTaskId() != null && vos.get(0).getSignPatentNo() != null) {
             wrapper.eq(Features::getTaskId, vos.get(0).getTaskId())
                     .eq(Features::getSignPatentNo, vos.get(0).getSignPatentNo());
             feature = featureService.list(wrapper).get(0);
-        }if(vos.get(0).getReportId()!=null &&  vos.get(0).getSignPatentNo() != null ){
+        }
+        if (vos.get(0).getReportId() != null && vos.get(0).getSignPatentNo() != null) {
             wrapper.eq(Features::getReportId, vos.get(0).getReportId())
                     .eq(Features::getSignPatentNo, vos.get(0).getSignPatentNo());
-             feature = featureService.list(wrapper).get(0);
+            feature = featureService.list(wrapper).get(0);
         }
-            //根据特征Id删除对比记录
-            List<Features> features = featureService.list(wrapper);
-            if (features != null && features.size() > 0) {
-                List<Integer> Ids = featureService.list(wrapper).stream().map(Features::getId).collect(Collectors.toList());
-                LambdaQueryWrapper<CompareMessage> queryWrapper = new LambdaQueryWrapper<CompareMessage>();
-                queryWrapper.in(CompareMessage::getFeatureId, Ids);
-                this.remove(queryWrapper);
+        //根据特征Id删除对比记录
+        List<Features> features = featureService.list(wrapper);
+        if (features != null && features.size() > 0) {
+            List<Integer> Ids = featureService.list(wrapper).stream().map(Features::getId).collect(Collectors.toList());
+            LambdaQueryWrapper<CompareMessage> queryWrapper = new LambdaQueryWrapper<CompareMessage>();
+            queryWrapper.in(CompareMessage::getFeatureId, Ids);
+            this.remove(queryWrapper);
+        }
+        //根据登录人Id,报告Id,标的专利号删除原有特征
+        featureService.remove(wrapper);
+        for (int i = 0; i < vos.size(); i++) {
+            int order = 1;
+            Features features1 = new Features();
+            features1.setContent(vos.get(i).getContent());
+            features1.setFeaturesOrder(order);
+            if (vos.get(i).getTaskId() != null) {
+                features1.setTaskId(vos.get(i).getTaskId());
             }
-            //根据登录人Id,报告Id,标的专利号删除原有特征
-            featureService.remove(wrapper);
-            for (int i = 0; i < vos.size(); i++) {
-                int order = 1;
-                Features features1 = new Features();
-                features1.setContent(vos.get(i).getContent());
-                features1.setFeaturesOrder(order);
-                if(vos.get(i).getTaskId()!=null) {
-                    features1.setTaskId(vos.get(i).getTaskId());
-                }
-                features1.setSplitType(feature.getSplitType());
-                features1.setSplitBy(feature.getSplitBy());
-                features1.setPartnerId(personnelVO.getId());
-                features1.setReportId(feature.getReportId());
-                features1.setRightName(vos.get(i).getRightName());
-                features1.setRightType(vos.get(i).getRightType());
-                features1.setRightId(vos.get(i).getRightId());
-                features1.setSignPatentNo(vos.get(i).getSignPatentNo());
-                features1.setContentOut(vos.get(i).getContentOut());
-                features1.setExplainText(vos.get(i).getExplainText());
-                features1.insert();
-                CompareMessage compareMessage = new CompareMessage();
-                compareMessage.setFeatureId(features1.getId());
-                compareMessage.setCompareResult(vos.get(i).getCompareResult());
-                compareMessage.setTargetDescription(vos.get(i).getTargetDescription());
-                compareMessage.setCompareDescription(vos.get(i).getCompareDescription());
-                compareMessage.setReportId(feature.getReportId());
-                if(feature.getTaskId()!=null) {
-                    compareMessage.setTaskId(feature.getTaskId());
-                }
-                compareMessages.add(compareMessage);
-                order += 1;
+            features1.setSplitType(feature.getSplitType());
+            features1.setSplitBy(feature.getSplitBy());
+            features1.setPartnerId(personnelVO.getId());
+            features1.setReportId(feature.getReportId());
+            features1.setRightName(vos.get(i).getRightName());
+            features1.setRightType(vos.get(i).getRightType());
+            features1.setRightId(vos.get(i).getRightId());
+            features1.setSignPatentNo(vos.get(i).getSignPatentNo());
+            features1.setContentOut(vos.get(i).getContentOut());
+            features1.setExplainText(vos.get(i).getExplainText());
+            features1.insert();
+            CompareMessage compareMessage = new CompareMessage();
+            compareMessage.setFeatureId(features1.getId());
+            compareMessage.setCompareResult(vos.get(i).getCompareResult());
+            compareMessage.setTargetDescription(vos.get(i).getTargetDescription());
+            compareMessage.setCompareDescription(vos.get(i).getCompareDescription());
+            compareMessage.setReportId(feature.getReportId());
+            if (feature.getTaskId() != null) {
+                compareMessage.setTaskId(feature.getTaskId());
             }
+            compareMessages.add(compareMessage);
+            order += 1;
+        }
 
         return this.saveBatch(compareMessages);
     }
 
     public Boolean updateCompareMessage(List<CompareMessage> compareMessageList) {
-        List<Integer> ids =compareMessageList.stream().map(CompareMessage::getFeatureId).collect(Collectors.toList());
-        if(ids.size()!=0){
-            LambdaQueryWrapper<CompareMessage> queryWrapper =new LambdaQueryWrapper<CompareMessage>();
-            queryWrapper.in(CompareMessage::getFeatureId,ids).isNull(CompareMessage::getTaskType);
+        List<Integer> ids = compareMessageList.stream().map(CompareMessage::getFeatureId).collect(Collectors.toList());
+        if (ids.size() != 0) {
+            LambdaQueryWrapper<CompareMessage> queryWrapper = new LambdaQueryWrapper<CompareMessage>();
+            queryWrapper.in(CompareMessage::getFeatureId, ids).isNull(CompareMessage::getTaskType);
             this.remove(queryWrapper);
 
 
-           return this.saveOrUpdateBatch(compareMessageList);
+            return this.saveOrUpdateBatch(compareMessageList);
         }
         return true;
     }
@@ -122,9 +123,9 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
     }
 
     public Map<String, Object> queryCompareMessage(Integer taskId, String patentNo, Integer reportId) throws IOException {
-        if(taskId!=null){
-            Task task =taskService.getById(taskId);
-            reportId =task.getReportId();
+        if (taskId != null) {
+            Task task = taskService.getById(taskId);
+            reportId = task.getReportId();
         }
         List<PatentRightVo> patentRightVos = new ArrayList<>();
         String resBody = outInterfaceService.getPatentRightFromPAS(patentNo);
@@ -132,7 +133,7 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
         //解析jason获得标的专利的权要
         List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
         //处理权要
-        List<PatentRight> patentRights = featureService.FormatPatentRights(patentRightsOrgin,patentNo);
+        List<PatentRight> patentRights = featureService.FormatPatentRights(patentRightsOrgin, patentNo);
         //查询特征
         LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
         if (reportId != null && reportId != 0) {
@@ -141,21 +142,20 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
         queryWrapper.eq(Features::getSignPatentNo, patentNo);
         List<Features> features = featureService.list(queryWrapper);
         List<Integer> featureIds = features.stream().map(Features::getId).collect(Collectors.toList());
-        List<CompareMessage> compareMessages=new ArrayList<>();
-        if(featureIds.size()>0){
-        LambdaQueryWrapper<CompareMessage> queryWrapper1 = new LambdaQueryWrapper<>();
-        queryWrapper1.in(CompareMessage::getFeatureId, featureIds);
-        if (taskId != null) {
-            queryWrapper1.eq(CompareMessage::getTaskId, taskId);
-        }
-        else {
-            queryWrapper1.isNull(CompareMessage::getTaskType);
-        }
+        List<CompareMessage> compareMessages = new ArrayList<>();
+        if (featureIds.size() > 0) {
+            LambdaQueryWrapper<CompareMessage> queryWrapper1 = new LambdaQueryWrapper<>();
+            queryWrapper1.in(CompareMessage::getFeatureId, featureIds);
+            if (taskId != null) {
+                queryWrapper1.eq(CompareMessage::getTaskId, taskId);
+            } else {
+                queryWrapper1.isNull(CompareMessage::getTaskType);
+            }
             compareMessages = this.list(queryWrapper1);
         }
 
         List<CompareMessageVO> compareMessageVOS = new ArrayList<>();
-        for (Features item: features){
+        for (Features item : features) {
             CompareMessageVO compareMessageVO = new CompareMessageVO();
             BeanUtil.copyProperties(item, compareMessageVO);
             CompareMessage compareMessage = new CompareMessage();
@@ -192,13 +192,14 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
             patentRightVo.setSignPatentNo(patentNo);
             patentRightVos.add(patentRightVo);
         }
-        Map<String, Object> map1 = assoTaskPatentSplitService.getSplitMessage(taskId, patentNo,reportId);
+        Map<String, Object> map1 = assoTaskPatentSplitService.getSplitMessage(taskId, patentNo, reportId);
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("patentRightVos", patentRightVos);
         map.put("splitBy", map1.get("splitBy"));
         map.put("splitType", map1.get("splitType"));
         return map;
     }
+
     public IPage<JSONObject> queryComparedMessage(QueryCMVO queryCMVO) throws IOException {
         List<String> patentNos = this.baseMapper.getComparedMessage(queryCMVO);
 
@@ -236,18 +237,18 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
      * @Deserption 查找协同任务对比记录
      */
     public Map<String, Object> querySynery(Integer taskId, String patentNo) throws IOException {
-        Task task =taskService.getById(taskId);
+        Task task = taskService.getById(taskId);
         //根据 reportId 和 专利号查询特征Id
-        LambdaQueryWrapper<Features>  wrapper =new LambdaQueryWrapper<>();
-        wrapper.eq(Features::getReportId,task.getReportId())
-                .eq(Features::getSignPatentNo,patentNo);
-        List<Features> features =featureService.list(wrapper);
-        List<Integer> featureIds =features.stream().map(Features::getId).collect(Collectors.toList());
-        LambdaQueryWrapper<CompareMessage> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(CompareMessage::getTaskId,taskId)
-        .in(CompareMessage::getFeatureId,featureIds);
-        List<CompareMessage> compareMessages =this.list(queryWrapper);
-        if(compareMessages.size()==0){
+        LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Features::getReportId, task.getReportId())
+                .eq(Features::getSignPatentNo, patentNo);
+        List<Features> features = featureService.list(wrapper);
+        List<Integer> featureIds = features.stream().map(Features::getId).collect(Collectors.toList());
+        LambdaQueryWrapper<CompareMessage> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CompareMessage::getTaskId, taskId)
+                .in(CompareMessage::getFeatureId, featureIds);
+        List<CompareMessage> compareMessages = this.list(queryWrapper);
+        if (compareMessages.size() == 0) {
             Map<String, Object> map = this.queryCompareMessage(null, patentNo, task.getReportId());
             return map;
         }
@@ -257,17 +258,17 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
 
     }
 
-    public Map<String, Object> queryAllCompareMessage( String patentNo, Integer reportId) throws IOException {
+    public Map<String, Object> queryAllCompareMessage(String patentNo, Integer reportId) throws IOException {
         List<PatentRightVo> patentRightVos = new ArrayList<>();
         String resBody = outInterfaceService.getPatentRightFromPAS(patentNo);
         JSONObject jsonObject = JSONObject.parseObject(resBody);
         //解析jason获得标的专利的权要
         List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
         //处理权要
-        List<PatentRight> patentRights = featureService.FormatPatentRights(patentRightsOrgin,patentNo);
+        List<PatentRight> patentRights = featureService.FormatPatentRights(patentRightsOrgin, patentNo);
         //查询特征
         LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(Features::getReportId, reportId);
+        queryWrapper.eq(Features::getReportId, reportId);
         queryWrapper.eq(Features::getSignPatentNo, patentNo);
         List<Features> features = featureService.list(queryWrapper);
         List<Integer> featureIds = features.stream().map(Features::getId).collect(Collectors.toList());
@@ -282,14 +283,13 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
             if (compareMessages.size() != 0) {
                 List<CompareMessage> compareMessageList = compareMessages.stream().filter(tem -> tem.getFeatureId().equals(item.getId())).collect(Collectors.toList());
                 compareMessageList.forEach(
-                        tem->{
-                            if(tem.getTaskType()==null){
+                        tem -> {
+                            if (tem.getTaskType() == null) {
                                 compareMessageVO.setCompareResult(tem.getCompareResult());
                                 compareMessageVO.setCompareDescription(tem.getCompareDescription());
                                 compareMessageVO.setTargetDescription(tem.getTargetDescription());
                                 compareMessageVO.setCMid(tem.getId());
-                            }
-                            else  if(tem.getTaskType().equals(1)){
+                            } else if (tem.getTaskType().equals(1)) {
                                 compareMessageVO.setCompareResult2(tem.getCompareResult());
                                 compareMessageVO.setCompareDescription2(tem.getCompareDescription());
                                 compareMessageVO.setTargetDescription2(tem.getTargetDescription());
@@ -322,7 +322,7 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
             patentRightVo.setSignPatentNo(patentNo);
             patentRightVos.add(patentRightVo);
         }
-        Map<String, Object> map1 = assoTaskPatentSplitService.getSplitMessage(null, patentNo,reportId);
+        Map<String, Object> map1 = assoTaskPatentSplitService.getSplitMessage(null, patentNo, reportId);
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("patentRightVos", patentRightVos);
         map.put("splitBy", map1.get("splitBy"));
@@ -331,38 +331,39 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
     }
 
     /**
-     * @autor lrj
      * @param addSyneryVo
      * @return
+     * @autor lrj
      * @Descprtion 添加协同记录
      */
 
-    public Boolean addSynery(AddSyneryVo addSyneryVo){
+    public Boolean addSynery(AddSyneryVo addSyneryVo) {
         // 根据任务Id获得任务信息
         Task task = taskService.getById(addSyneryVo.getTaskId());
         //根据专利号和报告ID获得特征Id
-        LambdaQueryWrapper<Features> wrapper =new LambdaQueryWrapper<Features>();
+        LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<Features>();
         wrapper.select(Features::getId);
-        wrapper.eq(Features::getReportId,task.getReportId());
-        wrapper.eq(Features::getSignPatentNo,addSyneryVo.getPatentNo());
-List<Features> features =featureService.list(wrapper);
-List<Integer> Ids =features.stream().map(Features::getId).collect(Collectors.toList());
+        wrapper.eq(Features::getReportId, task.getReportId());
+        wrapper.eq(Features::getSignPatentNo, addSyneryVo.getPatentNo());
+        List<Features> features = featureService.list(wrapper);
+        List<Integer> Ids = features.stream().map(Features::getId).collect(Collectors.toList());
         //装载对比结果信息
-        List<CompareMessage> compareMessages =addSyneryVo.getCompareMessageList();
+        List<CompareMessage> compareMessages = addSyneryVo.getCompareMessageList();
         compareMessages.forEach(
-                item->{
+                item -> {
                     item.setTaskId(task.getId());
                     item.setTaskType(1);
                     item.setId(null);
                 }
         );
         //删除对比记录
-        if(Ids.size()!=0){
-        LambdaQueryWrapper<CompareMessage> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(CompareMessage::getTaskId,task.getId())
-                    .in(CompareMessage::getFeatureId,Ids);
-        this.remove(queryWrapper);}
-   return     this.saveBatch(compareMessages);
+        if (Ids.size() != 0) {
+            LambdaQueryWrapper<CompareMessage> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(CompareMessage::getTaskId, task.getId())
+                    .in(CompareMessage::getFeatureId, Ids);
+            this.remove(queryWrapper);
+        }
+        return this.saveBatch(compareMessages);
 
     }
 
@@ -380,7 +381,7 @@ List<Integer> Ids =features.stream().map(Features::getId).collect(Collectors.toL
         //解析jason获得标的专利的权要
         List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
         //处理权要
-        List<PatentRight> patentRights = featureService.FormatPatentRights(patentRightsOrgin,patentNo);
+        List<PatentRight> patentRights = featureService.FormatPatentRights(patentRightsOrgin, patentNo);
         //查询特征
         LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
         if (reportId != null && reportId != 0) {
@@ -389,14 +390,15 @@ List<Integer> Ids =features.stream().map(Features::getId).collect(Collectors.toL
         queryWrapper.eq(Features::getSignPatentNo, patentNo);
         List<Features> features = featureService.list(queryWrapper);
         List<Integer> featureIds = features.stream().map(Features::getId).collect(Collectors.toList());
-        List<CompareMessage> compareMessages=new ArrayList<>();
-        if(featureIds.size()>0){
+        List<CompareMessage> compareMessages = new ArrayList<>();
+        if (featureIds.size() > 0) {
             LambdaQueryWrapper<CompareMessage> queryWrapper1 = new LambdaQueryWrapper<>();
             queryWrapper1.in(CompareMessage::getFeatureId, featureIds);
-                queryWrapper1.isNull(CompareMessage::getTaskType);
-            compareMessages = this.list(queryWrapper1);}
+            queryWrapper1.isNull(CompareMessage::getTaskType);
+            compareMessages = this.list(queryWrapper1);
+        }
         List<CompareMessageVO> compareMessageVOS = new ArrayList<>();
-        for (Features item: features){
+        for (Features item : features) {
             CompareMessageVO compareMessageVO = new CompareMessageVO();
             BeanUtil.copyProperties(item, compareMessageVO);
             CompareMessage compareMessage = new CompareMessage();
@@ -412,13 +414,14 @@ List<Integer> Ids =features.stream().map(Features::getId).collect(Collectors.toL
             compareMessageVO.setTargetDescription(compareMessage.getTargetDescription());
             compareMessageVOS.add(compareMessageVO);
         }
-        Integer mainRight =0;
-        Integer right=0;
+        Integer mainRight = 0;
+        Integer right = 0;
         //将拆解的权要和特征装载到对象PatentRightVo
         for (int i = 0; i < patentRights.size(); i++) {
-            if(patentRights.get(i).getType()==1)
-            {mainRight++;}
-          right++;
+            if (patentRights.get(i).getType() == 1) {
+                mainRight++;
+            }
+            right++;
             List<CompareMessageVO> featuresList = new ArrayList<>();
             //对需要拆解的权要进行拆解
             if (compareMessageVOS != null && compareMessageVOS.size() != 0) {
@@ -427,15 +430,13 @@ List<Integer> Ids =features.stream().map(Features::getId).collect(Collectors.toL
             }
             for (CompareMessageVO item : featuresList) {
                 item.setRightName("权要" + (patentRights.get(i).getSort() + 1));
-                if(item.getCompareResult()==null){
+                if (item.getCompareResult() == null) {
                     item.setResultStr("待定");
-                }
-               else if(item.getCompareResult()==0){
+                } else if (item.getCompareResult() == 0) {
                     item.setResultStr("不同");
-                }
-                else if(item.getCompareResult()==1)
-                {item.setResultStr("相同");}
-                else  {
+                } else if (item.getCompareResult() == 1) {
+                    item.setResultStr("相同");
+                } else {
                     item.setResultStr("待定");
                 }
             }
@@ -443,18 +444,19 @@ List<Integer> Ids =features.stream().map(Features::getId).collect(Collectors.toL
         }
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("compareMessageVOs", lists);
-        map.put("mainRight",mainRight);
-        map.put("right",right);
+        map.put("mainRight", mainRight);
+        map.put("right", right);
         return map;
     }
+
     /**
      * funtion:删除报告时删除
      */
-    public String deleteByreportID(Integer repotID){
-        LambdaQueryWrapper<CompareMessage> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(CompareMessage::getReportId,repotID);
+    public String deleteByreportID(Integer repotID) {
+        LambdaQueryWrapper<CompareMessage> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CompareMessage::getReportId, repotID);
         List<CompareMessage> list = this.list(queryWrapper);
-        if(list==null||list.size()==0){
+        if (list == null || list.size() == 0) {
             return Response.success();
         }
         remove(queryWrapper);

+ 47 - 35
RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java

@@ -76,11 +76,18 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         patentRights.forEach(item -> {
             stringBuilder.append(item.getContent());
         });
+
+        StringBuilder stringBuilder2 = new StringBuilder();
+        patentRights.forEach(item -> {
+            stringBuilder2.append(item.getContentOut());
+        });
+
         PatentRightParams params = new PatentRightParams();
         params.setPatentNo(patentNo);
         params.setPatentId(-1);
         params.setContent(stringBuilder.toString());
-        patentRightUtils.formatPatentRight(params);
+        params.setContentOut(stringBuilder2.toString());
+        patentRights = patentRightUtils.formatPatentRight(params);
         return patentRights;
     }
 
@@ -93,7 +100,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
      * @throws IOException
      * @function 从PAS系统上获得权要并拆分
      */
-    @Transactional(rollbackFor = Exception.class, timeout = 10)
+    @Transactional(rollbackFor = Exception.class)
     public String splitPatentRight(SplitVO splitVO) throws IOException {
         String patentNo = splitVO.getPatentNo();
         Integer reportId = splitVO.getReportId();
@@ -169,14 +176,17 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
         //给权要进行格式更改
         List<PatentRight> patentRights = FormatPatentRights(patentRightsOrgin, patentNo);
-        List<Integer> partRightIds = new ArrayList<>();
-        List<String> flags = new ArrayList<>();
+        //List<Integer> partRightIds = new ArrayList<>();  //权要ids
+        List<Integer> partRightSorts = new ArrayList<>();  //权要sorts
+        List<String> flags = new ArrayList<>();  //拆分方式字符
         // 当splitType=0仅拆解主权要
         if (splitType.equals(0)) {
-            partRightIds = patentRights.stream().filter(item -> item.getType().equals(1)).map(PatentRight::getId).collect(Collectors.toList());
+            //partRightIds = patentRights.stream().filter(item -> item.getType().equals(1)).map(PatentRight::getId).collect(Collectors.toList());
+            partRightSorts = patentRights.stream().filter(item -> item.getType().equals(1)).map(PatentRight::getSort).collect(Collectors.toList());
         }// 当splitType=1拆解全部权要
         else if (splitType.equals(1)) {
-            partRightIds = patentRights.stream().map(PatentRight::getId).collect(Collectors.toList());
+            //partRightIds = patentRights.stream().map(PatentRight::getId).collect(Collectors.toList());
+            partRightSorts = patentRights.stream().map(PatentRight::getSort).collect(Collectors.toList());
         }
         //当splitBy=0时仅仅根据“,”拆解
         if (splitBy == 0) {
@@ -237,7 +247,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
                 List<String> contentOuts = Arrays.asList(patentRights.get(i).getContentOut());
                 List<String> contents = Arrays.asList(patentRights.get(i).getContent());
                 //如果是需要拆解的权要
-                if (partRightIds.contains(patentRights.get(i).getId())) {
+                if (partRightSorts.contains(patentRights.get(i).getSort())) {
                     //获得权要的译文并且拆解
                     contentOuts = this.splitStringByFlags(patentRights.get(i).getContentOut(), flags);
                     //获得权要的原文并且拆解
@@ -572,6 +582,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
 
     /**
      * 添加单个特征
+     *
      * @param featuresDTO
      * @return
      * @throws IOException
@@ -610,7 +621,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         if (featuresList == null || featuresList.size() == 0) {
             biggestSort = 1;
         } else {
-            biggestSort = featuresList.get(0).getFeaturesOrder()+1;
+            biggestSort = featuresList.get(0).getFeaturesOrder() + 1;
         }
         Features features = new Features();
         features.setContent(featuresDTO.getContent());
@@ -646,15 +657,15 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         }
         //获得已经保存的特征
         List<QueryAllFeaturesVO> queryAllFeaturesVOS = featureMapper.queryAllFeatures(checkReFeaturesDTO.getReportId(), checkReFeaturesDTO.getRightSort());
-        if (indexs.size() == 0||(indexs.size()==1&&indexs.get(0).equals(-1))) {
+        if (indexs.size() == 0 || (indexs.size() == 1 && indexs.get(0).equals(-1))) {
             return null;
         }
         //遍历寻找未选择的特征
-        for (Integer item :indexs){
+        for (Integer item : indexs) {
             QueryAllFeaturesVO queryAllFeaturesVO = queryAllFeaturesVOS.stream().filter(tem -> tem.getFeatureStr().equals(featureStr) && tem.getPosition().equals(item)).findFirst().orElse(null);
-            if (queryAllFeaturesVO == null&&item!=-1) {
+            if (queryAllFeaturesVO == null && item != -1) {
                 checkReFeaturesDTO.getFeatures().get(0).setPosition(item);
-                break ;
+                break;
             }
         }
         return checkReFeaturesDTO;
@@ -674,47 +685,48 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
 
     /**
      * 添加单个特征
+     *
      * @param featuresDTO
      * @return
      * @throws IOException
      */
     @Transactional(rollbackFor = Exception.class)
     public String deleteSingleFeature(Integer featureId) throws IOException {
-        if(featureId==null){
-return Response.error("请选择特征");
+        if (featureId == null) {
+            return Response.error("请选择特征");
         }
         //检查陈述意见是否有关联的特征
-        LambdaQueryWrapper<Arguments> argumentsWrapper=new LambdaQueryWrapper<>();
-        argumentsWrapper.eq(Arguments::getFeatureId,featureId);
-        List<Arguments> arguments =argumentsService.list(argumentsWrapper);
-        if(arguments.size()>0){
+        LambdaQueryWrapper<Arguments> argumentsWrapper = new LambdaQueryWrapper<>();
+        argumentsWrapper.eq(Arguments::getFeatureId, featureId);
+        List<Arguments> arguments = argumentsService.list(argumentsWrapper);
+        if (arguments.size() > 0) {
             return Response.error("此特征和陈述意见有关联");
         }
         this.removeById(featureId);
-        LambdaQueryWrapper<AssoFeatureProof> wrapper =new LambdaQueryWrapper<>();
-        wrapper.eq(AssoFeatureProof::getFeatureId,featureId);
+        LambdaQueryWrapper<AssoFeatureProof> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AssoFeatureProof::getFeatureId, featureId);
         assoFeatureProofService.remove(wrapper);
         return Response.success();
     }
 
- //获得特征列表
-    public String getFeatureList(Integer reportId,Integer rightSort){
-        List<Map<String,Object>> mapList =new ArrayList<>();
-        if(reportId==null||rightSort==null){
+    //获得特征列表
+    public String getFeatureList(Integer reportId, Integer rightSort) {
+        List<Map<String, Object>> mapList = new ArrayList<>();
+        if (reportId == null || rightSort == null) {
             return Response.error("请输入报告id和权要序号");
         }
-        Report report =reportService.getById(reportId);
-        LambdaQueryWrapper<Features> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(Features::getRightId,rightSort)
-                .eq(Features::getReportId,reportId)
-                .eq(Features::getSignPatentNo,report.getSignPatentNo())
+        Report report = reportService.getById(reportId);
+        LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Features::getRightId, rightSort)
+                .eq(Features::getReportId, reportId)
+                .eq(Features::getSignPatentNo, report.getSignPatentNo())
                 .orderByAsc(Features::getFeaturesOrder);
-        List<Features> features =this.list(queryWrapper);
-        features.forEach(item->{
-            Map<String,Object> map =new HashMap<>();
-            map.put("featureId",item.getId());
-            map.put("content",item.getContent());
-            map.put("featureName","特征"+item.getFeaturesOrder());
+        List<Features> features = this.list(queryWrapper);
+        features.forEach(item -> {
+            Map<String, Object> map = new HashMap<>();
+            map.put("featureId", item.getId());
+            map.put("content", item.getContent());
+            map.put("featureName", "特征" + item.getFeaturesOrder());
             mapList.add(map);
         });
         return Response.success(mapList);