Forráskód Böngészése

2022-7-27 多数据源导入Patentics字段调整

沈永艺 3 éve
szülő
commit
723d382c94

+ 88 - 34
PAS/src/main/java/cn/cslg/pas/common/utils/DataProcessHandler.java

@@ -1,9 +1,5 @@
 package cn.cslg.pas.common.utils;
 
-import cn.cslg.pas.common.model.vo.KeyValueVO;
-import com.alibaba.druid.support.json.JSONUtils;
-import com.alibaba.fastjson.JSONObject;
-
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
@@ -72,11 +68,11 @@ class PatentTypeHandler implements IProcessData {
     public Object processData(Object data, Object ob) {
         if (data.toString().contains("实用新型")) {
             return 1;
-        } else if (data.toString().contains("发明申请")) {
+        } else if (data.toString().contains("发明申请") || data.toString().contains("发明公布")) {
             return 2;
         } else if (data.toString().contains("外观设计")) {
             return 3;
-        } else if (data.toString().contains("授权发明")) {
+        } else if (data.toString().contains("授权")) {
             return 4;
         }
         return null;
@@ -170,6 +166,87 @@ class IncoPatPatentAffairHandler implements IProcessData {
     }
 }
 
+class IncoPatUCMainHandler implements IProcessData {
+    @Override
+    public Object processData(Object data, Object splitSymbol) {
+        List<String> splitList = StringUtils.changeStringToString(data.toString(), splitSymbol.toString());
+        return splitList.get(0);
+    }
+}
+
+class PatenticsPatentAffairHandler implements IProcessData {
+    @Override
+    public Object processData(Object data, Object code) {
+        List<String> splitStr = StringUtils.changeStringToString(data.toString(), "\n");
+        splitStr.removeIf(item -> item.equals(""));
+
+        List<String> processList = splitStr.stream().map(item -> item.replaceAll(" ", "\\|")).collect(Collectors.toList());
+
+        StringBuilder all = new StringBuilder();
+        StringBuilder one = new StringBuilder();
+        List<String> messageList;
+        Pattern p = Pattern.compile("[0-9]*");
+
+        for (int j = 0; j < processList.size(); j++) {
+            if (j < processList.size() - 1) {
+                Matcher m = p.matcher(processList.get(j + 1).substring(0, 2));
+                if (!m.matches()) {
+                    processList.set(j, processList.get(j) + " " + processList.get(j + 1));
+                    processList.remove(j + 1);
+                }
+            }
+            messageList = StringUtils.changeStringToString(processList.get(j), "\\|");
+
+            for (int i = 0; i < messageList.size(); i += 3) {
+                if (one.toString().equals("")) {
+                    one = new StringBuilder("\"inpadocData\"" + ":[" + "{" + "\"name\"" + ":" + "\"发生日期\"" + "," + "\"content\"" + ":" + "\"" + messageList.get(i).trim() + "\"" + "}");
+                } else {
+                    one.append("," + "{" + "\"name\"" + ":" + "\"发生日期\"" + "," + "\"content\"" + ":" + "\"").append(messageList.get(i).trim()).append("\"").append("}");
+                }
+                one.append(",{").append("\"name\":\"法律状态\"").append(",").append("\"content\":").append("\"").append(messageList.get(i + 1).trim()).append("\"").append("}");
+                one.append("," + "{" + "\"name\"" + ":" + "\"描述信息\"" + "," + "\"content\"" + ":" + "\"").append(messageList.get(i + 2).trim()).append("\"").append("}]");
+
+                if (!one.toString().equals("")) {
+                    if (!all.toString().equals("")) {
+                        all.append(",{").append(one).append("}");
+                    } else {
+                        all = new StringBuilder("{" + one + "}");
+                    }
+                }
+                one = new StringBuilder();
+            }
+
+        }
+        all = new StringBuilder("[" + all + "]");
+        return all.toString();
+    }
+}
+
+class PatenticsAgencyAndAgentHandler implements IProcessData {
+    @Override
+    public Object processData(Object data, Object code) {
+        List<String> splitStr = StringUtils.changeStringToString(data.toString().replaceAll(" ", ""), ";");
+        if (code.toString().equals("1")) {
+            return splitStr.get(0);
+        } else if (code.toString().equals("2")) {
+            splitStr.remove(0);
+            return splitStr;
+        }
+        return null;
+    }
+}
+
+class PatenticsStringHandler implements IProcessData {
+    @Override
+    public Object processData(Object data, Object splitSymbol) {
+        if (!"".equals(splitSymbol)) {
+            return StringUtils.changeStringToString(data.toString().replaceAll(" ", "").replaceAll("\n", ""), splitSymbol.toString());
+        } else {
+            return data.toString().replaceAll(" ", "");
+        }
+    }
+}
+
 class ProcessDataFactory {
     public static IProcessData getData(String typeName, String jarOrClassPath) {
 
@@ -196,35 +273,12 @@ class ProcessDataFactory {
 
     public static void main(String[] args) {
         IProcessData iProcessData = new TimeHandler();
-
-        Integer b = (Integer) iProcessData.processData("2022/01/01 00:00:00", null);
+        Integer a = (Integer) iProcessData.processData("2022-01-01", null);
+        List<String> b = new ArrayList<>();
+        b.add("1");
+        b.add("2");
+        b.remove(0);
         System.out.println(b);
-
-        IProcessData incoPatPatentAffairHandler = new IncoPatPatentAffairHandler();
-        String c = "法律状态公告日:20191015;\n" +
-                "法律状态:公开;\n" +
-                "描述信息:公开;\n" +
-                "法律状态公告日:20191108;\n" +
-                "法律状态:实质审查的生效;\n" +
-                "描述信息:实质审查的生效IPC(主分类):A61B   1/045;\n" +
-                "法律状态公告日:20220325;\n" +
-                "法律状态:授权;\n" +
-                "描述信息:授权;\n";
-        String d = (String) incoPatPatentAffairHandler.processData(c, null);
-
-//        List<KeyValueVO> lst = JsonUtils.jsonToList(b, KeyValueVO.class);
-//        KeyValueVO flag;
-//        for (int i = 0; i < Objects.requireNonNull(lst).size() - 1; i++) {
-//            for (int j = 0; j < lst.size() - i - 1; j++) {
-//                if (DateUtils.strToDate(lst.get(j).getInpadocData().get(0).getContent()).compareTo(DateUtils.strToDate(lst.get(j + 1).getInpadocData().get(0).getContent())) < 0) {
-//                    flag = lst.get(j);
-//                    lst.set(j, lst.get(j + 1));
-//                    lst.set(j + 1, flag);
-//                }
-//            }
-//        }
-//        System.out.println(lst);
-
     }
 
 }

+ 9 - 1
PAS/src/main/java/cn/cslg/pas/common/utils/DateUtils.java

@@ -115,7 +115,13 @@ public class DateUtils {
     }
 
     public static Integer getDateTime(String date) {
-        return (int) (strToDateTime(date, YYYY_MM_DD).getTime() / 1000);
+        int dateTime = 0;
+        if (date.contains("/")) {
+            dateTime = Math.toIntExact(strToDateTime(date, parsePatterns[4]).getTime() / 1000);
+        } else if (date.contains("-")) {
+            dateTime = Math.toIntExact(strToDateTime(date, YYYY_MM_DD).getTime() / 1000);
+        }
+        return dateTime;
     }
 
     /**
@@ -150,6 +156,8 @@ public class DateUtils {
                 sf1 = new SimpleDateFormat("yyyy/MM/dd");
             } else if (dateString.contains(":")) {
                 sf1 = new SimpleDateFormat("yyyy:MM:dd");
+            } else if (dateString.contains(".")) {
+                sf1 = new SimpleDateFormat("yyyy.MM.dd");
             } else {
                 sf1 = new SimpleDateFormat("yyyyMMdd");
             }

+ 3 - 1
PAS/src/main/java/cn/cslg/pas/common/utils/FileUtils.java

@@ -116,7 +116,9 @@ public class FileUtils {
     }
 
     public String analysisJsonFile() {
-        String settingFilePath = "D:\\Data\\uploadSetting.json";
+        ApplicationHome ah = new ApplicationHome(BackupUtils.class);
+        File file = ah.getSource();
+        String settingFilePath = file.getParentFile().toString() + FileUtils.FILE_SEPARATOR + "uploadSetting.json";
         BufferedReader reader = null;
         StringBuilder last = new StringBuilder();
         InputStreamReader inputStreamReader;

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/domain/SystemDictAssociate.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 @Data
-@TableName(value = "OS_SYSTEM_DICT_ASSOCIATE")
+@TableName(value = "os_system_dict_associate")
 public class SystemDictAssociate {
     /**
      * 主键ID

+ 4 - 0
PAS/src/main/java/cn/cslg/pas/service/PatentService.java

@@ -504,6 +504,10 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> {
         patentDTO.setInventor(patentInventorService.getPatentInventorByPatentId(patent.getId()));
         if (StringUtils.isNotEmpty(patent.getAgencyId())) {
             patentDTO.setAgency(patentAgencyService.getPatentAgencyById(Integer.parseInt(patent.getAgencyId())));
+        } else {
+            PatentAgency patentAgency = new PatentAgency();
+            patentAgency.setName("");
+            patentDTO.setAgency(patentAgency);
         }
         patentDTO.setAgent(patentAgentService.getPatentAgentByPatentId(patent.getId()));
         patentDTO.setAffair(patentAffairService.getPatentAffairByPatentId(patent.getId()));

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -206,8 +206,8 @@ public class UploadPatentBatchService {
                         .setProjectId(params.getProjectId());
                 importErrorLogMapper.insert(importErrorLog);
                 FLAG += 1;
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             }
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
         }
     }