Browse Source

代码合并

lwhhszx 2 years ago
parent
commit
a4ae1fb2db
18 changed files with 611 additions and 288 deletions
  1. 0 1
      RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/InvalidReasonDTO.java
  2. 63 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/invalidReReport/InvalidProcessVO.java
  3. 4 0
      RMS/src/main/java/cn/cslg/report/common/model/vo/invalidReReport/ProofVO.java
  4. 255 211
      RMS/src/main/java/cn/cslg/report/common/utils/PatentRightUtils.java
  5. 2 2
      RMS/src/main/java/cn/cslg/report/controller/CompareController.java
  6. 17 1
      RMS/src/main/java/cn/cslg/report/controller/CompareFilesController.java
  7. 11 2
      RMS/src/main/java/cn/cslg/report/controller/FeatureController.java
  8. 6 0
      RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ArgumentsController.java
  9. 2 2
      RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/InvalidProcessController.java
  10. 1 18
      RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ProofController.java
  11. 39 0
      RMS/src/main/java/cn/cslg/report/entity/invalidReReport/AssoFeatureProof.java
  12. 19 0
      RMS/src/main/java/cn/cslg/report/mapper/InvalidReReport/AssoFeatureProofMapper.java
  13. 54 5
      RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java
  14. 20 1
      RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java
  15. 10 0
      RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ArgumentsService.java
  16. 39 0
      RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/AssoFeatureProofService.java
  17. 69 2
      RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidProcessService.java
  18. 0 43
      RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ProofService.java

+ 0 - 1
RMS/src/main/java/cn/cslg/report/common/model/dto/invalidReReport/InvalidReasonDTO.java

