瀏覽代碼

字段格式化

lwhhszx 2 年之前
父節點
當前提交
4053bb0c4d

+ 3 - 0
src/main/java/com/example/demo/domain/dto/QueryTaskDetailsDTO.java

@@ -23,4 +23,7 @@ public class QueryTaskDetailsDTO extends QueryPageDTO {
      */
     private List<Integer> taskDetailStates;
 
+    private String orderBy;
+    private String orderType;
+
 }

+ 14 - 0
src/main/java/com/example/demo/domain/entity/QrtzTaskDetail.java

@@ -69,4 +69,18 @@ public class QrtzTaskDetail extends BaseEntity<QrtzTaskDetail>{
     @TableField(value = "end_time")
     private Date endTime;
 
+    /**
+     * 结束时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "create_time")
+    private Date createTime;
+    /**
+     * 任务顺序
+     */
+    @TableField(value = "failure")
+    private String failure;
+
+
 }

+ 39 - 0
src/main/java/com/example/demo/domain/entity/WebLoginConfig.java

@@ -0,0 +1,39 @@
+package com.example.demo.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 网站配置
+ * @TableName web_config
+ */
+@Data
+@TableName(value ="web_login_config")
+public class WebLoginConfig implements Serializable {
+    /**
+     * ID
+     */
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+    @TableField(value = "login_account")
+    private String loginAccount;
+
+    @TableField(value = "login_password")
+    private String loginPassword;
+
+    /**
+     * 账号
+     */
+    @TableField(value = "tenant_id")
+    private Integer tenantId;
+
+    @TableField(value = "web_Id")
+    private Integer webId;
+
+
+}

+ 22 - 0
src/main/java/com/example/demo/mapper/WebLoginConfigMapper.java

@@ -0,0 +1,22 @@
+package com.example.demo.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.demo.domain.entity.WebConfig;
+import com.example.demo.domain.entity.WebLoginConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author admin
+* @description 针对表【web_config(网站配置)】的数据库操作Mapper
+* @createDate 2023-03-08 18:51:17
+* @Entity cn.cslg.pas.domain.WebConfig
+*/
+@Mapper
+public interface WebLoginConfigMapper extends BaseMapper<WebLoginConfig> {
+
+}
+
+
+
+

+ 12 - 1
src/main/java/com/example/demo/service/JobService.java

@@ -38,7 +38,6 @@ public class JobService {
         LambdaQueryWrapper<QrtzTaskDetail> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(QrtzTaskDetail::getTaskId, taskId);
         qrTaskDetailService.remove(queryWrapper);
-
     }
 
     /**
@@ -111,6 +110,7 @@ public class JobService {
                 .usingJobData(jobDataMap)
                 .build();
         scheduler.scheduleJob(jobDetail, trigger);
+
     }
 
 
@@ -123,4 +123,15 @@ public class JobService {
         return quartzVO;
 
     }
+
+    /**
+     * 停止正在进行的job
+     *
+     * @throws SchedulerException
+     */
+    public void interruptJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
+        scheduler.interrupt(jobKey);
+    }
 }

+ 23 - 1
src/main/java/com/example/demo/service/QrTaskService.java

