Selaa lähdekoodia

4/7 早晨10点会议展示前更新下载任务接口

chendayu 2 vuotta sitten
vanhempi
commit
3dfc3331a0

+ 4 - 2
src/main/java/com/example/demo/service/QrTaskService.java

@@ -22,6 +22,7 @@ import org.quartz.SchedulerException;
 import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -112,6 +113,7 @@ public class QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask> {
      *
      * @param taskIds
      */
+    @Transactional(rollbackFor = Exception.class)
     public List<Integer> deleteQuartzTask(List<Integer> taskIds) throws SchedulerException {
         List<Integer> reIds = new ArrayList<>();
         LambdaQueryWrapper<QrtzTask> wrapper = new LambdaQueryWrapper<>();
@@ -126,8 +128,8 @@ public class QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask> {
             if(qrtzTaskDetails.size()==0){
                 Boolean flag = this.removeById(qrtzTask.getId());
                 LambdaQueryWrapper<QrtzTaskDetail> deleteWrapper =new LambdaQueryWrapper<>();
-                queryWrapper.eq(QrtzTaskDetail::getTaskId,qrtzTask.getId());
-                qrTaskDetailService.removeById(deleteWrapper);
+                deleteWrapper.eq(QrtzTaskDetail::getTaskId,qrtzTask.getId());
+                qrTaskDetailService.remove(deleteWrapper);
                 if (!flag) {
                     reIds.add(qrtzTask.getId());
                 }

+ 38 - 19
src/main/java/com/example/demo/service/UploadFromWebService.java

@@ -46,7 +46,7 @@ public class UploadFromWebService {
     private final QrTaskDetailService qrTaskDetailService;
     private final WebLoginConfigService webLoginConfigService;
     @Value("${driverUrl}")
-    private  String url;
+    private String url;
 
     // 查询并上传(专利之星)
     public List<PatentCell> getPatentStar(WebQueryDTO webQueryDTO) throws Exception {
@@ -67,19 +67,29 @@ public class UploadFromWebService {
             //根据id 获得网站配置
             WebConfig webConfig = webConfigService.getConfigById(id);
             //根据网站id和用户的租户获得登录信息
-           WebLoginConfig webLoginConfig = webLoginConfigService.getLoginConfig(webConfig.getId());
-           if(webConfig==null){
-               qrtzTaskDetail.setTaskDetailState(3);
-               qrtzTaskDetail.setSuccessNum(successNum);
-               qrtzTaskDetail.setDefaultNum(qrtzTaskDetail.getAllNum() - successNum);
-               qrtzTaskDetail.setFailure("未配置登录信息");
-               qrtzTaskDetail.setEndTime(new Date());
-               qrtzTaskDetail.updateById();
-           }
+            WebLoginConfig webLoginConfig = webLoginConfigService.getLoginConfig(webConfig.getId());
+            if (webConfig == null) {
+                qrtzTaskDetail.setTaskDetailState(3);
+                qrtzTaskDetail.setSuccessNum(successNum);
+                qrtzTaskDetail.setDefaultNum(qrtzTaskDetail.getAllNum() - successNum);
+                qrtzTaskDetail.setFailure("未配置登录信息");
+                qrtzTaskDetail.setEndTime(new Date());
+                qrtzTaskDetail.updateById();
+                WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
+                        .setId(webQueryDTO.getTaskId())
+                        .setProjectId(webQueryDTO.getProjectId())
+                        .setComplete(true)
+                        .setIndex(successNum)
+                        .setPercentage(0.0)
+                        .setTaskDetailState(3)
+                        .setFileName("")
+                        .setUrl("")
+                        .setTotal(successNum), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "null");
+            }
             //1.获得驱动
-          //  System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
+            //  System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
             System.setProperty("webdriver.chrome.driver", url);
-           ChromeOptions chromeOptions = new ChromeOptions();
+            ChromeOptions chromeOptions = new ChromeOptions();
             // 设置无头模式
             chromeOptions.setHeadless(Boolean.TRUE);
             // 设置无轨 开发时还是不要加,可以看到浏览器效果
@@ -132,7 +142,7 @@ public class UploadFromWebService {
             handleMap.put("mainPage", Handle);
             WebElement pagNum = driver.findElement(By.className("page_num"));
             pagNum.clear();
-            pagNum.sendKeys(startPage+1+"");
+            pagNum.sendKeys(startPage + 1 + "");
             WebElement pagBtn = driver.findElement(By.className("page_btn"));
             pagBtn.click();
             TimeUnit.MILLISECONDS.sleep(10000);//毫秒
@@ -305,13 +315,12 @@ public class UploadFromWebService {
                         TimeUnit.MILLISECONDS.sleep(10000);//毫秒
                         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
                         List<WebElement> titleElements = driver.findElements(By.tagName("invention-title"));
-                        if(titleElements.size()==0){
+                        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);
+                        } else {
+                            WebElement titleElement = titleElements.get(0);
                             patentCell.setTitle(titleElement.getText());
                             StringBuilder stringBuilder = new StringBuilder();
                             int flag = 1;
@@ -408,7 +417,7 @@ public class UploadFromWebService {
                             return null;
                         }
                     }
-                       QrtzTaskDetail qrtzTaskDetail11 =qrTaskDetailService.getById(qrtzTaskDetail.getId());
+                    QrtzTaskDetail qrtzTaskDetail11 = qrTaskDetailService.getById(qrtzTaskDetail.getId());
                     percentage = count == 0 ? 0 : (count.equals(successNum) ? (successNum * 1D) : (successNum + 1D) / count * 100D);
                     percentage = MathUtils.saveTwoDecimal(percentage);
                     WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
@@ -460,7 +469,7 @@ public class UploadFromWebService {
             qrtzTask.updateById();
             driver.quit();
         } catch (Exception e) {
-           log.error(e.toString());
+            log.error(e.toString());
             //任务执行情况状态设为失败,任务条件状态设为已完成(若是任务条件是定时任务则设为等待下一次执行)
             qrtzTaskDetail.setTaskDetailState(3);
             qrtzTaskDetail.setSuccessNum(successNum);
@@ -474,6 +483,16 @@ public class UploadFromWebService {
                 qrtzTask.setTaskState(3);
             }
             qrtzTask.updateById();
+            WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
+                    .setId(webQueryDTO.getTaskId())
+                    .setProjectId(webQueryDTO.getProjectId())
+                    .setComplete(true)
+                    .setIndex(successNum)
+                    .setPercentage(100D)
+                    .setTaskDetailState(qrtzTaskDetail.getTaskDetailState())
+                    .setFileName("")
+                    .setUrl("")
+                    .setTotal(successNum), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "");
         }
         return patentCells;
     }

+ 6 - 6
src/main/java/com/example/demo/service/WebUploadJob.java

@@ -61,12 +61,12 @@ public class WebUploadJob extends QuartzJobBean {
                 double percentage = qrtzTaskDetail.getAllNum() == 0 ? 0 : (qrtzTaskDetail.getAllNum().equals(qrtzTaskDetail.getSuccessNum()) ? (qrtzTaskDetail.getSuccessNum() * 1D) : (qrtzTaskDetail.getSuccessNum() + 1D) / qrtzTaskDetail.getAllNum() * 100D);
                 percentage = MathUtils.saveTwoDecimal(percentage);
                 WebSocketServer.sendInfo(Response.websocket(new TaskWebSocketDTO()
-                        .setId(qrtzTaskDetail.getId())
-                        .setComplete(false)
-                        .setIndex(qrtzTaskDetail.getSuccessNum())
-                        .setTotal(qrtzTaskDetail.getAllNum())
-                        .setTaskDetailState(1)
-                        .setPercentage(percentage)
+                                .setId(qrtzTaskDetail.getId())
+                                .setComplete(false)
+                                .setIndex(qrtzTaskDetail.getSuccessNum())
+                                .setTotal(qrtzTaskDetail.getAllNum())
+                                .setTaskDetailState(1)
+                                .setPercentage(percentage)
                         , ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "null");
                 String[] cells = qrtzTask.getConfigCells().split(",");
                 List<String> conCells = new ArrayList<>(Arrays.asList(cells));