@@ -58,7 +58,6 @@ public class InvalidReasonDTO {
      */
      */
     private List<proofGroupIn> proofGroups;
     private List<proofGroupIn> proofGroups;
 
 
-
        @Data
        @Data
     public static class proofGroupIn{
     public static class proofGroupIn{
            private Integer id;
            private Integer id;

+ 63 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/invalidReReport/InvalidProcessVO.java

@@ -0,0 +1,63 @@
+package cn.cslg.report.common.model.vo.invalidReReport;
+
+import cn.cslg.report.common.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 无效事务表
+ *
+ * @Author xiexiang
+ * @Date 2023/6/28
+ */
+@Data
+public class InvalidProcessVO  {
+    private Integer id;
+    /**
+     * 发生时间
+     */
+
+    private Date occuredTime;
+
+    /**
+     * 流程类型
+     */
+
+    private Integer processType;
+
+    /**
+     * 口审记录id
+     */
+    private OralExamIn oralExam;
+    /**
+     * 文件
+     */
+    private reportFileIn reportFile;
+
+@Data
+public static class OralExamIn{
+
+        private String address;
+
+        private String participants;
+    }
+
+@Data
+    public static class reportFileIn{
+        @Schema(description = "附件名称")
+        private String name;
+
+        @Schema(description = "文件名称")
+        private String fileName;
+
+        @Schema(description = "附件上传地址")
+        private String url;
+
+       @Schema(description = "后缀")
+       private String suffix;
+    }
+}

+ 4 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/invalidReReport/ProofVO.java

@@ -20,6 +20,10 @@ public class ProofVO {
      * 文件类型
      * 文件类型
      */
      */
     private String proofType;
     private String proofType;
+    /**
+     * 备注
+     */
+    private String remark;
 
 
 
 
 }
 }

+ 255 - 211
RMS/src/main/java/cn/cslg/report/common/utils/PatentRightUtils.java

@@ -1,10 +1,12 @@
 package cn.cslg.report.common.utils;
 package cn.cslg.report.common.utils;
 
 
+
 import cn.cslg.report.common.model.PatentRightParams;
 import cn.cslg.report.common.model.PatentRightParams;
 import cn.cslg.report.entity.PatentRight;
 import cn.cslg.report.entity.PatentRight;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.Pattern;
@@ -19,254 +21,296 @@ import java.util.regex.Pattern;
 public class PatentRightUtils {
 public class PatentRightUtils {
 
 
     public static List<PatentRight> formatPatentRight(PatentRightParams params) {
     public static List<PatentRight> formatPatentRight(PatentRightParams params) {
-        //国家
-        String country = params.getPatentNo().substring(0, 2);
-        //原文
-        String content = params.getContent();
-        //译文
-        String contentOut = params.getContentOut();
+        try {
+            //国家
+            String country = params.getPatentNo().substring(0, 2);
+            //原文
+            String content = params.getContent();
+            //译文
+            String contentOut = params.getContentOut();
 
 
-        //创建一个权要集合
-        ArrayList<PatentRight> patentRights = new ArrayList<>();
+            //创建一个权要集合
+            ArrayList<PatentRight> patentRights = new ArrayList<>();
 
 
-        //若权要原文为空,则直接返回空集合
-        if (content == null || content.equals("")) {
-            return patentRights;
-        }
-
-        //先去掉所有换行符,使原文连成一个长字符串
-        if (content.contains("\r\n")) {
-            content = content.replaceAll("\r\n", "");
-        } else {
-            content = content.replaceAll("\n", "");
-        }
+            //若原文为null或空串,则直接结束并返回空集合;若译文为null,则置为空串
+            if (content == null || content.equals("")) {
+                return patentRights;
+            }
 
 
-        if (contentOut == null) {
-            contentOut = "";
-        }
-        if (contentOut.contains("\r\n")) {
-            contentOut = contentOut.replaceAll("\r\n", "");
-        } else {
-            contentOut = contentOut.replaceAll("\n", "");
-        }
-        //去掉译文的所有空格
-        contentOut = contentOut.replaceAll(" +", "");
+            if (contentOut == null) {
+                contentOut = "";
+            }
 
 
-        //中日韩专利↓
-        if (country.equals("CN") || country.equals("JP") || country.equals("KR")) {
-            String regex;
-            if (content.contains("。2.")) {
-                regex = "。[0-9]+\\.";
-            } else if (content.contains("。2、")) {
-                regex = "。[0-9]+、";
-            } else if (content.contains("[001]")) {
-                regex = "\\[[0-9]+]";
-            } else if (content.contains("請求項")) {
-                regex = "。【請求項[0-9]+】";
-            } else if (content.contains(".청구항 2")) {
-                regex = "\\.청구항 [0-9]+";
-            } else {
-                regex = "";
+            //将原文和译文的所有换行符 "\r\n"或是"\n" 替换成 "@",这样首先可以使得全文连在一起,其次再根据特殊符号@拆分权要
+            if (content.contains("\r\n")) {
+                content = content.replaceAll("\r\n", "@");
             }
             }
-            Matcher matcher = Pattern.compile(regex).matcher(content);
-            Matcher matcherOut = Pattern.compile(regex).matcher(contentOut);
-            while (matcher.find()) {
-                if (matcher.group().contains(".청구항")) {
-                    //".청구항 2" -> "\\.청구항 2"
-                    String matcherGroup = matcher.group().replace(".", "\\.");
-                    //".청구항 2" -> ".\n청구항 2"
-                    content = content.replaceFirst(matcherGroup, ".\n" + matcherGroup.substring(matcherGroup.indexOf(".") + 1));
-                } else if (matcher.group().contains(".")) {
-                    //"。2." -> "。2\\."
-                    String matcherGroup = matcher.group().replace(".", "\\.");
-                    //"。2." -> "。\n2."
-                    content = content.replaceFirst(matcherGroup, "。\n" + matcherGroup.substring(matcherGroup.indexOf("。") + 1, matcherGroup.indexOf("\\")) + ".");
-                } else if (matcher.group().contains("、") || matcher.group().contains("請求項")) {
-                    content = content.replaceFirst(matcher.group(), "。\n" + matcher.group().substring(matcher.group().indexOf("。") + 1));
-                }
+            if (content.contains("\n")) {
+                content = content.replaceAll("\n", "@");
             }
             }
-            String[] strs = content.split("\n");
-            while (matcherOut.find()) {
-                if (matcherOut.group().contains(".")) {
-                    String matcherOutGroup = matcherOut.group().replace(".", "\\.");
-                    contentOut = contentOut.replaceFirst(matcherOutGroup, "。\n" + matcherOutGroup.substring(matcherOutGroup.indexOf("。") + 1, matcherOutGroup.indexOf("\\")) + ".");
-                } else if (matcherOut.group().contains("、")) {
-                    contentOut = contentOut.replaceFirst(matcherOut.group(), "。\n" + matcherOut.group().substring(matcherOut.group().indexOf("。") + 1));
-                }
+
+            if (contentOut.contains("\r\n")) {
+                contentOut = contentOut.replaceAll("\r\n", "@");
+            }
+            if (contentOut.contains("\n")) {
+                contentOut = contentOut.replaceAll("\n", "@");
             }
             }
-            String[] strsOut = contentOut.split("\n");
 
 
-            //定义父权要排序号
-            String regex1 = "权利要求[0-9]+";
-            String regex2 = "权利要求[0-9]+[至或~-]+[0-9]+";
-            for (int i = 0; i < strs.length; i++) {
-                //之前:if (strs[i].contains("权利要求")) {
-                //现在:if(该权要有逗号,并且它第一句话中有"权利要求"4个字 || 该权要没有逗号,并且它有"权利要求"4个字) {
-                if ((strs[i].contains(",") && strs[i].substring(0, strs[i].indexOf(",")).contains("权利要求")) || (!strs[i].contains(",") && strs[i].contains("权利要求"))) {
-                    Matcher matcher1 = Pattern.compile(regex1).matcher(strs[i]);
-                    Matcher matcher2 = Pattern.compile(regex2).matcher(strs[i]);
-                    if (matcher2.find()) {
-                        String parentNum = matcher2.group().substring(matcher2.group().indexOf("求") + 1);
-                        String[] parentNums;
-                        if (parentNum.contains("~")) {
-                            parentNums = parentNum.split("~");
-                        } else if (parentNum.contains("-")) {
-                            parentNums = parentNum.split("-");
-                        } else if (parentNum.contains("至")) {
-                            parentNums = parentNum.split("至");
-                        } else if (parentNum.contains("或")) {
-                            parentNums = parentNum.split("或");
-                        } else {
-                            parentNums = new String[0];
-                        }
-                        StringBuilder builder = new StringBuilder();
-                        for (int j = Integer.parseInt(parentNums[0]) - 1; j < Integer.parseInt(parentNums[parentNums.length - 1]); j++) {
-                            if ((builder + "").equals("")) {
-                                builder.append(j);
+            //去掉译文的所有空格
+            contentOut = contentOut.replaceAll(" +", "");
+
+            //中日韩权要↓
+            if (country.equals("CN") || country.equals("JP") || country.equals("KR") || content.contains("权利要求")) {
+                String regex;
+                if (content.contains("@2")) {
+                    regex = "@[0-9]+";
+                } else if (content.contains("@[00")) {
+                    regex = "@\\[[0-9]+]";
+                } else if (content.contains("@請求項")) {
+                    regex = "@【請求項[0-9]+】";
+                } else if (content.contains("@청구항")) {
+                    regex = "@청구항 [0-9]+";
+                } else {
+                    regex = "";
+                }
+                String[] strs;  //原文数组
+                String[] strsOut;  //译文数组
+                //若以上没有匹配到,则权要直接以句号 "。" 拆分
+                if (regex.equals("")) {
+                    content = content.replaceAll("@", "");
+                    contentOut = contentOut.replaceAll("@", "");
+                    strs = content.split("。");
+                    strsOut = contentOut.split("。");
+                    //若匹配到,则根据不同情形拆分
+                } else {
+                    Matcher matcher = Pattern.compile(regex).matcher(content);
+                    Matcher matcherOut = Pattern.compile(regex).matcher(contentOut);
+                    while (matcher.find()) {
+                        content = content.replaceFirst(matcher.group(), "\n" + matcher.group().substring(matcher.group().indexOf("@") + 1));
+                    }
+                    while (matcherOut.find()) {
+                        contentOut = contentOut.replaceFirst(matcherOut.group(), "\n" + matcherOut.group().substring(matcherOut.group().indexOf("@") + 1));
+                    }
+                    content = content.replaceAll("@", "");
+                    contentOut = contentOut.replaceAll("@", "");
+                    strs = content.split("\n");
+                    strsOut = contentOut.split("\n");
+                }
+                //定义父权要排序号
+                String regex1 = "权利要求[0-9]+";
+                String regex2 = "权利要求[0-9]+[至或~-]+[0-9]+";
+                for (int i = 0; i < strs.length; i++) {
+                    //之前:if (strs[i].contains("权利要求")) {
+                    //现在:if(该权要有逗号,并且它第一句话中有"权利要求"4个字 || 该权要没有逗号,并且它有"权利要求"4个字) {
+                    if ((strs[i].contains(",") && strs[i].substring(0, strs[i].indexOf(",")).contains("权利要求")) || (!strs[i].contains(",") && strs[i].contains("权利要求"))) {
+                        Matcher matcher1 = Pattern.compile(regex1).matcher(strs[i]);
+                        Matcher matcher2 = Pattern.compile(regex2).matcher(strs[i]);
+                        if (matcher2.find()) {
+                            String parentNum = matcher2.group().substring(matcher2.group().indexOf("求") + 1);
+                            String[] parentNums;
+                            if (parentNum.contains("~")) {
+                                parentNums = parentNum.split("~");
+                            } else if (parentNum.contains("-")) {
+                                parentNums = parentNum.split("-");
+                            } else if (parentNum.contains("至")) {
+                                parentNums = parentNum.split("至");
+                            } else if (parentNum.contains("或")) {
+                                parentNums = parentNum.split("或");
                             } else {
                             } else {
-                                builder.append(",").append(j);
+                                parentNums = new String[0];
                             }
                             }
+                            StringBuilder builder = new StringBuilder();
+                            for (int j = Integer.parseInt(parentNums[0]) - 1; j < Integer.parseInt(parentNums[parentNums.length - 1]); j++) {
+                                if ((builder + "").equals("")) {
+                                    builder.append(j);
+                                } else {
+                                    builder.append(",").append(j);
+                                }
+                            }
+                            PatentRight patentRight = new PatentRight()
+                                    .setPatentId(params.getPatentId())
+                                    .setType(0)
+                                    .setContent(strs[i])
+                                    .setSort(i)
+                                    .setParentSort(builder + "");
+                            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 (matcher1.find()) {
+                            String parentNum = matcher1.group().substring(matcher1.group().indexOf("求") + 1);
+                            PatentRight patentRight = new PatentRight()
+                                    .setPatentId(params.getPatentId())
+                                    .setType(0)
+                                    .setContent(strs[i])
+                                    .setSort(i)
+                                    .setParentSort((Integer.parseInt(parentNum) - 1) + "");
+                            if (strsOut.length - 1 >= i) {
+                                patentRight.setContentOut(strsOut[i]);
+                            }
+                            patentRights.add(patentRight);
                         }
                         }
+
+                    } else {
                         PatentRight patentRight = new PatentRight()
                         PatentRight patentRight = new PatentRight()
                                 .setPatentId(params.getPatentId())
                                 .setPatentId(params.getPatentId())
-                                .setType(0)
-                                .setContent(strs[i])
-                                .setSort(i)
-                                .setParentSort(builder + "");
-                        if (strsOut.length - 1 >= i) {
-                            patentRight.setContentOut(strsOut[i]);
-                        }
-                        patentRights.add(patentRight);
-                    } else if (matcher1.find()) {
-                        String parentNum = matcher1.group().substring(matcher1.group().indexOf("求") + 1);
-                        PatentRight patentRight = new PatentRight()
-                                .setPatentId(params.getPatentId())
-                                .setType(0)
+                                .setType(1)
                                 .setContent(strs[i])
                                 .setContent(strs[i])
                                 .setSort(i)
                                 .setSort(i)
-                                .setParentSort((Integer.parseInt(parentNum) - 1) + "");
+                                .setParentSort("-1");
                         if (strsOut.length - 1 >= i) {
                         if (strsOut.length - 1 >= i) {
-                            patentRight.setContentOut(strsOut[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);
                         patentRights.add(patentRight);
                     }
                     }
+                }
+                //英文专利的权要拆分 ↓
+            } else {
+                if (!content.equals("") && content.contains("1")) {
+                    content = content.substring(content.indexOf("1"));
+                }
+                if (!contentOut.equals("") && contentOut.contains("1")) {
+                    contentOut = contentOut.substring(contentOut.indexOf("1"));
+                }
 
 
+                String regex;
+                if (content.contains("@")) {
+                    regex = "@[0-9]+";
+                } else if (content.contains("[001]")) {
+                    regex = "\\[[0-9]+]";
                 } else {
                 } else {
-                    PatentRight patentRight = new PatentRight()
-                            .setPatentId(params.getPatentId())
-                            .setType(1)
-                            .setContent(strs[i])
-                            .setSort(i)
-                            .setParentSort("-1");
-                    if (strsOut.length - 1 >= i) {
-                        patentRight.setContentOut(strsOut[i]);
-                    }
-                    patentRights.add(patentRight);
+                    regex = "";
                 }
                 }
-            }
 
 
-            //英文专利的权要拆分 ↓
-        } else {
-            content = content.substring(content.indexOf("1."));
-            if(contentOut.equals("")){
-                contentOut="";
-            }
-            else if (contentOut.contains("1.")) {
-                contentOut = contentOut.substring(contentOut.indexOf("1."));
-            } else {
-                contentOut = contentOut.substring(contentOut.indexOf("1、"));
-            }
-            String regex;
-            if (content.contains("1.")) {
-                regex = "\\.[0-9]+\\. ";
-            } else if (content.contains("1、")) {
-                regex = "\\.[0-9]+\\. ";
-            } else if (content.contains("[001]")) {
-                regex = "\\[[0-9]+]";
-            } else {
-                regex = "";
-            }
-            Matcher matcher = Pattern.compile(regex).matcher(content);
-            Matcher matcherOut = Pattern.compile("。[0-9]+\\.").matcher(contentOut);
-            while (matcher.find()) {
-                String matcherGroup = matcher.group().replace(".", "\\.");
-                content = content.replaceFirst(matcherGroup, ".\n" + matcherGroup.substring(matcherGroup.indexOf(".") + 1, matcherGroup.lastIndexOf("\\")) + ". ");
-            }
-            String[] strs = content.split("\n");
-            while (matcherOut.find()) {
-                String matcherOutGroup = matcherOut.group().replace(".", "\\.");
-                contentOut = contentOut.replaceFirst(matcherOutGroup, "。\n" + matcherOutGroup.substring(matcherOutGroup.indexOf("。") + 1, matcherOutGroup.indexOf("\\")) + ".");
-            }
-            String[] strsOut = contentOut.split("\n");
-            //定义父权要排序号
-            String regex1 = "claim [0-9]+";
-            String regex2 = "claims [0-9]+ or [0-9]+";
-            for (int i = 0; i < strs.length; i++) {
-                if (strs[i].contains("claim")) {
-                    Matcher matcher1 = Pattern.compile(regex1).matcher(strs[i]);
-                    Matcher matcher2 = Pattern.compile(regex2).matcher(strs[i]);
-                    if (matcher2.find()) {
-                        String parentNum = matcher2.group().substring(matcher2.group().indexOf("s") + 2);
-                        String[] parentNums;
-                        if (parentNum.contains(" or ")) {
-                            parentNums = parentNum.split(" or ");
-                        } else if (parentNum.contains(" - ")) {
-                            parentNums = parentNum.split(" - ");
-                        } else if (parentNum.contains(" to ")) {
-                            parentNums = parentNum.split(" to ");
-                        } else if (parentNum.contains("或")) {
-                            parentNums = parentNum.split("或");
-                        } else {
-                            parentNums = new String[0];
-                        }
-                        StringBuilder builder = new StringBuilder();
-                        for (int j = Integer.parseInt(parentNums[0]) - 1; j < Integer.parseInt(parentNums[parentNums.length - 1]); j++) {
-                            if ((builder + "").equals("")) {
-                                builder.append(j);
+                Matcher matcher = Pattern.compile(regex).matcher(content);
+                Matcher matcherOut = Pattern.compile("@[0-9]+").matcher(contentOut);
+                while (matcher.find()) {
+                    content = content.replaceFirst(matcher.group(), "\n" + matcher.group().substring(matcher.group().indexOf("@") + 1));
+                }
+                while (matcherOut.find()) {
+                    contentOut = contentOut.replaceFirst(matcherOut.group(), "\n" + matcherOut.group().substring(matcherOut.group().indexOf("@") + 1));
+                }
+                content = content.replaceAll("@", "");
+                contentOut = contentOut.replaceAll("@", "");
+                String[] strs = content.split("\n");
+                String[] strsOut = contentOut.split("\n");
+
+                //定义父权要排序号
+                String regex1 = "claim [0-9]+";
+                String regex2 = "claims [0-9]+ or [0-9]+";
+                String regex3 = "any preceding claim";
+                for (int i = 0; i < strs.length; i++) {
+                    if (strs[i].contains("claim")) {
+                        Matcher matcher1 = Pattern.compile(regex1).matcher(strs[i]);
+                        Matcher matcher2 = Pattern.compile(regex2).matcher(strs[i]);
+                        Matcher matcher3 = Pattern.compile(regex3).matcher(strs[i]);
+                        if (matcher2.find()) {
+                            String parentNum = matcher2.group().substring(matcher2.group().indexOf("s") + 2);
+                            String[] parentNums;
+                            if (parentNum.contains(" or ")) {
+                                parentNums = parentNum.split(" or ");
+                            } else if (parentNum.contains(" - ")) {
+                                parentNums = parentNum.split(" - ");
+                            } else if (parentNum.contains(" to ")) {
+                                parentNums = parentNum.split(" to ");
+                            } else if (parentNum.contains("或")) {
+                                parentNums = parentNum.split("或");
                             } else {
                             } else {
-                                builder.append(",").append(j);
+                                parentNums = new String[0];
                             }
                             }
+                            StringBuilder builder = new StringBuilder();
+                            for (int j = Integer.parseInt(parentNums[0]) - 1; j < Integer.parseInt(parentNums[parentNums.length - 1]); j++) {
+                                if ((builder + "").equals("")) {
+                                    builder.append(j);
+                                } else {
+                                    builder.append(",").append(j);
+                                }
+                            }
+                            PatentRight patentRight = new PatentRight()
+                                    .setPatentId(params.getPatentId())
+                                    .setType(0)
+                                    .setContent(strs[i])
+                                    .setSort(i)
+                                    .setParentSort(builder + "");
+                            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 (matcher1.find()) {
+                            String parentNum = matcher1.group().substring(matcher1.group().indexOf("m") + 2);
+                            PatentRight patentRight = new PatentRight()
+                                    .setPatentId(params.getPatentId())
+                                    .setType(0)
+                                    .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]);
+                            }
+                            patentRights.add(patentRight);
+                        } else if (matcher3.find()) {
+                            StringBuilder builder = new StringBuilder();
+                            for (int sort = 0; sort < strs.length; sort++) {
+                                if (sort == i) {
+                                    continue;
+                                }
+                                builder.append(i).append(",");
+                            }
+                            PatentRight patentRight = new PatentRight()
+                                    .setPatentId(params.getPatentId())
+                                    .setType(0)
+                                    .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]);
+                            }
+                            patentRights.add(patentRight);
                         }
                         }
+
+                    } else {
                         PatentRight patentRight = new PatentRight()
                         PatentRight patentRight = new PatentRight()
                                 .setPatentId(params.getPatentId())
                                 .setPatentId(params.getPatentId())
-                                .setType(0)
-                                .setContent(strs[i])
-                                .setSort(i)
-                                .setParentSort(builder + "");
-                        if (strsOut.length - 1 >= i) {
-                            patentRight.setContentOut(strsOut[i]);
-                        }
-                        patentRights.add(patentRight);
-                    } else if (matcher1.find()) {
-                        String parentNum = matcher1.group().substring(matcher1.group().indexOf("m") + 2);
-                        PatentRight patentRight = new PatentRight()
-                                .setPatentId(params.getPatentId())
-                                .setType(0)
+                                .setType(1)
                                 .setContent(strs[i])
                                 .setContent(strs[i])
                                 .setSort(i)
                                 .setSort(i)
-                                .setParentSort((Integer.parseInt(parentNum) - 1) + "");
-                        if (strsOut.length - 1 >= 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]);
                             patentRight.setContentOut(strsOut[i]);
                         }
                         }
                         patentRights.add(patentRight);
                         patentRights.add(patentRight);
                     }
                     }
-
-                } else {
-                    PatentRight patentRight = new PatentRight()
-                            .setPatentId(params.getPatentId())
-                            .setType(1)
-                            .setContent(strs[i])
-                            .setSort(i)
-                            .setParentSort("-1");
-                    if (strsOut.length - 1 >= i) {
-                        patentRight.setContentOut(strsOut[i]);
-                    }
-                    patentRights.add(patentRight);
                 }
                 }
             }
             }
-        }
 
 
-        return patentRights;
+            return patentRights;
+        } catch (Exception e) {
+            return new ArrayList<>();
+        }
     }
     }
 
 
 }
 }

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

