Przeglądaj źródła

7/30 外部检索逻辑更改

lwhhszx 1 rok temu
rodzic
commit
11bda9dbb9

+ 24 - 0
src/main/java/cn/cslg/pas/service/quartzService/ImportJobService.java

@@ -0,0 +1,24 @@
+package cn.cslg.pas.service.quartzService;
+
+import lombok.RequiredArgsConstructor;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.scheduling.quartz.QuartzJobBean;
+
+
+@DisallowConcurrentExecution
+@RequiredArgsConstructor
+public class ImportJobService extends QuartzJobBean {
+
+
+    @Override
+    public void executeInternal(JobExecutionContext context) throws JobExecutionException {
+        JobDataMap jobDataMap = context.getTrigger().getJobDataMap();
+        QrtzTaskDTO qrtzTask = (QrtzTaskDTO) jobDataMap.get("qrtzTask");
+        String parameter = qrtzTask.getParameter();
+
+
+    }
+}

+ 134 - 0
src/main/java/cn/cslg/pas/service/quartzService/JobService.java

@@ -0,0 +1,134 @@
+package cn.cslg.pas.service.quartzService;
+
+import cn.cslg.pas.exception.ExceptionEnum;
+import cn.cslg.pas.exception.XiaoShiException;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.*;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class JobService {
+
+    private final Scheduler scheduler;
+
+
+    /**
+     * 删除job
+     *
+     * @throws SchedulerException
+     */
+    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(quartzVO.getJobName(), quartzVO.getJobGroupName());
+        scheduler.deleteJob(jobKey);
+    }
+
+    /**
+     * 暂停job
+     *
+     * @throws SchedulerException
+     */
+    public void pauseJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+        //更新任务条件状态
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
+        scheduler.pauseJob(jobKey);
+    }
+
+    /**
+     * 恢复job
+     *
+     * @throws SchedulerException
+     */
+    public void resumeJob(Integer taskId) throws SchedulerException {
+        QuartzVO quartzVO = this.generateQuartzVO(taskId);
+        JobKey jobKey = JobKey.jobKey(quartzVO.getJobName(), quartzVO.getJobGroupName());
+        scheduler.resumeJob(jobKey);
+    }
+
+    /**
+     * 修改定时任务
+     *
+     * @param
+     */
+    public void updateJob(QrtzTaskDTO 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.getCron());
+        CronTrigger cronTrigger = TriggerBuilder.newTrigger()
+                .withIdentity(oldTriggerKey).usingJobData(jobDataMap).withSchedule(scheduleBuilder).build();
+        try {
+            scheduler.rescheduleJob(oldTriggerKey, cronTrigger);
+        } catch (SchedulerException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 新增job任务
+     *
+     * @throws SchedulerException
+     */
+    @Transactional
+    public void addJob(QrtzTaskDTO qrtzTask) throws SchedulerException {
+        //添加一条任务记录
+        Class  jobClass= null;
+        try {
+              jobClass  = Class.forName(qrtzTask.getJobClass());
+
+        }
+        catch (Exception e){
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR,"未找到类");
+        }
+        QuartzVO quartzVO = this.generateQuartzVO(qrtzTask.getId());
+        JobDataMap jobDataMap = new JobDataMap();
+        jobDataMap.put("qrtzTask", qrtzTask);
+        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(qrtzTask.getCron());
+        JobDetail jobDetail = JobBuilder
+                .newJob(jobClass)
+                .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;
+
+    }
+
+    /**
+     * 停止正在进行的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);
+    }
+}

+ 46 - 0
src/main/java/cn/cslg/pas/service/quartzService/QrtzTaskDTO.java

@@ -0,0 +1,46 @@
+package cn.cslg.pas.service.quartzService;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 任务条件表的实体类
+ *
+ * @Author chenyu
+ * @Date 2023/3/27
+ */
+@Data
+public class QrtzTaskDTO  implements Serializable {
+    /**
+     * ID
+     */
+    private Integer id;
+
+    /**
+     * 任务类型 0专利导入定时任务
+     */
+    private Integer taskType;
+
+    /**
+     * 参数
+     */
+    private String parameter;
+
+    /**
+     *
+     */
+    private String cron;
+
+    /**
+     * 是否运行
+     */
+    private Integer ifRun;
+    private String jobClass;
+}

+ 14 - 0
src/main/java/cn/cslg/pas/service/quartzService/QuartzVO.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.service.quartzService;
+
+import lombok.Data;
+
+@Data
+public class QuartzVO {
+    /**
+     * 任务名称
+     */
+    private String jobName;
+    private String jobGroupName;
+    private String triggerName;
+    private String triggerGroupName;
+}

+ 19 - 19
src/main/resources/jsons/webSearchConfig.json

@@ -5,7 +5,7 @@
     "value": "TX",
     "field": "TX",
     "sqlField": "TX",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -31,7 +31,7 @@
     "value": "CL",
     "field": "CL",
     "sqlField": "CL",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -44,7 +44,7 @@
     "value": "AB",
     "field": "AB",
     "sqlField": "AB",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -136,7 +136,7 @@
     "value": "PT",
     "field": "PT",
     "sqlField": "PT",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -149,7 +149,7 @@
     "value": "LG",
     "field": "LG",
     "sqlField": "LG",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -162,7 +162,7 @@
     "value": "IC",
     "field": "IC",
     "sqlField": "IC",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -175,7 +175,7 @@
     "value": "MC",
     "field": "MC",
     "sqlField": "MC",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -188,7 +188,7 @@
     "value": "CT",
     "field": "CT",
     "sqlField": "CT",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -241,7 +241,7 @@
     "value": "IN",
     "field": "IN",
     "sqlField": "IN",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -254,7 +254,7 @@
     "value": "FI",
     "field": "FI",
     "sqlField": "FI",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -280,7 +280,7 @@
     "value": "FP",
     "field": "FP",
     "sqlField": "FP",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -293,7 +293,7 @@
     "value": "PE",
     "field": "PE",
     "sqlField": "PE",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -306,7 +306,7 @@
     "value": "AT",
     "field": "AT",
     "sqlField": "AT",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -319,7 +319,7 @@
     "value": "AGN",
     "field": "AGN",
     "sqlField": "AGN",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -332,7 +332,7 @@
     "value": "DZ",
     "field": "DZ",
     "sqlField": "DZ",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -345,7 +345,7 @@
     "value": "CO",
     "field": "CO",
     "sqlField": "CO",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebPersonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -359,7 +359,7 @@
     "value": "CC",
     "field": "CC",
     "sqlField": "CC",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebNosQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -372,7 +372,7 @@
     "value": "UCC",
     "field": "UCC",
     "sqlField": "UCC",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",
@@ -385,7 +385,7 @@
     "value": "GJ",
     "field": "GJ",
     "sqlField": "GJ",
-    "sqlClass": "getWebQuerySql",
+    "sqlClass": "getWebCommonQuery",
     "orderClass": "",
     "groupClass": "",
     "ifSearch": "true",