Переглянути джерело

3/20 合享扒数据进程 1%

chendayu 2 роки тому
батько
коміт
7b8e5dc6a8

+ 15 - 16
src/main/java/com/example/demo/controller/AssoTaskPersonelController.java

@@ -1,34 +1,24 @@
 package com.example.demo.controller;
 
-import com.alibaba.fastjson.JSONObject;
 import com.example.demo.base.Constants;
 import com.example.demo.domain.PatentCell;
-import com.example.demo.domain.UploadFileDTO;
-import com.example.demo.service.OutInterfaceService;
 import com.example.demo.service.UploadFromWebService;
 import com.example.demo.util.FileUtils;
-import com.example.demo.util.Response;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
-import org.openqa.selenium.By;
 import org.openqa.selenium.JavascriptExecutor;
 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.interactions.Actions;
-import org.openqa.selenium.support.ui.ExpectedConditions;
-import org.openqa.selenium.support.ui.WebDriverWait;
 import org.springframework.context.annotation.Lazy;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.TimeUnit;
 
 @Tag(name = "任务人员操作")
 @RestController
@@ -37,9 +27,18 @@ import java.util.concurrent.TimeUnit;
 public class AssoTaskPersonelController {
     private final FileUtils fileUtils;
     private final UploadFromWebService uploadFromWebService;
+
     @GetMapping("/getStar")
-    public List<PatentCell> getPatentStar(String conditions,Integer id) throws Exception {
-        return uploadFromWebService.getPatentStar(conditions,id);
+    public List<PatentCell> getPatentStar(String conditions, Integer id) throws Exception {
+        List<PatentCell> patentData = null;
+        if (id == 1) {
+            patentData = uploadFromWebService.getPatentStar(conditions, id);
+        } else if (id == 2) {
+            patentData = uploadFromWebService.getHeXiang(conditions, id);
+        } else if (id == 3) {
+            //patentData = uploadFromWebService.getPatentya();
+        }
+        return patentData;
     }
 
 

+ 274 - 223
src/main/java/com/example/demo/service/UploadFromWebService.java

@@ -10,6 +10,7 @@ import com.example.demo.mapper.QrtzTaskMapper;
 import com.example.demo.model.dto.QuartzTaskDTO;
 import com.example.demo.util.FileUtils;
 import lombok.RequiredArgsConstructor;
+import org.openqa.selenium.Alert;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
@@ -30,250 +31,300 @@ import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
 /**
-* @author admin
-* @description 针对表【qrtz_task(定时任务表)】的数据库操作Service实现
-* @createDate 2023-03-15 13:40:32
-*/
+ * @author admin
+ * @description 针对表【qrtz_task(定时任务表)】的数据库操作Service实现
+ * @createDate 2023-03-15 13:40:32
+ */
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
-public class UploadFromWebService{
+public class UploadFromWebService {
     private final FileUtils fileUtils;
     private final OutInterfaceService outInterfaceService;
     private final WebConfigService webConfigService;
-// 查询并上传(专利之星)
-public List<PatentCell> getPatentStar(String conditions,Integer id) throws Exception {
-    //根据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();
-            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);
-                }
-            }
-            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];
+
+    // 查询并上传(专利之星)
+    public List<PatentCell> getPatentStar(String conditions, Integer id) throws Exception {
+        //根据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();
+                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);
+                    }
                 }
-                switch (t) {
-                    case 0:
-                        patentCell.setApplicationNo(value);
-                    case 1:
-                        patentCell.setApplicationDate(value);
-                    case 2:
-                        patentCell.setCountry(value);
-                    case 3:
-                        patentCell.setPatentNo(value);
-                    case 4:
-                        patentCell.setPubilcDate(value);
-                    case 5:
-                        patentCell.setPublicAccreditNo(value);
-                    case 6:
-                        patentCell.setPublicAccreditDate(value);
-                    case 7:
-                        patentCell.setMainTypeNo(value);
-                    case 8:
-                        patentCell.setTypeNo(value);
-                    case 9:
-                        patentCell.setApplicationNo(value);
-                    case 10:
-                        patentCell.setApplicationAddress(value);
-                    case 11:
-                        patentCell.setInventor(value);
-                    case 12:
-                        patentCell.setPatentApplication(value);
-                    case 13:
-                        patentCell.setClassical(value);
-                    case  14:
-                        patentCell.setStatue(value);
-                        break;
+                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];
+                    }
+                    switch (t) {
+                        case 0:
+                            patentCell.setApplicationNo(value);
+                        case 1:
+                            patentCell.setApplicationDate(value);
+                        case 2:
+                            patentCell.setCountry(value);
+                        case 3:
+                            patentCell.setPatentNo(value);
+                        case 4:
+                            patentCell.setPubilcDate(value);
+                        case 5:
+                            patentCell.setPublicAccreditNo(value);
+                        case 6:
+                            patentCell.setPublicAccreditDate(value);
+                        case 7:
+                            patentCell.setMainTypeNo(value);
+                        case 8:
+                            patentCell.setTypeNo(value);
+                        case 9:
+                            patentCell.setApplicationNo(value);
+                        case 10:
+                            patentCell.setApplicationAddress(value);
+                        case 11:
+                            patentCell.setInventor(value);
+                        case 12:
+                            patentCell.setPatentApplication(value);
+                        case 13:
+                            patentCell.setClassical(value);
+                        case 14:
+                            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");
-            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());
+                //获得摘要
+                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");
+                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");
-                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());
+                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");
-                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());
+                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");
-                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());
+                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");
-                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());
+                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");
-                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");
-              pdfUrl =fileUtils.uploadToLocal(pdfUrl,".PDF");
-            patentCell.setPDF(pdfUrl);
+                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");
+                pdfUrl = fileUtils.uploadToLocal(pdfUrl, ".PDF");
+                patentCell.setPDF(pdfUrl);
 //            String res =   outInterfaceService.importPatents(patentCell);
 //            JSONObject jsonObject =JSONObject.parseObject(res);
 //            if(jsonObject.get("code").toString().equals("0")){
 //                return null;
 //            }
