|
@@ -2,11 +2,17 @@ package com.example.demo.service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.example.demo.base.Constants;
|
|
|
import com.example.demo.domain.*;
|
|
|
import com.example.demo.mapper.QrtzTaskMapper;
|
|
|
import com.example.demo.model.dto.QuartzTaskDTO;
|
|
|
+import com.example.demo.model.dto.TaskWebSocketDTO;
|
|
|
import com.example.demo.model.dto.WebQueryDTO;
|
|
|
import com.example.demo.util.FileUtils;
|
|
|
+import com.example.demo.util.Response;
|
|
|
+import com.example.demo.util.ResponseEnum;
|
|
|
+import com.example.demo.util.WebSocketServer;
|
|
|
+import io.swagger.v3.oas.models.security.SecurityScheme;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.openqa.selenium.By;
|
|
@@ -14,6 +20,7 @@ import org.openqa.selenium.WebDriver;
|
|
|
import org.openqa.selenium.WebElement;
|
|
|
import org.openqa.selenium.chrome.ChromeDriver;
|
|
|
import org.openqa.selenium.chrome.ChromeOptions;
|
|
|
+import org.openqa.selenium.htmlunit.HtmlUnitWebElement;
|
|
|
import org.openqa.selenium.interactions.Actions;
|
|
|
import org.openqa.selenium.support.ui.ExpectedConditions;
|
|
|
import org.openqa.selenium.support.ui.WebDriverWait;
|
|
@@ -39,293 +46,326 @@ public class UploadFromWebService {
|
|
|
private final FileUtils fileUtils;
|
|
|
private final OutInterfaceService outInterfaceService;
|
|
|
private final WebConfigService webConfigService;
|
|
|
-
|
|
|
+ private final QrTaskService qrTaskService;
|
|
|
// 查询并上传(专利之星)
|
|
|
- @Async("singleThreadAsyncTaskExecutor")
|
|
|
public List<PatentCell> getPatentStar(WebQueryDTO webQueryDTO) throws Exception {
|
|
|
- String conditions = webQueryDTO.getConditions();
|
|
|
- Integer id = webQueryDTO.getWebConfigId();
|
|
|
- conditions = this.formatConditions(conditions);
|
|
|
- //根据id 获得网站配置
|
|
|
- WebConfig webConfig = webConfigService.getConfigById(id);
|
|
|
List<PatentCell> patentCells = new ArrayList<>();
|
|
|
- //1.获得驱动
|
|
|
- System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
|
|
|
- // 2.页面最大化
|
|
|
- ChromeOptions chromeOptions = new ChromeOptions();
|
|
|
- chromeOptions.addArguments("--start-maximized");
|
|
|
- // 3.创建驱动
|
|
|
- WebDriver driver = new ChromeDriver(chromeOptions);
|
|
|
- // 4.创建动作
|
|
|
- Actions action = new Actions(driver);
|
|
|
- //设置等待时间
|
|
|
- long formSecond1 = 50;
|
|
|
- WebDriverWait wait1 = new WebDriverWait(driver, formSecond1);
|
|
|
- // 打开智慧芽首页
|
|
|
- driver.get(webConfig.getWebAddress());
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("loginname")));
|
|
|
- WebElement loginName = driver.findElement(By.id("loginname"));
|
|
|
- WebElement password = driver.findElement(By.id("password"));
|
|
|
- loginName.sendKeys(webConfig.getWebAccount());
|
|
|
- password.sendKeys(webConfig.getWebPassword());
|
|
|
- WebElement loginButton = driver.findElement(By.id("login"));
|
|
|
- loginButton.click();
|
|
|
- //获得表格搜索按钮并点击
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("tablepage")));
|
|
|
- WebElement tablePage = driver.findElement(By.id("tablepage"));
|
|
|
- WebElement tablePagea = tablePage.findElement(By.tagName("a"));
|
|
|
- tablePagea.click();
|
|
|
- //获得搜索框并点击
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("TxtSearch")));
|
|
|
- WebElement TxtSearch = driver.findElement(By.id("TxtSearch"));
|
|
|
- TxtSearch.sendKeys(conditions);
|
|
|
- WebElement searchBtn = driver.findElement(By.id("searchbtn2"));
|
|
|
- searchBtn.click();
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdNumber")));
|
|
|
- List<WebElement> tcdNumbers = driver.findElements(By.className("tcdNumber"));
|
|
|
- String pagesText = tcdNumbers.get(tcdNumbers.size() - 1).getText();
|
|
|
- int page = Integer.parseInt(pagesText);
|
|
|
- String Handle = driver.getWindowHandle();
|
|
|
- //创建一个map集合存放浏览器句柄
|
|
|
- HashMap<String, String> handleMap = new HashMap<>();
|
|
|
- //将智慧芽句柄放到map中
|
|
|
- handleMap.put("mainPage", Handle);
|
|
|
- for (int p = 0; p < 1; p++) {
|
|
|
- //等待数据加载
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("patent")));
|
|
|
- TimeUnit.MILLISECONDS.sleep(1000);//毫秒
|
|
|
- //获得列表
|
|
|
- List<WebElement> patentContents = driver.findElements(By.className("patent"));
|
|
|
- // 页面元素标签
|
|
|
- for (int i = 0; i < patentContents.size(); i++) {
|
|
|
- PatentCell patentCell = new PatentCell();
|
|
|
- patentCell.setProjectId(webQueryDTO.getProjectId());
|
|
|
- patentCell.setReportId(webQueryDTO.getReportId());
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("title-color")));
|
|
|
- WebElement titleA = patentContents.get(i).findElement(By.className("title-color"));
|
|
|
- titleA.click();
|
|
|
- //9、获取到所有的句柄
|
|
|
- Set<String> set = driver.getWindowHandles();
|
|
|
- //10、循环找到详情窗口句柄
|
|
|
- for (String s : set) {
|
|
|
- //10.1、将详情窗口的句柄放到map中
|
|
|
- if (!s.equals(Handle)) {
|
|
|
- handleMap.put("detail", s);
|
|
|
+
|
|
|
+ try {
|
|
|
+ List<String> cells = webQueryDTO.getConCells();
|
|
|
+ String conditions = webQueryDTO.getConditions();
|
|
|
+ Integer id = webQueryDTO.getWebConfigId();
|
|
|
+ conditions = this.formatConditions(conditions);
|
|
|
+ //根据id 获得网站配置
|
|
|
+ WebConfig webConfig = webConfigService.getConfigById(id);
|
|
|
+ //1.获得驱动
|
|
|
+ System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
|
|
|
+ // 2.页面最大化
|
|
|
+ ChromeOptions chromeOptions = new ChromeOptions();
|
|
|
+ chromeOptions.addArguments("--start-maximized");
|
|
|
+ // 3.创建驱动
|
|
|
+ WebDriver driver = new ChromeDriver(chromeOptions);
|
|
|
+ // 4.创建动作
|
|
|
+ Actions action = new Actions(driver);
|
|
|
+ //设置等待时间
|
|
|
+ long formSecond1 = 10;
|
|
|
+ WebDriverWait wait1 = new WebDriverWait(driver, formSecond1);
|
|
|
+ // 打开专利之星首页
|
|
|
+ driver.get(webConfig.getWebAddress());
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("loginname")));
|
|
|
+ WebElement loginName = driver.findElement(By.id("loginname"));
|
|
|
+ WebElement password = driver.findElement(By.id("password"));
|
|
|
+ loginName.sendKeys(webConfig.getWebAccount());
|
|
|
+ password.sendKeys(webConfig.getWebPassword());
|
|
|
+ WebElement loginButton = driver.findElement(By.id("login"));
|
|
|
+ loginButton.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(5000);//毫秒
|
|
|
+ //获得表格搜索按钮并点击
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("tablepage")));
|
|
|
+ WebElement countEle = driver.findElement(By.className("allcountlab"));
|
|
|
+ String countText =countEle.getText();
|
|
|
+ Integer count = Integer.parseInt(countText);
|
|
|
+ WebElement tablePage = driver.findElement(By.id("tablepage"));
|
|
|
+ WebElement tablePagea = tablePage.findElement(By.tagName("a"));
|
|
|
+ tablePagea.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(5000);//毫秒
|
|
|
+ //获得搜索框并点击
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("TxtSearch")));
|
|
|
+ WebElement TxtSearch = driver.findElement(By.id("TxtSearch"));
|
|
|
+ TxtSearch.sendKeys(conditions);
|
|
|
+ WebElement searchBtn = driver.findElement(By.id("searchbtn2"));
|
|
|
+ searchBtn.click();
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdNumber")));
|
|
|
+ List<WebElement> tcdNumbers = driver.findElements(By.className("tcdNumber"));
|
|
|
+ String pagesText = tcdNumbers.get(tcdNumbers.size() - 1).getText();
|
|
|
+ int page = Integer.parseInt(pagesText);
|
|
|
+ String Handle = driver.getWindowHandle();
|
|
|
+ //创建一个map集合存放浏览器句柄
|
|
|
+ HashMap<String, String> handleMap = new HashMap<>();
|
|
|
+ //将智慧芽句柄放到map中
|
|
|
+ handleMap.put("mainPage", Handle);
|
|
|
+ WebElement pagNum = driver.findElement(By.className("page_num"));
|
|
|
+ pagNum.clear();
|
|
|
+ pagNum.sendKeys("4");
|
|
|
+ WebElement pagBtn = driver.findElement(By.className("page_btn"));
|
|
|
+ pagBtn.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ for (int p = 4; p < page; p++) {
|
|
|
+ //等待数据加载
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("patent")));
|
|
|
+ TimeUnit.MILLISECONDS.sleep(1000);//毫秒
|
|
|
+ //获得列表
|
|
|
+ List<WebElement> patentContents = driver.findElements(By.className("patent"));
|
|
|
+ // 页面元素标签
|
|
|
+ for (int i = 4; i < patentContents.size(); i++) {
|
|
|
+ PatentCell patentCell = new PatentCell();
|
|
|
+ patentCell.setProjectId(webQueryDTO.getProjectId());
|
|
|
+ patentCell.setReportId(webQueryDTO.getReportId());
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("title-color")));
|
|
|
+ WebElement titleA = patentContents.get(i).findElement(By.className("title-color"));
|
|
|
+ titleA.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ //9、获取到所有的句柄
|
|
|
+ Set<String> set = driver.getWindowHandles();
|
|
|
+ //10、循环找到详情窗口句柄
|
|
|
+ for (String s : set) {
|
|
|
+ //10.1、将详情窗口的句柄放到map中
|
|
|
+ if (!s.equals(Handle)) {
|
|
|
+ handleMap.put("detail", s);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- driver.switchTo().window(handleMap.get("detail"));
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("item-content")));
|
|
|
- WebElement itemContent = driver.findElement(By.className("item-content"));
|
|
|
- List<WebElement> divItems = itemContent.findElements(By.tagName("div"));
|
|
|
- for (int t = 0; t < divItems.size(); t++) {
|
|
|
- WebElement temEle = divItems.get(t);
|
|
|
- String text = temEle.getText();
|
|
|
- String value = "";
|
|
|
- String[] strings = text.split(":");
|
|
|
- if (strings.length > 1) {
|
|
|
- value = strings[1].trim();
|
|
|
- String key = strings[0].trim();
|
|
|
+ driver.switchTo().window(handleMap.get("detail"));
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("item-content")));
|
|
|
+ WebElement itemContent = driver.findElement(By.className("item-content"));
|
|
|
+ List<WebElement> divItems = itemContent.findElements(By.tagName("div"));
|
|
|
+ for (int t = 0; t < divItems.size(); t++) {
|
|
|
+ WebElement temEle = divItems.get(t);
|
|
|
+ String text = temEle.getText();
|
|
|
+ String value = "";
|
|
|
+ String[] strings = text.split(":");
|
|
|
+ if (strings.length > 1) {
|
|
|
+ value = strings[1].trim();
|
|
|
+ String key = strings[0].trim();
|
|
|
|
|
|
- switch (key) {
|
|
|
- case "申请号":
|
|
|
- patentCell.setApplicationNo(value);
|
|
|
- break;
|
|
|
- case "申请日":
|
|
|
- patentCell.setApplicationDate(value);
|
|
|
- break;
|
|
|
- case "国家/省市":
|
|
|
- patentCell.setCountry(value);
|
|
|
- break;
|
|
|
- case "公开号":
|
|
|
- patentCell.setPublicNo(value);
|
|
|
- break;
|
|
|
- case "公开日":
|
|
|
- patentCell.setPubilcDate(value);
|
|
|
- break;
|
|
|
- case "授权公告号":
|
|
|
- patentCell.setPublicAccreditNo(value);
|
|
|
- break;
|
|
|
- case "授权公告日":
|
|
|
- patentCell.setPublicAccreditDate(value);
|
|
|
- break;
|
|
|
- case "主分类号":
|
|
|
- patentCell.setMainIpc(value);
|
|
|
- break;
|
|
|
- case "分类号":
|
|
|
- patentCell.setIpc(this.StringToList(value, ";"));
|
|
|
- break;
|
|
|
- case "申请人":
|
|
|
- patentCell.setApplicationPersons(this.StringToList(value, " "));
|
|
|
- break;
|
|
|
- case "申请人地址":
|
|
|
- patentCell.setApplicationAddress(this.StringToList(value, " "));
|
|
|
- break;
|
|
|
- case "发明人":
|
|
|
- patentCell.setInventors(this.StringToList(value, " "));
|
|
|
- break;
|
|
|
- case "当前权利人":
|
|
|
- patentCell.setApplicationCurrents(this.StringToList(value, " "));
|
|
|
- break;
|
|
|
- case "代理人":
|
|
|
- patentCell.setAgencyPersons(this.StringToList(value, " "));
|
|
|
- break;
|
|
|
- case "代理机构":
|
|
|
- patentCell.setAgency(value);
|
|
|
- break;
|
|
|
- case "范畴分类":
|
|
|
- patentCell.setClassical(value);
|
|
|
- break;
|
|
|
- case "当前状态":
|
|
|
- patentCell.setStatue(value);
|
|
|
- break;
|
|
|
+ switch (key) {
|
|
|
+ case "申请号":
|
|
|
+ patentCell.setApplicationNo(value);
|
|
|
+ break;
|
|
|
+ case "申请日":
|
|
|
+ patentCell.setApplicationDate(value);
|
|
|
+ break;
|
|
|
+ case "国家/省市":
|
|
|
+ patentCell.setCountry(value);
|
|
|
+ break;
|
|
|
+ case "公开号":
|
|
|
+ patentCell.setPublicNo(value);
|
|
|
+ break;
|
|
|
+ case "公开日":
|
|
|
+ patentCell.setPubilcDate(value);
|
|
|
+ break;
|
|
|
+ case "授权公告号":
|
|
|
+ patentCell.setPublicAccreditNo(value);
|
|
|
+ break;
|
|
|
+ case "授权公告日":
|
|
|
+ patentCell.setPublicAccreditDate(value);
|
|
|
+ break;
|
|
|
+ case "主分类号":
|
|
|
+ patentCell.setMainIpc(value);
|
|
|
+ break;
|
|
|
+ case "分类号":
|
|
|
+ patentCell.setIpc(this.StringToList(value, ";"));
|
|
|
+ break;
|
|
|
+ case "申请人":
|
|
|
+ patentCell.setApplicationPersons(this.StringToList(value, " "));
|
|
|
+ break;
|
|
|
+ case "申请人地址":
|
|
|
+ patentCell.setApplicationAddress(this.StringToList(value, " "));
|
|
|
+ break;
|
|
|
+ case "发明人":
|
|
|
+ patentCell.setInventors(this.StringToList(value, " "));
|
|
|
+ break;
|
|
|
+ case "当前权利人":
|
|
|
+ patentCell.setApplicationCurrents(this.StringToList(value, " "));
|
|
|
+ break;
|
|
|
+ case "代理人":
|
|
|
+ patentCell.setAgencyPersons(this.StringToList(value, " "));
|
|
|
+ break;
|
|
|
+ case "代理机构":
|
|
|
+ patentCell.setAgency(value);
|
|
|
+ break;
|
|
|
+ case "范畴分类":
|
|
|
+ patentCell.setClassical(value);
|
|
|
+ break;
|
|
|
+ case "当前状态":
|
|
|
+ patentCell.setStatue(value);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- //获得摘要
|
|
|
- WebElement abstrElement = driver.findElement(By.className("item-summary"));
|
|
|
- List<WebElement> spans = abstrElement.findElements(By.tagName("span"));
|
|
|
- String abstrText = spans.get(0).getText();
|
|
|
- patentCell.setAbstrText(abstrText);
|
|
|
- //获得主权要
|
|
|
- String mainRight = spans.get(1).getText();
|
|
|
- patentCell.setMainRignt(mainRight);
|
|
|
- //获得图片路径
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("item-img")));
|
|
|
- WebElement picElement = driver.findElement(By.className("item-img"));
|
|
|
- WebElement imag = picElement.findElement(By.tagName("img"));
|
|
|
- String url = imag.getAttribute("src");
|
|
|
- url = fileUtils.uploadToLocal(url, ".jpg").getPath();
|
|
|
- patentCell.setPicUrl(url);
|
|
|
- //获得权要
|
|
|
- WebElement CLElement = driver.findElement(By.id("itemCL"));
|
|
|
- CLElement.click();
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.tagName("claim-text")));
|
|
|
- List<WebElement> rightElements = driver.findElements(By.tagName("claim-text"));
|
|
|
- List<String> rights = new ArrayList<>();
|
|
|
- rightElements.forEach(item -> {
|
|
|
- rights.add(item.getText());
|
|
|
- });
|
|
|
- patentCell.setRights(rights);
|
|
|
- //获得说明书
|
|
|
- WebElement DSElement = driver.findElement(By.id("itemDS"));
|
|
|
- DSElement.click();
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("title1")));
|
|
|
- WebElement titleElement = driver.findElement(By.id("title1"));
|
|
|
- patentCell.setTitle(titleElement.getText());
|
|
|
- StringBuilder stringBuilder = new StringBuilder();
|
|
|
- int flag = 1;
|
|
|
- //技术领域
|
|
|
- WebElement textElement1 = driver.findElement(By.id("technical-field001"));
|
|
|
- List<WebElement> textP1 = textElement1.findElements(By.tagName("p"));
|
|
|
- stringBuilder.append(textP1.get(0).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- for (int t = 1; t < textP1.size(); t++) {
|
|
|
- String tem = String.format("%04d", flag);
|
|
|
- stringBuilder.append("[" + tem + "]" + textP1.get(t).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- flag += 1;
|
|
|
- }
|
|
|
- //背景技术
|
|
|
- WebElement textElement2 = driver.findElement(By.id("background-art001"));
|
|
|
- List<WebElement> textP2 = textElement2.findElements(By.tagName("p"));
|
|
|
- stringBuilder.append(textP2.get(0).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- for (int t = 1; t < textP2.size(); t++) {
|
|
|
- String tem = String.format("%04d", flag);
|
|
|
- stringBuilder.append("[" + tem + "]" + textP2.get(t).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- flag += 1;
|
|
|
- }
|
|
|
- //说明文本
|
|
|
- WebElement textElement3 = driver.findElement(By.id("disclosure001"));
|
|
|
- List<WebElement> textP3 = textElement3.findElements(By.tagName("p"));
|
|
|
- stringBuilder.append(textP3.get(0).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- for (int t = 1; t < textP3.size(); t++) {
|
|
|
- String tem = String.format("%04d", flag);
|
|
|
- stringBuilder.append("[" + tem + "]" + textP3.get(t).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- flag += 1;
|
|
|
- }
|
|
|
- //发明内容
|
|
|
- WebElement textElement4 = driver.findElement(By.id("disclosure001"));
|
|
|
- List<WebElement> textP4 = textElement4.findElements(By.tagName("p"));
|
|
|
- stringBuilder.append(textP4.get(0).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- for (int t = 1; t < textP4.size(); t++) {
|
|
|
- String tem = String.format("%04d", flag);
|
|
|
- stringBuilder.append("[" + tem + "]" + textP4.get(t).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- flag += 1;
|
|
|
- }
|
|
|
- //附图说明
|
|
|
- WebElement textElement5 = driver.findElement(By.id("description-of-drawings001"));
|
|
|
- List<WebElement> textP5 = textElement5.findElements(By.tagName("p"));
|
|
|
- stringBuilder.append(textP5.get(0).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- for (int t = 1; t < textP5.size(); t++) {
|
|
|
- String tem = String.format("%04d", flag);
|
|
|
- stringBuilder.append("[" + tem + "]" + textP5.get(t).getText());
|
|
|
- stringBuilder.append("\r\n");
|
|
|
- flag += 1;
|
|
|
- }
|
|
|
- patentCell.setPatentInstructionText(stringBuilder.toString());
|
|
|
- //获得pdf文档
|
|
|
- WebElement PDFElement = driver.findElement(By.id("itemPdf"));
|
|
|
- PDFElement.click();
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.tagName("embed")));
|
|
|
- WebElement PDFFile = driver.findElement(By.tagName("embed"));
|
|
|
- String pdfUrl = PDFFile.getAttribute("src");
|
|
|
- UploadFileDTO fileDTO = fileUtils.uploadToLocal(pdfUrl, ".PDF");
|
|
|
- patentCell.setPDFName(fileDTO.getFileName());
|
|
|
- patentCell.setPDFSize(fileDTO.getFileSize());
|
|
|
- patentCell.setPDFUrl(fileDTO.getPath());
|
|
|
- patentCell.setPdf(fileDTO);
|
|
|
- //获得法律状态
|
|
|
- WebElement flztElement = driver.findElement(By.id("flztbtn"));
|
|
|
- flztElement.click();
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("legalContainer")));
|
|
|
- WebElement tBody = driver.findElement(By.id("legalContainer"));
|
|
|
- TimeUnit.MILLISECONDS.sleep(1000);//毫秒
|
|
|
- List<WebElement> trs =tBody.findElements(By.tagName("tr"));
|
|
|
+ //获得摘要
|
|
|
+ WebElement abstrElement = driver.findElement(By.className("item-summary"));
|
|
|
+ List<WebElement> spans = abstrElement.findElements(By.tagName("span"));
|
|
|
+ if (cells.contains(1)) {
|
|
|
+ String abstrText = spans.get(0).getText();
|
|
|
+ patentCell.setAbstrText(abstrText);
|
|
|
+ }
|
|
|
|
|
|
- List<PatentCell.PatentAffair> affairs =new ArrayList<>();
|
|
|
- trs.forEach(item->{
|
|
|
- List<WebElement> tds =item.findElements(By.tagName("td"));
|
|
|
- PatentCell.PatentAffair affair =new PatentCell.PatentAffair();
|
|
|
- affair.setDateTime(tds.get(0).getText());
|
|
|
- affair.setSimpleStatus(tds.get(1).getText());
|
|
|
- affair.setStatus(tds.get(2).getText());
|
|
|
- affairs.add(affair);
|
|
|
- });
|
|
|
- patentCell.setPatentAffairs(affairs);
|
|
|
+ //获得图片路径
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("item-img")));
|
|
|
+ WebElement picElement = driver.findElement(By.className("item-img"));
|
|
|
+ WebElement imag = picElement.findElement(By.tagName("img"));
|
|
|
+ String url = imag.getAttribute("src");
|
|
|
+ url = fileUtils.uploadToLocal(url, ".jpg").getPath();
|
|
|
+ patentCell.setPicUrl(url);
|
|
|
+ if (cells.contains(2)) {
|
|
|
+ //获得主权要
|
|
|
+ String mainRight = spans.get(1).getText();
|
|
|
+ patentCell.setMainRignt(mainRight);
|
|
|
+ //获得权要
|
|
|
+ WebElement CLElement = driver.findElement(By.id("itemCL"));
|
|
|
+ CLElement.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.tagName("claim-text")));
|
|
|
+ List<WebElement> rightElements = driver.findElements(By.tagName("claim-text"));
|
|
|
+ List<String> rights = new ArrayList<>();
|
|
|
+ rightElements.forEach(item -> {
|
|
|
+ rights.add(item.getText());
|
|
|
+ });
|
|
|
+ patentCell.setRights(rights);
|
|
|
+ }
|
|
|
+ if (cells.contains(3)) {
|
|
|
+ //获得说明书
|
|
|
+ WebElement DSElement = driver.findElement(By.id("itemDS"));
|
|
|
+ DSElement.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.tagName("invention-title")));
|
|
|
+ WebElement titleElement = driver.findElement(By.tagName("invention-title"));
|
|
|
+ patentCell.setTitle(titleElement.getText());
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ int flag = 1;
|
|
|
+ //技术领域
|
|
|
+ WebElement textElement1 = driver.findElement(By.tagName("description"));
|
|
|
+ List<WebElement> textP1 = textElement1.findElements(By.tagName("p"));
|
|
|
+ stringBuilder.append(textP1.get(0).getText());
|
|
|
+ stringBuilder.append("\r\n");
|
|
|
+ for (int t = 1; t < textP1.size(); t++) {
|
|
|
+ String tem = String.format("%04d", flag);
|
|
|
+ stringBuilder.append("[" + tem + "]" + textP1.get(t).getText());
|
|
|
+ stringBuilder.append("\r\n");
|
|
|
+ flag += 1;
|
|
|
+ }
|
|
|
+ patentCell.setPatentInstructionText(stringBuilder.toString());
|
|
|
+ }
|
|
|
+ //获得pdf文档
|
|
|
+ if (cells.contains(4)) {
|
|
|
+ WebElement PDFElement = driver.findElement(By.id("itemPdf"));
|
|
|
+ PDFElement.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
|
|
|
+ List<WebElement> PDFFile = driver.findElements(By.tagName("embed"));
|
|
|
+ String pdfUrl = "";
|
|
|
+ if (PDFFile.size() == 0) {
|
|
|
+ List<WebElement> PDFFiles = driver.findElements(By.className("pdfbtn"));
|
|
|
+ if (PDFFiles.size() != 0) {
|
|
|
+ pdfUrl = PDFFiles.get(0).getAttribute("data-url");
|
|
|
+ } else {
|
|
|
+ WebElement suBtn = driver.findElement(By.className("layui-layer-btn0"));
|
|
|
+ suBtn.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ }
|
|
|
|
|
|
- if(patentCell.getPublicNo()!=null){
|
|
|
- patentCell.setPatentNo(patentCell.getPublicNo());
|
|
|
- patentCell.setPublicNo(patentCell.getPublicAccreditNo());
|
|
|
- }
|
|
|
- else{
|
|
|
- patentCell.setPatentNo(patentCell.getPublicAccreditNo());
|
|
|
- }
|
|
|
- if (patentCell.getPatentNo() != null) {
|
|
|
- String res = outInterfaceService.importPatents(patentCell);
|
|
|
- JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
- if (jsonObject.get("code").toString().equals("500")) {
|
|
|
- return null;
|
|
|
+ } else {
|
|
|
+ pdfUrl = PDFFile.get(0).getAttribute("src");
|
|
|
+ }
|
|
|
+ if (pdfUrl != "") {
|
|
|
+ UploadFileDTO fileDTO = fileUtils.uploadToLocal(pdfUrl, ".PDF");
|
|
|
+ patentCell.setPDFName(fileDTO.getFileName());
|
|
|
+ patentCell.setPDFSize(fileDTO.getFileSize());
|
|
|
+ patentCell.setPDFUrl(fileDTO.getPath());
|
|
|
+ patentCell.setPdf(fileDTO);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ if (cells.contains(5)) {
|
|
|
+ //获得法律状态
|
|
|
+ WebElement flztElement = driver.findElement(By.id("flztbtn"));
|
|
|
+ flztElement.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("legalContainer")));
|
|
|
+ WebElement tBody = driver.findElement(By.id("legalContainer"));
|
|
|
+ TimeUnit.MILLISECONDS.sleep(1000);//毫秒
|
|
|
+ List<WebElement> trs = tBody.findElements(By.tagName("tr"));
|
|
|
+
|
|
|
+ List<PatentCell.PatentAffair> affairs = new ArrayList<>();
|
|
|
+ trs.forEach(item -> {
|
|
|
+ List<WebElement> tds = item.findElements(By.tagName("td"));
|
|
|
+ PatentCell.PatentAffair affair = new PatentCell.PatentAffair();
|
|
|
+ affair.setDateTime(tds.get(0).getText());
|
|
|
+ affair.setSimpleStatus(tds.get(1).getText());
|
|
|
+ affair.setStatus(tds.get(2).getText());
|
|
|
+ affairs.add(affair);
|
|
|
+ });
|
|
|
+ patentCell.setPatentAffairs(affairs);
|
|
|
+
|
|
|
+ if (patentCell.getPublicNo() != null) {
|
|
|
+ patentCell.setPatentNo(patentCell.getPublicNo());
|
|
|
+
|
|
|
+ } else {
|
|
|
+ patentCell.setPatentNo(patentCell.getPublicAccreditNo());
|
|
|
+ patentCell.setPublicNo(patentCell.getPublicAccreditNo());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (patentCell.getPatentNo() != null) {
|
|
|
+ String res = outInterfaceService.importPatents(patentCell);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
+ if (jsonObject.get("code").toString().equals("500")) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
|
|
|
+ .setTaskId(webQueryDTO.getTaskId())
|
|
|
+ .setProjectId(webQueryDTO.getProjectId())
|
|
|
+ .setComplete(false)
|
|
|
+ .setIndex(i)
|
|
|
+ .setTaskType(Constants.TASK_IMPORT_PATENT)
|
|
|
+ .setPercentage(count == 0 ? 0 : Math.round((count.equals(i) ? (i * 1D) : (i + 1D)) / count * 100D))
|
|
|
+ .setFileName("")
|
|
|
+ .setUrl("")
|
|
|
+ .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS),"");
|
|
|
+ patentCells.add(patentCell);
|
|
|
+ driver.close();
|
|
|
+ driver.switchTo().window(handleMap.get("mainPage"));
|
|
|
}
|
|
|
- patentCells.add(patentCell);
|
|
|
- driver.close();
|
|
|
- driver.switchTo().window(handleMap.get("mainPage"));
|
|
|
- }
|
|
|
- wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdPageCode")));
|
|
|
+ wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdPageCode")));
|
|
|
|
|
|
- List<WebElement> nexts = driver.findElements(By.className("nextPage"));
|
|
|
- if (nexts.size() != 0) {
|
|
|
- nexts.get(0).click();
|
|
|
+ List<WebElement> nexts = driver.findElements(By.className("nextPage"));
|
|
|
+ if (nexts.size() != 0) {
|
|
|
+ nexts.get(0).click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
|
|
|
+ .setTaskId(webQueryDTO.getTaskId())
|
|
|
+ .setProjectId(webQueryDTO.getProjectId())
|
|
|
+ .setComplete(true)
|
|
|
+ .setIndex(count)
|
|
|
+ .setTaskType(Constants.TASK_IMPORT_PATENT)
|
|
|
+ .setPercentage(100L)
|
|
|
+ .setFileName("")
|
|
|
+ .setUrl("")
|
|
|
+ .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "");
|
|
|
+ QrtzTask qrtzTask = qrTaskService.getById(webQueryDTO.getTaskId());
|
|
|
+ qrtzTask.setTaskState(2);
|
|
|
+ qrtzTask.updateById();
|
|
|
+ driver.quit();
|
|
|
+ }
|
|
|
+ catch (Exception e){
|
|
|
+ QrtzTask qrtzTask = qrTaskService.getById(webQueryDTO.getTaskId());
|
|
|
+ qrtzTask.setTaskState(3);
|
|
|
+ qrtzTask.updateById();
|
|
|
}
|
|
|
-// driver.quit();
|
|
|
return patentCells;
|
|
|
}
|
|
|
|