Prechádzať zdrojové kódy

5/30 excel导入栏位修改

lwhhszx 1 rok pred
rodič
commit
12ed4587a8

+ 19 - 0
src/main/java/cn/cslg/pas/common/model/addPatentToReport/AddProjectPatentToReportDTO.java

@@ -0,0 +1,19 @@
+package cn.cslg.pas.common.model.addPatentToReport;
+
+import cn.cslg.pas.common.dto.business.MarkTaskDTO;
+import cn.cslg.pas.common.model.request.StringRequest;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AddProjectPatentToReportDTO {
+    private StringRequest stringRequest;
+    private Integer taskType;
+    private Integer fromProjectId;
+    private Long start;
+    private Long end;
+    private Integer toProjectId;
+    private List<String> notInPatentNos;
+    private List<String> InPatentNos;
+}

+ 9 - 0
src/main/java/cn/cslg/pas/common/model/addPatentToReport/PatentWithIdVO.java

@@ -0,0 +1,9 @@
+package cn.cslg.pas.common.model.addPatentToReport;
+
+import lombok.Data;
+
+@Data
+public class PatentWithIdVO {
+    private String id;
+    private String patentNo;
+}

+ 18 - 20
src/main/java/cn/cslg/pas/common/utils/PatentRightUtils.java