@@ -44,8 +44,8 @@ public class CompareController {
 
 
     @RequestMapping(value = "/addSingle", method = RequestMethod.GET)
     @RequestMapping(value = "/addSingle", method = RequestMethod.GET)
     @Operation(summary = "添加单个对比文件")
     @Operation(summary = "添加单个对比文件")
-    public Integer addSingle(Integer reportId, String patentNo) throws IOException {
-        Integer res = compareFilesService.addSingle(reportId, patentNo);
+    public Integer addSingle(Integer reportId, String patentNo,String name) throws IOException {
+        Integer res = compareFilesService.addSingle(reportId, patentNo,name);
         return res;
         return res;
     }
     }
 
 

+ 17 - 1
RMS/src/main/java/cn/cslg/report/controller/CompareFilesController.java

@@ -3,6 +3,8 @@ package cn.cslg.report.controller;
 import cn.cslg.report.common.core.base.Constants;
 import cn.cslg.report.common.core.base.Constants;
 
 
 import cn.cslg.report.common.model.dto.CompareOrderDTO;
 import cn.cslg.report.common.model.dto.CompareOrderDTO;
+import cn.cslg.report.common.model.dto.ProofAddNewDTO;
+import cn.cslg.report.common.model.dto.invalidReReport.ProofQueryDTO;
 import cn.cslg.report.common.model.vo.PatentIndexSettingVO;
 import cn.cslg.report.common.model.vo.PatentIndexSettingVO;
 
 
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.Response;
@@ -11,14 +13,16 @@ import cn.cslg.report.service.business.CompareFilesService;
 
 
 
 
 import cn.cslg.report.service.business.ReportFieldPatentLinkService;
 import cn.cslg.report.service.business.ReportFieldPatentLinkService;
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import java.io.IOException;
 import java.io.IOException;
-
+import java.util.List;
 
 
 
 
 @Tag(name = "初选")
 @Tag(name = "初选")
@@ -59,5 +63,17 @@ public String addOrder(@RequestBody CompareOrderDTO compareOrderDTO) throws IOEx
         return Response.success(compareFilesService.getOrder(reportId));
         return Response.success(compareFilesService.getOrder(reportId));
     }
     }
 
 
