chendayu 2 anni fa
parent
commit
b249c55ef9

+ 9 - 0
pom.xml

@@ -128,6 +128,15 @@
             <artifactId>fastjson</artifactId>
             <version>${fastjson.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+            <version>1.4.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 2
src/main/java/com/example/demo/config/QuartzConfig.java

@@ -1,6 +1,5 @@
 package com.example.demo.config;
 
-import com.example.demo.service.TaskAddJob;
 import com.example.demo.service.WebUploadJob;
 import org.quartz.*;
 import org.springframework.context.annotation.Bean;
@@ -23,7 +22,7 @@ public class QuartzConfig {
                 .storeDurably()
                 .build();
     }
-    
+
     @Bean
     public Trigger trigger() {
         //创建触发器

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

@@ -32,7 +32,7 @@ public class AssoTaskPersonelController {
     @PostMapping("/getStar")
     public List<PatentCell> getPatentStar(@RequestBody WebQueryDTO WebQueryDTO) throws Exception {
         List<PatentCell> patentData = null;
-        if (WebQueryDTO.getWebConfigId() == 1||WebQueryDTO.getWebConfigId() == 4) {
+        if (WebQueryDTO.getWebConfigId() == 1 || WebQueryDTO.getWebConfigId() == 4) {
             patentData = uploadFromWebService.getPatentStar(WebQueryDTO);
         }
 //        else if (id == 2) {
@@ -56,12 +56,12 @@ public class AssoTaskPersonelController {
     @Operation(summary = "分页获取对比专利")
     public void test(String patentVO) throws IOException, InterruptedException, ParseException {
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
-      String date ="2022.1.1";
+        String date = "2022.1.1";
         Date date1 = simpleDateFormat.parse(date);
 
-      Long ts =  date1.getTime()/1000;
-      Integer a = Integer.parseInt(String.valueOf(ts));
-        System.out.println(ts+"ni"+a);
+        Long ts = date1.getTime() / 1000;
+        Integer a = Integer.parseInt(String.valueOf(ts));
+        System.out.println(ts + "ni" + a);
 
 
     }

+ 9 - 3
src/main/java/com/example/demo/controller/QuartzController.java

@@ -26,21 +26,26 @@ public class QuartzController {
 
     @Operation(summary = "添加任务")
     @PostMapping("/addTask")
-    public void addTask(@RequestBody QuartzTaskDTO quartzTaskDTO) throws SchedulerException {
+    public String addTask(@RequestBody QuartzTaskDTO quartzTaskDTO) throws SchedulerException {
+        //添加任务
         QrtzTask qrtzTask = qrTaskService.addQuartzTask(quartzTaskDTO);
+        //任务添加完成后,判断是定时任务则再由定时任务定时添加该任务
         if (quartzTaskDTO.getTaskType().equals(1)) {
             jobService.addJob(qrtzTask);
         }
+        return Response.success("添加任务完成");
     }
+
     @Operation(summary = "删除任务")
     @PostMapping("/deleteTasks")
     public String deleteTasks(@RequestBody List<Integer> taskIds) throws SchedulerException {
         return Response.success(qrTaskService.deleteQuartzTask(taskIds));
     }
+
     @Operation(summary = "查询任务")
     @PostMapping("/getTasks")
-    public String getTasks(@RequestBody QuartzTaskDTO quartzTaskDTO) {
-        return Response.success(qrTaskService.getTasks(quartzTaskDTO));
+    public Response getTasks(@RequestBody QuartzTaskDTO quartzTaskDTO) {
+        return Response.success2(qrTaskService.getTasks(quartzTaskDTO));
     }
 
     @Operation(summary = "更新任务")
@@ -57,6 +62,7 @@ public class QuartzController {
         jobService.pauseJob(taskId);
 
     }
+
     @Operation(summary = "继续任务")
     @GetMapping("/resumeJob")
     public void resumeJob(Integer taskId) throws SchedulerException {

+ 54 - 0
src/main/java/com/example/demo/domain/JsonPage.java

@@ -0,0 +1,54 @@
+package com.example.demo.domain;
+
+import com.github.pagehelper.PageInfo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 把封装着分页查询结果和分页信息的PageInfo类转换为本类并返回给前端(本类应和Page\PageInfo一样,既包含分页查询结果又包含分页信息)
+ *
+ * @Author chenyu
+ * @Date 2023/2/16
+ */
+@Data
+public class JsonPage implements Serializable {
+    /**
+     * 总页数
+     */
+    private Integer totalCurrents;
+    /**
+     * 总条数
+     */
+    private Long totalSizes;
+    /**
+     * 当前页 (页码)
+     */
+    private Integer current;
+    /**
+     * 每页条数
+     */
+    private Integer size;
+    /**
+     * 分页查询结果
+     */
+    private List<Object> list;
+
+    // 下面要编写一个能够将PageInfo类型对象转换为JsonPage类型对象的方法
+    // 如果需要将其他类型对象转换为JsonPage(例如SpringData的Page类型),另外编写方法即可
+    public static JsonPage restPage(PageInfo pageInfo) {
+        // 所谓转换的意思就是将pageInfo对象中的信息,赋值给JsonPage类型
+        JsonPage result = new JsonPage();
+        // 因为PageInfo和JsonPage同名属性较少,所以手动赋值
+        result.setTotalSizes(pageInfo.getTotal());
+        result.setTotalCurrents(pageInfo.getPages());
+        result.setCurrent(pageInfo.getPageNum());
+        result.setSize(pageInfo.getPageSize());
+        // 别忘了最后的分页数据
+        result.setList(pageInfo.getList());
+        // 最后返回JsonPage类型对象result
+        return result;
+    }
+
+}

+ 34 - 0
src/main/java/com/example/demo/domain/PageDTO2.java

@@ -0,0 +1,34 @@
+package com.example.demo.domain;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 分页查询前端传输DTO类
+ *
+ * @Author chenyu
+ * @Date 2023/2/16
+ */
+@Accessors(chain = true)
+@Data
+public class PageDTO2 implements Serializable {
+    /**
+     * 当前页数
+     */
+    private Integer current;
+    /**
+     * 每页条数
+     */
+    private Integer size;
+    /**
+     * 排序名称
+     */
+    private String orderBy;
+    /**
+     * 排序类型
+     */
+    private String orderType;
+
+}

+ 67 - 11
src/main/java/com/example/demo/domain/QrtzTask.java

@@ -4,16 +4,20 @@ 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 java.io.Serializable;
-import java.util.Date;
-
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
 
 /**
  * 定时任务表
+ *
  * @TableName qrtz_task
  */
-@TableName(value ="qrtz_task")
+@TableName(value = "qrtz_task")
+@Accessors(chain = true)
 @Data
 public class QrtzTask extends BaseEntity<QrtzTask> {
     /**
@@ -21,41 +25,93 @@ public class QrtzTask extends BaseEntity<QrtzTask> {
      */
     @TableId(type = IdType.AUTO)
     private Integer id;
-
     /**
      * 专题库id
      */
     private Integer projectId;
-
     /**
-     * 查询条件
+     * 查询条件/检索信息
      */
     @TableField(value = "conditions")
     private String conditions;
-
+    /**
+     * 任务名称
+     */
     @TableField(value = "task_name")
     private String taskName;
-
+    /**
+     * 任务状态(0队列中 1进行中 2成功 3失败)
+     */
     @TableField(value = "task_state")
     private Integer taskState;
-
+    /**
+     * 总条数
+     */
     @TableField(value = "all_num")
     private Integer allNum;
-
+    /**
+     * 成功条数
+     */
     @TableField(value = "success_num")
     private Integer successNum;
+    /**
+     * 失败条数
+     */
     @TableField(value = "default_num")
     private Integer defaultNum;
+    /**
+     * cron表达式
+     */
     @TableField(value = "crons")
     private String crons;
+    /**
+     * 任务类型(0普通任务 1定时任务)
+     */
     @TableField(value = "task_type")
     private Integer taskType;
+    /**
+     * 创建时间
+     */
     @TableField(value = "create_time")
     private Date createTime;
+    /**
+     * 任务顺序
+     */
     @TableField(value = "task_order")
     private Integer taskOrder;
+    /**
+     * 配置id
+     */
     @TableField(value = "config_id")
     private Integer configId;
+    /**
+     * 下载字段
+     */
     @TableField(value = "config_cells")
     private String configCells;
+    /**
+     * 开始时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "start_time")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    @TableField(value = "end_time")
+    private Date endTime;
+    /**
+     * 创建人id
+     */
+    @TableField(value = "create_person_id")
+    private Integer createPersonId;
+    /**
+     * 创建人名称
+     */
+    @TableField(value = "create_person_name")
+    private String createPersonName;
+
 }

+ 3 - 2
src/main/java/com/example/demo/domain/WebConfigCell.java

@@ -10,10 +10,11 @@ import java.io.Serializable;
 
 /**
  * 网站配置
+ *
  * @TableName web_config
  */
 @Data
-@TableName(value ="web_config_cell")
+@TableName(value = "web_config_cell")
 public class WebConfigCell implements Serializable {
     /**
      * ID
@@ -24,7 +25,7 @@ public class WebConfigCell implements Serializable {
     private Integer configType;
     @TableField(value = "cell_value")
     private String cellValue;
-    @TableField(value="cell_name")
+    @TableField(value = "cell_name")
     private String cellName;
 
 

+ 11 - 0
src/main/java/com/example/demo/mapper/QrtzTaskMapper.java

@@ -2,8 +2,11 @@ package com.example.demo.mapper;
 
 import com.example.demo.domain.QrtzTask;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.demo.model.dto.QuartzTaskDTO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * @author admin
  * @description 针对表【qrtz_task(定时任务表)】的数据库操作Mapper
@@ -12,6 +15,14 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface QrtzTaskMapper extends BaseMapper<QrtzTask> {
+    /**
+     * 根据专题库id和任务类型查询数据
+     *
+     * @param quartzTaskDTO 数据对象
+     * @return 返回查询到的数据
+     */
+    List<QrtzTask> selectBy(QuartzTaskDTO quartzTaskDTO);
+
 
 }
 

+ 48 - 2
src/main/java/com/example/demo/model/dto/QuartzTaskDTO.java

@@ -1,18 +1,64 @@
 package com.example.demo.model.dto;
 
+import com.example.demo.domain.PageDTO2;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
 
+import java.util.Date;
 import java.util.List;
 
+@Accessors(chain = true)
 @Data
-public class QuartzTaskDTO {
+public class QuartzTaskDTO extends PageDTO2 {
+    /**
+     * 专题库id
+     */
     private Integer projectId;
-    private String  taskName;
+    /**
+     * 任务名称
+     */
+    private String taskName;
+    /**
+     * cron定时周期表达式
+     */
     private String cron;
+    /**
+     * 检索信息
+     */
     private String conditions;
+    /**
+     * 网站id
+     */
     private Integer webConfigId;
+    /**
+     * 任务id
+     */
     private Integer taskId;
+    /**
+     * 任务类型(0普通任务 1定时任务)
+     */
     private Integer taskType;
+    /**
+     * 任务状态(0队列中 1进行中 2成功 3失败)
+     */
     private Integer taskState;
+    /**
+     * 下载字段
+     */
     private List<String> conCells;
+    /**
+     * 开始时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+
 }

+ 7 - 4
src/main/java/com/example/demo/model/vo/QuartzVO.java

@@ -4,8 +4,11 @@ import lombok.Data;
 
 @Data
 public class QuartzVO {
-private String jobName;
-private String jobGroupName;
-private String triggerName;
-private String triggerGroupName;
+    /**
+     * 任务名称
+     */
+    private String jobName;
+    private String jobGroupName;
+    private String triggerName;
+    private String triggerGroupName;
 }

+ 32 - 24
src/main/java/com/example/demo/service/JobService.java

@@ -21,13 +21,14 @@ public class JobService {
     private final Scheduler scheduler;
 
     private final QrTaskService qrTaskService;
+
     /**
      * 删除job
      *
      * @throws SchedulerException
      */
     public void deleteJob(Integer taskId) throws SchedulerException {
-        QuartzVO quartzVO=this.generateQuartzVO(taskId);
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
         TriggerKey triggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
         scheduler.pauseTrigger(triggerKey);
         scheduler.unscheduleJob(triggerKey);
@@ -35,15 +36,16 @@ public class JobService {
         scheduler.deleteJob(jobKey);
         qrTaskService.removeById(taskId);
     }
+
     /**
      * 暂停job
      *
      * @throws SchedulerException
      */
     public void pauseJob(Integer taskId) throws SchedulerException {
-        QuartzVO quartzVO=this.generateQuartzVO(taskId);
-        qrTaskService.updateState(taskId,0);
-        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(),quartzVO.getJobGroupName());
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+        qrTaskService.updateState(taskId, 0);
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
         scheduler.pauseJob(jobKey);
     }
 
@@ -53,8 +55,8 @@ public class JobService {
      * @throws SchedulerException
      */
     public void resumeJob(Integer taskId) throws SchedulerException {
-        QuartzVO quartzVO=this.generateQuartzVO(taskId);
-         qrTaskService.updateState(taskId,1);
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+        qrTaskService.updateState(taskId, 1);
         JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
         scheduler.resumeJob(jobKey);
     }
@@ -64,12 +66,12 @@ public class JobService {
      *
      * @param
      */
-    public void updateJob( QrtzTask qrtzTask) {
+    public void updateJob(QrtzTask qrtzTask) {
         //更新任务
 
-        QuartzVO quartzVO=this.generateQuartzVO(qrtzTask.getId());
-        JobDataMap jobDataMap =new JobDataMap();
-        jobDataMap.put("qrtzTask",qrtzTask);
+        QuartzVO quartzVO = this.generateQuartzVO(qrtzTask.getId());
+        JobDataMap jobDataMap = new JobDataMap();
+        jobDataMap.put("qrtzTask", qrtzTask);
         TriggerKey oldTriggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
         CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCrons());
         CronTrigger cronTrigger = TriggerBuilder.newTrigger()
@@ -89,25 +91,31 @@ public class JobService {
     @Transactional
     public void addJob(QrtzTask qrtzTask) throws SchedulerException {
         //添加一条任务记录
-
-        QuartzVO quartzVO=this.generateQuartzVO(qrtzTask.getId());
-        JobDataMap jobDataMap =new JobDataMap();
-        jobDataMap.put("qrtzTask",qrtzTask);
+        QuartzVO quartzVO = this.generateQuartzVO(qrtzTask.getId());
+        JobDataMap jobDataMap = new JobDataMap();
+        jobDataMap.put("qrtzTask", qrtzTask);
         CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCrons());
-        JobDetail jobDetail = JobBuilder.newJob(TaskAddJob.class).withIdentity(quartzVO.getJobName(),quartzVO.getJobGroupName()).build();
-        Trigger trigger = TriggerBuilder.newTrigger().withIdentity(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName())
-                .withSchedule(cronScheduleBuilder).usingJobData(jobDataMap).build();
+        JobDetail jobDetail = JobBuilder
+                .newJob(TaskAddJob.class)
+                .withIdentity(quartzVO.getJobName(), quartzVO.getJobGroupName())
+                .build();
+        Trigger trigger = TriggerBuilder
+                .newTrigger()
+                .withIdentity(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName())
+                .withSchedule(cronScheduleBuilder)
+                .usingJobData(jobDataMap)
+                .build();
         scheduler.scheduleJob(jobDetail, trigger);
     }
 
 
-    public QuartzVO generateQuartzVO(Integer taskId){
-            QuartzVO quartzVO =new QuartzVO();
-            quartzVO.setJobName("Job_"+taskId);
-            quartzVO.setJobGroupName("Default");
-            quartzVO.setTriggerName("Trigger_"+taskId);
-            quartzVO.setTriggerGroupName("Default");
-            return quartzVO;
+    public QuartzVO generateQuartzVO(Integer taskId) {
+        QuartzVO quartzVO = new QuartzVO();
+        quartzVO.setJobName("Job_" + taskId);
+        quartzVO.setJobGroupName("Default");
+        quartzVO.setTriggerName("Trigger_" + taskId);
+        quartzVO.setTriggerGroupName("Default");
+        return quartzVO;
 
     }
 }

+ 44 - 20
src/main/java/com/example/demo/service/QrTaskService.java

@@ -1,16 +1,22 @@
 package com.example.demo.service;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.demo.domain.JsonPage;
 import com.example.demo.domain.QrtzTask;
 import com.example.demo.model.dto.QuartzTaskDTO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.quartz.SchedulerException;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import com.example.demo.mapper.QrtzTaskMapper;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -18,30 +24,34 @@ import java.util.List;
  * @description 针对表【qrtz_task(定时任务表)】的数据库操作Service实现
  * @createDate 2023-03-15 13:40:32
  */
+@Slf4j
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask> {
     private final JobService jobService;
+    private final QrtzTaskMapper qrtzTaskMapper;
+
     /**
      * 添加定时任务
      *
      * @param quartzTaskDTO
      */
     public QrtzTask addQuartzTask(QuartzTaskDTO quartzTaskDTO) {
-      List<String> cells =  quartzTaskDTO.getConCells();
+        List<String> cells = quartzTaskDTO.getConCells();
         QrtzTask qrtzTask = new QrtzTask();
-        if(cells==null){
+        if (cells == null) {
             qrtzTask.setConfigCells("");
+        } else {
+            qrtzTask.setConfigCells(String.join(",", cells));
         }
-        else{
-            qrtzTask.setConfigCells(String.join(",",cells));
-        }
-        qrtzTask.setConditions(quartzTaskDTO.getConditions());
-        qrtzTask.setProjectId(quartzTaskDTO.getProjectId());
-        qrtzTask.setTaskState(0);
-        qrtzTask.setCrons(quartzTaskDTO.getCron());
-        qrtzTask.setTaskType(quartzTaskDTO.getTaskType());
-        qrtzTask.setConfigId(quartzTaskDTO.getWebConfigId());
+        qrtzTask
+                .setConditions(quartzTaskDTO.getConditions())
+                .setProjectId(quartzTaskDTO.getProjectId())
+                .setTaskState(0)
+                .setCrons(quartzTaskDTO.getCron())
+                .setTaskType(quartzTaskDTO.getTaskType())
+                .setConfigId(quartzTaskDTO.getWebConfigId())
+                .setStartTime(new Date());
         qrtzTask.insert();
         return qrtzTask;
     }
@@ -67,7 +77,7 @@ public class QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask> {
      * @param taskIds
      */
     public List<Integer> deleteQuartzTask(List<Integer> taskIds) throws SchedulerException {
-        List<Integer> reIds= new ArrayList<>();
+        List<Integer> reIds = new ArrayList<>();
         LambdaQueryWrapper<QrtzTask> wrapper = new LambdaQueryWrapper<>();
         wrapper.in(QrtzTask::getId, taskIds);
         List<QrtzTask> qrtzTaskList = this.list(wrapper);
@@ -84,15 +94,29 @@ public class QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask> {
     }
 
 
-    public List<QrtzTask> getTasks(QuartzTaskDTO quartzTaskDTO) {
-        LambdaQueryWrapper<QrtzTask> queryWrapper =new LambdaQueryWrapper<>();
-        if(quartzTaskDTO.getTaskType()!=null){
-            queryWrapper.eq(QrtzTask::getTaskType,quartzTaskDTO.getTaskType());
-        }
-        if(quartzTaskDTO.getTaskName()!=null){
-            queryWrapper.like(QrtzTask::getTaskName,quartzTaskDTO.getTaskName());
+    public JsonPage getTasks(QuartzTaskDTO quartzTaskDTO) {
+//        仁杰 ↓
+//        LambdaQueryWrapper<QrtzTask> queryWrapper = new LambdaQueryWrapper<>();
+//        //若任务类型有值则根据任务类型查任务列表
+//        if (quartzTaskDTO.getTaskType() != null) {
+//            queryWrapper.eq(QrtzTask::getTaskType, quartzTaskDTO.getTaskType());
+//        }
+//        //若任务名称有值则根据任务名称查任务列表
+//        if (quartzTaskDTO.getTaskName() != null) {
+//            queryWrapper.like(QrtzTask::getTaskName, quartzTaskDTO.getTaskName());
+//        }
+//        return this.list(queryWrapper);
+
+        log.info("开始处理【查询任务列表】的业务,参数为:{}", quartzTaskDTO);
+
+        Integer current = quartzTaskDTO.getCurrent();
+        Integer size = quartzTaskDTO.getSize();
+        if (current != null && size != null) {
+            PageHelper.startPage(current, size);
         }
-        return this.list(queryWrapper);
+        List<QrtzTask> qrtzTasks = qrtzTaskMapper.selectBy(quartzTaskDTO);
+        return JsonPage.restPage(new PageInfo<>(qrtzTasks));
+
     }
 
 }

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

@@ -19,17 +19,18 @@ public class TaskAddJob extends QuartzJobBean {
 
     @Override
     protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
-        JobDataMap jobDataMap =   context.getTrigger().getJobDataMap();
+        JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
         QrtzTask qrtzTask = (QrtzTask) jobDataMap.get("qrtzTask");
 
-        QrtzTask task =new QrtzTask();
-        task.setTaskType(0);
-        task.setConditions(qrtzTask.getConditions());
-        task.setProjectId(qrtzTask.getProjectId());
-        task.setConfigId(qrtzTask.getConfigId());
-        task.setConfigCells(qrtzTask.getConfigCells());
-        task.setTaskState(0);
+        QrtzTask task = new QrtzTask();
+        task
+                .setTaskType(0)
+                .setConditions(qrtzTask.getConditions())
+                .setProjectId(qrtzTask.getProjectId())
+                .setConfigId(qrtzTask.getConfigId())
+                .setConfigCells(qrtzTask.getConfigCells())
+                .setTaskState(0);
         task.insert();
-        logger.info("添加任务"+"信息是"+task);
+        logger.info("添加任务" + "信息是" + task);
     }
 }

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

@@ -46,7 +46,8 @@ public class UploadFromWebService {
     private final FileUtils fileUtils;
     private final OutInterfaceService outInterfaceService;
     private final WebConfigService webConfigService;
-     private final QrTaskService qrTaskService;
+    private final QrTaskService qrTaskService;
+
     // 查询并上传(专利之星)
     public List<PatentCell> getPatentStar(WebQueryDTO webQueryDTO) throws Exception {
         List<PatentCell> patentCells = new ArrayList<>();
@@ -83,7 +84,7 @@ public class UploadFromWebService {
             //获得表格搜索按钮并点击
             wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("tablepage")));
             WebElement countEle = driver.findElement(By.className("allcountlab"));
-            String countText =countEle.getText();
+            String countText = countEle.getText();
             Integer count = Integer.parseInt(countText);
             WebElement tablePage = driver.findElement(By.id("tablepage"));
             WebElement tablePagea = tablePage.findElement(By.tagName("a"));
@@ -332,7 +333,7 @@ public class UploadFromWebService {
                             .setPercentage(count == 0 ? 0 : Math.round((count.equals(i) ? (i * 1D) : (i + 1D)) / count * 100D))
                             .setFileName("")
                             .setUrl("")
-                            .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS),"");
+                            .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "");
                     patentCells.add(patentCell);
                     driver.close();
                     driver.switchTo().window(handleMap.get("mainPage"));
@@ -358,12 +359,13 @@ public class UploadFromWebService {
                     .setTotal(count), ResponseEnum.PATENT_IMPORT_TASK_SUCCESS), "");
             QrtzTask qrtzTask = qrTaskService.getById(webQueryDTO.getTaskId());
             qrtzTask.setTaskState(2);
+            qrtzTask.setEndTime(new Date());
             qrtzTask.updateById();
             driver.quit();
-        }
-        catch (Exception e){
+        } catch (Exception e) {
             QrtzTask qrtzTask = qrTaskService.getById(webQueryDTO.getTaskId());
             qrtzTask.setTaskState(3);
+            qrtzTask.setEndTime(new Date());
             qrtzTask.updateById();
         }
         return patentCells;

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

@@ -20,11 +20,12 @@ import java.util.List;
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class WebConfigCellService extends ServiceImpl<WebConfigCellMapper, WebConfigCell> {
- public List<WebConfigCell>  getConfigCell(Integer type){
-     LambdaQueryWrapper<WebConfigCell> wrapper =new LambdaQueryWrapper<>();
-     wrapper.eq(WebConfigCell::getConfigType,type);
-     List<WebConfigCell> webConfigCells =this.list(wrapper);
-     return webConfigCells;
- }
+
+    public List<WebConfigCell> getConfigCell(Integer type) {
+        LambdaQueryWrapper<WebConfigCell> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(WebConfigCell::getConfigType, type);
+        List<WebConfigCell> webConfigCells = this.list(wrapper);
+        return webConfigCells;
+    }
 
 }

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

@@ -3,22 +3,17 @@ package com.example.demo.service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.example.demo.domain.QrtzTask;
 import com.example.demo.model.dto.WebQueryDTO;
-import lombok.SneakyThrows;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.checkerframework.checker.units.qual.A;
 import org.quartz.DisallowConcurrentExecution;
-import org.quartz.JobDataMap;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.quartz.QuartzJobBean;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 
 /**
  * 定义任务
@@ -32,40 +27,40 @@ public class WebUploadJob extends QuartzJobBean {
     private QrTaskService qrTaskService;
     @Autowired
     private UploadFromWebService uploadFromWebService;
+
     @Override
     public void executeInternal(JobExecutionContext context) throws JobExecutionException {
-
-            //查找是否有任务正在进行
-            LambdaQueryWrapper<QrtzTask> queryWrapper =new LambdaQueryWrapper<>();
-            queryWrapper.eq(QrtzTask::getTaskState,1)
-            .eq(QrtzTask::getTaskType,0);
-            List<QrtzTask> qrtzTaskList =  qrTaskService.list(queryWrapper);
-            //当无任务在进行时
-            if(qrtzTaskList.size()==0){
-                LambdaQueryWrapper<QrtzTask> getDoingWrapper = new LambdaQueryWrapper<>();
-                getDoingWrapper.eq(QrtzTask::getTaskState,0)
-                        .eq(QrtzTask::getTaskType,0)
-                        .orderByAsc(QrtzTask::getCreateTime).last("limit 1");
-                QrtzTask qrtzTask = qrTaskService.getOne(getDoingWrapper);
-                if(qrtzTask!=null) {
-                    qrtzTask.setTaskState(1);
-                    qrtzTask.updateById();
-                    logger.info("上传任务" + "信息是" + qrtzTask);
-                    String[] cells =qrtzTask.getConfigCells().split(",");
-                    List<String>  conCells =new ArrayList<>(Arrays.asList(cells));
-                    WebQueryDTO webQueryDTO =new WebQueryDTO();
-                    webQueryDTO.setConCells(conCells);
-                    webQueryDTO.setWebConfigId(qrtzTask.getConfigId());
-                    webQueryDTO.setConditions(qrtzTask.getConditions());
-                    webQueryDTO.setProjectId(qrtzTask.getProjectId());
-                    webQueryDTO.setTaskId(qrtzTask.getId());
-                    try {
-                        uploadFromWebService.getPatentStar(webQueryDTO);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
+        //查找是否有任务正在进行
+        LambdaQueryWrapper<QrtzTask> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(QrtzTask::getTaskState, 1)
+                .eq(QrtzTask::getTaskType, 0);
+        List<QrtzTask> qrtzTaskList = qrTaskService.list(queryWrapper);
+        //当无任务在进行时
+        if (qrtzTaskList.size() == 0) {
+            LambdaQueryWrapper<QrtzTask> getDoingWrapper = new LambdaQueryWrapper<>();
+            getDoingWrapper.eq(QrtzTask::getTaskState, 0)
+                    .eq(QrtzTask::getTaskType, 0)
+                    .orderByAsc(QrtzTask::getCreateTime).last("limit 1");
+            QrtzTask qrtzTask = qrTaskService.getOne(getDoingWrapper);
+            if (qrtzTask != null) {
+                qrtzTask.setTaskState(1);
+                qrtzTask.updateById();
+                logger.info("上传任务" + "信息是" + qrtzTask);
+                String[] cells = qrtzTask.getConfigCells().split(",");
+                List<String> conCells = new ArrayList<>(Arrays.asList(cells));
+                WebQueryDTO webQueryDTO = new WebQueryDTO();
+                webQueryDTO.setConCells(conCells);
+                webQueryDTO.setWebConfigId(qrtzTask.getConfigId());
+                webQueryDTO.setConditions(qrtzTask.getConditions());
+                webQueryDTO.setProjectId(qrtzTask.getProjectId());
+                webQueryDTO.setTaskId(qrtzTask.getId());
+                try {
+                    uploadFromWebService.getPatentStar(webQueryDTO);
+                } catch (Exception e) {
+                    e.printStackTrace();
                 }
             }
         }
+    }
 
 }

+ 7 - 2
src/main/resources/application.yml

@@ -45,6 +45,11 @@ spring:
     job-store-type: jdbc
     #初始化表结构
     jdbc:
-     initialize-schema: never
+      initialize-schema: never
 PCSUrl: http://localhost:8871
-PASUrl: http://localhost:8877
+PASUrl: http://localhost:8877
+mybatis-plus:
+  mapper-locations: classpath:mapper/*.xml
+logging:
+  level:
+    com.example.demo: debug

+ 58 - 0
src/main/resources/mapper/QrtzTaskMapper.xml

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.example.demo.mapper.QrtzTaskMapper">
+    <!--根据专题库id和任务类型查询数据-->
+    <!--List<QrtzTask> selectBy(QuartzTaskDTO quartzTaskDTO);-->
+    <select id="selectBy" resultMap="selectByMap">
+        select id,
+        project_id,
+        conditions,
+        task_name,
+        task_state,
+        all_num,
+        success_num,
+        default_num,
+        crons,
+        task_type,
+        task_order,
+        create_time,
+        config_id,
+        config_cells,
+        start_time,
+        end_time
+        from pas.qrtz_task
+        <where>
+            <if test="projectId != null and projectId != ''">
+                and project_id = #{projectId}
+            </if>
+            <if test="taskType != null and taskType != ''">
+                and task_type = #{taskType}
+            </if>
+            <if test="taskName != null and taskName != ''">
+                and task_name = #{taskName}
+            </if>
+        </where>
+        order by id
+    </select>
+
+    <resultMap id="selectByMap" type="com.example.demo.domain.QrtzTask">
+        <id column="id" property="id"/>
+        <result column="project_id" property="projectId"/>
+        <result column="conditions" property="conditions"/>
+        <result column="task_name" property="taskName"/>
+        <result column="task_state" property="taskState"/>
+        <result column="all_num" property="allNum"/>
+        <result column="success_num" property="successNum"/>
+        <result column="default_num" property="defaultNum"/>
+        <result column="crons" property="crons"/>
+        <result column="task_type" property="taskType"/>
+        <result column="task_order" property="taskOrder"/>
+        <result column="create_time" property="createTime"/>
+        <result column="config_id" property="configId"/>
+        <result column="config_cells" property="configCells"/>
+        <result column="start_time" property="startTime"/>
+        <result column="end_time" property="endTime"/>
+    </resultMap>
+
+</mapper>