UploadFromWebService.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509
  1. package com.example.demo.service;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import com.example.demo.base.Constants;
  5. import com.example.demo.domain.*;
  6. import com.example.demo.mapper.QrtzTaskMapper;
  7. import com.example.demo.model.dto.QuartzTaskDTO;
  8. import com.example.demo.model.dto.TaskWebSocketDTO;
  9. import com.example.demo.model.dto.WebQueryDTO;
  10. import com.example.demo.util.FileUtils;
  11. import com.example.demo.util.Response;
  12. import com.example.demo.util.ResponseEnum;
  13. import com.example.demo.util.WebSocketServer;
  14. import io.swagger.v3.oas.models.security.SecurityScheme;
  15. import lombok.RequiredArgsConstructor;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.openqa.selenium.By;
  18. import org.openqa.selenium.WebDriver;
  19. import org.openqa.selenium.WebElement;
  20. import org.openqa.selenium.chrome.ChromeDriver;
  21. import org.openqa.selenium.chrome.ChromeOptions;
  22. import org.openqa.selenium.htmlunit.HtmlUnitWebElement;
  23. import org.openqa.selenium.interactions.Actions;
  24. import org.openqa.selenium.support.ui.ExpectedConditions;
  25. import org.openqa.selenium.support.ui.WebDriverWait;
  26. import org.springframework.context.annotation.Lazy;
  27. import org.springframework.scheduling.annotation.Async;
  28. import org.springframework.stereotype.Service;
  29. import org.springframework.web.multipart.MultipartFile;
  30. import java.io.IOException;
  31. import java.util.*;
  32. import java.util.concurrent.TimeUnit;
  33. import java.util.regex.Matcher;
  34. import java.util.regex.Pattern;
  35. /**
  36. * @author admin
  37. * @description 针对表【qrtz_task(定时任务表)】的数据库操作Service实现
  38. * @createDate 2023-03-15 13:40:32
  39. */
  40. @Service
  41. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  42. public class UploadFromWebService {
  43. private final FileUtils fileUtils;
  44. private final OutInterfaceService outInterfaceService;
  45. private final WebConfigService webConfigService;
  46. private final QrTaskService qrTaskService;
  47. // 查询并上传(专利之星)
  48. public List<PatentCell> getPatentStar(WebQueryDTO webQueryDTO) throws Exception {
  49. List<PatentCell> patentCells = new ArrayList<>();
  50. try {
  51. List<String> cells = webQueryDTO.getConCells();
  52. String conditions = webQueryDTO.getConditions();
  53. Integer id = webQueryDTO.getWebConfigId();
  54. conditions = this.formatConditions(conditions);
  55. //根据id 获得网站配置
  56. WebConfig webConfig = webConfigService.getConfigById(id);
  57. //1.获得驱动
  58. System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
  59. // 2.页面最大化
  60. ChromeOptions chromeOptions = new ChromeOptions();
  61. chromeOptions.addArguments("--start-maximized");
  62. // 3.创建驱动
  63. WebDriver driver = new ChromeDriver(chromeOptions);
  64. // 4.创建动作
  65. Actions action = new Actions(driver);
  66. //设置等待时间
  67. long formSecond1 = 10;
  68. WebDriverWait wait1 = new WebDriverWait(driver, formSecond1);
  69. // 打开专利之星首页
  70. driver.get(webConfig.getWebAddress());
  71. wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("loginname")));
  72. WebElement loginName = driver.findElement(By.id("loginname"));
  73. WebElement password = driver.findElement(By.id("password"));
  74. loginName.sendKeys(webConfig.getWebAccount());
  75. password.sendKeys(webConfig.getWebPassword());
  76. WebElement loginButton = driver.findElement(By.id("login"));
  77. loginButton.click();
  78. TimeUnit.MILLISECONDS.sleep(5000);//毫秒
  79. //获得表格搜索按钮并点击
  80. wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("tablepage")));
  81. WebElement countEle = driver.findElement(By.className("allcountlab"));
  82. String countText =countEle.getText();
  83. Integer count = Integer.parseInt(countText);
  84. WebElement tablePage = driver.findElement(By.id("tablepage"));
  85. WebElement tablePagea = tablePage.findElement(By.tagName("a"));
  86. tablePagea.click();
  87. TimeUnit.MILLISECONDS.sleep(5000);//毫秒
  88. //获得搜索框并点击
  89. wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("TxtSearch")));
  90. WebElement TxtSearch = driver.findElement(By.id("TxtSearch"));
  91. TxtSearch.sendKeys(conditions);
  92. WebElement searchBtn = driver.findElement(By.id("searchbtn2"));
  93. searchBtn.click();
  94. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdNumber")));
  95. List<WebElement> tcdNumbers = driver.findElements(By.className("tcdNumber"));
  96. String pagesText = tcdNumbers.get(tcdNumbers.size() - 1).getText();
  97. int page = Integer.parseInt(pagesText);
  98. String Handle = driver.getWindowHandle();
  99. //创建一个map集合存放浏览器句柄
  100. HashMap<String, String> handleMap = new HashMap<>();
  101. //将智慧芽句柄放到map中
  102. handleMap.put("mainPage", Handle);
  103. WebElement pagNum = driver.findElement(By.className("page_num"));
  104. pagNum.clear();
  105. pagNum.sendKeys("4");
  106. WebElement pagBtn = driver.findElement(By.className("page_btn"));
  107. pagBtn.click();
  108. TimeUnit.MILLISECONDS.sleep(10000);//毫秒
  109. for (int p = 4; p < page; p++) {
  110. //等待数据加载
  111. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("patent")));
  112. TimeUnit.MILLISECONDS.sleep(1000);//毫秒
  113. //获得列表
  114. List<WebElement> patentContents = driver.findElements(By.className("patent"));
  115. // 页面元素标签
  116. for (int i = 4; i < patentContents.size(); i++) {
  117. PatentCell patentCell = new PatentCell();
  118. patentCell.setProjectId(webQueryDTO.getProjectId());
  119. patentCell.setReportId(webQueryDTO.getReportId());
  120. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("title-color")));
  121. WebElement titleA = patentContents.get(i).findElement(By.className("title-color"));
  122. titleA.click();
  123. TimeUnit.MILLISECONDS.sleep(10000);//毫秒
  124. //9、获取到所有的句柄
  125. Set<String> set = driver.getWindowHandles();
  126. //10、循环找到详情窗口句柄
  127. for (String s : set) {
  128. //10.1、将详情窗口的句柄放到map中
  129. if (!s.equals(Handle)) {
  130. handleMap.put("detail", s);
  131. }
  132. }
  133. driver.switchTo().window(handleMap.get("detail"));
  134. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("item-content")));
  135. WebElement itemContent = driver.findElement(By.className("item-content"));
  136. List<WebElement> divItems = itemContent.findElements(By.tagName("div"));
  137. for (int t = 0; t < divItems.size(); t++) {
  138. WebElement temEle = divItems.get(t);
  139. String text = temEle.getText();
  140. String value = "";
  141. String[] strings = text.split(":");
  142. if (strings.length > 1) {
  143. value = strings[1].trim();
  144. String key = strings[0].trim();
  145. switch (key) {
  146. case "申请号":
  147. patentCell.setApplicationNo(value);
  148. break;
  149. case "申请日":
  150. patentCell.setApplicationDate(value);
  151. break;
  152. case "国家/省市":
  153. patentCell.setCountry(value);
  154. break;
  155. case "公开号":
  156. patentCell.setPublicNo(value);
  157. break;
  158. case "公开日":
  159. patentCell.setPubilcDate(value);
  160. break;
  161. case "授权公告号":
  162. patentCell.setPublicAccreditNo(value);
  163. break;
  164. case "授权公告日":
  165. patentCell.setPublicAccreditDate(value);
  166. break;
  167. case "主分类号":
  168. patentCell.setMainIpc(value);
  169. break;
  170. case "分类号":
  171. patentCell.setIpc(this.StringToList(value, ";"));
  172. break;
  173. case "申请人":
  174. patentCell.setApplicationPersons(this.StringToList(value, " "));
  175. break;
  176. case "申请人地址":
  177. patentCell.setApplicationAddress(this.StringToList(value, " "));
  178. break;
  179. case "发明人":
  180. patentCell.setInventors(this.StringToList(value, " "));
  181. break;
  182. case "当前权利人":
  183. patentCell.setApplicationCurrents(this.StringToList(value, " "));
  184. break;
  185. case "代理人":
  186. patentCell.setAgencyPersons(this.StringToList(value, " "));
  187. break;
  188. case "代理机构":
  189. patentCell.setAgency(value);
  190. break;
  191. case "范畴分类":
  192. patentCell.setClassical(value);
  193. break;
  194. case "当前状态":
  195. patentCell.setStatue(value);
  196. break;
  197. }
  198. }
  199. }
  200. //获得摘要
  201. WebElement abstrElement = driver.findElement(By.className("item-summary"));
  202. List<WebElement> spans = abstrElement.findElements(By.tagName("span"));
  203. if (cells.contains(1)) {
  204. String abstrText = spans.get(0).getText();
  205. patentCell.setAbstrText(abstrText);
  206. }
  207. //获得图片路径
  208. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("item-img")));
  209. WebElement picElement = driver.findElement(By.className("item-img"));
  210. WebElement imag = picElement.findElement(By.tagName("img"));
  211. String url = imag.getAttribute("src");
  212. url = fileUtils.uploadToLocal(url, ".jpg").getPath();
  213. patentCell.setPicUrl(url);
  214. if (cells.contains(2)) {
  215. //获得主权要
  216. String mainRight = spans.get(1).getText();
  217. patentCell.setMainRignt(mainRight);
  218. //获得权要
  219. WebElement CLElement = driver.findElement(By.id("itemCL"));
  220. CLElement.click();
  221. TimeUnit.MILLISECONDS.sleep(10000);//毫秒
  222. wait1.until(ExpectedConditions.presenceOfElementLocated(By.tagName("claim-text")));
  223. List<WebElement> rightElements = driver.findElements(By.tagName("claim-text"));
  224. List<String> rights = new ArrayList<>();
  225. rightElements.forEach(item -> {
  226. rights.add(item.getText());
  227. });
  228. patentCell.setRights(rights);
  229. }
  230. if (cells.contains(3)) {
  231. //获得说明书
  232. WebElement DSElement = driver.findElement(By.id("itemDS"));
  233. DSElement.click();
  234. TimeUnit.MILLISECONDS.sleep(10000);//毫秒
  235. wait1.until(ExpectedConditions.presenceOfElementLocated(By.tagName("invention-title")));
  236. WebElement titleElement = driver.findElement(By.tagName("invention-title"));
  237. patentCell.setTitle(titleElement.getText());
  238. StringBuilder stringBuilder = new StringBuilder();
  239. int flag = 1;
  240. //技术领域
  241. WebElement textElement1 = driver.findElement(By.tagName("description"));
  242. List<WebElement> textP1 = textElement1.findElements(By.tagName("p"));
  243. stringBuilder.append(textP1.get(0).getText());
  244. stringBuilder.append("\r\n");
  245. for (int t = 1; t < textP1.size(); t++) {
  246. String tem = String.format("%04d", flag);
  247. stringBuilder.append("[" + tem + "]" + textP1.get(t).getText());
  248. stringBuilder.append("\r\n");
  249. flag += 1;
  250. }
  251. patentCell.setPatentInstructionText(stringBuilder.toString());
  252. }
  253. //获得pdf文档
  254. if (cells.contains(4)) {
  255. WebElement PDFElement = driver.findElement(By.id("itemPdf"));
  256. PDFElement.click();
  257. TimeUnit.MILLISECONDS.sleep(10000);//毫秒
  258. driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  259. List<WebElement> PDFFile = driver.findElements(By.tagName("embed"));
  260. String pdfUrl = "";
  261. if (PDFFile.size() == 0) {
  262. List<WebElement> PDFFiles = driver.findElements(By.className("pdfbtn"));
  263. if (PDFFiles.size() != 0) {
  264. pdfUrl = PDFFiles.get(0).getAttribute("data-url");
  265. } else {
  266. WebElement suBtn = driver.findElement(By.className("layui-layer-btn0"));
  267. suBtn.click();
  268. TimeUnit.MILLISECONDS.sleep(10000);//毫秒
  269. }
  270. } else {
  271. pdfUrl = PDFFile.get(0).getAttribute("src");
  272. }
  273. if (pdfUrl != "") {
  274. UploadFileDTO fileDTO = fileUtils.uploadToLocal(pdfUrl, ".PDF");
  275. patentCell.setPDFName(fileDTO.getFileName());
  276. patentCell.setPDFSize(fileDTO.getFileSize());
  277. patentCell.setPDFUrl(fileDTO.getPath());
  278. patentCell.setPdf(fileDTO);
  279. }
  280. }
  281. if (cells.contains(5)) {
  282. //获得法律状态
  283. WebElement flztElement = driver.findElement(By.id("flztbtn"));
  284. flztElement.click();
  285. TimeUnit.MILLISECONDS.sleep(10000);//毫秒
  286. wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("legalContainer")));
  287. WebElement tBody = driver.findElement(By.id("legalContainer"));
  288. TimeUnit.MILLISECONDS.sleep(1000);//毫秒
  289. List<WebElement> trs = tBody.findElements(By.tagName("tr"));
  290. List<PatentCell.PatentAffair> affairs = new ArrayList<>();
  291. trs.forEach(item -> {
  292. List<WebElement> tds = item.findElements(By.tagName("td"));
  293. PatentCell.PatentAffair affair = new PatentCell.PatentAffair();
  294. affair.setDateTime(tds.get(0).getText());
  295. affair.setSimpleStatus(tds.get(1).getText());
  296. affair.setStatus(tds.get(2).getText());
  297. affairs.add(affair);
  298. });
  299. patentCell.setPatentAffairs(affairs);
  300. if (patentCell.getPublicNo() != null) {
  301. patentCell.setPatentNo(patentCell.getPublicNo());
  302. } else {
  303. patentCell.setPatentNo(patentCell.getPublicAccreditNo());
  304. patentCell.setPublicNo(patentCell.getPublicAccreditNo());
  305. }
  306. }
  307. if (patentCell.getPatentNo() != null) {
  308. String res = outInterfaceService.importPatents(patentCell);
  309. JSONObject jsonObject = JSONObject.parseObject(res);
  310. if (jsonObject.get("code").toString().equals("500")) {
  311. return null;
  312. }
  313. }
  314. WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
  315. .setTaskId(webQueryDTO.getTaskId())
  316. .setProjectId(webQueryDTO.getProjectId())
  317. .setComplete(false)
  318. .setIndex(i)
  319. .setTaskType(Constants.TASK_IMPORT_PATENT)
  320. .setPercentage(count == 0 ? 0 : Math.round((count.equals(i) ? (i * 1D) : (i + 1D)) / count * 100D))
  321. .setFileName("")
  322. .setUrl("")
  323. .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS),"");
  324. patentCells.add(patentCell);
  325. driver.close();
  326. driver.switchTo().window(handleMap.get("mainPage"));
  327. }
  328. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdPageCode")));
  329. List<WebElement> nexts = driver.findElements(By.className("nextPage"));
  330. if (nexts.size() != 0) {
  331. nexts.get(0).click();
  332. TimeUnit.MILLISECONDS.sleep(10000);//毫秒
  333. }
  334. }
  335. WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
  336. .setTaskId(webQueryDTO.getTaskId())
  337. .setProjectId(webQueryDTO.getProjectId())
  338. .setComplete(true)
  339. .setIndex(count)
  340. .setTaskType(Constants.TASK_IMPORT_PATENT)
  341. .setPercentage(100L)
  342. .setFileName("")
  343. .setUrl("")
  344. .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "");
  345. QrtzTask qrtzTask = qrTaskService.getById(webQueryDTO.getTaskId());
  346. qrtzTask.setTaskState(2);
  347. qrtzTask.updateById();
  348. driver.quit();
  349. }
  350. catch (Exception e){
  351. QrtzTask qrtzTask = qrTaskService.getById(webQueryDTO.getTaskId());
  352. qrtzTask.setTaskState(3);
  353. qrtzTask.updateById();
  354. }
  355. return patentCells;
  356. }
  357. public List<PatentCell> getPatentya(String patentVO) throws IOException, InterruptedException {
  358. //1.获得驱动
  359. System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
  360. // 2.页面最大化
  361. ChromeOptions chromeOptions = new ChromeOptions();
  362. chromeOptions.addArguments("--start-maximized");
  363. // 3.创建驱动
  364. WebDriver driver = new ChromeDriver(chromeOptions);
  365. // 4.创建动作
  366. Actions action = new Actions(driver);
  367. // 打开智慧芽首页
  368. driver.get("https://account.zhihuiya.com");
  369. //设置等待时间
  370. long formSecond1 = 50;
  371. WebDriverWait wait1 = new WebDriverWait(driver, formSecond1);
  372. //等待密码登录界面加载
  373. wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("tab-password")));
  374. // 点击密码登录
  375. driver.findElement(By.id("tab-password")).click();
  376. // 获取输入框,输入账号密码
  377. List<WebElement> ret = driver.findElements(By.className("el-input__inner"));
  378. ret.get(0).sendKeys("liting@china-wispro.com");
  379. ret.get(1).sendKeys("Lt199299");
  380. // 点击登录
  381. driver.findElement(By.className("el-button")).click();
  382. //等待加载
  383. TimeUnit.MILLISECONDS.sleep(1000);//毫秒
  384. List<WebElement> alerts = driver.findElements(By.className("patsnap-el-confirm"));
  385. if (alerts.size() != 0) {
  386. alerts.get(0).click();
  387. }
  388. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("master_nav-item__2nd_lv")));
  389. WebElement searchTag = driver.findElement(By.className("master_nav-item__2nd_lv"));
  390. searchTag.click();
  391. //等待搜索框加载
  392. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("div-textarea")));
  393. List<WebElement> ret1 = driver.findElements(By.className("div-textarea"));
  394. //搜索框赋值
  395. ret1.get(0).sendKeys(patentVO);
  396. TimeUnit.MILLISECONDS.sleep(2000);//毫秒
  397. wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("search-form__btn")));
  398. WebElement rr = driver.findElement(By.className("search-form__btn"));
  399. rr.click();
  400. TimeUnit.MILLISECONDS.sleep(1000);//毫秒
  401. List<PatentCell> patentCells = new ArrayList<>();
  402. long formSecond = 50;
  403. WebDriverWait wait = new WebDriverWait(driver, formSecond);
  404. wait.until(ExpectedConditions.presenceOfElementLocated(By.className("search-result-standard-view__patent")));
  405. // String js ="document.getElementsByClassName('sidebar-table__right')[0].scrollBy(0, 8000)";
  406. // ((JavascriptExecutor) driver).executeScript(js);
  407. List<WebElement> ret2 = driver.findElements(By.className("search-result-standard-view__patent"));
  408. ret2.remove(ret2.size() - 1);
  409. List<WebElement> ret3 = driver.findElements(By.className("pn-cell-popover"));
  410. for (int i = 0; i < ret2.size(); i++) {
  411. action.moveToElement(ret3.get(i)).perform();
  412. wait.until(ExpectedConditions.attributeToBeNotEmpty(ret3.get(i), "href"));
  413. String patenNo = ret3.get(i).getAttribute("data-link-data");
  414. System.out.println(patenNo);
  415. }
  416. for (WebElement item : ret2) {
  417. List<WebElement> aLinks = item.findElements(By.tagName("a"));
  418. PatentCell patentCell = new PatentCell();
  419. aLinks.forEach(tem -> {
  420. String type = tem.getAttribute("data-link-type");
  421. if (type != null && type.equals("TITLE")) {
  422. String title = tem.getAttribute("data-link-data");
  423. patentCell.setTitle(title);
  424. } else if (type != null && type.equals("PN")) {
  425. String url = tem.getAttribute("href");
  426. patentCell.setUrl(url);
  427. String patenNo = tem.getAttribute("data-link-data");
  428. patentCell.setPatentNo(patenNo);
  429. } else if (type != null && type.equals("ANC")) {
  430. String applications = tem.getAttribute("data-link-data");
  431. patentCell.setApplications(applications);
  432. }
  433. });
  434. String legal = driver.findElement(By.className("legal-tag__LEGAL_STATUS")).getText();
  435. patentCell.setLegal(legal);
  436. patentCells.add(patentCell);
  437. }
  438. return patentCells;
  439. }
  440. //格式化参数
  441. public String formatConditions(String condition) throws IOException {
  442. String jsons = FileUtils.readerMethod();
  443. JSONObject jsonObject = new JSONObject();
  444. List<JSONObject> sources = JSONObject.parseArray(jsons, JSONObject.class);
  445. for (JSONObject jsonObject1 : sources) {
  446. jsonObject = jsonObject1;
  447. }
  448. condition = condition.replace(" ", "");
  449. condition = condition.replace("&&", "*");
  450. condition = condition.replace("||", "+");
  451. StringBuilder stringBuilder = new StringBuilder("F XX ");
  452. String pattern = "\\([^)]*\\)";
  453. Pattern p = Pattern.compile(pattern);
  454. Matcher m = p.matcher(condition);
  455. while (m.find()) { // 当字符串中有匹配到 {} 时
  456. String param = m.group(0);
  457. String cell = formatParam(param, jsonObject);
  458. condition = condition.replace(param, cell);
  459. }
  460. return condition;
  461. }
  462. public String formatParam(String param, JSONObject jsonObject) {
  463. param = param.replace("(", "");
  464. param = param.replace(")", "");
  465. String[] params = param.split("=");// {} 和里面的内容
  466. StringBuilder stringBuilder = new StringBuilder("(" + params[1]);
  467. stringBuilder.append("/");
  468. String cell = jsonObject.get(params[0]).toString();
  469. stringBuilder.append(cell + ")");
  470. return stringBuilder.toString();
  471. }
  472. //将值转换为list
  473. public List<String> StringToList(String value, String split) {
  474. List<String> list = new ArrayList<>();
  475. if (value != null && value != "") {
  476. String[] temValue = value.split(split);
  477. list = new ArrayList<>(Arrays.asList(temValue));
  478. }
  479. return list;
  480. }
  481. }