+    @Operation(summary = "查询专利文献列表")
+    @PostMapping("/queryProof")
+    public String queryProof(@RequestBody ProofQueryDTO proofAddNewDTO) {
+        return compareFilesService.queryProof(proofAddNewDTO);
+    }
 
 
+    @Operation(summary = "上传非专利文献证据")
+    @PostMapping("/addProofByFile")
+    public String addProofByFile(String proofAddNewDTOStr, List<MultipartFile> files) {
+        ProofAddNewDTO proofAddNewDTO = JSONObject.parseObject(proofAddNewDTOStr, ProofAddNewDTO.class);
+        compareFilesService.addProofByFile(proofAddNewDTO, files);
+        return Response.success();
+    }
 }
 }

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

@@ -65,8 +65,17 @@ public class FeatureController {
         return Response.success(assoTaskPatentSplitService.getSplitMessage(taskId,patentNo,reportId));
         return Response.success(assoTaskPatentSplitService.getSplitMessage(taskId,patentNo,reportId));
     }
     }
 
 
-
-
+    @RequestMapping(value = "/getRights", method = RequestMethod.GET)
+    @Operation(summary = "获得权要")
+    public String getRights(String patentNO) throws IOException {
+        return Response.success(featureService.getRightNames(patentNO));
+    }
+    //TODO
+    @RequestMapping(value = "/addFeatures", method = RequestMethod.GET)
+    @Operation(summary = "添加特征")
+    public String addFeatures(String patentNO) throws IOException {
+        return Response.success(featureService.getRightNames(patentNO));
+    }
 
 
 
 
 }
 }