@@ -54,12 +54,9 @@ public class PatentRightUtils {
             if (country.equals("CN") || country.equals("JP") || country.equals("KR") || content.contains("权利要求")) {
                 getChinaRights(content, params.getPatentNo(), patentRights);
                 //英文专利的权要拆分 ↓
-            }
-            else if(country.equals("FR")){
+            } else if (country.equals("FR")) {
                 getFRRight(content, params.getPatentNo(), patentRights);
-            }
-
-            else {
+            } else {
                 getForeignRights(content, params.getPatentNo(), patentRights);
             }
 
@@ -107,8 +104,11 @@ public class PatentRightUtils {
 //            content = content.substring(content.indexOf("1"));
 //        }
         if (!content.equals("") && content.contains("1.") && !content.contains("[权利要求1]")) {
-            content = content.substring(content.indexOf("1."));
+            if (content.indexOf("1.") < 10) {
+                content = content.substring(content.indexOf("1."));
+            }
         }
+
         String regex;
         if (content.contains("@2")) {
             regex = "@[0-9]+";
@@ -119,11 +119,11 @@ public class PatentRightUtils {
         } else if (content.contains("@청구항")) {
             regex = "@청구항 [0-9]+";
         } else {
-            regex = "";
+            regex = ";";
         }
         String[] strs;  //原文数组
         //若以上没有匹配到,则权要直接以句号 "。" 拆分
-        if (regex.equals("")) {
+        if (regex.equals(";")) {
             content = content.replaceAll("@", "");
             strs = content.split("(?<=。)");
             //若匹配到,则根据不同情形拆分
@@ -213,9 +213,9 @@ public class PatentRightUtils {
 
     private static void getForeignRights(String content, String patentNo, ArrayList<RePatentClaim> patentRights) {
 
-        if (!content.equals("") && content.contains("[1]")) {
+        if (!content.equals("") && content.contains("[1]")&&content.indexOf("[")<10) {
             content = content.substring(content.indexOf("["));
-        } else if (!content.equals("") && content.contains("1")) {
+        } else if (!content.equals("") && content.contains("1")&&content.indexOf("1")<10) {
             content = content.substring(content.indexOf("1"));
         }
 
@@ -225,7 +225,7 @@ public class PatentRightUtils {
         } else if (content.contains("[001]") || content.contains("[1]")) {
             regex = "\\[[0-9]+]";
         } else {
-            regex = "";
+            regex = ";";
         }
 
         Matcher matcher = Pattern.compile(regex).matcher(content);
@@ -335,13 +335,12 @@ public class PatentRightUtils {
 
     private static void getFRRight(String content, String patentNo, ArrayList<RePatentClaim> patentRights) {
 
-        if (!content.equals("") && content.contains("[1]")) {
+        if (!content.equals("") && content.contains("[1]")&&content.indexOf("[")<10) {
             content = content.substring(content.indexOf("["));
-        } else if (!content.equals("") && content.contains("1.")) {
+        } else if (!content.equals("") && content.contains("1.")&&content.indexOf("1.")<10) {
             content = content.substring(content.indexOf("1."));
-        }
-        else if(!content.equals("") && content.contains("[Revendication 1]"))
-        {  content = content.substring(content.indexOf("[Revendication 1]"));
+        } else if (!content.equals("") && content.contains("[Revendication 1]")&&content.indexOf("[Revendication 1]")<10) {
+            content = content.substring(content.indexOf("[Revendication 1]"));
 
         }
 
@@ -363,9 +362,8 @@ public class PatentRightUtils {
             if (splitMe.contains("[")) {
                 splitMe = "\\" + splitMe;
             }
-            if(splitMe.contains(")"))
-            {
-                splitMe=   splitMe.replaceFirst("\\)","\\\\)");
+            if (splitMe.contains(")")) {
+                splitMe = splitMe.replaceFirst("\\)", "\\\\)");
             }
             String p = "\n" + splitMe;
             if (splitMe.contains(".")) {
@@ -418,7 +416,7 @@ public class PatentRightUtils {
                         .setSort(i)
                         .setParentSort(builder + "");
                 patentRights.add(patentRight);
-            } else if (flag1 ) {
+            } else if (flag1) {
                 String parentNum = null;
                 if (flag1) {
                     parentNum = getNums(matcher1.group()).get(0);

+ 10 - 0
src/main/java/cn/cslg/pas/service/business/ProjectService.java

@@ -1,5 +1,6 @@
 package cn.cslg.pas.service.business;
 
+import cn.cslg.pas.common.model.addPatentToReport.AddProjectPatentToReportDTO;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
@@ -79,4 +80,13 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
 
 return map;
     }
+
+
+    public void addProjectPatentToReport(AddProjectPatentToReportDTO addProjectPatentToReportDTO){
+
+
+
+    }
+
+
 }

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

@@ -4,6 +4,7 @@ import cn.cslg.pas.common.core.base.IfConstant;
 import cn.cslg.pas.common.dto.*;
 import cn.cslg.pas.common.dto.business.ContentDetailDTO;
 import cn.cslg.pas.common.dto.es.EsCustomFieldValueDTO;
+import cn.cslg.pas.common.model.addPatentToReport.PatentWithIdVO;
 import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
@@ -21,7 +22,6 @@ import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
 import cn.cslg.pas.common.vo.ContentVO;
 import cn.cslg.pas.common.vo.EsConfigVO;
 import cn.cslg.pas.common.vo.PatentPageMessageVO;
-import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.common.vo.business.PatentKinDetailVO;
 import cn.cslg.pas.common.vo.business.PatentKinVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
@@ -801,4 +801,43 @@ public class EsPatentService {
         );
     }
 
+
+    public List<PatentWithIdVO> getPatentIdsWithNotNo(QueryRequest queryRequest, List<String> patentNos) throws Exception {
+        List<PatentWithIdVO> patentWithIdVOS=new ArrayList<>();
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        Long current =queryRequest.getCurrent();
+        Long size =queryRequest.getSize();
+        //设置查询索引
+        builder.index("patent");
+        Query q = this.getQuery(queryRequest);
+
+        Query reQuery = null;
+        if (patentNos != null && patentNos.size() > 0) {
+            List<Query> notInQuery = this.getNoNotInQuery(patentNos);
+            reQuery = QueryBuilders.bool(i -> i.must(q).mustNot(notInQuery));
+        } else {
+            reQuery = QueryBuilders.bool(i -> i.must(q));
+        }
+        //4. 返回数据
+        builder.query(reQuery);
+        if (current > 0 && size > 0) {
+            builder.from(current.intValue() - 1).size(size.intValue());
+        }
+        List<String> reSources = this.rePatentSource();
+        builder.source(sourceOptionsBuilder -> sourceOptionsBuilder
+                .filter(fieldSourceBuilder -> fieldSourceBuilder
+                        .includes(reSources)));
+
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        List<Hit<Patent>> hits = response.hits().hits();
+        for (Hit<Patent> hit : hits) {
+            if (hits != null && hits.size() > 0) {
+                PatentWithIdVO patentWithIdVO =new PatentWithIdVO();
+                patentWithIdVO.setId(hit.id());
+                patentWithIdVO.setPatentNo(hit.source().getPatentNo());
+                patentWithIdVOS.add(patentWithIdVO);
+            }
+        }
+        return patentWithIdVOS;
+    }
 }