@@ -2,6 +2,7 @@ package com.example.demo.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.example.demo.domain.dto.QrtzTaskAddNewDTO;
@@ -22,6 +23,7 @@ import org.springframework.stereotype.Service;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Stack;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -156,7 +158,6 @@ public class QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask> {
 
     public Page<QrtzTaskDetail> getTaskDetails(QueryTaskDetailsDTO queryTaskDetailsDTO) {
         log.info("开始处理【查询任务执行情况列表】的业务,参数为:{}", queryTaskDetailsDTO);
-
         LambdaQueryWrapper<QrtzTaskDetail> queryWrapper = new LambdaQueryWrapper<>();
 
         //根据所属任务条件id查询列表
@@ -167,11 +168,32 @@ public class QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask> {
         if (queryTaskDetailsDTO.getTaskDetailStates() != null && queryTaskDetailsDTO.getTaskDetailStates().size() != 0) {
             queryWrapper.in(QrtzTaskDetail::getTaskDetailState, queryTaskDetailsDTO.getTaskDetailStates());
         }
+        if(queryTaskDetailsDTO.getOrderBy()!=null){
+            queryTaskDetailsDTO.setOrderBy(this.formatOrder(queryTaskDetailsDTO.getOrderBy()));
+            if(queryTaskDetailsDTO.getOrderBy().equals("state")){
+                queryWrapper.last(" order by  FIELD(task_detail_state,1,7,8,0,2,3,4,5,6)");
+            }
+            else {
+                queryWrapper.last(" order by " + queryTaskDetailsDTO.getOrderBy());
+                if(queryTaskDetailsDTO.getOrderType()!=null){
+                    queryWrapper.last(" order by " + queryTaskDetailsDTO.getOrderBy()+" "+queryTaskDetailsDTO.getOrderType());
+                }
+            }
+        }
 
         Page<QrtzTaskDetail> page = qrTaskDetailService.page(new Page<>(queryTaskDetailsDTO.getCurrent(), queryTaskDetailsDTO.getSize()), queryWrapper);
         return page;
     }
 
+public  String formatOrder(String order){
+        switch (order)
+        { case "createTime":
+            order ="create_time";
+            break;
+
+        }
+        return order;
+}
 }
 
 

+ 7 - 7
src/main/java/com/example/demo/service/TaskAddJob.java

@@ -4,22 +4,21 @@ import com.example.demo.domain.entity.QrtzTask;
 import com.example.demo.domain.entity.QrtzTaskDetail;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.quartz.DisallowConcurrentExecution;
-import org.quartz.JobDataMap;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
+import org.quartz.*;
 import org.springframework.scheduling.quartz.QuartzJobBean;
 
+import java.util.concurrent.TimeUnit;
+
 /**
  * 定义任务
  */
 @DisallowConcurrentExecution
-public class TaskAddJob extends QuartzJobBean {
+public class TaskAddJob extends   QuartzJobBean {
 
     private static final Log logger = LogFactory.getLog(TaskAddJob.class);
-
+      private  boolean flag =true;
     @Override
-    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
+    public void executeInternal(JobExecutionContext context) throws JobExecutionException {
         JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
         QrtzTask qrtzTask = (QrtzTask) jobDataMap.get("qrtzTask");
 
@@ -29,4 +28,5 @@ public class TaskAddJob extends QuartzJobBean {
         qrtzTaskDetail.insert();
         logger.info("添加任务" + "信息是" + qrtzTaskDetail);
     }
+
 }

+ 13 - 4
src/main/java/com/example/demo/service/UploadFromWebService.java

@@ -12,6 +12,7 @@ import com.example.demo.model.dto.TaskWebSocketDTO;
 import com.example.demo.model.dto.WebQueryDTO;
 import com.example.demo.util.*;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
@@ -20,6 +21,7 @@ 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.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
@@ -36,6 +38,7 @@ import java.util.regex.Pattern;
  * @description 针对表【qrtz_task(定时任务表)】的数据库操作Service实现
  * @createDate 2023-03-15 13:40:32
  */
+@Slf4j
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class UploadFromWebService {
@@ -44,6 +47,8 @@ public class UploadFromWebService {
     private final WebConfigService webConfigService;
     private final QrTaskService qrTaskService;
     private final QrTaskDetailService qrTaskDetailService;
+    @Value("${driverUrl}")
+    private  String url;
 
     // 查询并上传(专利之星)
     public List<PatentCell> getPatentStar(WebQueryDTO webQueryDTO) throws Exception {
@@ -64,13 +69,14 @@ public class UploadFromWebService {
             //根据id 获得网站配置
             WebConfig webConfig = webConfigService.getConfigById(id);
             //1.获得驱动
-            System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
-            // 2.页面最大化
-            ChromeOptions chromeOptions = new ChromeOptions();
+          //  System.setProperty("webdriver.chrome.driver", "D:\\driver\\chromedriver.exe");
+            System.setProperty("webdriver.chrome.driver", url);
+           ChromeOptions chromeOptions = new ChromeOptions();
             // 设置无头模式
             chromeOptions.setHeadless(Boolean.TRUE);
             // 设置无轨 开发时还是不要加,可以看到浏览器效果
             chromeOptions.addArguments("-headless");
+            chromeOptions.addArguments("no-sandbox");
             // 3.创建驱动
             WebDriver driver = new ChromeDriver(chromeOptions);
             // 4.创建动作
@@ -161,7 +167,6 @@ public class UploadFromWebService {
                                 .setTaskDetailState(6)
                                 .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "null");
                         return null;
-
                     }
                     PatentCell patentCell = new PatentCell();
                     patentCell.setProjectId(webQueryDTO.getProjectId());
@@ -396,6 +401,8 @@ public class UploadFromWebService {
                         }
                     }
                        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()
                             .setId(webQueryDTO.getTaskId())
                             .setProjectId(webQueryDTO.getProjectId())
@@ -445,10 +452,12 @@ public class UploadFromWebService {
             qrtzTask.updateById();
             driver.quit();
         } catch (Exception e) {
+           log.error(e.toString());
             //任务执行情况状态设为失败,任务条件状态设为已完成(若是任务条件是定时任务则设为等待下一次执行)
             qrtzTaskDetail.setTaskDetailState(3);
             qrtzTaskDetail.setSuccessNum(successNum);
             qrtzTaskDetail.setDefaultNum(qrtzTaskDetail.getAllNum() - successNum);
+            qrtzTaskDetail.setFailure("拉取节点失败");
             qrtzTaskDetail.setEndTime(new Date());
             qrtzTaskDetail.updateById();
             if (qrtzTask.getTaskType() == 1) {

+ 28 - 0
src/main/java/com/example/demo/service/WebLoginConfigService.java

@@ -0,0 +1,28 @@
+package com.example.demo.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.demo.domain.entity.WebConfig;
+import com.example.demo.domain.entity.WebLoginConfig;
+import com.example.demo.mapper.WebConfigMapper;
+import com.example.demo.mapper.WebLoginConfigMapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author admin
+ * @description 针对表【web_config(网站配置)】的数据库操作Service实现
+ * @createDate 2023-03-08 18:51:17
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class WebLoginConfigService extends ServiceImpl<WebLoginConfigMapper, WebLoginConfig> {
+//添加配置
+    public addConfig(){
+
+
+    }
+
+}