+ 6 - 0
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ArgumentsController.java

@@ -54,4 +54,10 @@ public class ArgumentsController {
     public String query(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
     public String query(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
         return Response.success(assoReportPersonService.showShare(shareReportDTO));
         return Response.success(assoReportPersonService.showShare(shareReportDTO));
     }
     }
+
+//    @Operation(summary = "根据文件id和权要查询陈述意见")
+//    @PostMapping("/query")
+//    public String query(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
+//        return Response.success(assoReportPersonService.showShare(shareReportDTO));
+//    }
 }
 }

+ 2 - 2
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/InvalidProcessController.java

@@ -31,7 +31,7 @@ public class InvalidProcessController {
 
 
     @Operation(summary = "添加无效事务")
     @Operation(summary = "添加无效事务")
     @PostMapping("/add")
     @PostMapping("/add")
-    public String add(@RequestBody String invalidProcessStr, MultipartFile file) {
+    public String add( String invalidProcessStr, MultipartFile file) {
         if (invalidProcessStr != null && invalidProcessStr != "") {
         if (invalidProcessStr != null && invalidProcessStr != "") {
             invalidProcessService.addInvalidProcess(invalidProcessStr, file);
             invalidProcessService.addInvalidProcess(invalidProcessStr, file);
             return Response.success("添加成功");
             return Response.success("添加成功");
@@ -41,7 +41,7 @@ public class InvalidProcessController {
     }
     }
 
 
     @Operation(summary = "删除无效事务")
     @Operation(summary = "删除无效事务")
-    @PostMapping("/delete")
+    @GetMapping("/delete")
     public String delete(Integer id) {
     public String delete(Integer id) {
         if(id != null && id > 0) {
         if(id != null && id > 0) {
             invalidProcessService.removeInvalidProcess(id);
             invalidProcessService.removeInvalidProcess(id);

+ 1 - 18
RMS/src/main/java/cn/cslg/report/controller/InvalidReReport/ProofController.java

@@ -45,25 +45,8 @@ public class ProofController {
 //    }
 //    }
 
 
 
 
-    @Operation(summary = "上传非专利文献证据")
-    @PostMapping("/addProofByFile")
-    public String addProofByFile(String proofAddNewDTOStr, List<MultipartFile> files) {
-        ProofAddNewDTO proofAddNewDTO = JSONObject.parseObject(proofAddNewDTOStr, ProofAddNewDTO.class);
-        log.info("开始处理【上传非专利文献证据】的请求,请求参数为:{}, {}", proofAddNewDTO, files);
-        proofService.addProofByFile(proofAddNewDTO, files);
-        return Response.success();
-    }
 
 
 
 
-    //    @Operation(summary = "上传专利文献证据(专利号)")
-//    @PostMapping("/addPatentFile")
-//    public String addPatentFile(@RequestBody ShareReportDTO shareReportDTO) throws IOException {
-//        return Response.success(assoReportPersonService.showShare(shareReportDTO));
-//    }
-    @Operation(summary = "查询专利文献列表")
-    @PostMapping("/queryProof")
-    public String queryProof(@RequestBody ProofQueryDTO proofAddNewDTO) {
-        return proofService.queryProof(proofAddNewDTO);
-    }
+
 
 
 }
 }

+ 39 - 0
RMS/src/main/java/cn/cslg/report/entity/invalidReReport/AssoFeatureProof.java

@@ -0,0 +1,39 @@
+package cn.cslg.report.entity.invalidReReport;
+
+import cn.cslg.report.common.model.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 划词表
+ *
+ * @Author xiexiang
+ * @Date 2023/6/28
+ */
+@Data
+@TableName(value = "ASSO_FEATURE_PROOF")
+public class AssoFeatureProof extends BaseEntity<AssoFeatureProof> {
+
+    @TableField("ID")
+    private String ID ;
+
+    @TableField("FEATURE_ID")
+    private String feature_ID ;
+
+    /**
+     * 划词内容
+     */
+    @TableField("PROOF_STR")
+    private String proofStr ;
+
+    /**
+     * 文件id
+     */
+    @TableField("COMPARE_FILE_ID")
+    private String compareFileId ;
+
+
+}

+ 19 - 0
RMS/src/main/java/cn/cslg/report/mapper/InvalidReReport/AssoFeatureProofMapper.java

@@ -0,0 +1,19 @@
+package cn.cslg.report.mapper.InvalidReReport;
+
+import cn.cslg.report.entity.invalidReReport.Arguments;
+import cn.cslg.report.entity.invalidReReport.AssoFeatureProof;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ *陈述意见Mapper层
+ * @Author 李仁杰
+ * @Date 2023/6/30
+ */
+@Repository
+public interface AssoFeatureProofMapper extends BaseMapper<AssoFeatureProof> {
+
+
+}
+

+ 54 - 5
RMS/src/main/java/cn/cslg/report/service/business/CompareFilesService.java

@@ -5,11 +5,14 @@ import cn.cslg.report.common.model.dto.CompareOrderDTO;
 import cn.cslg.report.common.model.dto.CustomFieldLabelDTO;
 import cn.cslg.report.common.model.dto.CustomFieldLabelDTO;
 
 
 import cn.cslg.report.common.model.dto.ProofAddNewDTO;
 import cn.cslg.report.common.model.dto.ProofAddNewDTO;
+import cn.cslg.report.common.model.dto.invalidReReport.ProofQueryDTO;
 import cn.cslg.report.common.model.vo.CompareFilesVO;
 import cn.cslg.report.common.model.vo.CompareFilesVO;
 import cn.cslg.report.common.model.vo.PatentIndexSettingVO;
 import cn.cslg.report.common.model.vo.PatentIndexSettingVO;
 
 
 import cn.cslg.report.common.model.vo.PatentVO;
 import cn.cslg.report.common.model.vo.PatentVO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
+import cn.cslg.report.common.model.vo.invalidReReport.ProofVO;
+import cn.cslg.report.common.utils.DataUtils;
 import cn.cslg.report.common.utils.JsonUtils;
 import cn.cslg.report.common.utils.JsonUtils;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.ThrowException;
 import cn.cslg.report.common.utils.ThrowException;
@@ -24,6 +27,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.swagger.v3.oas.models.security.SecurityScheme;
 import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
@@ -606,7 +610,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
      * @throws IOException
      * @throws IOException
      * @function 根据PatentVO里的条件(分页)模糊查询标的专利号和数量
      * @function 根据PatentVO里的条件(分页)模糊查询标的专利号和数量
      */
      */
-    public Integer addSingle(Integer reportId, String patentNo) throws IOException {
+    public Integer addSingle(Integer reportId, String patentNo,String name) throws IOException {
         CompareFiles compareFiles = new CompareFiles();
         CompareFiles compareFiles = new CompareFiles();
         try {
         try {
             compareFiles.setPatentNo(patentNo);
             compareFiles.setPatentNo(patentNo);
@@ -626,6 +630,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
             compareFiles.setSysOrder(++biggestSort);
             compareFiles.setSysOrder(++biggestSort);
             compareFiles.setFileType(1);
             compareFiles.setFileType(1);
             compareFiles.setReportId(reportId);
             compareFiles.setReportId(reportId);
+            compareFiles.setFileName(patentNo+"("+name+")");
             compareFiles.insert();
             compareFiles.insert();
         } catch (Exception e) {
         } catch (Exception e) {
             return -1;
             return -1;
@@ -633,16 +638,60 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         return compareFiles.getId();
         return compareFiles.getId();
     }
     }
 
 
+
+    /**
+     * 分页查询证据
+     *
+     * @param proofAddNewDTO
+     * @return
+     */
+    public String queryProof(ProofQueryDTO proofAddNewDTO) {
+        Integer reportId = proofAddNewDTO.getReportId();
+        Integer current = proofAddNewDTO.getCurrent();
+        Integer size = proofAddNewDTO.getSize();
+        String orderType = proofAddNewDTO.getOrderType();
+        if (reportId == null || current == null || size == null) {
+            return "";
+        }
+        LambdaQueryWrapper<CompareFiles> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CompareFiles::getReportId, reportId);
+        if ("desc".equals(orderType)) {
+            wrapper.orderByDesc(CompareFiles::getSysOrder);
+        } else {
+            wrapper.orderByAsc(CompareFiles::getSysOrder);
+        }
+        List<CompareFiles> proofs = this.page(new Page<>(current, size), wrapper).getRecords();
+        List<ProofVO> proofVOS = this.loadProof(proofs);
+        long count = this.count(wrapper);
+        return Response.success(proofVOS, DataUtils.setPageColumn(size, current, Math.toIntExact(count)));
+    }
+
+    private List<ProofVO> loadProof(List<CompareFiles> proofs) {
+        List<ProofVO> proofVOS = new ArrayList<>();
+        proofs.forEach(item -> {
+            ProofVO proofVO = new ProofVO();
+            if (item.getFileType().equals(1)) {
+                proofVO.setProofType("专利文献");
+                proofVO.setProofName(item.getPatentNo());
+            } else if (item.getFileType().equals(2)) {
+                proofVO.setProofType("非专利文献");
+                proofVO.setProofName(item.getFileName());
+            }
+            proofVO.setSortStr("D" + item.getSysOrder());
+
+            proofVO.setProofName(item.getFileName());
+            proofVO.setRemark(item.getRemark());
+            proofVOS.add(proofVO);
+        });
+        return proofVOS;
+    }
     //上传非专利文献证据
     //上传非专利文献证据
     public void addProofByFile(ProofAddNewDTO proofAddNewDTO, List<MultipartFile> files) {
     public void addProofByFile(ProofAddNewDTO proofAddNewDTO, List<MultipartFile> files) {
         log.info("开始处理【上传非专利文献证据】的业务,参数为:{}, {}", proofAddNewDTO, files);
         log.info("开始处理【上传非专利文献证据】的业务,参数为:{}, {}", proofAddNewDTO, files);
-
         //检查本次请求合法性(是否有上传非专利文献证据)
         //检查本次请求合法性(是否有上传非专利文献证据)
         if (files == null || files.size() == 0) {
         if (files == null || files.size() == 0) {
             ThrowException.throwXiaoShiException("未上传文件");
             ThrowException.throwXiaoShiException("未上传文件");
         }
         }
-
-
         ArrayList<Proof> proofs = new ArrayList<>();
         ArrayList<Proof> proofs = new ArrayList<>();
         //上传非专利文献证据文件附件,附件信息入报告系统文件表后,返回附件ids
         //上传非专利文献证据文件附件,附件信息入报告系统文件表后,返回附件ids
         List<Integer> fileIds = reportFileService.uploadFiles(files);
         List<Integer> fileIds = reportFileService.uploadFiles(files);
@@ -665,7 +714,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
         BeanUtils.copyProperties(proofAddNewDTO, proof);  //DTO赋值给实体类(装载报告id、证据名称、备注)
         BeanUtils.copyProperties(proofAddNewDTO, proof);  //DTO赋值给实体类(装载报告id、证据名称、备注)
         proof.setFileType(2);  //装载证据类型
         proof.setFileType(2);  //装载证据类型
         proof.setFileId(fileIds.get(0));  //装载文件id
         proof.setFileId(fileIds.get(0));  //装载文件id
-        proof.setFileType(++biggestSort);
+        proof.setSysOrder(++biggestSort);
         proof.insert();
         proof.insert();
 
 
         log.info("上传非专利文献证据完成");
         log.info("上传非专利文献证据完成");

+ 20 - 1
RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java

@@ -533,7 +533,26 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         this.remove(queryWrapper);
         this.remove(queryWrapper);
         return 1;
         return 1;
     }
     }
-
+    @Transactional(rollbackFor = Exception.class)
+    public Map<Integer,Object> getRightNames(String patentNo) throws IOException {
+        Map<Integer,Object> map =new HashMap<>();
+        String resBody = outInterfaceService.getPatentRightFromPAS(patentNo);
+        JSONObject jsonObject = JSONObject.parseObject(resBody);
+        //解析jason获得标的专利的权要
+        List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
+        StringBuilder stringBuilder =new StringBuilder();
+        patentRightsOrgin.forEach(
+                item->{stringBuilder.append(item.getContent());}
+        );
+PatentRightParams params =new PatentRightParams();
+params.setContent(stringBuilder.toString());
+params.setPatentNo(patentNo);
+List<PatentRight> patentRights = PatentRightUtils.formatPatentRight(params);
+    patentRights.forEach(item->{
+        map.put(item.getSort(),"权要"+(item.getSort()+1));
+    });
+    return map;
+    }
 
 
 
 
 
 

+ 10 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ArgumentsService.java

@@ -178,4 +178,14 @@ public class ArgumentsService extends ServiceImpl<ArgumentsMapper, Arguments> {
         }
         }
 
 
     }
     }
+
+    /**
+     * 根据文件id和权要id查询列表
+     *
+     * @param
+     */
+    public void queryPoofArguments(Integer fileId) {
+
+    }
+
 }
 }

+ 39 - 0
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/AssoFeatureProofService.java

@@ -0,0 +1,39 @@
+package cn.cslg.report.service.business.InvalidReReport;
+
+import cn.cslg.report.common.model.dto.invalidReReport.InvalidProcessDTO;
+import cn.cslg.report.common.model.vo.PersonnelVO;
+import cn.cslg.report.common.model.vo.invalidReReport.InvalidProcessVO;
+import cn.cslg.report.common.utils.CacheUtils;
+import cn.cslg.report.common.utils.FileUtils;
+import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
+import cn.cslg.report.entity.ReportFiles;
+import cn.cslg.report.entity.invalidReReport.AssoFeatureProof;
+import cn.cslg.report.entity.invalidReReport.InvalidProcess;
+import cn.cslg.report.entity.invalidReReport.OralExam;
+import cn.cslg.report.exception.XiaoShiException;
+import cn.cslg.report.mapper.InvalidReReport.AssoFeatureProofMapper;
+import cn.cslg.report.mapper.InvalidReReport.InvalidProcessMapper;
+import cn.cslg.report.service.business.OralExamService;
+import cn.cslg.report.service.business.ReportFileService;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class AssoFeatureProofService extends ServiceImpl<AssoFeatureProofMapper, AssoFeatureProof> {
+
+
+}

+ 69 - 2
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidProcessService.java

@@ -3,10 +3,12 @@ package cn.cslg.report.service.business.InvalidReReport;
 import cn.cslg.report.common.model.dto.UploadFileDTO;
 import cn.cslg.report.common.model.dto.UploadFileDTO;
 import cn.cslg.report.common.model.dto.invalidReReport.InvalidProcessDTO;
 import cn.cslg.report.common.model.dto.invalidReReport.InvalidProcessDTO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
 import cn.cslg.report.common.model.vo.PersonnelVO;
+import cn.cslg.report.common.model.vo.invalidReReport.InvalidProcessVO;
 import cn.cslg.report.common.utils.CacheUtils;
 import cn.cslg.report.common.utils.CacheUtils;
 import cn.cslg.report.common.utils.FileUtils;
 import cn.cslg.report.common.utils.FileUtils;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.Response;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.report.common.utils.SecurityUtils.LoginUtils;
+import cn.cslg.report.entity.ReportFiles;
 import cn.cslg.report.entity.Template;
 import cn.cslg.report.entity.Template;
 import cn.cslg.report.entity.invalidReReport.InvalidProcess;
 import cn.cslg.report.entity.invalidReReport.InvalidProcess;
 import cn.cslg.report.entity.invalidReReport.OralExam;
 import cn.cslg.report.entity.invalidReReport.OralExam;
@@ -20,12 +22,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 
 
 @Service
 @Service
@@ -200,7 +204,7 @@ public class InvalidProcessService extends ServiceImpl<InvalidProcessMapper, Inv
      * @param orderBy
      * @param orderBy
      * @return
      * @return
      */
      */
-    public List<InvalidProcess> queryInvalidProcess(Integer reportId, Integer orderBy) {
+    public List<InvalidProcessVO> queryInvalidProcess(Integer reportId, Integer orderBy) {
         //根据报告id,根据时间排序返回所有的无效事务。
         //根据报告id,根据时间排序返回所有的无效事务。
         LambdaQueryWrapper<InvalidProcess> LW = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<InvalidProcess> LW = new LambdaQueryWrapper<>();
         LW.eq(InvalidProcess::getReportId, reportId);
         LW.eq(InvalidProcess::getReportId, reportId);
@@ -211,6 +215,69 @@ public class InvalidProcessService extends ServiceImpl<InvalidProcessMapper, Inv
             LW.orderByDesc(InvalidProcess::getOccuredTime);
             LW.orderByDesc(InvalidProcess::getOccuredTime);
         }
         }
         List<InvalidProcess> invalidProcessList = this.list(LW);
         List<InvalidProcess> invalidProcessList = this.list(LW);
-        return invalidProcessList;
+        List<InvalidProcessVO> invalidProcessVOS =this.loadInvalidProcess(invalidProcessList);
+        return invalidProcessVOS;
     }
     }
+
+
+    public List<InvalidProcessVO> loadInvalidProcess(List<InvalidProcess> invalidProcessList){
+        List<InvalidProcessVO> invalidProcessVOS =new ArrayList<>();
+        if(invalidProcessList.size()==0)
+        {
+            return invalidProcessVOS;
+        }
+        List<Integer> oralIds =invalidProcessList.stream().filter(item->item.getProcessType().equals(0)).map(InvalidProcess::getOralExamId).collect(Collectors.toList());
+        List<Integer> fileIds =invalidProcessList.stream().filter(item->!item.getProcessType().equals(0)).map(InvalidProcess::getFileId).collect(Collectors.toList());
+         //查询口审记录集合
+        List<OralExam> oralExams =new ArrayList<>();
+        //查询文件集合
+         List<ReportFiles> reportFiles =new ArrayList<>();
+         if(oralIds.size()>0){
+             LambdaQueryWrapper<OralExam> examWrapper =new LambdaQueryWrapper<>();
+             examWrapper.in(OralExam::getId,oralIds);
+             oralExams= oralExamService.list(examWrapper);
+         }
+         if(fileIds.size()>0){
+             LambdaQueryWrapper<ReportFiles> examWrapper =new LambdaQueryWrapper<>();
+             examWrapper.in(ReportFiles::getId,fileIds);
+             reportFiles= reportFileService.list(examWrapper);
+         }
+        //口审记录集合
+        List<OralExam> oralExamTrue =oralExams;
+        //文件集合
+        List<ReportFiles> reportFileTrue =reportFiles;
+         //遍历装载
+        invalidProcessList.forEach(item->{
+            InvalidProcessVO invalidProcessVO =new InvalidProcessVO();
+            BeanUtils.copyProperties(item,invalidProcessVO);
+            //装载文件信息
+            if(!item.getProcessType().equals(0)){
+                ReportFiles reportFile =reportFileTrue.stream().filter(tem->tem.getId().equals(item.getFileId())).findFirst().orElse(null);
+                if(reportFile!=null){
+                    InvalidProcessVO.reportFileIn reportFileIn=new InvalidProcessVO.reportFileIn();
+                    reportFileIn.setName(reportFile.getName());
+                    reportFileIn.setUrl(reportFile.getUrl());
+                    reportFileIn.setSuffix(reportFile.getSuffix());
+                    invalidProcessVO.setReportFile(reportFileIn);
+                }
+            }
+           //装载口审记录
+            if(item.getProcessType().equals(0)){
+                OralExam oralExam =oralExamTrue.stream().filter(tem->tem.getId().equals(item.getOralExamId())).findFirst().orElse(null);
+                if(oralExam!=null){
+                  InvalidProcessVO.OralExamIn oralExamIn =new InvalidProcessVO.OralExamIn();
+                  oralExamIn.setAddress(oralExam.getAddress());
+                  oralExamIn.setParticipants(oralExam.getParticipants());
+                  invalidProcessVO.setOralExam(oralExamIn);
+                }
+            }
+            invalidProcessVOS.add(invalidProcessVO);
+        });
+
+
+return invalidProcessVOS;
+    }
+
+
+
 }
 }

