Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master' into prod_test

lwhhszx před 1 rokem
rodič
revize
8535704040
84 změnil soubory, kde provedl 12527 přidání a 562 odebrání
  1. 4 4
      src/main/java/cn/cslg/pas/common/config/WebSocketConfig.java
  2. 18 0
      src/main/java/cn/cslg/pas/common/dto/ExportDTO.java
  3. 52 19
      src/main/java/cn/cslg/pas/common/utils/FileUtils.java
  4. 3 5
      src/main/java/cn/cslg/pas/common/utils/PatentNoUtil.java
  5. 0 25
      src/main/java/cn/cslg/pas/common/utils/esDataForm/AddressSplitter.java
  6. 447 0
      src/main/java/cn/cslg/pas/common/utils/parseQueryToTree/ExpressTreeNode.java
  7. 33 6
      src/main/java/cn/cslg/pas/common/utils/parseQueryToTree/expressManager.java
  8. 2 0
      src/main/java/cn/cslg/pas/common/vo/business/HandleResultFileVO.java
  9. 8 0
      src/main/java/cn/cslg/pas/common/vo/business/PatentDigProjectFilesVO.java
  10. 39 0
      src/main/java/cn/cslg/pas/controller/ExportController.java
  11. 9 0
      src/main/java/cn/cslg/pas/controller/PatentDigProjectFilesController.java
  12. 3 7
      src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/DateQueryBuilder.java
  13. 1 15
      src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NestedPersonQueryBuilder.java
  14. 8 1
      src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NumberQueryBuilder.java
  15. 74 0
      src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/PrioritiesNONestedQueryBuilder.java
  16. 114 56
      src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/PrioritiesNestedQueryBuilder.java
  17. 89 0
      src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/WildcardNosQueryBuilder.java
  18. 50 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/FormWebQueryDateUtil.java
  19. 8 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/FormWebQueryFieldImp.java
  20. 47 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebAppNosQuery.java
  21. 27 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebCommonQuery.java
  22. 87 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebDateQuery.java
  23. 27 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebIC2Query.java
  24. 27 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebIC3Query.java
  25. 27 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebIC4Query.java
  26. 24 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebIC5Query.java
  27. 49 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebNosQuery.java
  28. 55 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebPatentNosQuery.java
  29. 40 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebPersonQuery.java
  30. 19 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebQueryFactory.java
  31. 28 0
      src/main/java/cn/cslg/pas/factorys/WebQueryFactory/WebQueryConfigVO.java
  32. 3 8
      src/main/java/cn/cslg/pas/service/business/AsInvalidReasonHistoryService.java
  33. 0 4
      src/main/java/cn/cslg/pas/service/business/AssoProjectEventService.java
  34. 1 4
      src/main/java/cn/cslg/pas/service/business/AssoTaskFileService.java
  35. 1 4
      src/main/java/cn/cslg/pas/service/business/AvoidDesignService.java
  36. 2 4
      src/main/java/cn/cslg/pas/service/business/AvoidDesignWholeService.java
  37. 2 12
      src/main/java/cn/cslg/pas/service/business/CustomAnalyseService.java
  38. 0 5
      src/main/java/cn/cslg/pas/service/business/CustomAnalysisItemSchemaService.java
  39. 2 4
      src/main/java/cn/cslg/pas/service/business/CustomAnalysisItemSettingService.java
  40. 1 4
      src/main/java/cn/cslg/pas/service/business/CustomAnalysisItemSourceService.java
  41. 1 4
      src/main/java/cn/cslg/pas/service/business/CustomFieldService.java
  42. 2 4
      src/main/java/cn/cslg/pas/service/business/CustomOptionService.java
  43. 0 4
      src/main/java/cn/cslg/pas/service/business/EventService.java
  44. 6 16
      src/main/java/cn/cslg/pas/service/business/FTOCompareRecordService.java
  45. 3 8
      src/main/java/cn/cslg/pas/service/business/HightlightTemplateService.java
  46. 2 4
      src/main/java/cn/cslg/pas/service/business/ImportTaskService.java
  47. 5 12
      src/main/java/cn/cslg/pas/service/business/InvalidRecordService.java
  48. 2 8
      src/main/java/cn/cslg/pas/service/business/LitigationHistoryService.java
  49. 3 8
      src/main/java/cn/cslg/pas/service/business/MergePersonService.java
  50. 2 8
      src/main/java/cn/cslg/pas/service/business/OtherReferencesService.java
  51. 41 5
      src/main/java/cn/cslg/pas/service/business/PatentDigProjectFilesService.java
  52. 1 8
      src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java
  53. 199 2
      src/main/java/cn/cslg/pas/service/business/PatentExportService.java
  54. 3 8
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  55. 2 4
      src/main/java/cn/cslg/pas/service/business/PermissionRecordService.java
  56. 3 8
      src/main/java/cn/cslg/pas/service/business/ProductCategoryService.java
  57. 3 4
      src/main/java/cn/cslg/pas/service/business/ProductMarketDataService.java
  58. 2 4
      src/main/java/cn/cslg/pas/service/business/ProductMessageService.java
  59. 4 8
      src/main/java/cn/cslg/pas/service/business/ProductService.java
  60. 10 16
      src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java
  61. 2 4
      src/main/java/cn/cslg/pas/service/business/ReferencesService.java
  62. 4 8
      src/main/java/cn/cslg/pas/service/business/ReportProjectService.java
  63. 4 8
      src/main/java/cn/cslg/pas/service/business/ReviewHistoryService.java
  64. 1 0
      src/main/java/cn/cslg/pas/service/business/TaskHandleResultService.java
  65. 10 84
      src/main/java/cn/cslg/pas/service/business/TortCompareRecordService.java
  66. 4 8
      src/main/java/cn/cslg/pas/service/business/TreeNodeService.java
  67. 223 0
      src/main/java/cn/cslg/pas/service/business/es/EsExportService.java
  68. 2 4
      src/main/java/cn/cslg/pas/service/business/es/EsValueCurveService.java
  69. 2 4
      src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimHistoryService.java
  70. 45 2
      src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java
  71. 12 28
      src/main/java/cn/cslg/pas/service/common/PersonFieldService.java
  72. 0 1
      src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java
  73. 8 1
      src/main/java/cn/cslg/pas/service/importPatent/GetPatentFromExcelThread.java
  74. 24 0
      src/main/java/cn/cslg/pas/service/quartzService/ImportJobService.java
  75. 31 34
      src/main/java/cn/cslg/pas/service/JobService.java
  76. 46 0
      src/main/java/cn/cslg/pas/service/quartzService/QrtzTaskDTO.java
  77. 14 0
      src/main/java/cn/cslg/pas/service/quartzService/QuartzVO.java
  78. 11 7
      src/main/java/cn/cslg/pas/service/query/FormatQueryService.java
  79. 2 2
      src/main/resources/application-dev.yml
  80. 7 7
      src/main/resources/jsons/patent.json
  81. 43 30
      src/main/resources/jsons/webSearchConfig.json
  82. 10204 0
      src/test/java/cn/cslg/pas/service/EsSearchingTest.java
  83. 83 0
      src/test/java/cn/cslg/pas/service/EventServiceTests.java
  84. 20 0
      src/test/java/cn/cslg/pas/service/ExpressManagerTests.java

+ 4 - 4
src/main/java/cn/cslg/pas/common/config/WebSocketConfig.java

@@ -6,8 +6,8 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 
 @Configuration
 public class WebSocketConfig {
-    @Bean
-    public ServerEndpointExporter serverEndpointExporter() {
-        return new ServerEndpointExporter();
-    }
+//    @Bean
+//    public ServerEndpointExporter serverEndpointExporter() {
+//        return new ServerEndpointExporter();
+//    }
 }

+ 18 - 0
src/main/java/cn/cslg/pas/common/dto/ExportDTO.java

@@ -0,0 +1,18 @@
+package cn.cslg.pas.common.dto;
+
+import lombok.Data;
+
+@Data
+public class ExportDTO {
+    private String condition;
+    private String estimatedTree;
+    private String actualTree;
+    private String treeFlag;
+    private String estimatedQuery;
+    private String actualQuery;
+    private String queryFlag;
+    private String outCondition;
+    private String estimatedOutQuery;
+    private String actualOutQuery;
+    private String outQueryFlag;
+}

+ 52 - 19
src/main/java/cn/cslg/pas/common/utils/FileUtils.java

@@ -4,14 +4,11 @@ package cn.cslg.pas.common.utils;
 import cn.cslg.pas.Application;
 import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSON;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.springframework.boot.system.ApplicationHome;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 
