|
@@ -1,11 +1,13 @@
|
|
package cn.cslg.pas.common.utils;
|
|
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.MalformedURLException;
|
|
import java.net.URL;
|
|
import java.net.URL;
|
|
import java.net.URLClassLoader;
|
|
import java.net.URLClassLoader;
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import java.util.*;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
import java.util.regex.Pattern;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -99,12 +101,12 @@ class PatSnapPatentAffairHandler implements IProcessData {
|
|
StringBuilder one = new StringBuilder();
|
|
StringBuilder one = new StringBuilder();
|
|
for (int i = 0; i < splitStr.size(); i += 3) {
|
|
for (int i = 0; i < splitStr.size(); i += 3) {
|
|
if (one.toString().equals("")) {
|
|
if (one.toString().equals("")) {
|
|
- one = new StringBuilder("\"" + "发生日期" + "\":\"" + splitStr.get(i).trim() + "\"");
|
|
|
|
|
|
+ one = new StringBuilder("\"inpadocData\"" + ":[" + "{" + "\"name\"" + ":" + "\"发生日期\"" + "," + "\"content\"" + ":" + "\"" + splitStr.get(i).trim() + "\"" + "}");
|
|
} else {
|
|
} else {
|
|
- one.append("," + "\"" + "发生日期" + "\":\"").append(splitStr.get(i).trim()).append("\"");
|
|
|
|
|
|
+ one.append("," + "{" + "\"name\"" + ":" + "\"发生日期\"" + "," + "\"content\"" + ":" + "\"").append(splitStr.get(i).trim()).append("\"").append("}");
|
|
}
|
|
}
|
|
- one.append("," + "\"" + "国家" + "\":\"").append(splitStr.get(i + 2).trim()).append("\"");
|
|
|
|
- one.append("," + "\"" + "内容" + "\":\"").append(splitStr.get(i + 1).trim()).append("\"");
|
|
|
|
|
|
+ one.append(",{").append("\"name\":\"国家\"").append(",").append("\"content\":").append("\"").append(splitStr.get(i + 2).trim()).append("\"").append("}");
|
|
|
|
+ one.append("," + "{" + "\"name\"" + ":" + "\"内容\"" + "," + "\"content\"" + ":" + "\"").append(splitStr.get(i + 1).trim()).append("\"").append("}]");
|
|
|
|
|
|
if (!one.toString().equals("")) {
|
|
if (!one.toString().equals("")) {
|
|
if (!all.toString().equals("")) {
|
|
if (!all.toString().equals("")) {
|
|
@@ -124,7 +126,7 @@ class PatSnapPatentAffairHandler implements IProcessData {
|
|
class IncoPatPatentAffairHandler implements IProcessData {
|
|
class IncoPatPatentAffairHandler implements IProcessData {
|
|
@Override
|
|
@Override
|
|
public Object processData(Object data, Object code) {
|
|
public Object processData(Object data, Object code) {
|
|
- String processedData = data.toString().replaceAll("\r\n", "");
|
|
|
|
|
|
+ String processedData = data.toString().replaceAll("\n", "");
|
|
List<String> contentList = StringUtils.changeStringToString(processedData, "([\\u4e00-\\u9fa5]+):");
|
|
List<String> contentList = StringUtils.changeStringToString(processedData, "([\\u4e00-\\u9fa5]+):");
|
|
contentList.remove(0);
|
|
contentList.remove(0);
|
|
|
|
|
|
@@ -141,26 +143,26 @@ class IncoPatPatentAffairHandler implements IProcessData {
|
|
if (tableList.get(i).contains("法律状态公告日")) {
|
|
if (tableList.get(i).contains("法律状态公告日")) {
|
|
if (!one.toString().equals("")) {
|
|
if (!one.toString().equals("")) {
|
|
if (!all.toString().equals("")) {
|
|
if (!all.toString().equals("")) {
|
|
- all.append(",{").append(one).append("}");
|
|
|
|
|
|
+ all.append(",{").append(one).append("]").append("}");
|
|
} else {
|
|
} else {
|
|
- all = new StringBuilder("{" + one + "}");
|
|
|
|
|
|
+ all = new StringBuilder("{" + one + "]}");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
one = new StringBuilder();
|
|
one = new StringBuilder();
|
|
}
|
|
}
|
|
|
|
|
|
if (one.toString().equals("")) {
|
|
if (one.toString().equals("")) {
|
|
- one = new StringBuilder("\"" + tableList.get(i) + "\":\"" + contentList.get(i).replaceAll(";", "") + "\"");
|
|
|
|
|
|
+ one = new StringBuilder("\"inpadocData\"" + ":[" + "{" + "\"name\"" + ":" + "\"" + tableList.get(i) + "\"" + ",\"" + "content\"" + ":" + "\"" + contentList.get(i).replaceAll(";", "") + "\"" + "}");
|
|
} else {
|
|
} else {
|
|
- one.append(",").append("\"").append(tableList.get(i)).append("\":\"").append(contentList.get(i).replaceAll(";", "")).append("\"");
|
|
|
|
|
|
+ one.append(",").append("{" + "\"name\"" + ":").append("\"").append(tableList.get(i)).append("\"" + "," + "\"" + "content\"" + ":" + "\"").append(contentList.get(i).replaceAll(";", "")).append("\"" + "}");
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
if (!one.toString().equals("")) {
|
|
if (!one.toString().equals("")) {
|
|
if (!all.toString().equals("")) {
|
|
if (!all.toString().equals("")) {
|
|
- all.append(",{").append(one).append("}");
|
|
|
|
|
|
+ all.append(",{").append(one).append("]").append("}");
|
|
} else {
|
|
} else {
|
|
- all = new StringBuilder("{" + one + "}");
|
|
|
|
|
|
+ all = new StringBuilder("{" + one + "]}");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
all = new StringBuilder("[" + all + "]");
|
|
all = new StringBuilder("[" + all + "]");
|
|
@@ -192,6 +194,38 @@ class ProcessDataFactory {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static void main(String[] args) {
|
|
|
|
+ IProcessData iProcessData = new PatSnapPatentAffairHandler();
|
|
|
|
+ String a = "2021-10-15 | CHANGE IN THE NAME OR TITLE OF A PATENT HOLDER | CN | 2020-07-21 | +PATENT GRANT | CN";
|
|
|
|
+ String b = (String) iProcessData.processData(a, null);
|
|
|
|
+
|
|
|
|
+ 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);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|