+ 0 - 43
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/ProofService.java

@@ -80,47 +80,4 @@ public class ProofService extends ServiceImpl<ProofMapper, Proof> {
 
 
     }
     }
 
 
-    /**
-     * 分页查询证据
-     *
-     * @param proofAddNewDTO
-     * @return
-     */
-    public String queryProof(ProofQueryDTO proofAddNewDTO) {
-        Integer reportId = proofAddNewDTO.getReportId();
-        Integer current = proofAddNewDTO.getCurrent();
-        Integer size = proofAddNewDTO.getSize();
-        String orderType = proofAddNewDTO.getOrderType();
-        if (reportId == null || current == null || size == null) {
-            return "";
-        }
-        LambdaQueryWrapper<Proof> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Proof::getReportId, reportId);
-        if ("desc".equals(orderType)) {
-            wrapper.orderByDesc(Proof::getSort);
-        } else {
-            wrapper.orderByAsc(Proof::getSort);
-        }
-        List<Proof> proofs = this.page(new Page<>(current, size), wrapper).getRecords();
-        List<ProofVO> proofVOS = this.loadProof(proofs);
-        long count = this.count(wrapper);
-        return Response.success(proofVOS, DataUtils.setPageColumn(size, current, Math.toIntExact(count)));
-    }
-
-    private List<ProofVO> loadProof(List<Proof> proofs) {
-        List<ProofVO> proofVOS = new ArrayList<>();
-        proofs.forEach(item -> {
-            ProofVO proofVO = new ProofVO();
-            if (item.getProofType().equals(1)) {
-                proofVO.setProofType("专利文献");
-                proofVO.setProofName(item.getPatentNo());
-            } else if (item.getProofType().equals(2)) {
-                proofVO.setProofType("非专利文献");
-                proofVO.setProofName(item.getProofName());
-            }
-            proofVO.setSortStr("D" + item.getSort());
-            proofVOS.add(proofVO);
-        });
-        return proofVOS;
-    }
 }
 }