|
@@ -50,13 +50,12 @@ public class UploadFromWebService {
|
|
|
List<PatentCell> patentCells = new ArrayList<>();
|
|
|
//当前任务执行情况
|
|
|
QrtzTaskDetail qrtzTaskDetail = qrTaskDetailService.getById(webQueryDTO.getTaskId());
|
|
|
- Integer successNum1 = qrtzTaskDetail.getSuccessNum();
|
|
|
- Integer startPage = successNum1 / 5;
|
|
|
- Integer startNum = successNum1 % 5;
|
|
|
+ Integer successNum = qrtzTaskDetail.getSuccessNum();
|
|
|
+ int startPage = successNum / 5;
|
|
|
+ int startNum = successNum % 5;
|
|
|
//当前任务条件
|
|
|
QrtzTask qrtzTask = qrTaskService.getById(qrtzTaskDetail.getTaskId());
|
|
|
//专利成功条数
|
|
|
- int successNum = 0;
|
|
|
try {
|
|
|
List<String> cells = webQueryDTO.getConCells();
|
|
|
String conditions = webQueryDTO.getConditions();
|
|
@@ -68,7 +67,10 @@ public class UploadFromWebService {
|
|
|
System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
|
|
|
// 2.页面最大化
|
|
|
ChromeOptions chromeOptions = new ChromeOptions();
|
|
|
- chromeOptions.addArguments("--start-maximized");
|
|
|
+ // 设置无头模式
|
|
|
+ chromeOptions.setHeadless(Boolean.TRUE);
|
|
|
+ // 设置无轨 开发时还是不要加,可以看到浏览器效果
|
|
|
+ chromeOptions.addArguments("-headless");
|
|
|
// 3.创建驱动
|
|
|
WebDriver driver = new ChromeDriver(chromeOptions);
|
|
|
// 4.创建动作
|
|
@@ -116,10 +118,13 @@ public class UploadFromWebService {
|
|
|
handleMap.put("mainPage", Handle);
|
|
|
WebElement pagNum = driver.findElement(By.className("page_num"));
|
|
|
pagNum.clear();
|
|
|
- pagNum.sendKeys("4");
|
|
|
+ pagNum.sendKeys(startPage+1+"");
|
|
|
WebElement pagBtn = driver.findElement(By.className("page_btn"));
|
|
|
pagBtn.click();
|
|
|
TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ //计算进度值
|
|
|
+ double percentage = count == 0 ? 0 : (count.equals(successNum) ? (successNum * 1D) : (successNum + 1D) / count * 100D);
|
|
|
+ percentage = MathUtils.saveTwoDecimal(percentage);
|
|
|
for (int p = startPage; p < page; p++) {
|
|
|
//等待数据加载
|
|
|
wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("patent")));
|
|
@@ -127,7 +132,37 @@ public class UploadFromWebService {
|
|
|
//获得列表
|
|
|
List<WebElement> patentContents = driver.findElements(By.className("patent"));
|
|
|
// 页面元素标签
|
|
|
- for (int i = 1; i < patentContents.size(); i++) {
|
|
|
+ for (int i = startNum; i < patentContents.size(); i++) {
|
|
|
+ //查看任务状态
|
|
|
+ QrtzTaskDetail qrtzTaskDetail1 = qrTaskDetailService.getById(webQueryDTO.getTaskId());
|
|
|
+ if (qrtzTaskDetail1.getTaskDetailState().equals(7)) {
|
|
|
+ qrtzTaskDetail1.setTaskDetailState(5);
|
|
|
+ qrtzTaskDetail1.setSuccessNum(successNum);
|
|
|
+ qrtzTaskDetail1.setTaskProcess(percentage);
|
|
|
+ qrtzTaskDetail1.updateById();
|
|
|
+ WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
|
|
|
+ .setId(webQueryDTO.getTaskId())
|
|
|
+ .setProjectId(webQueryDTO.getProjectId())
|
|
|
+ .setComplete(false)
|
|
|
+ .setIndex(successNum)
|
|
|
+ .setTaskDetailState(5)
|
|
|
+ .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "null");
|
|
|
+ return null;
|
|
|
+ } else if (qrtzTaskDetail1.getTaskDetailState().equals(8)) {
|
|
|
+ qrtzTaskDetail1.setTaskDetailState(6);
|
|
|
+ qrtzTaskDetail1.setSuccessNum(successNum);
|
|
|
+ qrtzTaskDetail1.setTaskProcess(percentage);
|
|
|
+ qrtzTaskDetail1.updateById();
|
|
|
+ WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
|
|
|
+ .setId(webQueryDTO.getTaskId())
|
|
|
+ .setProjectId(webQueryDTO.getProjectId())
|
|
|
+ .setComplete(false)
|
|
|
+ .setIndex(successNum)
|
|
|
+ .setTaskDetailState(6)
|
|
|
+ .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "null");
|
|
|
+ return null;
|
|
|
+
|
|
|
+ }
|
|
|
PatentCell patentCell = new PatentCell();
|
|
|
patentCell.setProjectId(webQueryDTO.getProjectId());
|
|
|
patentCell.setReportId(webQueryDTO.getReportId());
|
|
@@ -148,21 +183,7 @@ public class UploadFromWebService {
|
|
|
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 = startNum; t < divItems.size(); t++) {
|
|
|
- //查看任务状态
|
|
|
- QrtzTaskDetail qrtzTaskDetail1 = qrTaskDetailService.getById(webQueryDTO.getTaskId());
|
|
|
- if (qrtzTaskDetail1.getTaskDetailState().equals(7)) {
|
|
|
- qrtzTaskDetail1.setTaskDetailState(5);
|
|
|
- qrtzTaskDetail1.setSuccessNum(successNum);
|
|
|
- qrtzTaskDetail1.updateById();
|
|
|
- return null;
|
|
|
- } else if (qrtzTaskDetail1.getTaskDetailState().equals(8)) {
|
|
|
- qrtzTaskDetail1.setTaskDetailState(6);
|
|
|
- qrtzTaskDetail1.setSuccessNum(successNum);
|
|
|
- qrtzTaskDetail1.updateById();
|
|
|
- return null;
|
|
|
-
|
|
|
- }
|
|
|
+ for (int t = 0; t < divItems.size(); t++) {
|
|
|
WebElement temEle = divItems.get(t);
|
|
|
String text = temEle.getText();
|
|
|
String value = "";
|
|
@@ -242,43 +263,59 @@ public class UploadFromWebService {
|
|
|
url = fileUtils.uploadToLocal(url, ".jpg").getPath();
|
|
|
patentCell.setPicUrl(url);
|
|
|
if (cells.contains("2")) {
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ WebElement CLElement = driver.findElement(By.id("itemCL"));
|
|
|
+ CLElement.click();
|
|
|
//获得主权要
|
|
|
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")));
|
|
|
+ driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
|
|
|
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 (rightElements.size() == 0) {
|
|
|
+ WebElement suBtn = driver.findElement(By.className("layui-layer-btn0"));
|
|
|
+ suBtn.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ } else {
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ 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());
|
|
|
+ driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
|
|
|
+ List<WebElement> titleElements = driver.findElements(By.tagName("invention-title"));
|
|
|
+ if(titleElements.size()==0){
|
|
|
+ WebElement suBtn = driver.findElement(By.className("layui-layer-btn0"));
|
|
|
+ suBtn.click();
|
|
|
+ TimeUnit.MILLISECONDS.sleep(10000);//毫秒
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ WebElement titleElement =titleElements.get(0);
|
|
|
+ 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");
|
|
|
- flag += 1;
|
|
|
+ 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());
|
|
|
}
|
|
|
- patentCell.setPatentInstructionText(stringBuilder.toString());
|
|
|
+
|
|
|
}
|
|
|
//获得pdf文档
|
|
|
if (cells.contains("4")) {
|
|
@@ -358,17 +395,14 @@ public class UploadFromWebService {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- //计算进度值
|
|
|
- double percentage = count == 0 ? 0 : (count.equals(successNum) ? (successNum * 1D) : (successNum + 1D) / count * 100D);
|
|
|
- percentage = MathUtils.saveTwoDecimal(percentage);
|
|
|
+ QrtzTaskDetail qrtzTaskDetail11 =qrTaskDetailService.getById(qrtzTaskDetail.getId());
|
|
|
WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
|
|
|
- .setTaskId(webQueryDTO.getTaskId())
|
|
|
+ .setId(webQueryDTO.getTaskId())
|
|
|
.setProjectId(webQueryDTO.getProjectId())
|
|
|
.setComplete(false)
|
|
|
.setIndex(successNum)
|
|
|
- .setTaskType(Constants.TASK_IMPORT_PATENT)
|
|
|
.setPercentage(percentage)
|
|
|
+ .setTaskDetailState(qrtzTaskDetail11.getTaskDetailState())
|
|
|
.setFileName("")
|
|
|
.setUrl("")
|
|
|
.setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "null");
|
|
@@ -387,12 +421,12 @@ public class UploadFromWebService {
|
|
|
}
|
|
|
|
|
|
WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
|
|
|
- .setTaskId(webQueryDTO.getTaskId())
|
|
|
+ .setId(webQueryDTO.getTaskId())
|
|
|
.setProjectId(webQueryDTO.getProjectId())
|
|
|
.setComplete(true)
|
|
|
.setIndex(count)
|
|
|
- .setTaskType(Constants.TASK_IMPORT_PATENT)
|
|
|
.setPercentage(100D)
|
|
|
+ .setTaskDetailState(qrtzTaskDetail.getTaskDetailState())
|
|
|
.setFileName("")
|
|
|
.setUrl("")
|
|
|
.setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "");
|
|
@@ -400,6 +434,7 @@ public class UploadFromWebService {
|
|
|
qrtzTaskDetail.setTaskDetailState(2);
|
|
|
qrtzTaskDetail.setSuccessNum(successNum);
|
|
|
qrtzTaskDetail.setDefaultNum(qrtzTaskDetail.getAllNum() - successNum);
|
|
|
+ qrtzTaskDetail.setTaskProcess(100);
|
|
|
qrtzTaskDetail.setEndTime(new Date());
|
|
|
qrtzTaskDetail.updateById();
|
|
|
if (qrtzTask.getTaskType() == 1) {
|