-            patentCells.add(patentCell);
-            //上传
-            MultipartFile file = FileUtils.urlToMultipartFile(patentCell.getPDF(),".PDF");
-            UploadFileDTO fileDTO = fileUtils.uploadFile(file);
-            String path = fileUtils.getPath(fileDTO.getPath());
-            patentCell.setUrl(path);
-            driver.close();
-            driver.switchTo().window(handleMap.get("mainPage"));
+                patentCells.add(patentCell);
+                //上传
+                MultipartFile file = FileUtils.urlToMultipartFile(patentCell.getPDF(), ".PDF");
+                UploadFileDTO fileDTO = fileUtils.uploadFile(file);
+                String path = fileUtils.getPath(fileDTO.getPath());
+                patentCell.setUrl(path);
+                driver.close();
+                driver.switchTo().window(handleMap.get("mainPage"));
+            }
+            wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdPageCode")));
+
+            List<WebElement> nexts = driver.findElements(By.className("nextPage"));
+            if (nexts.size() != 0) {
+                nexts.get(0).click();
+            }
         }
-        wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdPageCode")));
+//        driver.quit();
+        return patentCells;
+    }
 
-        List<WebElement> nexts = driver.findElements(By.className("nextPage"));
-        if (nexts.size()!=0){
-            nexts.get(0).click();
+    // 查询并上传(合享)
+    public List<PatentCell> getHeXiang(String conditions, Integer id) throws InterruptedException {
+        //通过id从数据库中获得网站地址、账号、密码
+        WebConfig webConfig = webConfigService.getConfigById(id);
+        String webAddress = webConfig.getWebAddress();
+        String webAccount = webConfig.getWebAccount();
+        String webPassword = webConfig.getWebPassword();
+
+        //1.获得驱动
+        System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
+        //页面窗口最大化 仁杰 ↓
+        //ChromeOptions chromeOptions = new ChromeOptions();
+        //chromeOptions.addArguments("--start-maximized");
+        //2.创建驱动
+        //ChromeDriver chromeDriver = new ChromeDriver(chromeOptions);
+        ChromeDriver chromeDriver = new ChromeDriver();
+        //3.页面窗口最大化
+        chromeDriver.manage().window().maximize();
+        //4.创建动作
+        //Actions action = new Actions(chromeDriver);
+        //5.设置等待时间
+        WebDriverWait wait = new WebDriverWait(chromeDriver, 50);
+
+        //打开合享首页
+        chromeDriver.get(webAddress);
+        //等待直到出现id为"u"的元素,找到id为"u"和"p"的元素,并输入值(即输入账号密码)
+        wait.until(ExpectedConditions.presenceOfElementLocated(By.id("u")));
+        WebElement username = chromeDriver.findElement(By.id("u"));
+        WebElement password = chromeDriver.findElement(By.id("p"));
+        username.sendKeys(webAccount);
+        password.sendKeys(webPassword);
+        //找到id为"clauseCheckBox"的元素,并点击(即点击同意服务条款)
+        WebElement accept = chromeDriver.findElement(By.id("clauseCheckBox"));
+        if (!accept.isSelected()) {
+            accept.click();
+        }
+        //找到id为"loginBtn"的元素,并点击(即点击登录按钮)
+        WebElement loginButton = chromeDriver.findElement(By.id("loginBtn"));
+        loginButton.click();
+        //线程睡眠1秒等待alert弹窗提示账号正被登录,若此时有弹窗则点击确定按钮(即确认挤号)
+        Thread.sleep(1000);
+        Alert alert = chromeDriver.switchTo().alert();
+        if (alert != null) {
+            alert.accept();
         }
+
+        return null;
     }
-//        driver.quit();
-    return patentCells;
-}
 
     public List<PatentCell> getPatentya(String patentVO) throws IOException, InterruptedException {
         //1.获得驱动

+ 12 - 13
src/main/java/com/example/demo/service/WebConfigService.java

@@ -9,20 +9,19 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 /**
-* @author admin
-* @description 针对表【web_config(网站配置)】的数据库操作Service实现
-* @createDate 2023-03-08 18:51:17
-*/
+ * @author admin
+ * @description 针对表【web_config(网站配置)】的数据库操作Service实现
+ * @createDate 2023-03-08 18:51:17
+ */
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
-public class WebConfigService extends ServiceImpl<WebConfigMapper, WebConfig>
-  {
-     public WebConfig getConfigById(Integer id){
-       WebConfig webConfig = this.getById(id);
-       if(webConfig !=null){
-         return webConfig;
-       }
-       return new WebConfig();
-  }
+public class WebConfigService extends ServiceImpl<WebConfigMapper, WebConfig> {
+    public WebConfig getConfigById(Integer id) {
+        WebConfig webConfig = this.getById(id);
+        if (webConfig != null) {
+            return webConfig;
+        }
+        return new WebConfig();
+    }
 
 }