@@ -28,13 +25,11 @@ public class FileUtils {
         //获取 applicationHome 内的路径 ...\target\classes 到这一层级下
         File file = ah.getSource();
         //获取 file的parentFile 即最后一级之前的所有层级路径(包括盘符) 这里能获得到的最终层级为  ...\target 后续用FILE_SEPARATOR(系统路径分割通配符 即 "\") 以及fileName拼接生成存放文件的目录层级 即为根目录 root
-        String rootPath =null;
+        String rootPath = null;
 
-        if (fileName!=null&&!fileName.equals(""))
-        {
-            rootPath= file.getParentFile().toString() + FILE_SEPARATOR + fileName;
-        }
-        else {
+        if (fileName != null && !fileName.equals("")) {
+            rootPath = file.getParentFile().toString() + FILE_SEPARATOR + fileName;
+        } else {
             rootPath = file.getParentFile().toString();
         }
         //根据上方生成的根目录路径 生成对应文件夹 没有就新建
@@ -77,7 +72,7 @@ public class FileUtils {
         return last.toString();
     }
 
-    public static   File  getFileByBytes(byte[] bytes, String prefix, String suffix) {
+    public static File getFileByBytes(byte[] bytes, String prefix, String suffix) {
         BufferedOutputStream bos = null;
         FileOutputStream fos = null;
         File file = null;
@@ -111,12 +106,12 @@ public class FileUtils {
                     e.printStackTrace();
                 }
             }
-            return  file;
+            return file;
         }
     }
 
 
-    public static  File getFileByUrl(String dataUrl) throws IOException {
+    public static File getFileByUrl(String dataUrl) throws IOException {
 
         URL url = new URL(dataUrl);  //想要读取的url地址
         InputStream in = url.openStream();
@@ -133,7 +128,8 @@ public class FileUtils {
         in.close();
         return file;
     }
-    public static  File getPictureFileByUrl(String dataUrl) throws IOException {
+
+    public static File getPictureFileByUrl(String dataUrl) throws IOException {
 
         URL url = new URL(dataUrl);  //想要读取的url地址
         InputStream in = url.openStream();
@@ -150,9 +146,11 @@ public class FileUtils {
         in.close();
         return file;
     }
+
     public String getPath(String url) {
         return getStaticPath(COMMON_FILE) + url;
     }
+
     public String getDirectoryName() {
         return DateUtils.getNowTimeFormat("yyyyMMdd");
     }
@@ -160,6 +158,7 @@ public class FileUtils {
     public String getSavePath(String directoryName) {
         return getStaticPath(COMMON_FILE) + FILE_SEPARATOR + directoryName + FILE_SEPARATOR;
     }
+
     public String createDirectory() {
         String directoryName = this.getDirectoryName();
         String savePath = this.getSavePath(directoryName);
@@ -169,8 +168,9 @@ public class FileUtils {
         }
         return directoryName;
     }
+
     public String createRandomDirectory() {
-        String directoryName =  IdUtil.simpleUUID();
+        String directoryName = IdUtil.simpleUUID();
         String savePath = this.getSavePath(directoryName);
         File directory = new File(savePath);
         if (!directory.exists()) {
@@ -178,6 +178,7 @@ public class FileUtils {
         }
         return directoryName;
     }
+
     public static FileInputStream byteToFile(byte[] bytes) {
         String fileName = IdUtil.simpleUUID() + ".png";
         File file = new File(fileName);
@@ -209,13 +210,16 @@ public class FileUtils {
     public String getDirectory(String fileName) {
         return FILE_SEPARATOR + this.createDirectory() + FILE_SEPARATOR + fileName;
     }
+
     public String getSystemPath(String url) {
         return getStaticPath(COMMON_FILE) + FILE_SEPARATOR + url;
     }
+
     public static String getSystemPath2(String url) {
         return getStaticPath(COMMON_FILE) + FILE_SEPARATOR + url;
     }
-    public  static void  writeFile(String json, String FilePath) {
+
+    public static void writeFile(String json, String FilePath) {
 
         try {
             File file = new File(FilePath);
@@ -238,6 +242,7 @@ public class FileUtils {
             e.printStackTrace();
         }
     }
+
     public static File getFileByName(File file, String name) {
         for (File file1 : file.listFiles()) {
             if (file1.getName().equals(name)) {
@@ -248,10 +253,9 @@ public class FileUtils {
     }
 
 
-    public  static void  writeFile(Object object,File file) {
-       String json = JSON.toJSONString(object);
+    public static void writeFile(Object object, File file) {
+        String json = JSON.toJSONString(object);
         try {
-
             // if file doesnt exists, then create it
             if (!file.exists()) {
                 file.createNewFile();
@@ -259,7 +263,6 @@ public class FileUtils {
                 file.delete();
                 file.createNewFile();
             }
-
             // true = append file
             FileWriter fileWritter = new FileWriter(file, false);
             BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
@@ -270,4 +273,34 @@ public class FileUtils {
             e.printStackTrace();
         }
     }
+
+    public static File multipartFileToFile(MultipartFile file) throws Exception {
+        File toFile = null;
+        if (file == null || file.equals("") || file.getSize() <= 0) {
+            file = null;
+        } else {
+            InputStream ins = null;
+            ins = file.getInputStream();
+            toFile = new File(file.getOriginalFilename());
+            inputStreamToFile(ins, toFile);
+            ins.close();
+        }
+        return toFile;
+    }
+
+    //获取流文件
+    private static void inputStreamToFile(InputStream ins, File file) {
+        try {
+            OutputStream os = new FileOutputStream(file);
+            int bytesRead = 0;
+            byte[] buffer = new byte[8192];
+            while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
+                os.write(buffer, 0, bytesRead);
+            }
+            os.close();
+            ins.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

+ 3 - 5
src/main/java/cn/cslg/pas/common/utils/PatentNoUtil.java

@@ -33,12 +33,10 @@ public class PatentNoUtil {
         if(!matcher.find()){
             patentNo ="CN"+patentNo;
         }
-        String numbers = patentNo.replaceAll("[^\\d]", "");
+
         char secondLastChar = patentNo.charAt(patentNo.length() - 2);
-        if(numbers.length()==13&&secondLastChar!='.'){
-            StringBuilder stringBuilder =new StringBuilder(patentNo);
-            stringBuilder.insert(patentNo.length() - 1,".");
-            patentNo =stringBuilder.toString();
+        if(patentNo.length()==15&&secondLastChar!='.'){
+         patentNo=patentNo.substring(0,patentNo.length()-1);
         }
         return patentNo;
     }

+ 0 - 25
src/main/java/cn/cslg/pas/common/utils/esDataForm/AddressSplitter.java

@@ -14,7 +14,6 @@ import java.util.regex.Pattern;
 public class AddressSplitter {
 
     public static PersonAddress splitAddress(String address, String provinceStr) {
-//        List<String> addresses = new ArrayList<>();
         PersonAddress personAddress =null;
         // 初始化省、市、区
         String province = "";
@@ -38,30 +37,6 @@ public class AddressSplitter {
             }
         }
 
-//        // 匹配省份
-//        String[] provinceArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "省");
-//        if (provinceArray.length > 1) {
-//            province = provinceArray[0] + "省";
-//            address = provinceArray[1];
-//        }
-//
-//        // 匹配城市
-//        String[] cityArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "市");
-//        if (cityArray.length > 1) {
-//            city = cityArray[0] + "市";
-//            address = cityArray[1];
-//        }
-//
-//        // 匹配区县
-//        String[] districtArray = StringUtils.splitByWholeSeparatorPreserveAllTokens(address, "区");
-//        if (districtArray.length > 1) {
-//            district = districtArray[0] + "区";
-//        }
-
-        // 输出结果
-//        addresses.add(province);
-//        addresses.add(city);
-//        addresses.add(district);
         return personAddress;
 
     }

+ 447 - 0
src/main/java/cn/cslg/pas/common/utils/parseQueryToTree/ExpressTreeNode.java

@@ -0,0 +1,447 @@
+package cn.cslg.pas.common.utils.parseQueryToTree;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Stack;
+
+public class ExpressTreeNode {
+
+
+    public static treeNode Tokens2Node(List<String> Tokens, boolean isAnd)throws Exception
+
+    {
+
+        Stack<Symbol> symbolStack = new Stack<Symbol>();
+
+        Stack<treeNode> valueStack = new Stack<treeNode>();
+
+
+
+        boolean preIsValue = false;
+
+        for (int i = 0; i < Tokens.size(); i++)
+
+        {
+
+            String strTem = Tokens.get(i);
+
+
+
+            Symbol temSymbol = expressManager.getInstance().getSymbol(strTem);
+
+
+
+            if (temSymbol != null)
+
+            {
+
+                if (temSymbol instanceof operate)
+
+                {
+//                        region 如果是操作符,从操作符堆栈中取出优先级大于等于该操作符的结合值堆栈生成节点后压入值堆栈,然后将该操作符压入堆栈
+
+                    operate temoperate = (operate)temSymbol;
+
+
+
+                    if (symbolStack.size() > 0)
+
+                    {
+
+                        Symbol lastSymbol = symbolStack.peek();
+
+
+
+                        while (lastSymbol instanceof operate && ((operate)lastSymbol).priorityVale >= temoperate.priorityVale)
+
+                        {
+
+                            operateNode temSymbolNode = new operateNode();
+
+                            temSymbolNode.operate = (operate)lastSymbol;
+
+
+
+                            if (((operate)lastSymbol).operateValue == 1)
+
+                            {
+
+                                temSymbolNode.Right = valueStack.pop();
+
+                            }
+
+                            else
+
+                            {
+
+                                temSymbolNode.Right = valueStack.pop();
+
+                                temSymbolNode.Left = valueStack.pop();
+
+                            }
+
+
+
+                            valueStack.push(temSymbolNode);
+
+
+
+                            symbolStack.pop();
+
+
+
+                            if (symbolStack.size() > 0)
+
+                            {
+
+                                lastSymbol = symbolStack.peek();
+
+                            }
+
+                            else
+
+                            {
+
+                                break;
+
+                            }
+
+                        }
+
+                    }
+
+
+
+
+
+                    symbolStack.push(temSymbol);
+                    preIsValue = false;
+                }
+                    else
+
+                {
+
+                    if (temSymbol instanceof pairSymbol && ((pairSymbol)temSymbol).isEndSymbol == false)
+
+                    {
+
+                        List<String> strings = new ArrayList<>();
+
+
+
+                        int zkh = 1;
+
+                        for(int j = i+1; j < Tokens.size(); j++)
+
+                        {
+
+                            String s = Tokens.get(j);
+
+
+
+                            Symbol sysTem = expressManager.getInstance().getSymbol(s);
+
+
+
+                            if(sysTem != null)
+
+                            {
+
+                                if (sysTem instanceof pairSymbol)
+
+                                {
+
+                                    if (((pairSymbol)sysTem).isEndSymbol)
+
+                                    {
+
+                                        zkh--;
+
+                                    }
+
+                                    else
+
+                                    {
+
+                                        zkh++;
+
+                                    }
+
+                                }
+
+
+
+                            }
+
+
+
+                            if(zkh == 0)
+
+                            {
+
+                                break ;
+
+                            }
+
+                            else
+
+                            {
+
+                                strings.add(s);
+
+                            }
+
+
+
+                        }
+
+
+
+                        if(zkh == 0)
+
+                        {
+
+                            valueStack.push(Tokens2Node(strings, isAnd));
+
+                            preIsValue = true;
+
+                            i = i + strings.size() +1;
+
+                        }
+
+                    }
+
+                }
+
+            }
+
+            else
+
+            {
+
+                if(preIsValue && symbolStack.size() > 0)
+
+                {
+
+                    if (symbolStack.size() > 0)
+
+                    {
+
+                        Symbol lastSymbol = symbolStack.pop();
+
+
+
+                        operateNode temSymbolNode = new operateNode();
+
+                        temSymbolNode.operate =(operate) lastSymbol;
+
+
+
+                        if (((operate)lastSymbol).operateValue == 1)
+
+                        {
+
+                            temSymbolNode.Right = valueStack.pop();
+
+                        }
+
+                        else
+
+                        {
+
+                            temSymbolNode.Right = valueStack.pop();
+
+                            temSymbolNode.Left = valueStack.pop();
+
+                        }
+
+                        valueStack.push(temSymbolNode);
+
+
+
+                    }
+
+
+
+                }
+
+
+
+                valueNode  temNode = new valueNode();
+
+                temNode.value = strTem;
+
+                valueStack.push(temNode);
+
+                preIsValue = true;
+
+            }
+
+
+
+        }
+
+
+
+        while (symbolStack.size() > 0)
+
+        {
+
+            Symbol temSymbol = symbolStack.pop();
+
+
+
+            if (temSymbol instanceof operate)
+
+            {
+
+                operateNode temNode = new operateNode();
+
+                temNode.operate = (operate)temSymbol;
+
+
+
+                if (((operate)temSymbol).operateValue == 1)
+
+                {
+
+                    temNode.Right = valueStack.pop();
+
+                }
+
+                else
+
+                {
+
+                    temNode.Right = valueStack.pop();
+
+                    temNode.Left = valueStack.pop();
+
+                }
+
+
+
+                valueStack.push(temNode);
+
+
+
+            }
+
+                else
+
+            {
+
+                throw new Exception("无效的括号!");
+
+            }
+
+        }
+
+
+
+
+
+        if (valueStack.size() ==1)
+
+        {
+
+            return valueStack.pop();
+
+
+
+        }
+
+        else
+
+        {
+
+            if (valueStack.size() > 1)
+
+            {
+
+                List<treeNode> lstValues = new ArrayList<>();
+
+
+
+                while (valueStack.size() > 0)
+
+                {
+
+                    treeNode temNode = valueStack.pop();
+
+
+
+                    lstValues.add(0, temNode);
+
+                }
+
+
+
+                treeNode retNode = null;
+
+
+
+                for (treeNode temNode :lstValues)
+                {
+
+                    if (retNode == null)
+
+                    {
+
+                        retNode = temNode;
+
+                    }
+
+                    else
+
+                    {
+
+                        operateNode sNode = new operateNode();
+
+
+
+                        if (!isAnd)
+
+                        {
+
+                            sNode.operate = (operate) expressManager.getInstance().getSymbol("OR");
+
+                        }
+
+                        else
+
+                        {
+
+                            sNode.operate = (operate)expressManager.getInstance().getSymbol("AND");
+
+                        }
+
+
+
+                        sNode.Left = retNode;
+
+                        sNode.Right = temNode;
+
+                        retNode = sNode;
+
+                    }
+
+                }
+
+
+
+                return retNode;
+
+            }
+
+
+
+            throw new Exception("无效的检索式!");
+
+        }
+
+
+
+    }
+
+}

+ 33 - 6
src/main/java/cn/cslg/pas/common/utils/parseQueryToTree/expressManager.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.common.utils.parseQueryToTree;
 
-import org.springframework.util.CollectionUtils;
+import cn.cslg.pas.common.utils.StringUtils;
+
 
 import java.util.*;
 
@@ -157,9 +158,16 @@ public class expressManager {
         ArrayList<String> Tokens = GetTokens(strExpress);
         Stack<Symbol> symbolStack = new Stack<Symbol>();
         Stack<treeNode> valueStack = new Stack<treeNode>();
+        List<String> middleKuoHaoStrs = new ArrayList<>();
+        if (!isAnd) {
+            return ExpressTreeNode.Tokens2Node(Tokens, isAnd);
+        }
+        Boolean ifFindEndingMiddleKuoHaoStrs = false;
         for (String strTem : Tokens) {
             Symbol temSymbol = expressManager.getInstance().getSymbol(strTem);
-            if (temSymbol != null) {
+            if (ifFindEndingMiddleKuoHaoStrs && (temSymbol == null || !(temSymbol instanceof pairSymbol && ((pairSymbol) temSymbol).Code.equals("]")))) {
+                middleKuoHaoStrs.add(strTem);
+            } else if (temSymbol != null) {
                 if (temSymbol instanceof operate) {
                     //#region 如果是操作符,从操作符堆栈中取出优先级大于等于该操作符的结合值堆栈生成节点后压入值堆栈,然后将该操作符压入堆栈
                     operate temOperate = (operate) temSymbol;
@@ -190,8 +198,19 @@ public class expressManager {
                     symbolStack.push(temSymbol);
                     //#endregion
                 } else {
+                    if (temSymbol instanceof pairSymbol && ((pairSymbol) temSymbol).Code.equals("[")) {
+                        ifFindEndingMiddleKuoHaoStrs = true;
+                    } else if (temSymbol instanceof pairSymbol && ((pairSymbol) temSymbol).Code.equals("]")) {
+                        ifFindEndingMiddleKuoHaoStrs = false;
+                        String temp = StringUtils.join(middleKuoHaoStrs, ",");
+                        valueNode temNode = new valueNode();
+                        temNode.value = temp;
+                        valueStack.push(temNode);
+                        middleKuoHaoStrs = new ArrayList<>();
+                    }
+
                     //#region 括号处理
-                    if (temSymbol instanceof pairSymbol && ((pairSymbol) temSymbol).isEndSymbol) {
+                    else if (temSymbol instanceof pairSymbol && ((pairSymbol) temSymbol).isEndSymbol) {
                         Symbol lastSymbol = symbolStack.peek();
 
                         if (lastSymbol == null) {
@@ -227,10 +246,14 @@ public class expressManager {
                     //#endregion
                 }
             } else {
-                valueNode temNode = new valueNode();
-                temNode.value = strTem;
+                if (!ifFindEndingMiddleKuoHaoStrs) {
+                    valueNode temNode = new valueNode();
+                    temNode.value = strTem;
 
-                valueStack.push(temNode);
+                    valueStack.push(temNode);
+                } else {
+                    middleKuoHaoStrs.add(strTem);
+                }
             }
         }
 
@@ -315,11 +338,14 @@ public class expressManager {
 
             String strTemToken = "";
             Boolean isFindingEndYinHao = false;
+            Boolean ifFindingEndMiddleKuoHao = false;
             int step = -1;
             for (int i = 0; i < strTem.length(); i++) {
                 char c = strTem.charAt(i);
 
                 switch (c) {
+                    case '“':
+                    case '”':
                     case '"':
                         if (!isFindingEndYinHao) {
                             isFindingEndYinHao = true;
@@ -336,6 +362,7 @@ public class expressManager {
                             }
 
                         }
+
                         break;
                     case ' ':
                         if (!isFindingEndYinHao) {

+ 2 - 0
src/main/java/cn/cslg/pas/common/vo/business/HandleResultFileVO.java

@@ -28,6 +28,8 @@ public class HandleResultFileVO {
 
     private String createId;
 
+    private Integer source;
+
     /**
      * 上传人
      */

+ 8 - 0
src/main/java/cn/cslg/pas/common/vo/business/PatentDigProjectFilesVO.java

@@ -82,4 +82,12 @@ public class PatentDigProjectFilesVO {
     private Date createTime;
 
     private ProjectTask projectTask;
+
+    /**
+     * 来源:1 PatentDigProjectFiles
+     *      2 AssoHandleResultFile
+     *      3 AssoProjectFile
+     *      4 AssoTaskFile
+     */
+    private Integer source;
 }

+ 39 - 0
src/main/java/cn/cslg/pas/controller/ExportController.java

@@ -0,0 +1,39 @@
+package cn.cslg.pas.controller;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.FileUtils;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.service.business.es.EsExportService;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+
+@RequestMapping(Constants.API_XiaoSHI + "/export")
+@RestController
+public class ExportController {
+
+    @Autowired
+    private EsExportService esExportService;
+
+    @Operation(summary = "导出二叉树")
+    @PostMapping("/export")
+    public Response exportTree(@RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws Exception {
+        Records records = new Records();
+        File file = FileUtils.multipartFileToFile(multipartFile);
+        try {
+            esExportService.exportTree(file);
+            records.setData("导出成功");
+        } catch (Exception e) {
+            records.setData("导出失败");
+
+        }
+        return Response.success(records);
+    }
+}

+ 9 - 0
src/main/java/cn/cslg/pas/controller/PatentDigProjectFilesController.java

@@ -95,4 +95,13 @@ public class PatentDigProjectFilesController {
         return Response.success(records);
     }
 
+    @Operation(summary = "删除专利挖掘项目文件")
+    @GetMapping("/delete")
+    public Response delete(Integer source, String fileGuid) throws Exception {
+        patentDigProjectFilesService.delete(source, fileGuid);
+        Records records = new Records();
+        records.setData("success");
+        return Response.success(records);
+    }
+
 }

+ 3 - 7
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/DateQueryBuilder.java

@@ -150,11 +150,9 @@ public class DateQueryBuilder implements IQueryBuilder {
             String[] dates = value.split("~");
             String date1 = dates[0];
             String date2 = dates[1];
-          String  findate1=this.formatDateString(date1);
-         String    findate2 =this.formatDateString(date2);
-           query = QueryBuilders
-                    .range(range -> range.field(field).gte(JsonData.of(findate1)).lte(JsonData.of(findate2)));
-
+            String findDate1 = this.formatDateString(date1);
+            String findDate2 = this.formatDateString(date2);
+            query = QueryBuilders.range(range -> range.field(field).gte(JsonData.of(findDate1)).lte(JsonData.of(findDate2)));
         } else {
             query = this.getSingle();
         }
@@ -257,7 +255,6 @@ public class DateQueryBuilder implements IQueryBuilder {
 
     private Query getSingle() throws ParseException {
         Query query = null;
-
         if (value != null && !"".equals(value)) {
             Calendar calendar = Calendar.getInstance();
             if (value.length() == YEAR) {
@@ -371,6 +368,5 @@ public class DateQueryBuilder implements IQueryBuilder {
             }
         }
         return query;
-
     }
 }

+ 1 - 15
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NestedPersonQueryBuilder.java

@@ -22,23 +22,9 @@ public class NestedPersonQueryBuilder implements IQueryBuilder{
         Query query = null;
         if (operator.equals("=")) {
             String str = "*";
-            if (field.equals("priorities.priorityno")) {
-                String s = "";
-                String sub = value.substring(0, 2);
-                if ((StringUtils.isPositiveInteger(sub) || sub.equalsIgnoreCase("CN")) && (value.length() == 13|| value.length() == 15)) {
-                    String frontPart = value.substring(0, value.length() - 1);
-                    String afterPart = value.substring(value.length() - 1);
-                    String s1 = frontPart + "." + afterPart;
-                    s = str.concat(s1.toUpperCase(Locale.ROOT)).concat("*");
-                } else {
-                    s = str.concat(value.toUpperCase(Locale.ROOT)).concat("*");
-                }
-                String finalS = s;
-                query = QueryBuilders.wildcard(i -> i.field(field).value(finalS));
-            } else {
                 String s = str.concat(value).concat("*");
                 query = QueryBuilders.wildcard(i -> i.field(field).value(s));
-            }
+
         } else {
             query = QueryBuilders.term(i -> i.field(field).value(value));
         }

+ 8 - 1
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/NumberQueryBuilder.java

@@ -6,6 +6,8 @@ import co.elastic.clients.json.JsonData;
 import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
+import java.util.HashMap;
+import java.util.Map;
 
 @Component
 public class NumberQueryBuilder implements IQueryBuilder{
@@ -22,7 +24,12 @@ public class NumberQueryBuilder implements IQueryBuilder{
     @Override
     public Query creteQuery() throws ParseException {
         Query query = null;
-        if (operator.equals(GT)) {
+        if (value.contains("~")) {
+            String[] dates = value.split("~");
+            String date1 = dates[0];
+            String date2 = dates[1];
+            query = QueryBuilders.range(range -> range.field(field).gte(JsonData.of(date1)).lte(JsonData.of(date2)));
+        } else if (operator.equals(GT)) {
             query = QueryBuilders.range(range -> range.field(field).gt(JsonData.of(value)));
         } else if (operator.equals(GTE)) {
             query = QueryBuilders.range(range -> range.field(field).gte(JsonData.of(value)));

+ 74 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/PrioritiesNONestedQueryBuilder.java

@@ -0,0 +1,74 @@
+package cn.cslg.pas.factorys.EsBuilderFactory;
+
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+public class PrioritiesNONestedQueryBuilder implements IQueryBuilder{
+    private String field = "";
+    private String value = "";
+    private String operator = "";
+    public String path = "";
+    public Integer projectId = null;
+
+
+    @Override
+    public Query creteQuery() throws ParseException {
+        List<Query> queries = new ArrayList<>();
+        String[] valueStrs = value.split("[,,]|(\\r\\n)+|\\r+|\\n+");
+        for (int i = 0; i < valueStrs.length; i++) {
+            String temValue = valueStrs[i];
+            String str = "*";
+            String s = str.concat(temValue).concat("*");
+            Query query = QueryBuilders.wildcard(n -> n.field(field).value(s));
+            Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(query));
+            queries.add(nestedQuery);
+        }
+        return QueryBuilders.bool(m -> m.should(queries));
+    }
+
+    public String getField() {
+        return field;
+    }
+
+    public void setField(String field) {
+        this.field = field;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
+}

+ 114 - 56
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/PrioritiesNestedQueryBuilder.java

@@ -27,6 +27,116 @@ public class PrioritiesNestedQueryBuilder implements IQueryBuilder{
     @Override
     public Query creteQuery() throws ParseException {
         Query query = null;
+        if (value.contains("~")) {
+            String[] dates = value.split("~");
+            String date1 = dates[0];
+            String date2 = dates[1];
+            String findDate1 = this.formatDateString(date1);
+            String findDate2 = this.formatDateString(date2);
+            query = QueryBuilders.range(range -> range.field(field).gte(JsonData.of(findDate1)).lte(JsonData.of(findDate2)));
+        } else {
+            query = this.getSingle();
+        }
+        Query finalQuery = query;
+        Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(finalQuery));
+        return nestedQuery;
+    }
+
+    @Override
+    public String getField() {
+        return field;
+    }
+
+    @Override
+    public void setField(String field) {
+        this.field = field;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    @Override
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String getOperator() {
+        return operator;
+    }
+
+    @Override
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    @Override
+    public String getPath() {
+        return path;
+    }
+
+    @Override
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
+
+    private String formatDateString(String dateStr) throws ParseException {
+        Calendar calendar = Calendar.getInstance();
+        String formatedTime = "";
+        if (dateStr.length() == YEAR) {
+            SimpleDateFormat format = new SimpleDateFormat("yyyy");
+            Date year = format.parse(dateStr);
+            calendar.setTime(year);
+            String yearTime = String.valueOf(calendar.getTime().getTime());
+            formatedTime = yearTime;
+        } else if (dateStr.length() == MONTH || dateStr.length() == MONTHONE) {
+            Date month = new Date();
+            if (dateStr.contains("-")) {
+                SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM");
+                month = format2.parse(dateStr);
+            } else if (dateStr.contains("/")) {
+                SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MM");
+                month = format3.parse(dateStr);
+            } else {
+                SimpleDateFormat format1 = new SimpleDateFormat("yyyyMM");
+                month = format1.parse(dateStr);
+            }
+            calendar.setTime(month);
+            String monthTime = String.valueOf(calendar.getTime().getTime());
+            formatedTime = monthTime;
+        } else if (dateStr.length() == DAY || dateStr.length() == DAYONE) {
+            Date day = new Date();
+            if (dateStr.contains("-")) {
+                SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
+                day = format2.parse(dateStr);
+            } else if (dateStr.contains("/")) {
+                SimpleDateFormat format3 = new SimpleDateFormat("yyyy/MM/dd");
+                day = format3.parse(dateStr);
+            } else {
+                SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMdd");
+                day = format1.parse(dateStr);
+            }
+            calendar.setTime(day);
+            String dayTime = String.valueOf(day.getTime());
+            formatedTime = dayTime;
+        }
+        return formatedTime;
+    }
+
+    private Query getSingle() throws ParseException {
+        Query query = null;
         if (value != null && !"".equals(value)) {
             Calendar calendar = Calendar.getInstance();
             if (value.length() == YEAR) {
@@ -55,7 +165,7 @@ public class PrioritiesNestedQueryBuilder implements IQueryBuilder{
                         break;
                     default:
                         query = QueryBuilders
-                                .range(range -> range.field(field).gte(JsonData.of(yearTime)).lte(JsonData.of(yearNextTime)));
+                                .range(range -> range.field(field).gte(JsonData.of(yearTime)).lt(JsonData.of(yearNextTime)));
                         break;
                 }
             } else if (value.length() == MONTH || value.length() == MONTHONE) {
@@ -93,7 +203,7 @@ public class PrioritiesNestedQueryBuilder implements IQueryBuilder{
                         break;
                     default:
                         query = QueryBuilders
-                                .range(range -> range.field(field).gte(JsonData.of(monthTime)).lte(JsonData.of(monthNextTime)));
+                                .range(range -> range.field(field).gte(JsonData.of(monthTime)).lt(JsonData.of(monthNextTime)));
                         break;
                 }
             } else if (value.length() == DAY || value.length() == DAYONE) {
@@ -131,7 +241,7 @@ public class PrioritiesNestedQueryBuilder implements IQueryBuilder{
                         break;
                     default:
                         query = QueryBuilders
-                                .range(range -> range.field(field).gte(JsonData.of(dayTime)).lte(JsonData.of(nextDayTime)));
+                                .range(range -> range.field(field).gte(JsonData.of(dayTime)).lt(JsonData.of(nextDayTime)));
                         break;
                 }
             } else {
@@ -139,58 +249,6 @@ public class PrioritiesNestedQueryBuilder implements IQueryBuilder{
                         .range(range -> range.field(field).gte(JsonData.of(1)).lte(JsonData.of(2)));
             }
         }
-        Query finalQuery = query;
-        Query nestedQuery = QueryBuilders.nested(z -> z.path(path).query(finalQuery));
-        return nestedQuery;
-    }
-
-    @Override
-    public String getField() {
-        return field;
-    }
-
-    @Override
-    public void setField(String field) {
-        this.field = field;
-    }
-
-    @Override
-    public String getValue() {
-        return value;
-    }
-
-    @Override
-    public void setValue(String value) {
-        this.value = value;
-    }
-
-    @Override
-    public String getOperator() {
-        return operator;
-    }
-
-    @Override
-    public void setOperator(String operator) {
-        this.operator = operator;
-    }
-
-    @Override
-    public String getPath() {
-        return path;
-    }
-
-    @Override
-    public void setPath(String path) {
-        this.path = path;
-    }
-
-    @Override
-    public Integer getProjectId() {
-        return projectId;
-    }
-
-    @Override
-    public void setProjectId(Integer projectId) {
-        this.projectId = projectId;
+        return query;
     }
 }

+ 89 - 0
src/main/java/cn/cslg/pas/factorys/EsBuilderFactory/WildcardNosQueryBuilder.java

@@ -0,0 +1,89 @@
+package cn.cslg.pas.factorys.EsBuilderFactory;
+
+import cn.cslg.pas.common.utils.StringUtils;
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+@Component
+public class WildcardNosQueryBuilder implements IQueryBuilder {
+    private String field = "";
+    private String value = "";
+    private String operator = "";
+    public String path = "";
+    public Integer projectId = null;
+
+    @Override
+    public Query creteQuery() throws ParseException {
+        Query query = null;
+
+        List<Query> queries = new ArrayList<>();
+        String[] valueStrs = value.split("[,,]|(\\r\\n)+|\\r+|\\n+");
+
+
+        for (int i = 0; i < valueStrs.length; i++) {
+            String temValue = valueStrs[i];
+            String sub = temValue.substring(0, 2);
+            if ((!temValue.contains(".") && !(StringUtils.isPositiveInteger(sub)) && temValue.length() == 15) || (!temValue.contains(".") && StringUtils.isPositiveInteger(sub) && temValue.length() == 13)) {
+                temValue = temValue.substring(0, temValue.length() - 1);
+            }
+            temValue = "*" + temValue + "*";
+            String finalValue = temValue;
+            Query temQuery = QueryBuilders.wildcard(t -> t.field(field).value(finalValue));
+            queries.add(temQuery);
+        }
+        if (queries.size() == 1) {
+            return queries.get(0);
+        }
+        query = QueryBuilders.bool(i -> i.should(queries));
+        return query;
+    }
+
+    public String getField() {
+        return field;
+    }
+
+    public void setField(String field) {
+        this.field = field;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    @Override
+    public Integer getProjectId() {
+        return projectId;
+    }
+
+    @Override
+    public void setProjectId(Integer projectId) {
+        this.projectId = projectId;
+    }
+}

+ 50 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/FormWebQueryDateUtil.java

@@ -0,0 +1,50 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.exception.XiaoShiException;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Locale;
+
+public class FormWebQueryDateUtil {
+
+
+    public static String formatDate(String dateString, Boolean ifMax) {
+        try {
+            dateString = dateString.trim();
+            SimpleDateFormat sf1 = null;
+            if (dateString.length() == 4) {
+                sf1 = new SimpleDateFormat("yyyy");
+                Date date = sf1.parse(dateString);
+                if (ifMax) {
+                    return dateString + "1231";
+                } else {
+                    return dateString + "0101";
+                }
+            } else if (dateString.length() == 6) {
+                sf1 = new SimpleDateFormat("yyyyMM");
+                Date date = sf1.parse(dateString);
+                if (ifMax) {
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(date);
+                    Integer day = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
+                    String dayStr =day>=10?day+"":"0"+day;
+                    return dateString+dayStr;
+                } else {
+                    return dateString + "01";
+                }
+
+            } else if (dateString.length() == 8) {
+                sf1 = new SimpleDateFormat("yyyyMMdd");
+                Date date = sf1.parse(dateString);
+                return dateString;
+            }
+          else {
+                throw new XiaoShiException("格式化错误");
+            }
+        } catch (Exception e) {
+            throw new XiaoShiException("格式化错误");
+        }
+    }
+}

+ 8 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/FormWebQueryFieldImp.java

@@ -0,0 +1,8 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+
+import cn.cslg.pas.common.model.cronModel.SqlObject;
+
+public interface FormWebQueryFieldImp {
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO);
+}

+ 47 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebAppNosQuery.java

@@ -0,0 +1,47 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.common.utils.PatentNoUtil;
+import cn.cslg.pas.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetWebAppNosQuery implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value = webQueryConfigVO.getValue();
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        value = value.trim();
+        String[] valueStrs = value.split("[,,]|(\\r\\n)+|\\r+|\\n+");
+        List<String> queryLists = new ArrayList<>();
+
+        for (int i = 0; i < valueStrs.length; i++) {
+            valueStrs[i] = valueStrs[i].toUpperCase();
+            if (valueStrs[i].startsWith("ZL")) {
+                valueStrs[i] = valueStrs[i].replace("ZL", "CN");
+            }
+            String newValue = PatentNoUtil.formatApNo(valueStrs[i]);
+            String partQuery = newValue + option + filed;
+
+            queryLists.add(partQuery);
+        }
+        String reQuery = StringUtils.join(queryLists, "+");
+
+        if (valueStrs.length > 1) {
+            reQuery = "(" + reQuery + ")";
+        }
+        return reQuery;
+    }
+
+
+}

+ 27 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebCommonQuery.java

@@ -0,0 +1,27 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetWebCommonQuery implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value =webQueryConfigVO.getValue();
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        return value +option+ filed;
+    }
+
+
+}

+ 87 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebDateQuery.java

@@ -0,0 +1,87 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetWebDateQuery implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value = webQueryConfigVO.getValue();
+        value = value.trim();
+        String filed = webQueryConfigVO.getSqlField();
+        String orgOption = webQueryConfigVO.getOption();
+        String option = "/";
+        String reQuery = "";
+        if (orgOption.equals("=")) {
+            String[] valueStrs = value.split("~");
+            if (valueStrs.length > 1) {
+                String date1 = FormWebQueryDateUtil.formatDate(valueStrs[0], false);
+                String date2 = FormWebQueryDateUtil.formatDate(valueStrs[1], true);
+                value = date1 + ">" + date2;
+                reQuery = value + option + filed;
+            } else {
+                reQuery = value + option + filed;
+            }
+        } else if (orgOption.equals(">")) {
+            Date date = new Date();
+            SimpleDateFormat sf1 = new SimpleDateFormat("yyyyMMdd");
+            String nowDate = sf1.format(date);
+            String dateStr1 = FormWebQueryDateUtil.formatDate(value, true);
+            try {
+                Date date1 = sf1.parse(dateStr1);
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(date1);
+                calendar.add(Calendar.DATE, 1);
+                dateStr1 = sf1.format(calendar.getTime());
+            } catch (Exception e) {
+            }
+            value = dateStr1 + ">" + nowDate;
+            reQuery = value + option + filed;
+        } else if (orgOption.equals(">=")) {
+            Date date = new Date();
+            SimpleDateFormat sf1 = new SimpleDateFormat("yyyyMMdd");
+            String nowDate = sf1.format(date);
+            String date1 = FormWebQueryDateUtil.formatDate(value, false);
+            value = date1 + ">" + nowDate;
+            reQuery = value + option + filed;
+        }
+
+        else if (orgOption.equals("<")) {
+
+            SimpleDateFormat sf1 = new SimpleDateFormat("yyyyMMdd");
+            String lastDate = "18000101";
+            String dateStr1 = FormWebQueryDateUtil.formatDate(value, false);
+            try {
+                Date date1 = sf1.parse(dateStr1);
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(date1);
+                calendar.add(Calendar.DATE, -1);
+                dateStr1 = sf1.format(calendar.getTime());
+            } catch (Exception e) {
+            }
+            value = lastDate + ">" + dateStr1;
+            reQuery = value + option + filed;
+        } else if (orgOption.equals("<=")) {
+            String lastDate = "18000101";
+            SimpleDateFormat sf1 = new SimpleDateFormat("yyyyMMdd");
+            String date1 = FormWebQueryDateUtil.formatDate(value, true);
+            value = lastDate + ">" + date1;
+            reQuery = value + option + filed;
+        }
+
+        return reQuery;
+    }
+
+
+}

+ 27 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebIC2Query.java

@@ -0,0 +1,27 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.exception.XiaoShiException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+@Slf4j
+@Component
+public class GetWebIC2Query implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value =webQueryConfigVO.getValue();
+        if(value.length()!=3){
+            throw  new XiaoShiException("ipc大类查询格式错误");
+        }
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        return value +option+ filed;
+    }
+
+
+}

+ 27 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebIC3Query.java

@@ -0,0 +1,27 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.exception.XiaoShiException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+@Slf4j
+@Component
+public class GetWebIC3Query implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value =webQueryConfigVO.getValue();
+        if(value.length()!=4){
+            throw  new XiaoShiException("ipc小类查询格式错误");
+        }
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        return value +option+ filed;
+    }
+
+
+}

+ 27 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebIC4Query.java

@@ -0,0 +1,27 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.exception.XiaoShiException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+@Slf4j
+@Component
+public class GetWebIC4Query implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value =webQueryConfigVO.getValue();
+        if(value.length()!=9){
+            throw  new XiaoShiException("ipc大组查询格式错误");
+        }
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        return value +option+ filed;
+    }
+
+
+}

+ 24 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebIC5Query.java

@@ -0,0 +1,24 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.exception.XiaoShiException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+
+@Slf4j
+@Component
+public class GetWebIC5Query implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value =webQueryConfigVO.getValue();
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        return value +option+ filed;
+    }
+
+
+}

+ 49 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebNosQuery.java

@@ -0,0 +1,49 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.common.model.cronModel.SqlObject;
+import cn.cslg.pas.common.utils.StringUtils;
+import cn.cslg.pas.factorys.getSqlFactorys.GetSqlObject;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetWebNosQuery implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value =webQueryConfigVO.getValue();
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        value =value.trim();
+        String[] valueStrs =value.split("[,,]|(\\r\\n)+|\\r+|\\n+");
+
+        List<String> queryLists=new ArrayList<>();
+
+        for(int i=0;i< valueStrs.length;i++){
+            valueStrs[i] =valueStrs[i].toUpperCase();
+            if(valueStrs[i].startsWith("ZL"))
+            {
+              valueStrs[i] =valueStrs[i].replace("ZL","CN");
+            }
+            String partQuery=valueStrs[i]+option+filed;
+            queryLists.add(partQuery);
+        }
+     String reQuery=   StringUtils.join(queryLists,"+");
+
+        if(valueStrs.length>1){
+            reQuery ="("+reQuery+")";
+        }
+        return reQuery;
+    }
+
+
+}

+ 55 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebPatentNosQuery.java

@@ -0,0 +1,55 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.common.utils.PatentNoUtil;
+import cn.cslg.pas.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetWebPatentNosQuery implements FormWebQueryFieldImp {
+    private static List<String> fields = new ArrayList<String>(Arrays.asList("ANO", "GN", "PN", "PR"));
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value = webQueryConfigVO.getValue();
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        value = value.trim();
+        String[] valueStrs = value.split("[,,]|(\\r\\n)+|\\r+|\\n+");
+        List<String> queryLists = new ArrayList<>();
+
+        for (int i = 0; i < valueStrs.length; i++) {
+            String valueStr = valueStrs[i];
+            valueStr = valueStr.toUpperCase();
+            if (valueStr.startsWith("ZL")) {
+                valueStr = valueStr.replace("ZL", "CN");
+            }
+            StringBuilder stringBuilder = new StringBuilder();
+            stringBuilder.append("(");
+            stringBuilder.append(PatentNoUtil.formatApNo(valueStr) + option + "AN");
+            for (String item : fields) {
+                stringBuilder.append("+");
+                stringBuilder.append(valueStr + option + item);
+            }
+            stringBuilder.append(")");
+            queryLists.add(stringBuilder.toString());
+        }
+        String reQuery = StringUtils.join(queryLists, "+");
+
+        if (valueStrs.length > 1) {
+            reQuery = "(" + reQuery + ")";
+        }
+        return reQuery;
+    }
+
+
+}

+ 40 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebPersonQuery.java

@@ -0,0 +1,40 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Component
+public class GetWebPersonQuery implements FormWebQueryFieldImp {
+
+    @Override
+    public String getWebQuery(WebQueryConfigVO webQueryConfigVO) {
+        String value =webQueryConfigVO.getValue();
+        String filed = webQueryConfigVO.getSqlField();
+        String option = webQueryConfigVO.getOption();
+        if (option.equals("=")) {
+            option = "/";
+        }
+        value =value.trim();
+        String[] valueStrs =value.split("\\r\\n|,|\\r|\\n|,");
+        List<String> queryLists=new ArrayList<>();
+
+        for(int i=0;i< valueStrs.length;i++){
+            String partQuery=valueStrs[i]+option+filed;
+            queryLists.add(partQuery);
+        }
+     String reQuery=   StringUtils.join(queryLists,"+");
+
+        if(valueStrs.length>1){
+            reQuery ="("+reQuery+")";
+        }
+        return reQuery;
+    }
+
+
+}

+ 19 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/GetWebQueryFactory.java

@@ -0,0 +1,19 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import cn.cslg.pas.factorys.getSqlFactorys.GetSqlObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+@Component
+public class GetWebQueryFactory {
+    @Autowired
+    private Map<String, FormWebQueryFieldImp> getWebQueryMap;
+
+
+    public FormWebQueryFieldImp getClass(String sqlType) {
+        FormWebQueryFieldImp bean1 = getWebQueryMap.get(sqlType);
+        return bean1;
+    }
+}

+ 28 - 0
src/main/java/cn/cslg/pas/factorys/WebQueryFactory/WebQueryConfigVO.java

@@ -0,0 +1,28 @@
+package cn.cslg.pas.factorys.WebQueryFactory;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.List;
+
+/**
+ * @author 沈永艺
+ * @date 2022-8-4
+ * @description 人员类 前台对应实体
+ */
+
+@Data
+@Accessors(chain = true)
+public class WebQueryConfigVO {
+    /**
+     * ID
+     */
+    private String field;
+    private String sqlField;
+    private String value;
+    private String sqlClass;
+    private String option;
+    private Boolean ifSearch;
+    private Boolean ifAsCondition;
+
+}

+ 3 - 8
src/main/java/cn/cslg/pas/service/business/AsInvalidReasonHistoryService.java

@@ -97,11 +97,9 @@ public class AsInvalidReasonHistoryService extends ServiceImpl<AsInvalidReasonHi
         } else {
             BeanUtils.copyProperties(asInvalidReasonHistoryDTO, asInvalidReasonHistory);
             PersonnelVO personnelVO = new PersonnelVO();
-            try {
+
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new XiaoShiException("未查询到当前登陆人");
-            }
+
             asInvalidReasonHistory.setCreateId(personnelVO.getId());
             asInvalidReasonHistory.setTenantId(personnelVO.getTenantId());
             asInvalidReasonHistory.insert();
@@ -125,11 +123,8 @@ public class AsInvalidReasonHistoryService extends ServiceImpl<AsInvalidReasonHi
             throw new XiaoShiException("入参为空");
         }
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未查询到当前登陆人");
-        }
+
         LambdaQueryWrapper<AsInvalidReasonHistory> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(AsInvalidReasonHistory::getPatentNo, patentNo)
                 .eq(AsInvalidReasonHistory::getTenantId, personnelVO.getTenantId())

+ 0 - 4
src/main/java/cn/cslg/pas/service/business/AssoProjectEventService.java

@@ -27,11 +27,7 @@ public class AssoProjectEventService extends ServiceImpl<AssoProjectEventMapper,
 
     public void addAssoEventProject(List<ProjectEventDTO> events, Integer projectId, Integer type) {
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
         List<AssoProjectEvent> assoProjectEvents = new ArrayList<>();
         //遍历传入的事件集合
         for (ProjectEventDTO projectEventDTO : events) {

+ 1 - 4
src/main/java/cn/cslg/pas/service/business/AssoTaskFileService.java

@@ -57,11 +57,8 @@ public class AssoTaskFileService extends ServiceImpl<AssoTaskFileMapper, AssoTas
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         List<String> fileGuids = assoTaskFileDTO.getFileGuids();
         List<AssoTaskFile> assoTaskFiles = new ArrayList<>();
         for (String item : fileGuids) {

+ 1 - 4
src/main/java/cn/cslg/pas/service/business/AvoidDesignService.java

@@ -56,11 +56,8 @@ public class AvoidDesignService extends ServiceImpl<AvoidDesignMapper, AvoidDesi
     public List<Integer> addAvoidDesign(AvoidDesignInsertDTO avoidDesignInsertDTO) {
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         Integer projectId = avoidDesignInsertDTO.getProjectId();
         if (projectId == null) {
             throw new XiaoShiException("projectId不能为空");

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/AvoidDesignWholeService.java

@@ -65,11 +65,9 @@ public class AvoidDesignWholeService extends ServiceImpl<AvoidDesignWholeMapper,
         BeanUtils.copyProperties(avoidDesignWholeDTO, avoidDesignWhole);
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         avoidDesignWhole.setCreateId(personnelVO.getId());
         avoidDesignWhole.insert();
         return avoidDesignWhole.getId();

+ 2 - 12
src/main/java/cn/cslg/pas/service/business/CustomAnalyseService.java

@@ -63,11 +63,7 @@ public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper,
     public List<SelectCustomAnalyseListDTO> queryAnalyseGroup(SelectCustomAnalyseVO vo) {
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未登录");
-        }
 
         SelectAnalyseVO analyseVO = new SelectAnalyseVO();
         analyseVO.setProjectId(vo.getProjectId());
@@ -123,11 +119,8 @@ public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper,
         String uid = IdUtil.simpleUUID();
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未登录");
-        }
+
         CustomAnalysisItem item = new CustomAnalysisItem();
         BeanUtils.copyProperties(vo, item);
         item.setUid(uid);
@@ -164,11 +157,8 @@ public class CustomAnalyseService extends ServiceImpl<CustomAnalysisItemMapper,
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未登录");
-        }
+
 
         CustomAnalysisItem item = customAnalysisItemMapper.selectById(vo.getId());
         BeanUtils.copyProperties(vo, item);

+ 0 - 5
src/main/java/cn/cslg/pas/service/business/CustomAnalysisItemSchemaService.java

@@ -73,12 +73,7 @@ public class CustomAnalysisItemSchemaService extends ServiceImpl<CustomAnalysisI
     public void add(SchemaDimensionDTO dto, String uid) {
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
-
         List<CustomAnalysisItemSchema> customAnalysisItemSchema = new ArrayList<>();
         CustomAnalysisItemSchema d1 = new CustomAnalysisItemSchema();
         CustomAnalysisItemSchema d2 = new CustomAnalysisItemSchema();

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/CustomAnalysisItemSettingService.java

@@ -61,11 +61,9 @@ public class CustomAnalysisItemSettingService extends ServiceImpl<CustomAnalysis
 
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         CustomAnalysisItemSetting customAnalysisItemSetting = new CustomAnalysisItemSetting();
         BeanUtils.copyProperties(setting, customAnalysisItemSetting);
         customAnalysisItemSetting.setShow1(setting.getShow());

+ 1 - 4
src/main/java/cn/cslg/pas/service/business/CustomAnalysisItemSourceService.java

@@ -130,11 +130,8 @@ public class CustomAnalysisItemSourceService extends ServiceImpl<CustomAnalysisI
                 .eq(CustomAnalysisItemSource::getDimension, sourceDataVO.getDimension()));
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         List<CustomAnalysisItemSource> list = new ArrayList<>();
         PersonnelVO finalPersonnelVO = personnelVO;
         sourceDataVO.getSource().forEach(source -> {

+ 1 - 4
src/main/java/cn/cslg/pas/service/business/CustomFieldService.java

@@ -163,11 +163,8 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
         }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         CustomField customField = new CustomField();
         BeanUtils.copyProperties(customFieldDTO, customField);
         customField.setCreateId(personnelVO.getId());

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/CustomOptionService.java

@@ -88,11 +88,9 @@ public class CustomOptionService extends ServiceImpl<CustomOptionMapper, CustomO
             }
             //获取登录人信息
             PersonnelVO personnelVO = new PersonnelVO();
-            try {
+
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new UnLoginException("未登录");
-            }
+
             CustomOption customOption = new CustomOption();
             BeanUtils.copyProperties(customOptionDTO, customOption);
             customOption.setCreateId(personnelVO.getId());

+ 0 - 4
src/main/java/cn/cslg/pas/service/business/EventService.java

@@ -101,11 +101,7 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
     public Integer addMessage(Object object, List<MultipartFile> files) {
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
         this.checkParameter(object);
         EventDTO eventDTO = (EventDTO) object;
 

+ 6 - 16
src/main/java/cn/cslg/pas/service/business/FTOCompareRecordService.java

@@ -311,11 +311,9 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         }
         // 获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         // 根据taskId查询报告id
         Integer projectId = tortCompareRecordService.getProjectIdByTaskId(taskId);
         // 重新排序
@@ -375,11 +373,8 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         Integer featureId = tortDTO.getFeatureId();
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         if (tortDTO.getCompareResult() != null || StringUtils.isNotBlank(tortDTO.getCompareDescription()) || StringUtils.isNotBlank(tortDTO.getTargetDescription())) {
             //插入对比结果
             FTOCompareRecord ftoCompareRecord = new FTOCompareRecord();
@@ -421,11 +416,8 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         List<TortDTO> tortDTOS = tortCompareRecordDTO.getTortDTOS();
         List<Integer> ids = new ArrayList<>();
         //传入对比结果不为空
@@ -705,11 +697,9 @@ public class FTOCompareRecordService extends ServiceImpl<FTOCompareRecordMapper,
         }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         try {
             Integer lastTaskId = this.getAssoTaskId(patentNo, taskId);
             //首先是根据projectId,以及ifOriginal为false、ifFinal为true这几个条件删除表中的最终数据(最开始的数据)

+ 3 - 8
src/main/java/cn/cslg/pas/service/business/HightlightTemplateService.java

@@ -55,11 +55,9 @@ public class HightlightTemplateService extends ServiceImpl<HightlightTemplateMap
             throw new XiaoShiException("入参为空");
         }
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未查询到当前登陆人");
-        }
+
         Integer id = hightlightTemplateDTO.getId();
         HightlightTemplate hightlightTemplate = new HightlightTemplate();
         if (id != null) {
@@ -97,11 +95,8 @@ public class HightlightTemplateService extends ServiceImpl<HightlightTemplateMap
             throw new XiaoShiException("入参为空");
         }
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未查询到当前登陆人");
-        }
+
 
         List<HightlightTemplateVO> hightlightTemplateVOS = new ArrayList<>();
         LambdaQueryWrapper<HightlightTemplate> queryWrapper = new LambdaQueryWrapper<>();

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/ImportTaskService.java

@@ -129,11 +129,9 @@ public class ImportTaskService extends ServiceImpl<ImportTaskMapper, ImportTask>
         ImportTaskDTO importTaskDTO = (ImportTaskDTO) object;
 
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
 
         if (importTaskDTO.getType() == null) {
             importTaskDTO.setType(4);

+ 5 - 12
src/main/java/cn/cslg/pas/service/business/InvalidRecordService.java

@@ -113,11 +113,9 @@ public class InvalidRecordService extends ServiceImpl<InvalidRecordMapper, Inval
         } else {
             BeanUtils.copyProperties(invalidRecordDTO, invalidRecord);
             PersonnelVO personnelVO = new PersonnelVO();
-            try {
+
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new XiaoShiException("未查询到当前登陆人");
-            }
+
             invalidRecord.setCreateId(personnelVO.getId());
             invalidRecord.setTenantId(personnelVO.getTenantId());
             invalidRecord.insert();
@@ -143,11 +141,9 @@ public class InvalidRecordService extends ServiceImpl<InvalidRecordMapper, Inval
         }
         //查询当前登陆人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未查询到当前登陆人");
-        }
+
         Integer tenantId = personnelVO.getTenantId();
 
         LambdaQueryWrapper<InvalidRecord> queryWrapper = new LambdaQueryWrapper<>();
@@ -251,11 +247,8 @@ public class InvalidRecordService extends ServiceImpl<InvalidRecordMapper, Inval
 
     public List<InvalidRecordVO> findInvalidRecord(String patentNo, List<InvalidRecordVO> invalidRecordVOS) {
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未查询到当前登陆人");
-        }
+
         Integer tenantId = personnelVO.getTenantId();
         List<InvalidRecordVO> finalVOS = new ArrayList<>();
         finalVOS.addAll(invalidRecordVOS);

+ 2 - 8
src/main/java/cn/cslg/pas/service/business/LitigationHistoryService.java

@@ -86,11 +86,7 @@ public class LitigationHistoryService extends ServiceImpl<LitigationHistoryMappe
         } else {
             BeanUtils.copyProperties(litigationHistoryDTO, litigationHistory);
             PersonnelVO personnelVO = new PersonnelVO();
-            try {
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new XiaoShiException("未查询到当前登陆人");
-            }
             litigationHistory.setCreateId(personnelVO.getId());
             litigationHistory.setTenantId(personnelVO.getTenantId());
             litigationHistory.insert();
@@ -118,11 +114,9 @@ public class LitigationHistoryService extends ServiceImpl<LitigationHistoryMappe
         Integer size = otherPatentInfoDTO.getSize();
         Page<LitigationHistory> page = new Page<>(current, size);
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未查询到当前登陆人");
-        }
+
         LambdaQueryWrapper<LitigationHistory> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(LitigationHistory::getPatentNo, patentNo)
                 .eq(LitigationHistory::getTenantId, personnelVO.getTenantId())

+ 3 - 8
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -97,11 +97,8 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         Integer projectId = vo.getProjectId();
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未登录");
-        }
+
         //判断是否名称重复
         LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
                 .eq(MergePerson::getProjectId, vo.getProjectId())
@@ -479,11 +476,9 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
         Integer type = vo.getType();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未登录");
-        }
+
         //判断是否名称重复
         LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
                 .eq(MergePerson::getProjectId, vo.getProjectId())

+ 2 - 8
src/main/java/cn/cslg/pas/service/business/OtherReferencesService.java

@@ -84,11 +84,9 @@ public class OtherReferencesService extends ServiceImpl<OtherReferencesMapper, O
         } else {
             BeanUtils.copyProperties(otherReferencesDTO, otherReferences);
             PersonnelVO personnelVO = new PersonnelVO();
-            try {
+
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new XiaoShiException("未查询到当前登陆人");
-            }
+
             otherReferences.setCreateId(personnelVO.getId());
             otherReferences.setTenantId(personnelVO.getTenantId());
             otherReferences.insert();
@@ -140,11 +138,7 @@ public class OtherReferencesService extends ServiceImpl<OtherReferencesMapper, O
         Integer size = otherPatentInfoDTO.getSize();
         Page<OtherReferences> page = new Page<>(current, size);
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未查询到当前登陆人");
-        }
         LambdaQueryWrapper<OtherReferences> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(OtherReferences::getPatentNo, patentNo)
                 .eq(OtherReferences::getTenantId, personnelVO.getTenantId());

+ 41 - 5
src/main/java/cn/cslg/pas/service/business/PatentDigProjectFilesService.java

@@ -140,11 +140,7 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
         List<Integer> ids = new ArrayList<>();
 
         if (patentDigProjectFilesDTO.getFileGuids() != null && !patentDigProjectFilesDTO.getFileGuids().isEmpty()) {
@@ -317,6 +313,10 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
 
     /**
      * 查询专利挖掘项目所有文件
+     * 来源:1 PatentDigProjectFiles
+     *      2 AssoHandleResultFile
+     *      3 AssoProjectFile
+     *      4 AssoTaskFile
      *
      * @param queryPatentDigProjectFilesDTO
      */
@@ -347,6 +347,7 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
             patentDigProjectFilesList.forEach(item -> {
                 PatentDigProjectFilesVO patentDigProjectFilesVO = new PatentDigProjectFilesVO();
                 BeanUtils.copyProperties(item, patentDigProjectFilesVO);
+                patentDigProjectFilesVO.setSource(1);
                 patentDigProjectFilesVOS.add(patentDigProjectFilesVO);
             });
         }
@@ -378,6 +379,7 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
                     if (projectTask != null) {
                         patentDigProjectFilesVO.setProcessId(projectTask.getProcessId());
                     }
+                    patentDigProjectFilesVO.setSource(4);
                     patentDigProjectFilesVOS.add(patentDigProjectFilesVO);
                 });
             }
@@ -398,9 +400,9 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
                     patentDigProjectFilesVO.setCreateId(item.getCreateId());
                     patentDigProjectFilesVO.setProcessId(processId);
                     patentDigProjectFilesVO.setCreateTime(item.getCreateTime());
+                    patentDigProjectFilesVO.setSource(2);
                     patentDigProjectFilesVOS.add(patentDigProjectFilesVO);
                 });
-
             }
         }
         //查询项目下的文件
@@ -415,6 +417,7 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
                     patentDigProjectFilesVO.setFileGuid(item.getFileGuid());
                     patentDigProjectFilesVO.setCreateId(item.getCreateId());
                     patentDigProjectFilesVO.setCreateTime(item.getCreateTime());
+                    patentDigProjectFilesVO.setSource(3);
                     patentDigProjectFilesVOS.add(patentDigProjectFilesVO);
                 });
             }
@@ -426,4 +429,37 @@ public class PatentDigProjectFilesService extends ServiceImpl<PatentDigProjectFi
         }
         return patentDigProjectFilesVOS;
     }
+
+    /**
+     * 删除
+     * 来源:1 PatentDigProjectFiles
+     *      2 AssoHandleResultFile
+     *      3 AssoProjectFile
+     *      4 AssoTaskFile
+     * @param source
+     * @param fileGuid
+     */
+    public void delete(Integer source, String fileGuid) {
+        if (fileGuid != null && !fileGuid.trim().isEmpty()) {
+            if (source != null) {
+                if (source.equals(1)) {
+                    LambdaQueryWrapper<PatentDigProjectFiles> queryWrapper = new LambdaQueryWrapper<>();
+                    queryWrapper.eq(PatentDigProjectFiles::getFileGuid, fileGuid);
+                    this.remove(queryWrapper);
+                } else if (source.equals(2)) {
+                    LambdaQueryWrapper<AssoHandleResultFile> queryWrapper = new LambdaQueryWrapper<>();
+                    queryWrapper.eq(AssoHandleResultFile::getFileGuid, fileGuid);
+                    assoHandleResultFileService.remove(queryWrapper);
+                } else if (source.equals(3)) {
+                    LambdaQueryWrapper<AssoProjectFile> queryWrapper = new LambdaQueryWrapper<>();
+                    queryWrapper.eq(AssoProjectFile::getFileGuid, fileGuid);
+                    assoProjectFileService.remove(queryWrapper);
+                } else if (source.equals(4)) {
+                    LambdaQueryWrapper<AssoTaskFile> queryWrapper = new LambdaQueryWrapper<>();
+                    queryWrapper.eq(AssoTaskFile::getFileGuid, fileGuid);
+                    assoTaskFileService.remove(queryWrapper);
+                }
+            }
+        }
+    }
 }

+ 1 - 8
src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java

@@ -186,11 +186,8 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
     public Object addMessage(Object object) {
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
         PatentDigProjectDTO patentDigProjectDTO = (PatentDigProjectDTO) object;
         PatentDigProject patentDigProject = new PatentDigProject();
@@ -339,11 +336,7 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
     public Object updateMessage(Object object) {
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
         String userId = personnelVO.getId();
         PatentDigProjectUpdateDTO projectUpdateDTO = (PatentDigProjectUpdateDTO) object;
         PatentDigProject patentDigProject = new PatentDigProject();

+ 199 - 2
src/main/java/cn/cslg/pas/service/business/PatentExportService.java

@@ -67,6 +67,199 @@ public class PatentExportService {
     @Autowired
     private EsCustomFieldService esCustomFieldService;
 
+//    /**
+//     * 导出专利
+//     *
+//     * @param exportTask
+//     * @return
+//     * @throws IOException
+//     */
+//    @Async
+//    public void exportPatent(ExportTaskDTO exportTask) throws IOException {
+//        EsCustomFieldBatchVO EsVO = exportTask.getEsVO();
+//        try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
+//            //字段是否被选择
+//            String esSelected = JsonUtils.objectToJson(EsVO.getSelected());
+//            //专利字段的集合
+//            List<PatentExportVO> selected = Optional.ofNullable(JsonUtils.jsonToList(esSelected, PatentExportVO.class))
+//                    .orElse(new ArrayList<>());
+//
+//            if (selected.isEmpty()) {
+//                throw new IllegalArgumentException("没有选择要导出的字段数据");
+//            }
+//
+//            //key的集合(标头:例如patentNo)
+//            //过滤出被选择的字段
+//            List<PatentExportVO> patentExportVOS = selected.stream()
+//                    .filter(PatentExportVO::getSelected)
+//                    .collect(Collectors.toList());
+//            List<String> types = Arrays.asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10");
+//            List<InnerFields> innerFieldsList = new ArrayList<>();
+//            for (PatentExportVO patentExportVO : patentExportVOS) {
+//                if (types.contains(patentExportVO.getType())) {
+//                    InnerFields innerFields = new InnerFields();
+//                    innerFields.setFieldId(patentExportVO.getValue());
+//                    innerFields.setFieldType(Integer.parseInt(patentExportVO.getType()));
+//                    innerFieldsList.add(innerFields);
+//                }
+//            }
+//            //name的集合
+//            List<String> headers = selected.stream().filter(PatentExportVO::getSelected).map(PatentExportVO::getName).distinct().collect(Collectors.toList());
+//            //新建工作簿
+//            HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
+//            //新建sheet页
+//            HSSFSheet sheet = hssfWorkbook.createSheet();
+//            sheet.setDefaultColumnWidth(30);
+//            //新建标头行
+//            HSSFRow headerRow = sheet.createRow(0);
+//            headerRow.setHeight((short) 500);
+//            //新建标头行格式
+//            HSSFCellStyle headerCellStyle = hssfWorkbook.createCellStyle();
+//            //新建普通行格式
+//            HSSFCellStyle commonCellStyle = hssfWorkbook.createCellStyle();
+//            //遍历设置标头
+//            for (int i = 0; i < headers.size(); i++) {
+//                HSSFCell cell = headerRow.createCell(i);
+//                ExcelUtils.setExcelCellStyle(headerCellStyle);
+//                headerCellStyle.setAlignment(HorizontalAlignment.CENTER);
+//                headerCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+//                headerCellStyle.setFillForegroundColor(HSSFColor.HSSFColorPredefined.SKY_BLUE.getIndex());
+//                headerCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+//                headerCellStyle.setWrapText(true);
+//                cell.setCellStyle(headerCellStyle);
+//                cell.setCellValue(headers.get(i));
+//            }
+//            //根据projectId查询专利信息
+//            List<String> patentNos = pdfExportFirstPageService.getPatentNo(EsVO);
+//            if (patentNos.isEmpty()) {
+//                throw new XiaoShiException("未获取到专利信息");
+//            }
+//            Integer total = patentNos.size();
+//            Integer defaultNum = 0;
+//            for (int i = 0; i < patentNos.size(); i++) {
+//                String patentNo = patentNos.get(i);
+//                Map<String, Object> map = new LinkedHashMap<>();
+//                PatentNoVO patentNoVO = new PatentNoVO();
+//                patentNoVO.setPatentNo(patentNo);
+//                patentNoVO.setProjectId(exportTask.getProjectId());
+//                PatentColumnDTO patent = patentService.selectPatentDetail(patentNoVO);
+//                if (patent == null) {
+//                    defaultNum++;
+//                    continue;
+//                }
+//
+//                EsQueryPatentFieldsDTO esQueryPatentFieldsDTO = new EsQueryPatentFieldsDTO();
+//                esQueryPatentFieldsDTO.setProjectId(exportTask.getProjectId());
+//                esQueryPatentFieldsDTO.setTaskId(EsVO.getTaskId());
+//                esQueryPatentFieldsDTO.setPatentNos(patentNos);
+//                esQueryPatentFieldsDTO.setInnerFields(innerFieldsList);
+//                List<EsPatentFieldsVO> list = esCustomFieldService.getPatentFields(esQueryPatentFieldsDTO);
+//
+//
+//                for (int j = 0; j < patentExportVOS.size(); j++) {
+//                    String column = patentExportVOS.get(j).getValue();
+//                    String name = patentExportVOS.get(j).getName();
+//                    String type = patentExportVOS.get(j).getType();
+//
+//                    if (types.contains(type)) {
+//                        EsPatentFieldsVO esPatentFieldsVO = list.stream()
+//                                .filter(item -> item.getPatentNo().equals(patentNo))
+//                                .findFirst()
+//                                .orElse(null);
+//                        if (esPatentFieldsVO != null) {
+//                            List<InnerPatentFieldsVO> innerClassFields = esPatentFieldsVO.getInnerClassFields();
+//                            if (!innerClassFields.isEmpty()) {
+//                                InnerPatentFieldsVO innerPatentFieldsVO = innerClassFields.stream()
+//                                        .filter(item -> item.getField().equals(column) && item.getFieldType().equals(Integer.parseInt(type)))
+//                                        .findFirst()
+//                                        .orElse(null);
+//                                if (innerPatentFieldsVO != null) {
+//                                    List<FieldValueVO> fieldValueVOS = innerPatentFieldsVO.getFieldValueVOS();
+//                                    if (!fieldValueVOS.isEmpty()) {
+//                                        StringBuffer sb = new StringBuffer();
+//                                        for (FieldValueVO fieldValueVO : fieldValueVOS) {
+//                                            String valueStr = fieldValueVO.getValue();
+//                                            sb.append(valueStr);
+//                                        }
+//                                        map.put(name, sb.toString());
+//                                    }
+//                                }
+//                            }
+//                        }
+//                    } else {
+//                        // 使用反射获取属性值
+//                        Object value = GenerateObjectUtil.getPropertyValue(patent, column);
+//                        if (value != null) {
+//                            String json = CommonService.readJsonFile("patent.json");
+//                            List<PatentConfigVO> patentConfigVOS = JSON.parseArray(json, PatentConfigVO.class);
+//                            PatentConfigVO patentConfigVO = patentConfigVOS.stream().filter(item -> item.getValue().equals(column)).findFirst().orElse(null);
+//                            String exportClass = patentConfigVO.getExportClass();
+//                            GetValueImp getValueImp = patentExportFactory.getClass(exportClass);
+//                            if (getValueImp != null) {
+//                                String reValue = getValueImp.getValue(value);
+//                                map.put(name, reValue);
+//                            }
+//                        }
+//                    }
+//                }
+//                //新建一普通行
+//                HSSFRow row = sheet.createRow(i + 1);
+//                row.setHeight((short) 800);
+//                for (String key : map.keySet()) {
+//                    int index = headers.indexOf(key);
+//                    if (index != -1) {
+//                        HSSFCell cell = row.createCell(index);
+//                        ExcelUtils.setExcelCellStyle(commonCellStyle);
+//                        commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+//                        commonCellStyle.setWrapText(true);
+//                        cell.setCellStyle(commonCellStyle);
+//                        if (StringUtils.isNotNull(map.get(key))) {
+//                            cell.setCellValue(String.valueOf(map.get(key)));
+//                        }
+//                    }
+//                }
+//                WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
+//                webSocketMessageVO.setProjectId(EsVO.getProjectId());
+//                webSocketMessageVO.setCreateId(exportTask.getCreateId());
+//                webSocketMessageVO.setCode(602);
+//                webSocketMessageVO.setAllNum(total);
+//                webSocketMessageVO.setCurrentNum(i+1);
+//                webSocketMessageVO.setTaskId(exportTask.getTaskId());
+//                webSocketMessageVO.setState(1);
+//                messageService.sendPatentExportMessage(webSocketMessageVO);
+//            }
+//            hssfWorkbook.write(out);
+//            WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
+//            webSocketMessageVO.setProjectId(EsVO.getProjectId());
+//            webSocketMessageVO.setCreateId(exportTask.getCreateId());
+//            webSocketMessageVO.setCode(603);
+//            webSocketMessageVO.setAllNum(total);
+//            webSocketMessageVO.setCurrentNum(total);
+//            webSocketMessageVO.setTaskId(exportTask.getTaskId());
+//            webSocketMessageVO.setState(2);
+//            messageService.sendPatentExportMessage(webSocketMessageVO);
+//            String fileGuid = "";
+//            if (out.toByteArray() != null && out.toByteArray().length != 0) {
+//                fileGuid = parseByteToFileUtils.uploadFile(out.toByteArray(), 1);
+//            }
+//            exportTask.setFileGuid(fileGuid);
+//            exportTask.setAllNum(total);
+//            exportTask.setDefaultNum(defaultNum);
+//            exportTask.setDoneNum(total - defaultNum);
+//            exportTask.setState(2);
+//            Integer taskId = importTaskService.updateExportTask(exportTask);
+//            if (taskId == null) {
+//                throw new XiaoShiException("导出记录失败");
+//            }
+//
+//        } catch (FileNotFoundException e) {
+//            throw new FileNotFoundException();
+//        } catch (Exception e) {
+//
+//        }
+//    }
+
+
     /**
      * 导出专利
      *
@@ -78,16 +271,18 @@ public class PatentExportService {
     public void exportPatent(ExportTaskDTO exportTask) throws IOException {
         EsCustomFieldBatchVO EsVO = exportTask.getEsVO();
         try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
+            //字段是否被选择
             String esSelected = JsonUtils.objectToJson(EsVO.getSelected());
-            //selected字符串转PatentExportVO集合
+            //专利字段的集合
             List<PatentExportVO> selected = Optional.ofNullable(JsonUtils.jsonToList(esSelected, PatentExportVO.class))
                     .orElse(new ArrayList<>());
-            //导出文件名
+
             if (selected.isEmpty()) {
                 throw new IllegalArgumentException("没有选择要导出的字段数据");
             }
 
             //key的集合(标头:例如patentNo)
+            //过滤出被选择的字段
             List<PatentExportVO> patentExportVOS = selected.stream()
                     .filter(PatentExportVO::getSelected)
                     .collect(Collectors.toList());
@@ -103,6 +298,7 @@ public class PatentExportService {
             }
             //name的集合
             List<String> headers = selected.stream().filter(PatentExportVO::getSelected).map(PatentExportVO::getName).distinct().collect(Collectors.toList());
+            long startTime = System.currentTimeMillis();
             //新建工作簿
             HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
             //新建sheet页
@@ -227,6 +423,7 @@ public class PatentExportService {
                 messageService.sendPatentExportMessage(webSocketMessageVO);
             }
             hssfWorkbook.write(out);
+            log.info("导出excel结束,总数据量={},耗时={}ms", total, System.currentTimeMillis() - startTime);
             WebSocketMessageVO webSocketMessageVO = new WebSocketMessageVO();
             webSocketMessageVO.setProjectId(EsVO.getProjectId());
             webSocketMessageVO.setCreateId(exportTask.getCreateId());

+ 3 - 8
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -255,11 +255,8 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
         if(patentProjectDTO.getPersonId()==null) {
-            try {
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new UnLoginException("未登录");
-            }
+
         }
         else {
             personnelVO.setId(patentProjectDTO.getPersonId());
@@ -439,11 +436,9 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         //TODO 更新基本信息
         //根据传入对象id查询project对象
         Project project = projectService.getById(updatePatentProjectDTO.getId());

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/PermissionRecordService.java

@@ -63,11 +63,9 @@ public class PermissionRecordService extends ServiceImpl<PermissionRecordMapper,
         } else {
             BeanUtils.copyProperties(permissionRecordDTO, permissionRecord);
             PersonnelVO personnelVO = new PersonnelVO();
-            try {
+
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new XiaoShiException("未查询到当前登陆人");
-            }
+
             permissionRecord.setTenantId(personnelVO.getTenantId());
             permissionRecord.setCreateId(personnelVO.getId());
             permissionRecord.insert();

+ 3 - 8
src/main/java/cn/cslg/pas/service/business/ProductCategoryService.java

@@ -103,11 +103,8 @@ public class ProductCategoryService extends ServiceImpl<ProductCategoryMapper, P
     public Object addMessage(Object object, List<MultipartFile> files) {
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         //object to productCategoryDTO
         ProductCategoryDTO productCategoryDTO = (ProductCategoryDTO)object;
         //检测名称是否不规范
@@ -245,11 +242,9 @@ public class ProductCategoryService extends ServiceImpl<ProductCategoryMapper, P
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         ProductCategory productCategory = this.getById(updateProductCategoryDTO.getId());
         //检测名称是否不规范
         updateProductCategoryDTO.setName(updateProductCategoryDTO.getName().trim());

+ 3 - 4
src/main/java/cn/cslg/pas/service/business/ProductMarketDataService.java

@@ -124,11 +124,10 @@ public class ProductMarketDataService extends ServiceImpl<ProductMarketDataMappe
         BeanUtils.copyProperties(productMarketDataDTO, productMarketData);
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         productMarketData.setCreateId(personnelVO.getId());
         //数据入表
         productMarketData.insert();

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/ProductMessageService.java

@@ -65,11 +65,9 @@ public class ProductMessageService extends ServiceImpl<ProductMessageMapper, Pro
         }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         //判断产品id是否传入
         if (productMessageDTO.getId() != null) {
             //传入了id,执行更新操作

+ 4 - 8
src/main/java/cn/cslg/pas/service/business/ProductService.java

@@ -149,11 +149,9 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         //产品入库
         Product product = new Product();
         BeanUtils.copyProperties(productDTO, product);
@@ -274,11 +272,9 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
         }
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         Product product = this.getById(updateProductDTO.getId());
         //检测名称是否不规范
         updateProductDTO.setName(updateProductDTO.getName().trim());

+ 10 - 16
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -206,11 +206,9 @@ import java.util.stream.Collectors;
         projectTask.setStatus(2);
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         //设置任务的发起人
         projectTask.setCreateId(personnelVO.getId());
         projectTask.insert();
@@ -403,6 +401,7 @@ import java.util.stream.Collectors;
                                 BeanUtils.copyProperties(patentDigProjectFiles1, handleResultFileVO);
                                 handleResultFileVO.setGuid(patentDigProjectFiles1.getFileGuid());
                                 handleResultFileVO.setType(systemFile.getType());
+                                handleResultFileVO.setSource(1);
                                 handleResultFileVO.setOriginalName(systemFile.getOriginalName());
                             }
                             handleResultFileVOS.add(handleResultFileVO);
@@ -492,6 +491,7 @@ import java.util.stream.Collectors;
                     if (systemFile != null) {
                         BeanUtils.copyProperties(assoHandleResultFile, handleResultFileVO);
                         handleResultFileVO.setGuid(assoHandleResultFile.getFileGuid());
+                        handleResultFileVO.setSource(2);
                         handleResultFileVO.setType(systemFile.getType());
                         handleResultFileVO.setOriginalName(systemFile.getOriginalName());
                     }
@@ -853,11 +853,9 @@ import java.util.stream.Collectors;
         tortTaskDTO.setType(4);
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         ProjectTask projectTask = new ProjectTask();
         BeanUtils.copyProperties(tortTaskDTO, projectTask);
         projectTask.setCreateId(personnelVO.getId());
@@ -1112,11 +1110,9 @@ import java.util.stream.Collectors;
         tortTaskDTO.setType(4);
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         ProjectTask projectTask = new ProjectTask();
         BeanUtils.copyProperties(tortTaskDTO, projectTask);
         projectTask.setCreateId(personnelVO.getId());
@@ -1312,11 +1308,9 @@ import java.util.stream.Collectors;
     public void checkProjectPerson(Integer type, String handler, Integer projectId, Integer taskId) {
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         LambdaQueryWrapper<AssoProjectPerson> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(AssoProjectPerson::getProjectId, projectId);
         List<AssoProjectPerson> assoProjectPeople = assoProjectPersonService.list(queryWrapper);

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/ReferencesService.java

@@ -68,11 +68,9 @@ public class ReferencesService extends ServiceImpl<ReferencesMapper, References>
         if (referencesDTO != null) {
             //获取登录人信息
             PersonnelVO personnelVO = new PersonnelVO();
-            try {
+
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new UnLoginException("未登录");
-            }
+
             References references = new References();
             if (StringUtils.isEmpty(referencesDTO.getFileGuid())) {
                 throw new XiaoShiException("附件不得为空");

+ 4 - 8
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -267,11 +267,9 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
 
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
 
         /**
@@ -459,11 +457,9 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
 
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
         /**
          * 装载project

+ 4 - 8
src/main/java/cn/cslg/pas/service/business/ReviewHistoryService.java

@@ -88,11 +88,9 @@ public class ReviewHistoryService extends ServiceImpl<ReviewHistoryMapper, Revie
         } else {
             BeanUtils.copyProperties(reviewHistoryDTO, reviewHistory);
             PersonnelVO personnelVO = new PersonnelVO();
-            try {
+
                 personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-            } catch (Exception e) {
-                throw new XiaoShiException("未查询到当前登陆人");
-            }
+
             reviewHistory.setCreateId(personnelVO.getId());
             reviewHistory.setTenantId(personnelVO.getTenantId());
             reviewHistory.insert();
@@ -120,11 +118,9 @@ public class ReviewHistoryService extends ServiceImpl<ReviewHistoryMapper, Revie
         Integer size = otherPatentInfoDTO.getSize();
         Page<ReviewHistory> page = new Page<>(current, size);
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未查询到当前登陆人");
-        }
+
         LambdaQueryWrapper<ReviewHistory> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ReviewHistory::getPatentNo, patentNo)
                 .eq(ReviewHistory::getTenantId, personnelVO.getTenantId())

+ 1 - 0
src/main/java/cn/cslg/pas/service/business/TaskHandleResultService.java

@@ -236,6 +236,7 @@ public class TaskHandleResultService extends ServiceImpl<TaskHandleResultMapper,
                         handleResultFileVO.setGuid(assoHandleResultFile.getFileGuid());
                         handleResultFileVO.setType(systemFile.getType());
                         handleResultFileVO.setOriginalName(systemFile.getOriginalName());
+                        handleResultFileVO.setSource(2);
                         handleResultFileVOS.add(handleResultFileVO);
                     }
                 }

+ 10 - 84
src/main/java/cn/cslg/pas/service/business/TortCompareRecordService.java

@@ -57,74 +57,7 @@ public class TortCompareRecordService extends ServiceImpl<FTOCompareRecordMapper
 
     @Autowired
     private PatentSplitMessageService patentSplitMessageService;
-//    /**
-//     * 新增侵权对比结果
-//     *
-//     * @param tortCompareRecordDTO
-//     * @return
-//     */
-//    public List<Integer> addTortCompareRecord(TortCompareRecordDTO tortCompareRecordDTO) {
-//        //获取登录人信息
-//        PersonnelVO personnelVO = new PersonnelVO();
-//        try {
-//            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-//        } catch (Exception e) {
-//            throw new UnLoginException("未登录");
-//        }
-//        Integer projectId = tortCompareRecordDTO.getProjectId();
-//        if (projectId == null) {
-//            throw new XiaoShiException("projectId不能为空");
-//        }
-//        //根据projctId查询出专利号
-//        String patentNo = projectTaskService.getPatentNoByProjectId(projectId);
-//        List<TortDTO> tortDTOS = tortCompareRecordDTO.getTortDTOS();
-//        //根据专利号和projectId,删除特征
-//        LambdaQueryWrapper<Feature> deleteWrapper = new LambdaQueryWrapper<>();
-//        deleteWrapper.eq(Feature::getPatentNo, patentNo)
-//                .eq(Feature::getProjectId, projectId);
-//        featureService.remove(deleteWrapper);
-//        //根据报告id删除侵权对比结果数据
-//        LambdaQueryWrapper<FTOCompareRecord> deleteWrapper2 = new LambdaQueryWrapper<>();
-//        deleteWrapper2.eq(FTOCompareRecord::getProjectId, projectId);
-//        this.remove(deleteWrapper2);
-//        //新增侵权对比结果集合
-//        List<FTOCompareRecord> ftoCompareRecords = new ArrayList<>();
-//        //遍历传入集合
-//        if (!tortDTOS.isEmpty()) {
-//            for (TortDTO tortDTO : tortDTOS) {
-//                Feature feature = new Feature();
-//                feature.setRightSort(tortDTO.getRightSort());
-//                feature.setPatentNo(patentNo);
-//                feature.setProjectId(projectId);
-//                feature.setContent(tortDTO.getContent());
-//                feature.setExplainText(tortDTO.getExplainText());
-//                feature.setCreateId(personnelVO.getId());
-//                feature.setRightType(tortDTO.getRightType());
-//                feature.insert();
-//                //获取特征id
-//                Integer featureId = feature.getId();
-//                if (tortDTO.getCompareResult() != null || StringUtils.isNotBlank(tortDTO.getCompareDescription()) || StringUtils.isNotBlank(tortDTO.getTargetDescription())) {
-//                    //插入侵权分析对比结果
-//                    FTOCompareRecord ftoCompareRecord = new FTOCompareRecord();
-//                    ftoCompareRecord.setProjectId(projectId);
-//                    ftoCompareRecord.setFeatureId(featureId);
-//                    ftoCompareRecord.setCompareResult(tortDTO.getCompareResult());
-//                    ftoCompareRecord.setCompareDescription(tortDTO.getCompareDescription());
-//                    ftoCompareRecord.setTargetDescription(tortDTO.getTargetDescription());
-//                    ftoCompareRecord.setCreateId(personnelVO.getId());
-//                    ftoCompareRecords.add(ftoCompareRecord);
-//                }
-//            }
-//            List<Integer> ids = new ArrayList<>();
-//            if (!ftoCompareRecords.isEmpty()) {
-//                this.saveBatch(ftoCompareRecords);
-//                ids = ftoCompareRecords.stream().map(FTOCompareRecord::getId).collect(Collectors.toList());
-//            }
-//            return ids;
-//        } else {
-//            throw new XiaoShiException("未传入特征集合");
-//        }
-//    }
+
 
     /**
      * 新增侵权对比结果
@@ -209,11 +142,9 @@ public class TortCompareRecordService extends ServiceImpl<FTOCompareRecordMapper
         }
         // 获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         // 重新排序
         Integer order = 1;
         List<Integer> ftoIds = new ArrayList<>();
@@ -267,11 +198,9 @@ public class TortCompareRecordService extends ServiceImpl<FTOCompareRecordMapper
         Integer featureId = tortDTO.getFeatureId();
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         if (tortDTO.getCompareResult() != null || StringUtils.isNotBlank(tortDTO.getCompareDescription()) || StringUtils.isNotBlank(tortDTO.getTargetDescription())) {
             //插入对比结果
             FTOCompareRecord ftoCompareRecord = new FTOCompareRecord();
@@ -423,11 +352,10 @@ public class TortCompareRecordService extends ServiceImpl<FTOCompareRecordMapper
         }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
+
         List<TortDTO> tortDTOS = tortCompareRecordDTO.getTortDTOS();
         List<Integer> ids = new ArrayList<>();
         //传入对比结果不为空
@@ -695,11 +623,9 @@ public class TortCompareRecordService extends ServiceImpl<FTOCompareRecordMapper
         }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         try {
             //首先是根据projectId,以及ifOriginal为false、ifFinal为true这几个条件删除表中的最终数据(最开始的数据)
             LambdaQueryWrapper<FTOCompareRecord> removeWrapper = new LambdaQueryWrapper<>();

+ 4 - 8
src/main/java/cn/cslg/pas/service/business/TreeNodeService.java

@@ -236,11 +236,9 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
         }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         //赋值
         TreeNode treeNode = new TreeNode();
         BeanUtils.copyProperties(treeNodeDTO, treeNode);
@@ -347,11 +345,9 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
         }
         //获取登录人信息
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         TreeNode treeNode = this.getById(updateTreeNodeDTO.getId());
         //检查名称是否规范
         updateTreeNodeDTO.setName(updateTreeNodeDTO.getName().trim());

+ 223 - 0
src/main/java/cn/cslg/pas/service/business/es/EsExportService.java

@@ -0,0 +1,223 @@
+package cn.cslg.pas.service.business.es;
+
+import cn.cslg.pas.common.dto.ExportDTO;
+import cn.cslg.pas.common.utils.ExcelUtils;
+import cn.cslg.pas.common.utils.FileUtils;
+import cn.cslg.pas.common.utils.ReadExcelUtils;
+import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
+import cn.cslg.pas.common.utils.parseQueryToTree.operateNode;
+import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
+import cn.cslg.pas.common.vo.PatentData;
+import cn.cslg.pas.service.query.FormatQueryService;
+import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.io.output.ByteArrayOutputStream;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.hssf.util.HSSFColor;
+import org.apache.poi.ss.usermodel.FillPatternType;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class EsExportService {
+
+    @Autowired
+    private FormatQueryService formatQueryService;
+
+    public void exportTree(File file) throws Exception {
+        Sheet sheet = ReadExcelUtils.readExcel(file);
+        int total = sheet.getPhysicalNumberOfRows() - 1;
+        List<ExportDTO> list = new ArrayList<>();
+        for (int i = 0; i < total; i++) {
+            PatentData patentData = ReadExcelUtils.readExcelOneRow(file, sheet, i + 1);
+            Map<Object, Object> patentDataMap = patentData.getMap();
+            String condition = patentDataMap.get("检索条件").toString();
+            String estimatedTree = patentDataMap.get("预期二叉树").toString();
+            String estimatedQuery = patentDataMap.get("预期Query").toString();
+            String outCondition = patentDataMap.get("外部检索条件").toString();
+            String estimatedOutQuery = patentDataMap.get("预期外部检索式").toString();
+            ExportDTO exportDTO = new ExportDTO();
+            exportDTO.setCondition(condition);
+            exportDTO.setOutCondition(outCondition);
+            if (StringUtils.isNotEmpty(estimatedTree)) {
+                exportDTO.setEstimatedTree(estimatedTree);
+            }
+            if (StringUtils.isNotEmpty(estimatedQuery)) {
+                exportDTO.setEstimatedQuery(estimatedQuery);
+            }
+            if (StringUtils.isNotEmpty(estimatedOutQuery)) {
+                exportDTO.setEstimatedOutQuery(estimatedOutQuery);
+            }
+            list.add(exportDTO);
+        }
+        for (ExportDTO exportDTO : list) {
+            if (StringUtils.isNotEmpty(exportDTO.getCondition())) {
+                treeNode tree = null;
+                try {
+                    tree = expressManager.getInstance().Parse(exportDTO.getCondition(), false);
+                } catch (Exception e) {
+                    System.out.println(exportDTO.getCondition() + "转换二叉树表达式错误");
+                }
+                String treeJson = JSONObject.toJSONString(tree, SerializerFeature.DisableCircularReferenceDetect);
+                exportDTO.setActualTree(treeJson);
+                if (treeJson == null || exportDTO.getEstimatedTree() == null || !treeJson.equalsIgnoreCase(exportDTO.getEstimatedTree().trim())) {
+                    exportDTO.setTreeFlag("F");
+                } else {
+                    exportDTO.setTreeFlag("T");
+                }
+                Query query = null;
+                try {
+                    query = formatQueryService.EsQueryToQuery((operateNode) tree, "patent", 331);
+                } catch (ParseException e) {
+                    System.out.println(exportDTO.getCondition() + "转换es表达式错误");
+                }
+                String queryStr = query.toString();
+                exportDTO.setActualQuery(queryStr);
+                if (queryStr == null || exportDTO.getEstimatedQuery() == null || !queryStr.equalsIgnoreCase(exportDTO.getEstimatedQuery().trim())) {
+                    exportDTO.setQueryFlag("F");
+                } else {
+                    exportDTO.setQueryFlag("T");
+                }
+                if (StringUtils.isNotEmpty(exportDTO.getOutCondition()) && !exportDTO.getOutCondition().contains("+")) {
+                    String outQueryStr = null;
+                    try {
+                        outQueryStr = formatQueryService.reQuery(exportDTO.getOutCondition(), "webSearchConfig");
+                    } catch (Exception e) {
+                        System.out.println(exportDTO.getOutCondition() + "转换外部接口检索表达式错误");
+                    }
+                    exportDTO.setActualOutQuery(outQueryStr);
+                    if (outQueryStr == null || exportDTO.getEstimatedOutQuery() == null || !outQueryStr.equalsIgnoreCase(exportDTO.getEstimatedOutQuery().trim())) {
+                        exportDTO.setOutQueryFlag("F");
+                    } else {
+                        exportDTO.setOutQueryFlag("T");
+                    }
+                }
+            }
+
+        }
+        if (!CollectionUtils.isEmpty(list)) {
+            this.loadExportTree(list);
+        }
+    }
+
+    public void loadExportTree(List<ExportDTO> list) throws FileNotFoundException {
+        try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
+            List<String> headers = Arrays.asList("检索条件", "预期二叉树", "实际二叉树", "二叉树是否一致", "预期Query", "实际Query","Query是否一致",
+                    "外部检索条件","预期外部检索式", "实际外部检索式","外部检索式是否一致");
+            HSSFWorkbook hssfWorkbook = new HSSFWorkbook();//新建工作簿
+            HSSFSheet sheet = hssfWorkbook.createSheet();//新建sheet页
+            sheet.setDefaultColumnWidth(30);
+            HSSFRow headerRow = sheet.createRow(0);//新建标头行
+            headerRow.setHeight((short) 500);
+            HSSFCellStyle headerCellStyle = hssfWorkbook.createCellStyle();//新建标头行格式
+            HSSFCellStyle commonCellStyle = hssfWorkbook.createCellStyle();//新建普通行格式
+            for (int i = 0; i < headers.size(); i++) {//遍历设置标头
+                HSSFCell cell = headerRow.createCell(i);
+                ExcelUtils.setExcelCellStyle(headerCellStyle);
+                headerCellStyle.setAlignment(HorizontalAlignment.CENTER);
+                headerCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+                headerCellStyle.setFillForegroundColor(HSSFColor.HSSFColorPredefined.SKY_BLUE.getIndex());
+                headerCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+                headerCellStyle.setWrapText(true);
+                cell.setCellStyle(headerCellStyle);
+                cell.setCellValue(headers.get(i));
+            }
+            for (int i = 0; i < list.size(); i++) {
+                ExportDTO exportDTO = list.get(i);
+                HSSFRow row = sheet.createRow(i + 1);//新建一普通行
+                row.setHeight((short) 800);
+                HSSFCell cell = row.createCell(0);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell.setCellStyle(commonCellStyle);
+                cell.setCellValue(exportDTO.getCondition());
+                HSSFCell cell1 = row.createCell(1);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell1.setCellStyle(commonCellStyle);
+                cell1.setCellValue(exportDTO.getEstimatedTree());
+                HSSFCell cell2 = row.createCell(2);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell2.setCellStyle(commonCellStyle);
+                cell2.setCellValue(exportDTO.getActualTree());
+                HSSFCell cell3 = row.createCell(3);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell3.setCellStyle(commonCellStyle);
+                cell3.setCellValue(exportDTO.getTreeFlag());
+                HSSFCell cell4 = row.createCell(4);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell4.setCellStyle(commonCellStyle);
+                cell4.setCellValue(exportDTO.getEstimatedQuery());
+                HSSFCell cell5 = row.createCell(5);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell5.setCellStyle(commonCellStyle);
+                cell5.setCellValue(exportDTO.getActualQuery());
+                HSSFCell cell6 = row.createCell(6);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell6.setCellStyle(commonCellStyle);
+                cell6.setCellValue(exportDTO.getQueryFlag());
+                HSSFCell cell7 = row.createCell(7);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell7.setCellStyle(commonCellStyle);
+                cell7.setCellValue(exportDTO.getOutCondition());
+                HSSFCell cell8 = row.createCell(8);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell8.setCellStyle(commonCellStyle);
+                cell8.setCellValue(exportDTO.getEstimatedOutQuery());
+                HSSFCell cell9 = row.createCell(9);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell9.setCellStyle(commonCellStyle);
+                cell9.setCellValue(exportDTO.getActualOutQuery());
+                HSSFCell cell10 = row.createCell(10);
+                ExcelUtils.setExcelCellStyle(commonCellStyle);
+                commonCellStyle.setVerticalAlignment(VerticalAlignment.TOP);
+                commonCellStyle.setWrapText(true);
+                cell10.setCellStyle(commonCellStyle);
+                cell10.setCellValue(exportDTO.getOutQueryFlag());
+            }
+            hssfWorkbook.write(out);
+            byte[] bytes = out.toByteArray();
+            FileUtils.getFileByBytes(bytes, "检索条件", ".xlsx");
+        } catch (FileNotFoundException e) {
+            throw new FileNotFoundException();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/es/EsValueCurveService.java

@@ -96,11 +96,9 @@ public class EsValueCurveService {
         Integer timeType = vo.getTimeType();
         //获取登陆人信息 用于设置创建人
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new XiaoShiException("未登录");
-        }
+
         Integer tenantId = personnelVO.getTenantId();
         Map<String, List<Integer>> map = new HashMap<>();
         if (!CollectionUtils.isEmpty(isAdd) && startNum <= 1 && endNum < 1) {

+ 2 - 4
src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimHistoryService.java

@@ -57,11 +57,9 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
             throw new XiaoShiException("claimId为空");
         }
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         LambdaQueryWrapper<PatentClaimHistory> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(PatentClaimHistory::getIfFirst, alterPatentClaimDTO.getIfFirst())
                 .eq(PatentClaimHistory::getClaimId, claimId)

+ 45 - 2
src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java

@@ -88,8 +88,10 @@ public class PatentStarApiService {
             patentStarListDTO.setCurrentQuery(retrieveRecord.getConditions());
             patentStarListDTO.setDBType(retrieveRecord.getDbType());
         }
+    long start =    System.currentTimeMillis();
         Map<String, Object> map = this.patentStarSearchApi(patentStarListDTO);
-
+long end =System.currentTimeMillis();
+System.out.println("search time:"+(end-start));
         if (map == null) {
             ThrowException.throwXiaoShiException("检索失败,请检查检索式");
         }
@@ -166,7 +168,12 @@ public class PatentStarApiService {
         Request request = new Request.Builder().url(url).post(requestBody).build();
         // 发送请求获取响应
         try {
+            long start =    System.currentTimeMillis();
+
             Response response = okHttpClient.newCall(request).execute();
+
+            long end =System.currentTimeMillis();
+            System.out.println("search11time:"+(end-start));
             // 判断请求是否成功
             if (response.isSuccessful()) {
                 JSONObject jsonObject = JSONObject.parseObject(Objects.requireNonNull(response.body()).string());
@@ -189,6 +196,22 @@ public class PatentStarApiService {
         return null;
     }
 
+    public String getFormatCondition(String condition) {
+        String s = condition.substring(condition.indexOf("=") + 1);
+        String s1 = s.replaceAll("[()]", "");
+        String[] valueStrs = s1.split("[,,]|(\\r\\n)+|\\r+|\\n+");
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0; i < valueStrs.length; i++) {
+            final String value = valueStrs[i];
+            if (i != valueStrs.length - 1) {
+                stringBuilder.append(value).append(",");
+            } else {
+                stringBuilder.append(value);
+            }
+        }
+        return stringBuilder.toString();
+    }
+
     public List<PatentStarListDTO> getSplitedConditions(PatentStarListDTO patentStarListDTO, int patentNum) throws IOException {
         DateTime nowDate = new DateTime();
         DateTime date = DateUtils2.formStrToDateTime("1900-01-01");
@@ -855,6 +878,10 @@ public class PatentStarApiService {
             if (item.getLG() != null) {
                 patentColumnDTO.setSimpleStatus(item.getLG().toString());
             }
+            //装载专利类型
+            if (item.getPatentType() != null) {
+                patentColumnDTO.setPatentType(item.getPatentType().toString());
+            }
             //装载摘要
             List<Text> abstractList = new ArrayList<>();
             Text text = new Text();
@@ -935,35 +962,51 @@ public class PatentStarApiService {
                 patentColumnDTO.setPublicDate(DateUtils.strToDate(item.getPublicDate()));
             }
 
+            //装载公开日
+            if (item.getPublicAccreditDate() != null && !item.getPublicAccreditDate().trim().equals("")) {
+                patentColumnDTO.setGrantDate(DateUtils.strToDate(item.getPublicAccreditDate()));
+            }
+
             //装载申请人
             if (item.getApplicantStr() != null && !item.getApplicantStr().trim().equals("")) {
                 List<String> names = Arrays.asList(item.getApplicantStr().split(";"));
                 patentColumnDTO.setApplicant(names);
+            } else {
+                patentColumnDTO.setApplicant(new ArrayList<>());
             }
 
             //装载发明人
             if (item.getInventorStr() != null && !item.getInventorStr().trim().equals("")) {
                 List<String> names = Arrays.asList(item.getInventorStr().split(";"));
                 patentColumnDTO.setInventor(names);
+            } else {
+                patentColumnDTO.setInventor(new ArrayList<>());
             }
 
             //装载权利人
             if (item.getCurrentApplicantStr() != null && !item.getCurrentApplicantStr().trim().equals("")) {
                 List<String> names = Arrays.asList(item.getCurrentApplicantStr().split(";"));
                 patentColumnDTO.setRightHolder(names);
+            } else {
+                patentColumnDTO.setRightHolder(new ArrayList<>());
             }
 
             //装载代理人
             if (item.getAgentStr() != null && !item.getAgentStr().trim().equals("")) {
                 List<String> names = Arrays.asList(item.getAgentStr().split(";"));
                 patentColumnDTO.setAgent(names);
+            } else {
+                patentColumnDTO.setAgent(new ArrayList<>());
             }
 
             //装载代理机构
             if (item.getAgencyStr() != null && !item.getAgencyStr().trim().equals("")) {
                 patentColumnDTO.setAgency(item.getAgencyStr());
             }
-
+            //装载优先权
+            patentColumnDTO.setPriorityNo(item.getPriorityNo());
+            patentColumnDTO.setPriorityDate(item.getPriorityDate());
+            patentColumnDTO.setAppCountry(item.getBureau());
             patentColumnDTOS.add(patentColumnDTO);
         });
 

+ 12 - 28
src/main/java/cn/cslg/pas/service/common/PersonFieldService.java

@@ -53,11 +53,9 @@ public class PersonFieldService {
 
         //根据登录人id和type查询
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
         String key = "";
 
@@ -121,11 +119,9 @@ public class PersonFieldService {
 
     public List<PersonSelfFieldVO> setCustomField(AddSelfFieldDTO addSelfFieldDTO) {
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
         String key = SecureUtil.md5(addSelfFieldDTO.getTableName() + RedisConf.SYMBOL_COLON + userId);
 
@@ -347,11 +343,9 @@ public class PersonFieldService {
 
     public List<PersonSelfFieldVO> setTableColumns(AddSelfFieldDTO addSelfFieldDTO) {
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
         String tableName = addSelfFieldDTO.getTableName();
         Integer projectId = addSelfFieldDTO.getProjectId();
@@ -458,11 +452,9 @@ public class PersonFieldService {
         Integer projectId = getAllPatentCountDTO.getProjectId();
         //根据登录人id和type查询
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
         String key = "";
 
@@ -504,11 +496,9 @@ public class PersonFieldService {
         Integer projectId = addPatentCountDTO.getProjectId();
         //根据登录人id和type查询
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
         String key = "";
 
@@ -540,11 +530,9 @@ public class PersonFieldService {
         }
         //根据登录人id和type查询
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
+
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-            throw new UnLoginException("未登录");
-        }
+
         String userId = personnelVO.getId();
         String key = "";
 
@@ -611,11 +599,7 @@ public class PersonFieldService {
 
     public List<PersonSelfFieldVO> setEvidenceReasonTableColumns(AddSelfFieldDTO addSelfFieldDTO) {
         PersonnelVO personnelVO = new PersonnelVO();
-        try {
             personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        } catch (Exception e) {
-        throw new UnLoginException("未登录");
-    }
         String userId = personnelVO.getId();
         String tableName = addSelfFieldDTO.getTableName();
         if (tableName == null||tableName.equals("")) {

+ 0 - 1
src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java

@@ -49,7 +49,6 @@ public class GetCataloguingFromWebThread extends Thread {
     public void run() {
 
         while ((!ifProductAll || uploadPatentWebDTOs.size() > 0) && importTaskAMVO.getState().equals(1)) {
-
             try {
                 //判断任务队列是否有任务,若没有则线程等待唤醒
                 if (uploadPatentWebDTOs.size() == 0) {

+ 8 - 1
src/main/java/cn/cslg/pas/service/importPatent/GetPatentFromExcelThread.java

@@ -126,7 +126,9 @@ public class GetPatentFromExcelThread extends Thread {
         } else if (grantNo != null) {
             usedNo = grantNo;
         }
+        //获取专利前缀
         String contry = usedNo.substring(0, 2);
+        //根据前缀判断如何设置专利号,中国专利为申请号,外国专利为公开号,若公开号不存在则为公告号
         if (contry.equals("CN")) {
             patentNo = appNo;
         } else {
@@ -139,7 +141,7 @@ public class GetPatentFromExcelThread extends Thread {
         patent.setPatentNo(patentNo);
         //装载国家
         patent.setAppCountry(contry);
-        //装载标题
+        //装载标题原文
         if (uploadParamsVO.getTitle() != null) {
             List<Text> texts = new ArrayList<>();
             if (uploadParamsVO.getTitle().getName() != null) {
@@ -149,6 +151,7 @@ public class GetPatentFromExcelThread extends Thread {
                 text.setLanguage(contry);
                 texts.add(text);
             }
+            //装载标题译文
             if (uploadParamsVO.getTitle().getNameOut() != null) {
                 Text text = new Text();
                 text.setTextContent(uploadParamsVO.getTitle().getNameOut());
@@ -165,6 +168,7 @@ public class GetPatentFromExcelThread extends Thread {
         //装载摘要
         if (uploadParamsVO.getAbstractStr() != null) {
             List<Text> texts = new ArrayList<>();
+            //装载摘要原文
             if (uploadParamsVO.getAbstractStr().getName() != null) {
                 Text text = new Text();
                 text.setTextContent(uploadParamsVO.getAbstractStr().getName());
@@ -172,6 +176,7 @@ public class GetPatentFromExcelThread extends Thread {
                 text.setLanguage(contry);
                 texts.add(text);
             }
+            //装载摘要译文
             if (uploadParamsVO.getAbstractStr().getNameOut() != null) {
                 Text text = new Text();
                 text.setTextContent(uploadParamsVO.getAbstractStr().getNameOut());
@@ -187,6 +192,7 @@ public class GetPatentFromExcelThread extends Thread {
         //装载权利要求
         if (uploadParamsVO.getPatentRight() != null) {
             List<Text> texts = new ArrayList<>();
+            //装载权利要求原文
             if (uploadParamsVO.getPatentRight().getName() != null) {
                 Text text = new Text();
                 text.setTextContent(uploadParamsVO.getPatentRight().getName());
@@ -194,6 +200,7 @@ public class GetPatentFromExcelThread extends Thread {
                 text.setLanguage(contry);
                 texts.add(text);
             }
+            //装载权利要求译文
             if (uploadParamsVO.getPatentRight().getNameOut() != null) {
                 Text text = new Text();
                 text.setTextContent(uploadParamsVO.getPatentRight().getNameOut());

+ 24 - 0
src/main/java/cn/cslg/pas/service/quartzService/ImportJobService.java

@@ -0,0 +1,24 @@
+package cn.cslg.pas.service.quartzService;
+
+import lombok.RequiredArgsConstructor;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+
+@DisallowConcurrentExecution
+@RequiredArgsConstructor
+public class ImportJobService extends QuartzJobBean {
+
+
+    @Override
+    public void executeInternal(JobExecutionContext context) throws JobExecutionException {
+        JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
+        QrtzTaskDTO qrtzTask = (QrtzTaskDTO) jobDataMap.get("qrtzTask");
+        String parameter = qrtzTask.getParameter();
+
+
+    }
+}

+ 31 - 34
src/main/java/cn/cslg/pas/service/JobService.java

@@ -1,9 +1,7 @@
-package cn.cslg.pas.service;
+package cn.cslg.pas.service.quartzService;
 
-
-import cn.cslg.pas.common.vo.QuartzVO;
-import cn.cslg.pas.domain.business.ImportTask;
-import cn.cslg.pas.domain.business.ImportTaskCondition;
+import cn.cslg.pas.exception.ExceptionEnum;
+import cn.cslg.pas.exception.XiaoShiException;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
@@ -24,20 +22,13 @@ public class JobService {
      *
      * @throws SchedulerException
      */
-    public void deleteJob(Integer taskConditionId) throws SchedulerException {
-        //删除job中的该定时任务条件
-        QuartzVO quartzVO = this.generateQuartzVO(taskConditionId);
+    public void deleteJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
         TriggerKey triggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
         scheduler.pauseTrigger(triggerKey);
         scheduler.unscheduleJob(triggerKey);
         JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
         scheduler.deleteJob(jobKey);
-
-//        qrTaskService.removeById(taskId);
-//        //同时删除该任务条件的所有任务执行情况记录
-//        LambdaQueryWrapper<Task> queryWrapper = new LambdaQueryWrapper<>();
-//        queryWrapper.eq(Task::getTaskConditionId, taskId);
-//        taskService.remove(queryWrapper);
     }
 
     /**
@@ -45,39 +36,37 @@ public class JobService {
      *
      * @throws SchedulerException
      */
-//    public void pauseJob(Integer taskId) throws SchedulerException {
-//        QuartzVO quartzVO = this.generateQuartzVO(taskId);
-//        //更新任务条件状态
-//        qrTaskService.updateState(taskId, 6);
-//        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
-//        scheduler.pauseJob(jobKey);
-//    }
+    public void pauseJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+        //更新任务条件状态
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
+        scheduler.pauseJob(jobKey);
+    }
 
     /**
      * 恢复job
      *
      * @throws SchedulerException
      */
-//    public void resumeJob(Integer taskId) throws SchedulerException {
-//        QuartzVO quartzVO = this.generateQuartzVO(taskId);
-//        qrTaskService.updateState(taskId, 1);
-//        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
-//        scheduler.resumeJob(jobKey);
-//    }
+    public void resumeJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
+        scheduler.resumeJob(jobKey);
+    }
 
     /**
      * 修改定时任务
      *
      * @param
      */
-    public void updateJob(ImportTask qrtzTask) {
+    public void updateJob(QrtzTaskDTO qrtzTask) {
         //更新任务
 
         QuartzVO quartzVO = this.generateQuartzVO(qrtzTask.getId());
         JobDataMap jobDataMap = new JobDataMap();
         jobDataMap.put("qrtzTask", qrtzTask);
         TriggerKey oldTriggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
-        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getName());
+        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCron());
         CronTrigger cronTrigger = TriggerBuilder.newTrigger()
                 .withIdentity(oldTriggerKey).usingJobData(jobDataMap).withSchedule(scheduleBuilder).build();
         try {
@@ -93,14 +82,22 @@ public class JobService {
      * @throws SchedulerException
      */
     @Transactional
-    public void addJob(ImportTaskCondition taskCondition) throws SchedulerException {
+    public void addJob(QrtzTaskDTO qrtzTask) throws SchedulerException {
         //添加一条任务记录
-        QuartzVO quartzVO = this.generateQuartzVO(taskCondition.getId());
+        Class  jobClass= null;
+        try {
+              jobClass  = Class.forName(qrtzTask.getJobClass());
+
+        }
+        catch (Exception e){
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR,"未找到类");
+        }
+        QuartzVO quartzVO = this.generateQuartzVO(qrtzTask.getId());
         JobDataMap jobDataMap = new JobDataMap();
-        jobDataMap.put("taskCondition", taskCondition);
-        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(taskCondition.getCrons());
+        jobDataMap.put("qrtzTask", qrtzTask);
+        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCron());
         JobDetail jobDetail = JobBuilder
-                .newJob(TaskAddJob.class)
+                .newJob(jobClass)
                 .withIdentity(quartzVO.getJobName(), quartzVO.getJobGroupName())
                 .build();
         Trigger trigger = TriggerBuilder

+ 46 - 0
src/main/java/cn/cslg/pas/service/quartzService/QrtzTaskDTO.java

@@ -0,0 +1,46 @@
+package cn.cslg.pas.service.quartzService;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 任务条件表的实体类
+ *
+ * @Author chenyu
+ * @Date 2023/3/27
+ */
+@Data
+public class QrtzTaskDTO  implements Serializable {
+    /**
+     * ID
+     */
+    private Integer id;
+
+    /**
+     * 任务类型 0专利导入定时任务
+     */
+    private Integer taskType;
+
+    /**
+     * 参数
+     */
+    private String parameter;
+
+    /**
+     *
+     */
+    private String cron;
+
+    /**
+     * 是否运行
+     */
+    private Integer ifRun;
+    private String jobClass;
+}

+ 14 - 0
src/main/java/cn/cslg/pas/service/quartzService/QuartzVO.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.service.quartzService;
+
+import lombok.Data;
+
+@Data
+public class QuartzVO {
+    /**
+     * 任务名称
+     */
+    private String jobName;
+    private String jobGroupName;
+    private String triggerName;
+    private String triggerGroupName;
+}

+ 11 - 7
src/main/java/cn/cslg/pas/service/query/FormatQueryService.java

@@ -14,6 +14,9 @@ import cn.cslg.pas.exception.ConditionException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.factorys.EsBuilderFactory.EsBuilderFactory;
 import cn.cslg.pas.factorys.EsBuilderFactory.IQueryBuilder;
+import cn.cslg.pas.factorys.WebQueryFactory.FormWebQueryFieldImp;
+import cn.cslg.pas.factorys.WebQueryFactory.GetWebQueryFactory;
+import cn.cslg.pas.factorys.WebQueryFactory.WebQueryConfigVO;
 import cn.cslg.pas.factorys.getOrderFactory.GetOrderFactory;
 import cn.cslg.pas.factorys.getOrderFactory.GetOrderObject;
 import cn.cslg.pas.factorys.getSqlFactorys.GetSqlFactory;
@@ -51,7 +54,8 @@ public class FormatQueryService {
 
     @Autowired
     private EsBuilderFactory esBuilderFactory;
-
+    @Autowired
+    private GetWebQueryFactory getWebQueryFactory;
 
     public String getText(String text) throws Exception {
         treeNode tree = expressManager.getInstance().Parse(text, false);
@@ -554,12 +558,12 @@ public class FormatQueryService {
         if(node instanceof valueNode){
             valueNode valuenode =(valueNode) node;
             String json = CommonService.readJsonFile(tableName + ".json");
-            List<SqlObject> sqlObjects = JSON.parseArray(json, SqlObject.class);
-            SqlObject sqlObject = sqlObjects.stream().filter(item -> item.getField().equals(field)).findFirst().orElse(null);
-            sqlObject.setOption(option);
-            GetSqlObject getSqlObject =getSqlFactory.getClass(sqlObject.getSqlClass());
-            getSqlObject.setSqlObject(sqlObject);
-           return getSqlObject.getSql(valuenode.getvalue());
+            List<WebQueryConfigVO> webQueryConfigVOS = JSON.parseArray(json, WebQueryConfigVO.class);
+            WebQueryConfigVO webQueryConfigVO = webQueryConfigVOS.stream().filter(item -> item.getField().equals(field)).findFirst().orElse(null);
+            webQueryConfigVO.setOption(option);
+            FormWebQueryFieldImp formWebQueryFieldImp =getWebQueryFactory.getClass(webQueryConfigVO.getSqlClass());
+            webQueryConfigVO.setValue(valuenode.getvalue());
+           return formWebQueryFieldImp.getWebQuery(webQueryConfigVO);
         }
         else {
             operateNode operatenode =(operateNode)node;

+ 2 - 2
src/main/resources/application-dev.yml

@@ -61,8 +61,8 @@ spring:
     #初始化表结构
     jdbc:
       initialize-schema: always
-authorUrl: http://localhost:8885
-PCSUrl: http://localhost:8885
+authorUrl: http://localhost:8871
+PCSUrl: http://localhost:8871
 #OPSUrl: http://192.168.2.24:5001
 OPSUrl: http://139.224.24.90:5001
 PASUrl: http://localhost:8879

+ 7 - 7
src/main/resources/jsons/patent.json

@@ -5,7 +5,7 @@
     "value": "patentNo",
     "field": "NO",
     "esField": "patent_no.keyword",
-    "esClass": "wildcardQueryBuilder",
+    "esClass": "wildcardNosQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -21,7 +21,7 @@
     "value": "appNo",
     "field": "AN",
     "esField": "app_no.keyword",
-    "esClass": "wildcardQueryBuilder",
+    "esClass": "wildcardNosQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -37,7 +37,7 @@
     "value": "publicNo",
     "field": "PN",
     "esField": "public_no.keyword",
-    "esClass": "wildcardQueryBuilder",
+    "esClass": "wildcardNosQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -53,7 +53,7 @@
     "value": "grantNo",
     "field": "GN",
     "esField": "grant_no.keyword",
-    "esClass": "wildcardQueryBuilder",
+    "esClass": "wildcardNosQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -767,7 +767,7 @@
     "value": "ipcLevel5",
     "field": "IC",
     "esField": "mipc.level5",
-    "esClass": "keyWordQueryBuilder",
+    "esClass": "prefixQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "false",
@@ -885,7 +885,7 @@
     "value": "cpcLevel5",
     "field": "CPC",
     "esField": "mcpc.level5",
-    "esClass": "keyWordQueryBuilder",
+    "esClass": "prefixQueryBuilder",
     "ifSearch": "false",
     "ifGroup": "false",
     "ifShow": "false",
@@ -1156,7 +1156,7 @@
     "value": "priorityNo",
     "field": "PRN",
     "esField": "priorities.priorityno",
-    "esClass": "nestedPersonQueryBuilder",
+    "esClass": "prioritiesNONestedQueryBuilder",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",

+ 43 - 30
src/main/resources/jsons/webSearchConfig.json

@@ -5,7 +5,7 @@
     "value": "TX",
     "field": "TX",
     "sqlField": "TX",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -18,7 +18,7 @@
     "value": "TI",
     "field": "TI",
     "sqlField": "TI",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -31,7 +31,7 @@
     "value": "CL",
     "field": "CL",
     "sqlField": "CL",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -44,7 +44,7 @@
     "value": "AB",
     "field": "AB",
     "sqlField": "AB",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -57,7 +57,7 @@
     "value": "AN",
     "field": "AN",
     "sqlField": "AN",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebAppNosQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -69,8 +69,8 @@
     "type": "Integer",
     "value": "ANO",
     "field": "ANO",
-    "sqlField": "TX",
-    "sqlClass": "getWebQuerySql",
+    "sqlField": "ANO",
+    "sqlClass": "getWebNosQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -83,7 +83,7 @@
     "value": "GN",
     "field": "GN",
     "sqlField": "GN",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebNosQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -97,7 +97,20 @@
     "value": "PN",
     "field": "PN",
     "sqlField": "PN",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebNosQuery",
+    "orderClass": "",
+    "groupClass": "",
+    "ifSearch": "true",
+    "ifGroup": "false",
+    "ifShow": "false"
+  },
+  {
+    "name": "NO",
+    "type": "Integer",
+    "value": "NO",
+    "field": "NO",
+    "sqlField": "NO",
+    "sqlClass": "getWebPatentNosQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -110,7 +123,7 @@
     "value": "PR",
     "field": "PR",
     "sqlField": "PR",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebNosQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -123,7 +136,7 @@
     "value": "PT",
     "field": "PT",
     "sqlField": "PT",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -136,7 +149,7 @@
     "value": "LG",
     "field": "LG",
     "sqlField": "LG",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -149,7 +162,7 @@
     "value": "IC",
     "field": "IC",
     "sqlField": "IC",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -162,7 +175,7 @@
     "value": "MC",
     "field": "MC",
     "sqlField": "MC",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -175,7 +188,7 @@
     "value": "CT",
     "field": "CT",
     "sqlField": "CT",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -188,7 +201,7 @@
     "value": "AD",
     "field": "AD",
     "sqlField": "AD",
-    "sqlClass": "getWebDateSql",
+    "sqlClass": "getWebDateQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -201,7 +214,7 @@
     "value": "GD",
     "field": "GD",
     "sqlField": "GD",
-    "sqlClass": "getWebDateSql",
+    "sqlClass": "getWebDateQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -214,7 +227,7 @@
     "value": "PD",
     "field": "PD",
     "sqlField": "PD",
-    "sqlClass": "getWebDateSql",
+    "sqlClass": "getWebDateQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -228,7 +241,7 @@
     "value": "IN",
     "field": "IN",
     "sqlField": "IN",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -241,7 +254,7 @@
     "value": "FI",
     "field": "FI",
     "sqlField": "FI",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -254,7 +267,7 @@
     "value": "PA",
     "field": "PA",
     "sqlField": "PA",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -267,7 +280,7 @@
     "value": "FP",
     "field": "FP",
     "sqlField": "FP",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -280,7 +293,7 @@
     "value": "PE",
     "field": "PE",
     "sqlField": "PE",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -293,7 +306,7 @@
     "value": "AT",
     "field": "AT",
     "sqlField": "AT",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -306,7 +319,7 @@
     "value": "AGN",
     "field": "AGN",
     "sqlField": "AGN",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -319,7 +332,7 @@
     "value": "DZ",
     "field": "DZ",
     "sqlField": "DZ",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -332,7 +345,7 @@
     "value": "CO",
     "field": "CO",
     "sqlField": "CO",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -346,7 +359,7 @@
     "value": "CC",
     "field": "CC",
     "sqlField": "CC",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebNosQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -359,7 +372,7 @@
     "value": "UCC",
     "field": "UCC",
     "sqlField": "UCC",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -372,7 +385,7 @@
     "value": "GJ",
     "field": "GJ",
     "sqlField": "GJ",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 10204 - 0
src/test/java/cn/cslg/pas/service/EsSearchingTest.java


+ 83 - 0
src/test/java/cn/cslg/pas/service/EventServiceTests.java

@@ -27,7 +27,12 @@ import cn.cslg.pas.service.business.ReportTempleService;
 import cn.cslg.pas.service.business.es.*;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.common.TranslateService;
+import cn.cslg.pas.service.query.FormatQueryService;
+import co.elastic.clients.elasticsearch.ElasticsearchClient;
 import co.elastic.clients.elasticsearch._types.query_dsl.Query;
+import co.elastic.clients.elasticsearch.core.SearchRequest;
+import co.elastic.clients.elasticsearch.core.SearchResponse;
+import co.elastic.clients.elasticsearch.core.search.Hit;
 import com.alibaba.fastjson.JSONObject;
 import org.apache.http.entity.ContentType;
 import org.junit.jupiter.api.Test;
@@ -593,4 +598,82 @@ public class EventServiceTests {
 
     }
 
+    @Autowired
+    private FormatQueryService formatQueryService;
+
+    @Autowired
+    private  ElasticsearchClient client;
+    @Test
+    public void test107() throws Exception {
+        String s = "IFN=3~4"; //条件
+        SearchRequest.Builder builder = new SearchRequest.Builder();
+        //设置查询索引
+        builder.index("patent");
+        //2、根据条件生成树结构
+        treeNode tree = expressManager.getInstance().Parse(s, false);
+        Query query = formatQueryService.EsQueryToQuery((operateNode) tree, "patent", 331);
+        builder.query(query);
+        SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+        final List<Hit<Patent>> hits = response.hits().hits();
+        for (Hit<Patent> hit : hits) {
+            System.out.println(1);
+        }
+    }
+
+    @Test
+    public void test108() {
+        int size = 4;
+        int num = 2;
+        String s = "CN202311743859.7,CN202311695772.7,CN202311695122.2,CN202380013186.1,CN202321985312.3,CN202321795870.3,CN202321466063.7,CN202321458147.6,CN202321047372.0,CN202321021503.8";
+        String[] valueStrs = s.split("[,,]|(\\r\\n)+|\\r+|\\n+");
+        StringBuilder builder = new StringBuilder();
+        builder.append("NO").append("=").append("(");
+        for (int i = (num-1)*size; i < (num*size); i++) {
+            final String valueStr = valueStrs[i];
+            System.out.println(valueStr);
+            if (i != valueStrs.length - 1) {
+                builder.append(valueStr).append(",");
+            } else {
+                builder.append(valueStr);
+            }
+        }
+        final String s2 = builder.append(")").toString();
+        System.out.println(s2);
+        System.out.println("---------------------");
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0; i < valueStrs.length; i++) {
+            final String value = valueStrs[i];
+            if (i != valueStrs.length - 1) {
+                stringBuilder.append(value).append("|");
+            } else {
+                stringBuilder.append(value);
+            }
+        }
+        final String s1 = stringBuilder.toString();
+        System.out.println(s1);
+    }
+
+    @Test
+    public void test109() {
+//        String s = condition.substring(condition.indexOf("=") + 1);
+//        String s1 = s.replaceAll("[()]", "");
+
+        int size = 4;
+        int num = 2;
+        String s = "CN202311743859.7,CN202311695772.7,CN202311695122.2,CN202380013186.1,CN202321985312.3,CN202321795870.3,CN202321466063.7,CN202321458147.6,CN202321047372.0,CN202321021503.8";
+        String[] valueStrs = s.split("[,,]|(\\r\\n)+|\\r+|\\n+");
+        StringBuilder builder = new StringBuilder();
+        builder.append("NO").append("=").append("(");
+        for (int i = (num-1)*size; i < (num*size); i++) {
+            final String valueStr = valueStrs[i];
+            System.out.println(valueStr);
+            if (i != valueStrs.length - 1) {
+                builder.append(valueStr).append(",");
+            } else {
+                builder.append(valueStr);
+            }
+        }
+        final String s2 = builder.append(")").toString();
+        System.out.println(s2);
+    }
 }

+ 20 - 0
src/test/java/cn/cslg/pas/service/ExpressManagerTests.java

@@ -0,0 +1,20 @@
+package cn.cslg.pas.service;
+
+import cn.cslg.pas.common.dto.business.QueryTreeNodeDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.parseQueryToTree.expressManager;
+import cn.cslg.pas.common.utils.parseQueryToTree.treeNode;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+public class ExpressManagerTests {
+
+    @Test
+    void addIoc() throws Exception {
+        String condition="TI=(BI CI )";
+        treeNode tree = expressManager.getInstance().Parse(condition, false);
+        System.out.println(tree);
+    }
+
+}