lwhhszx 2 anni fa
parent
commit
f1659835f6

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

@@ -1,19 +1,16 @@
 package com.example.demo.controller;
 
 import com.example.demo.base.Constants;
-import com.example.demo.domain.PatentCell;
-import com.example.demo.service.DongAoJob;
+import com.example.demo.model.dto.QuartzTaskDTO;
 import com.example.demo.service.JobService;
-import io.swagger.v3.oas.annotations.tags.Tag;
 import lombok.RequiredArgsConstructor;
 import org.quartz.SchedulerException;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-
 
 @RestController
 @RequestMapping(Constants.QUARTZ_API + "/job")
@@ -21,19 +18,20 @@ import java.util.List;
 public class QuartzController {
     private final JobService jobService;
 @GetMapping("/add")
-    public void addJob(String patentVO) throws InterruptedException, SchedulerException {
-jobService.addJob("testJob","testJobGroup","testTrigger","testTriggerGroupName", DongAoJob.class,"2 * * * * ? ");
+    public void addJob(@RequestBody QuartzTaskDTO quartzTaskDTO) throws InterruptedException, SchedulerException {
+
+    jobService.addJob(quartzTaskDTO);
 
     }
 
     @GetMapping("/delete")
-    public void delete(String triggerName,String triggerGroup,String jobName,String jobGroup) throws InterruptedException, SchedulerException {
-        jobService.deleteJob(triggerName,triggerGroup,jobName,jobGroup);
+    public void delete(Integer taskId) throws InterruptedException, SchedulerException {
+        jobService.deleteJob(taskId);
 
     }
     @GetMapping("/update")
-    public void update(String triggerName,String triggerGroup,String cron) throws InterruptedException, SchedulerException {
-        jobService.updateJob(triggerName,triggerGroup,cron);
+    public void update(Integer taskId,String cron) throws InterruptedException, SchedulerException {
+        jobService.updateJob(taskId,cron);
 
     }
 

+ 28 - 0
src/main/java/com/example/demo/domain/BaseEntity.java

@@ -0,0 +1,28 @@
+package com.example.demo.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+
+
+/**
+ * Entity基类
+ *
+ */
+@Data
+@SuppressWarnings("rawtypes")
+public class BaseEntity<T extends Model> extends Model {
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = -4851055162892178225L;
+
+    /**
+     * 唯一ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+}

+ 19 - 6
src/main/java/com/example/demo/domain/QrtzTask.java

@@ -13,7 +13,7 @@ import lombok.Data;
  */
 @TableName(value ="qrtz_task")
 @Data
-public class QrtzTask implements Serializable {
+public class QrtzTask extends BaseEntity<QrtzTask> {
     /**
      * ID
      */
@@ -21,11 +21,6 @@ public class QrtzTask implements Serializable {
     private Integer id;
 
     /**
-     * 任务id
-     */
-    private Integer taskId;
-
-    /**
      * 专题库id
      */
     private Integer projectId;
@@ -33,6 +28,24 @@ public class QrtzTask implements Serializable {
     /**
      * 查询条件
      */
+    @TableField(value = "conditions")
     private String conditions;
 
+    @TableField(value = "task_name")
+    private String taskName;
+
+    @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;
+    @TableField(value = "crons")
+    private String crons;
+
+
 }

+ 1 - 0
src/main/java/com/example/demo/model/dto/QuartzTaskDTO.java

@@ -8,4 +8,5 @@ public class QuartzTaskDTO {
     private String  taskName;
     private String cron;
     private String conditions;
+    private Integer webConfigId;
 }

+ 11 - 0
src/main/java/com/example/demo/model/vo/QuartzVO.java

@@ -0,0 +1,11 @@
+package com.example.demo.model.vo;
+
+import lombok.Data;
+
+@Data
+public class QuartzVO {
+private String jobName;
+private String jobGroupName;
+private String triggerName;
+private String triggerGroupName;
+}

+ 47 - 38
src/main/java/com/example/demo/service/JobService.java

@@ -1,60 +1,62 @@
 package com.example.demo.service;
 
+import com.example.demo.domain.QrtzTask;
+import com.example.demo.model.dto.QuartzTaskDTO;
+import com.example.demo.model.vo.QuartzVO;
+import io.swagger.v3.oas.models.security.SecurityScheme;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
 @Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class JobService {
-    @Autowired
-    private Scheduler scheduler;
+
+    private final Scheduler scheduler;
+
+    private final QrTaskService qrTaskService;
     /**
      * 删除job
      *
-     * @param triggerName  触发器名称
-     * @param triggerGroup 触发器分组
-     * @param jobName      任务名称
-     * @param jobGroup     任务分组
      * @throws SchedulerException
      */
-    public void deleteJob(String triggerName, String triggerGroup, String jobName, String jobGroup) throws SchedulerException {
-        TriggerKey triggerKey = TriggerKey.triggerKey(triggerName, triggerGroup);
+    public void deleteJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO=this.generateQuartzVO(taskId);
+        TriggerKey triggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
         scheduler.pauseTrigger(triggerKey);
         scheduler.unscheduleJob(triggerKey);
-        JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
         scheduler.deleteJob(jobKey);
     }
     /**
      * 暂停job
      *
-     * @param triggerName  触发器名称
-     * @param triggerGroup 触发器分组
-     * @param jobName      任务名称
-     * @param jobGroup     任务分组
      * @throws SchedulerException
      */
-    public void pauseJob(String triggerName, String triggerGroup, String jobName, String jobGroup) throws SchedulerException {
-        TriggerKey triggerKey = TriggerKey.triggerKey(triggerName, triggerGroup);
+    public void pauseJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO=this.generateQuartzVO(taskId);
+        TriggerKey triggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
         scheduler.pauseTrigger(triggerKey);
         scheduler.unscheduleJob(triggerKey);
-        JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(),quartzVO.getJobGroupName());
         scheduler.pauseJob(jobKey);
     }
 
     /**
      * 恢复job
      *
-     * @param triggerName  触发器名称
-     * @param triggerGroup 触发器分组
-     * @param jobName      任务名称
-     * @param jobGroup     任务分组
      * @throws SchedulerException
      */
-    public void resumeJob(String triggerName, String triggerGroup, String jobName, String jobGroup) throws SchedulerException {
-        TriggerKey triggerKey = TriggerKey.triggerKey(triggerName, triggerGroup);
+    public void resumeJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO=this.generateQuartzVO(taskId);
+        TriggerKey triggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
         scheduler.pauseTrigger(triggerKey);
         scheduler.unscheduleJob(triggerKey);
-        JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
         scheduler.resumeJob(jobKey);
     }
 
@@ -63,10 +65,10 @@ public class JobService {
      *
      * @param cron          新的cron表达式
      */
-    public void updateJob(String triggerName, String triggerGroup, String cron) {
+    public void updateJob(Integer taskId, String cron) {
+        QuartzVO quartzVO=this.generateQuartzVO(taskId);
         JobDataMap jobDataMap =new JobDataMap();
-        jobDataMap.put("msg","update1");
-        TriggerKey oldTriggerKey = TriggerKey.triggerKey(triggerName, triggerGroup);
+        TriggerKey oldTriggerKey = TriggerKey.triggerKey(quartzVO.getTriggerName(), quartzVO.getTriggerGroupName());
         CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
         CronTrigger cronTrigger = TriggerBuilder.newTrigger()
                 .withIdentity(oldTriggerKey).usingJobData(jobDataMap).withSchedule(scheduleBuilder).build();
@@ -80,22 +82,29 @@ public class JobService {
     /**
      * 新增job任务
      *
-     * @param jobName          job名称
-     * @param jobGroupName     job分组名称
-     * @param triggerName      触发器名称
-     * @param triggerGroupName 触发器分组名称
-     * @param jobClass         需要执行的job.class
-     * @param cron             cron 表达式
      * @throws SchedulerException
      */
-    public void addJob(String jobName, String jobGroupName,
-                       String triggerName, String triggerGroupName, Class jobClass, String cron) throws SchedulerException {
+    public void addJob(QuartzTaskDTO quartzTaskDTO) throws SchedulerException {
+        //添加一条任务记录
+        QrtzTask qrtzTask= qrTaskService.addQuartzTask(quartzTaskDTO);
+        QuartzVO quartzVO=this.generateQuartzVO(qrtzTask.getId());
         JobDataMap jobDataMap =new JobDataMap();
-        jobDataMap.put("msg","add");
-        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cron);
-        JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(jobName, jobGroupName).build();
-        Trigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerName, triggerGroupName)
+        jobDataMap.put("qrtzTask",qrtzTask);
+        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(quartzTaskDTO.getCron());
+        JobDetail jobDetail = JobBuilder.newJob(WebUploadJob.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;
+
+    }
 }

+ 17 - 11
src/main/java/com/example/demo/service/QrTaskService.java

@@ -9,19 +9,25 @@ import org.springframework.stereotype.Service;
 import com.example.demo.mapper.QrtzTaskMapper;
 
 /**
-* @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 QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask>{
-
-    public void addQuartzTask(QuartzTaskDTO quartzTaskDTO){
-
-
-
-
+public class QrTaskService extends ServiceImpl<QrtzTaskMapper, QrtzTask> {
+
+    /**
+     * @param quartzTaskDTO
+     */
+    public QrtzTask addQuartzTask(QuartzTaskDTO quartzTaskDTO) {
+        QrtzTask qrtzTask = new QrtzTask();
+        qrtzTask.setConditions(quartzTaskDTO.getConditions());
+        qrtzTask.setProjectId(quartzTaskDTO.getProjectId());
+        qrtzTask.setTaskState(0);
+        qrtzTask.setCrons(quartzTaskDTO.getCron());
+        qrtzTask.insert();
+        return qrtzTask;
     }
 
 

+ 11 - 9
src/main/java/com/example/demo/service/UploadFromWebService.java

@@ -40,7 +40,7 @@ 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);
@@ -74,7 +74,7 @@ public List<PatentCell> getPatentStar(String conditions,Integer id) throws Excep
     //获得搜索框并点击
     wait1.until(ExpectedConditions.presenceOfElementLocated(By.id("TxtSearch")));
     WebElement TxtSearch = driver.findElement(By.id("TxtSearch"));
-    TxtSearch.sendKeys("F XX (木箱的/TI)");
+    TxtSearch.sendKeys(conditions);
     WebElement searchBtn = driver.findElement(By.id("searchbtn2"));
     searchBtn.click();
     wait1.until(ExpectedConditions.presenceOfElementLocated(By.className("tcdNumber")));
@@ -166,6 +166,7 @@ public List<PatentCell> getPatentStar(String conditions,Integer id) throws Excep
             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"));
@@ -246,13 +247,14 @@ public List<PatentCell> getPatentStar(String conditions,Integer id) throws Excep
             PDFElement.click();
             wait1.until(ExpectedConditions.presenceOfElementLocated(By.tagName("embed")));
             WebElement PDFFile =driver.findElement(By.tagName("embed"));
-            patentCell.setPDF(PDFFile.getAttribute("src"));
-            String res =   outInterfaceService.importPatents(patentCell);
-
-            JSONObject jsonObject =JSONObject.parseObject(res);
-            if(jsonObject.get("code").toString().equals("0")){
-                return null;
-            }
+            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");

+ 4 - 5
src/main/java/com/example/demo/service/DongAoJob.java

@@ -10,15 +10,14 @@ import org.springframework.scheduling.quartz.QuartzJobBean;
 /**
  * 定义任务
  */
-public class DongAoJob extends QuartzJobBean {
+public class WebUploadJob extends QuartzJobBean {
 
-    private static final Log logger = LogFactory.getLog(DongAoJob.class);
+    private static final Log logger = LogFactory.getLog(WebUploadJob.class);
 
     @Override
     protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
-        JobDataMap jobDataMap =     context.getTrigger().getJobDataMap();
+        JobDataMap jobDataMap =   context.getTrigger().getJobDataMap();
 
-      Object msg =  jobDataMap.get("msg");
-        logger.info("信息是"+msg);
+        logger.info("信息是");
     }
 }

+ 11 - 0
src/main/java/com/example/demo/util/FileUtils.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
 import com.example.demo.domain.UploadFileDTO;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.system.ApplicationHome;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -20,6 +21,8 @@ public class FileUtils {
     public static final String FILE_SEPARATOR = System.getProperty("file.separator");
     public static final String COMMON_FILE = "file";
     public static final String BACKUP_FILE = "backup";
+    @Autowired
+    private FileUtils fileUtils;
 
     public static String getStaticPath(String fileName) {
         //ApplicationHome类 返回target目录层级
@@ -248,5 +251,13 @@ public class FileUtils {
         return (MultipartFile)new CommonsMultipartFile(item);
     }
 
+
+    public  String uploadToLocal(String  url,String type) throws Exception {
+        MultipartFile file = FileUtils.urlToMultipartFile(url,type);
+        UploadFileDTO fileDTO = fileUtils.uploadFile(file);
+        String path = fileUtils.getPath(fileDTO.getPath());
+     return  path;
+
+    }
 }