From 703bcede577f2fdfa2d38a79b138535fe4e4a08b Mon Sep 17 00:00:00 2001
From: stone <827672943@qq.com>
Date: Thu, 11 May 2023 15:34:37 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=AE=9A=E6=97=B6=E6=8E=A7?=
=?UTF-8?q?=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
psdc-business/pom.xml | 18 ++
.../main/java/com/psdc/entity/PsdcTimer.java | 9 +-
.../psdc/entity/request/PsdcTimerRequest.java | 41 ++++
.../request/PsdcTimerRunTimeRequest.java | 42 ++++
.../java/com/psdc/entity/vo/PsdcTimerVo.java | 44 ++++
.../java/com/psdc/mapper/PsdcTimerMapper.java | 25 ++-
.../com/psdc/service/IPsdcTimerService.java | 42 +++-
...iceImpl.java => PsdcSceneServiceImpl.java} | 3 +-
.../service/impl/PsdcTimerServiceImpl.java | 207 +++++++++++++++++-
.../mapper/business/PsdcTimerMapper.xml | 96 +++++---
.../java/com/psdc/enums/ControlKeyEnum.java | 4 +-
.../controller/SysJobController.java | 30 +--
.../controller/SysJobLogController.java | 22 +-
.../com/psdc/{quartz => }/domain/SysJob.java | 18 +-
.../psdc/{quartz => }/domain/SysJobLog.java | 12 +-
.../{quartz => }/mapper/SysJobLogMapper.java | 11 +-
.../{quartz => }/mapper/SysJobMapper.java | 17 +-
.../service/ISysJobLogService.java | 8 +-
.../{quartz => }/service/ISysJobService.java | 17 +-
.../service/impl/SysJobLogServiceImpl.java | 14 +-
.../service/impl/SysJobServiceImpl.java | 37 +++-
.../com/psdc/{quartz => }/task/RyTask.java | 4 +-
.../{quartz => }/util/AbstractQuartzJob.java | 21 +-
.../com/psdc/{quartz => }/util/CronUtils.java | 5 +-
.../psdc/{quartz => }/util/JobInvokeUtil.java | 9 +-
.../QuartzDisallowConcurrentExecution.java | 4 +-
.../{quartz => }/util/QuartzJobExecution.java | 4 +-
.../psdc/{quartz => }/util/ScheduleUtils.java | 15 +-
.../mapper/quartz/SysJobLogMapper.xml | 2 +-
.../resources/mapper/quartz/SysJobMapper.xml | 7 +-
.../psdc/controller/control/TimerControl.java | 94 +++++++-
31 files changed, 709 insertions(+), 173 deletions(-)
create mode 100644 psdc-business/src/main/java/com/psdc/entity/request/PsdcTimerRequest.java
create mode 100644 psdc-business/src/main/java/com/psdc/entity/request/PsdcTimerRunTimeRequest.java
create mode 100644 psdc-business/src/main/java/com/psdc/entity/vo/PsdcTimerVo.java
rename psdc-business/src/main/java/com/psdc/service/impl/{IPsdcSceneServiceImpl.java => PsdcSceneServiceImpl.java} (96%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/controller/SysJobController.java (90%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/controller/SysJobLogController.java (83%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/domain/SysJob.java (97%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/domain/SysJobLog.java (98%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/mapper/SysJobLogMapper.java (91%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/mapper/SysJobMapper.java (82%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/service/ISysJobLogService.java (92%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/service/ISysJobService.java (89%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/service/impl/SysJobLogServiceImpl.java (89%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/service/impl/SysJobServiceImpl.java (93%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/task/RyTask.java (95%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/util/AbstractQuartzJob.java (95%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/util/CronUtils.java (98%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/util/JobInvokeUtil.java (98%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/util/QuartzDisallowConcurrentExecution.java (86%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/util/QuartzJobExecution.java (83%)
rename psdc-quartz/src/main/java/com/psdc/{quartz => }/util/ScheduleUtils.java (92%)
diff --git a/psdc-business/pom.xml b/psdc-business/pom.xml
index 5d7ea7f..5ea22f6 100644
--- a/psdc-business/pom.xml
+++ b/psdc-business/pom.xml
@@ -28,6 +28,24 @@
psdc-framework
0.0.1
+
+ com.psdc
+ psdc-quartz
+ 0.0.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/psdc-business/src/main/java/com/psdc/entity/PsdcTimer.java b/psdc-business/src/main/java/com/psdc/entity/PsdcTimer.java
index f9e3d19..36416df 100644
--- a/psdc-business/src/main/java/com/psdc/entity/PsdcTimer.java
+++ b/psdc-business/src/main/java/com/psdc/entity/PsdcTimer.java
@@ -17,8 +17,10 @@ public class PsdcTimer extends BaseEntity {
private Integer deviceId ;
/** 用户id */
private Integer userId ;
+ /** 执行日期 */
+ private String runday ;
/** 执行时间 */
- private String runtimer ;
+ private String runtime ;
/** 执行指令 */
private String controlKey ;
/** 指令描述 */
@@ -27,6 +29,11 @@ public class PsdcTimer extends BaseEntity {
private String controlValue ;
/** cron表达式 */
private String cronText ;
+
+ /**
+ *quartz_job表id
+ */
+ private Integer jobId;
/** 状态:1-开启,2-暂停 */
private Integer timerStatus ;
}
diff --git a/psdc-business/src/main/java/com/psdc/entity/request/PsdcTimerRequest.java b/psdc-business/src/main/java/com/psdc/entity/request/PsdcTimerRequest.java
new file mode 100644
index 0000000..dac5808
--- /dev/null
+++ b/psdc-business/src/main/java/com/psdc/entity/request/PsdcTimerRequest.java
@@ -0,0 +1,41 @@
+package com.psdc.entity.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.stereotype.Component;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Component
+public class PsdcTimerRequest {
+
+ /** 定时控制任务主键 */
+ private Integer timerId ;
+ /** 设备id */
+ private Integer deviceId ;
+ /** 用户id */
+ private Long userId ;
+ /** 执行日期 */
+ private String runday ;
+ /** 执行时间 */
+ private String runtime ;
+ /** 执行指令 */
+ private String controlKey ;
+ /** 指令描述 */
+ private String controlContext ;
+
+ /** 状态:1-开启,2-暂停 */
+ private Integer timerStatus ;
+ /**
+ * 创建时间开始时间
+ */
+ private String createStart;
+ /**
+ * 创建时间结束时间
+ */
+ private String createEnd;
+
+
+}
diff --git a/psdc-business/src/main/java/com/psdc/entity/request/PsdcTimerRunTimeRequest.java b/psdc-business/src/main/java/com/psdc/entity/request/PsdcTimerRunTimeRequest.java
new file mode 100644
index 0000000..9a3af91
--- /dev/null
+++ b/psdc-business/src/main/java/com/psdc/entity/request/PsdcTimerRunTimeRequest.java
@@ -0,0 +1,42 @@
+package com.psdc.entity.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PsdcTimerRunTimeRequest {
+
+ /**
+ * 设备id
+ */
+ private Integer deviceId;
+
+ /**
+ * 控制键
+ */
+ private String controlKey;
+
+ /**
+ * 控制值
+ */
+ private String controlValue;
+
+ /**
+ * 任务状态 1开启,2关闭
+ */
+ private Integer status;
+
+ /** 执行日期 0每天,1-7 周一 - 周日,其中0只会出现一个,周一到周日可以出现多个*/
+ private String runday ;
+
+ /** 执行时间 */
+ private String runtime ;
+
+
+}
diff --git a/psdc-business/src/main/java/com/psdc/entity/vo/PsdcTimerVo.java b/psdc-business/src/main/java/com/psdc/entity/vo/PsdcTimerVo.java
new file mode 100644
index 0000000..2e6f269
--- /dev/null
+++ b/psdc-business/src/main/java/com/psdc/entity/vo/PsdcTimerVo.java
@@ -0,0 +1,44 @@
+package com.psdc.entity.vo;
+
+import com.psdc.core.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.stereotype.Component;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Component
+public class PsdcTimerVo extends BaseEntity {
+
+ /** 定时控制任务主键 */
+ private Integer timerId ;
+ /** 设备id */
+ private Integer deviceId ;
+ /** 设备名称 */
+ private String deviceName ;
+ /** 用户id */
+ private Integer userId ;
+ /** 执行日期 */
+ private String runday ;
+ /** 执行时间 */
+ private String runtime ;
+ /** 执行指令 */
+ private String controlKey ;
+ /** 指令描述 */
+ private String controlContext ;
+ /** 指令值 */
+ private String controlValue ;
+ /** cron表达式 */
+ private String cronText ;
+ /**
+ *quartz_job表id
+ */
+ private Integer jobId;
+ /** 状态:1-开启,2-暂停 */
+ private Integer timerStatus ;
+
+
+
+}
diff --git a/psdc-business/src/main/java/com/psdc/mapper/PsdcTimerMapper.java b/psdc-business/src/main/java/com/psdc/mapper/PsdcTimerMapper.java
index c2297a5..a22ac1d 100644
--- a/psdc-business/src/main/java/com/psdc/mapper/PsdcTimerMapper.java
+++ b/psdc-business/src/main/java/com/psdc/mapper/PsdcTimerMapper.java
@@ -3,12 +3,13 @@ package com.psdc.mapper;
import java.util.List;
import com.psdc.entity.PsdcTimer;
+import com.psdc.entity.request.PsdcTimerRequest;
+import com.psdc.entity.vo.PsdcTimerVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
-import org.springframework.data.domain.Pageable;
- /**
+/**
* 定时控制任务表;(psdc_timer)表数据库访问层
* @date : 2023-5-10
*/
@@ -21,6 +22,14 @@ public interface PsdcTimerMapper{
* @return 实例对象
*/
PsdcTimer queryById(Integer timerId);
+
+ /**
+ * 通过ID查询单条数据
+ *
+ * @param timerId 主键
+ * @return 实例对象
+ */
+ PsdcTimerVo queryById2(Integer timerId);
/**
* 分页查询指定行数据
*
@@ -28,7 +37,7 @@ public interface PsdcTimerMapper{
* @param pageable 分页对象
* @return 对象列表
*/
- List queryAllByLimit(PsdcTimer psdcTimer);
+ List queryAllByLimit(PsdcTimerRequest psdcTimerRequest);
/**
* 新增数据
@@ -46,6 +55,16 @@ public interface PsdcTimerMapper{
* @return 影响行数
*/
int update(PsdcTimer psdcTimer);
+
+ /**
+ * 更新状态数据
+ * @param timerId
+ * @param status
+ * @return
+ */
+ int updateStatus(@Param(value = "timerId") Integer timerId,
+ @Param(value = "status") Integer status);
+
/**
* 通过主键删除数据
*
diff --git a/psdc-business/src/main/java/com/psdc/service/IPsdcTimerService.java b/psdc-business/src/main/java/com/psdc/service/IPsdcTimerService.java
index bcd7df3..3c6a791 100644
--- a/psdc-business/src/main/java/com/psdc/service/IPsdcTimerService.java
+++ b/psdc-business/src/main/java/com/psdc/service/IPsdcTimerService.java
@@ -1,11 +1,15 @@
package com.psdc.service;
import com.psdc.entity.PsdcTimer;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
+import com.psdc.entity.request.PsdcTimerRequest;
+import com.psdc.entity.request.PsdcTimerRunTimeRequest;
+import com.psdc.entity.vo.PsdcTimerVo;
+import org.quartz.SchedulerException;
+import java.util.List;
- /**
+
+/**
* 定时控制任务表;(psdc_timer)表服务接口
* @date : 2023-5-10
*/
@@ -16,7 +20,7 @@ public interface IPsdcTimerService {
* @param timerId 主键
* @return 实例对象
*/
- PsdcTimer queryById(Integer timerId);
+ PsdcTimerVo queryById(Integer timerId);
/**
* 新增数据
@@ -31,7 +35,7 @@ public interface IPsdcTimerService {
* @param psdcTimer 实例对象
* @return 实例对象
*/
- PsdcTimer update(PsdcTimer psdcTimer);
+ PsdcTimerVo update(PsdcTimer psdcTimer);
/**
* 通过主键删除数据
*
@@ -39,4 +43,32 @@ public interface IPsdcTimerService {
* @return 是否成功
*/
boolean deleteById(Integer timerId);
+
+ /**
+ * 查询所有定时任务
+ * @param psdcTimerRequest
+ */
+ List query(PsdcTimerRequest psdcTimerRequest);
+
+ /**
+ * 创建定时任务
+ * @param psdcTimerRunTimeRequest
+ * @return
+ */
+ Integer addTimer(PsdcTimerRunTimeRequest psdcTimerRunTimeRequest);
+
+ /**
+ * 修改定时任务状态
+ * @param timerId
+ * @param status
+ * @return
+ */
+ int updateStatus(Integer timerId, Integer status) throws SchedulerException;
+
+ /**
+ * 删除定时任务
+ * @param timerId
+ * @return
+ */
+ Integer delete(Integer timerId) throws SchedulerException;
}
\ No newline at end of file
diff --git a/psdc-business/src/main/java/com/psdc/service/impl/IPsdcSceneServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java
similarity index 96%
rename from psdc-business/src/main/java/com/psdc/service/impl/IPsdcSceneServiceImpl.java
rename to psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java
index 368f716..781def8 100644
--- a/psdc-business/src/main/java/com/psdc/service/impl/IPsdcSceneServiceImpl.java
+++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcSceneServiceImpl.java
@@ -9,7 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
-import java.util.function.Function;
import java.util.stream.Collectors;
@@ -18,7 +17,7 @@ import java.util.stream.Collectors;
* @date : 2023-5-10
*/
@Service
-public class IPsdcSceneServiceImpl implements IPsdcSceneService {
+public class PsdcSceneServiceImpl implements IPsdcSceneService {
@Autowired
private PsdcSceneMapper psdcSceneMapper;
diff --git a/psdc-business/src/main/java/com/psdc/service/impl/PsdcTimerServiceImpl.java b/psdc-business/src/main/java/com/psdc/service/impl/PsdcTimerServiceImpl.java
index e2120f4..df1d710 100644
--- a/psdc-business/src/main/java/com/psdc/service/impl/PsdcTimerServiceImpl.java
+++ b/psdc-business/src/main/java/com/psdc/service/impl/PsdcTimerServiceImpl.java
@@ -1,21 +1,49 @@
package com.psdc.service.impl;
+import com.psdc.domain.SysJob;
import com.psdc.entity.PsdcTimer;
+import com.psdc.entity.request.PsdcTimerRequest;
+import com.psdc.entity.request.PsdcTimerRunTimeRequest;
+import com.psdc.entity.vo.PsdcTimerVo;
+import com.psdc.enums.ControlKeyEnum;
+import com.psdc.exception.ServiceException;
+import com.psdc.exception.job.TaskException;
import com.psdc.mapper.PsdcTimerMapper;
+import com.psdc.service.IPsdcDeviceService;
import com.psdc.service.IPsdcTimerService;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.psdc.service.ISysJobLogService;
+import com.psdc.service.ISysJobService;
+import com.psdc.utils.SecurityUtils;
+import com.psdc.utils.bean.BeanUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.quartz.SchedulerException;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import java.util.List;
- /**
+
+/**
* 定时控制任务表;(psdc_timer)表服务实现类
- * @author : http://www.chiner.pro
- * @date : 2023-5-10
+ * @date : 2023-5-10
*/
@Service
+@Slf4j
public class PsdcTimerServiceImpl implements IPsdcTimerService {
- @Autowired
+
+ @Resource
private PsdcTimerMapper psdcTimerMapper;
+
+ @Resource
+ private ISysJobService jobService;
+
+ @Resource
+ private ISysJobLogService jobLogService;
+
+ @Resource
+ private IPsdcDeviceService psdcDeviceService;
/**
* 通过ID查询单条数据
@@ -23,8 +51,8 @@ public class PsdcTimerServiceImpl implements IPsdcTimerService {
* @param timerId 主键
* @return 实例对象
*/
- public PsdcTimer queryById(Integer timerId){
- return psdcTimerMapper.queryById(timerId);
+ public PsdcTimerVo queryById(Integer timerId){
+ return psdcTimerMapper.queryById2(timerId);
}
@@ -46,7 +74,7 @@ public class PsdcTimerServiceImpl implements IPsdcTimerService {
* @param psdcTimer 实例对象
* @return 实例对象
*/
- public PsdcTimer update(PsdcTimer psdcTimer){
+ public PsdcTimerVo update(PsdcTimer psdcTimer){
psdcTimerMapper.update(psdcTimer);
return queryById(psdcTimer.getTimerId());
}
@@ -61,4 +89,167 @@ public class PsdcTimerServiceImpl implements IPsdcTimerService {
int total = psdcTimerMapper.deleteById(timerId);
return total > 0;
}
+
+ @Override
+ public List query(PsdcTimerRequest psdcTimerRequest) {
+ psdcTimerRequest.setUserId(SecurityUtils.getUserId());
+ return psdcTimerMapper.queryAllByLimit(psdcTimerRequest);
+ }
+
+ /**
+ * 创建定时任务
+ * @param psdcTimerRunTimeRequest 请求类
+ * @return int
+ */
+ @Override
+ @Transactional
+ public Integer addTimer(PsdcTimerRunTimeRequest psdcTimerRunTimeRequest) {
+ //获取psdcTimerRunTimeRequest中的timeList数组,根据内容拼出cron表达式
+ String runDay = psdcTimerRunTimeRequest.getRunday();
+ String runtime = psdcTimerRunTimeRequest.getRuntime();
+ //设置cron表达式
+ String[] cronArr = new String[7];
+ //秒,默认为每分钟的0秒
+ if (runtime == null || !runtime.contains(":") ){
+ throw new ServiceException("设定执行时间错误,创建定时任务失败,设定时间为:"+runtime);
+ }
+ if (runDay == null || "".equals(runDay)) {
+ throw new ServiceException("设定日期错误,创建定时任务失败,设定日期为:" + runDay);
+ }
+ String[] split1 = runtime.split(":");
+ cronArr[0] = "0";
+ //分
+ cronArr[1] = split1[1];
+ //时
+ cronArr[2] = split1[0];
+ /*
+ 接下来拼装日月,或周,只有三种情况
+ */
+ if(runDay.equals("0")){
+ //每天的情况
+ //日
+ cronArr[3] = "*";
+ //月
+ cronArr[4] = "*";
+ //周
+ cronArr[5] = "?";
+ } else if (runDay.length() == 10 && (runDay.contains("-"))) {
+ //设定日期情况,就是一次的情况
+ String[] split = runDay.split("-");
+ //日
+ cronArr[3] = split[2];
+ //月
+ cronArr[4] = split[1];
+ //周
+ cronArr[5] = "?";
+ } else if (runDay.contains(",")) {
+ //设定星期情况
+ String[] split = runDay.split("-");
+ //日
+ cronArr[3] = "?";
+ //月
+ cronArr[4] = "*";
+ //周
+ cronArr[5] = StringUtils.join(split,",");
+ } else {
+ throw new ServiceException("设定日期错误,创建定时任务失败,设定日期为:" + runDay);
+ }
+ //年,。暂时不用
+ // cronArr[6] =
+ String cron = StringUtils.join(cronArr, " ");
+ log.info("cron表达式:{}",cron);
+
+ try {
+ /*
+ 创建job对象,往quartz中插入执行的任务,拿到jobId
+ */
+ SysJob job = new SysJob();
+ //设备id + 控制键 + 控制值 + 控制日期 + 控制时间 +
+ String jobName = psdcTimerRunTimeRequest.getDeviceId() + "+" + ControlKeyEnum.getControlContext(psdcTimerRunTimeRequest.getControlKey()) + "-" +
+ psdcTimerRunTimeRequest.getControlValue() + "+" + psdcTimerRunTimeRequest.getRunday() + "+" + psdcTimerRunTimeRequest.getRuntime() + "+" + System.currentTimeMillis();
+ job.setJobName(jobName);
+ //默认
+ job.setJobGroup("psdc");
+ String controlKey = psdcTimerRunTimeRequest.getControlKey();
+ String jobClassName = "";
+ //判断控制指令
+ if (controlKey.equals( "startandstop")){
+ //控制启停
+ log.info("控制设备启停");
+ jobClassName = String.format("psdcDeviceServiceImpl.controlDeviceStartAndStop(%d,%d,'%s',%d))",psdcTimerRunTimeRequest.getDeviceId(),Integer.valueOf(psdcTimerRunTimeRequest.getControlValue()),SecurityUtils.getUsername(),2);
+ } else if (controlKey.equals( "intemp") || controlKey.equals( "outtemp") || controlKey.equals( "temp") ) {
+ //控制温度
+ jobClassName = String.format("psdcDeviceServiceImpl.setTemperature(%d,'%s','%s','%s',%d))",psdcTimerRunTimeRequest.getDeviceId(),controlKey,psdcTimerRunTimeRequest.getControlValue(),SecurityUtils.getUsername(),2);
+
+ }
+ job.setInvokeTarget(jobClassName);
+ //cron表达式
+ job.setCronExpression(cron);
+ //执行错误放弃执行
+ job.setMisfirePolicy("3");
+ //是否并发,不并发
+ job.setConcurrent("1");
+ job.setCreateBy(SecurityUtils.getUsername());
+
+ int i = jobService.insertJob(job);
+ SysJob job1 = null;
+ if( i > 0){
+ job1 = jobService.selectJobByName(jobName);
+ } else {
+ throw new ServiceException("创建定时任务失败,请联系管理员");
+ }
+ //将创建的任务插入psdcTimer表
+ PsdcTimer psdcTimer = new PsdcTimer();
+ BeanUtils.copyProperties(psdcTimerRunTimeRequest,psdcTimer);
+ psdcTimer.setUserId(SecurityUtils.getUserId().intValue());
+ psdcTimer.setControlContext( ControlKeyEnum.getControlContext(psdcTimerRunTimeRequest.getControlKey()));
+ psdcTimer.setCronText(cron);
+ psdcTimer.setJobId(job1.getJobId().intValue());
+ psdcTimer.setTimerStatus(Integer.valueOf(job1.getStatus()));
+ psdcTimer.setCreateBy(SecurityUtils.getUsername());
+ return psdcTimerMapper.insert(psdcTimer);
+ } catch (SchedulerException e) {
+ throw new RuntimeException(e);
+ } catch (TaskException e) {
+ throw new RuntimeException(e);
+ }
+
+
+
+ }
+
+ @Override
+ @Transactional
+ public int updateStatus(Integer timerId, Integer status) throws SchedulerException {
+ //获取jobId
+ PsdcTimer psdcTimer = psdcTimerMapper.queryById(timerId);
+ //修改quartz状态
+ SysJob job = new SysJob();
+ job.setStatus(status.toString());
+ job.setJobId(psdcTimer.getJobId().longValue());
+ job.setJobGroup("psdc");
+ int i = jobService.changeStatus(job);
+ if (i > 0){
+ return psdcTimerMapper.updateStatus(timerId, status);
+ } else {
+ throw new ServiceException("修改定时任务状态失败");
+ }
+ }
+
+ @Override
+ @Transactional
+ public Integer delete(Integer timerId) throws SchedulerException {
+ //获取jobId
+ PsdcTimer psdcTimer = psdcTimerMapper.queryById(timerId);
+ //删除quartz任务
+ SysJob job = new SysJob();
+ job.setJobId(psdcTimer.getJobId().longValue());
+ job.setJobGroup("psdc");
+ int i = jobService.deleteJob(job);
+ if (i > 0){
+ return psdcTimerMapper.deleteById(timerId);
+ } else {
+ throw new ServiceException("删除定时任务失败");
+ }
+ }
}
\ No newline at end of file
diff --git a/psdc-business/src/main/resources/mapper/business/PsdcTimerMapper.xml b/psdc-business/src/main/resources/mapper/business/PsdcTimerMapper.xml
index f5e1030..0473492 100644
--- a/psdc-business/src/main/resources/mapper/business/PsdcTimerMapper.xml
+++ b/psdc-business/src/main/resources/mapper/business/PsdcTimerMapper.xml
@@ -5,7 +5,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -20,64 +40,63 @@
+
+
+
-
- insert into psdc_timer(timer_id,device_id,user_id,runtimer,control_key,control_context,control_value,cron_text,timer_status,create_by,create_time,update_by,update_time)
- values (#{timerId},#{deviceId},#{userId},#{runtimer},#{controlKey},#{controlContext},#{controlValue},#{cronText},#{timerStatus},#{createBy},#{createTime},#{updateBy},#{updateTime})
+
+ insert into psdc_timer(device_id,user_id,runday,runtime,control_key,control_context,control_value,cron_text,job_id,timer_status,create_by,create_time)
+ values (#{deviceId},#{userId},#{runday},#{runtime},#{controlKey},#{controlContext},#{controlValue},#{cronText},#{jobId},#{timerStatus},#{createBy},sysdate())
@@ -95,8 +114,11 @@
user_id = #{userId},
-
- runtimer = #{runtimer},
+
+ runday = #{runday},
+
+
+ runtime = #{runtime},
control_key = #{controlKey},
@@ -110,6 +132,9 @@
cron_text = #{cronText},
+
+ job_id = #{jobId},
+
timer_status = #{timerStatus},
@@ -129,6 +154,11 @@
where timer_id = #{timerId}
+
+
+ update psdc_timer set timer_status = #{status} where timer_id = #{timerId}
+
+
delete from psdc_timer where timer_id = #{timerId}
diff --git a/psdc-common/src/main/java/com/psdc/enums/ControlKeyEnum.java b/psdc-common/src/main/java/com/psdc/enums/ControlKeyEnum.java
index 224aba4..fe3a58e 100644
--- a/psdc-common/src/main/java/com/psdc/enums/ControlKeyEnum.java
+++ b/psdc-common/src/main/java/com/psdc/enums/ControlKeyEnum.java
@@ -6,7 +6,8 @@ public enum ControlKeyEnum {
TEMPERATURE("temp","设定温度"),
IN_TEMPERATURE("intemp","设定进水温度"),
- OUT_TEMPERATURE("outtemp","设定出水温度");
+ OUT_TEMPERATURE("outtemp","设定出水温度"),
+ START_AND_STOP("startandstop","设备启停");
/**
* 设备指令
@@ -32,6 +33,7 @@ public enum ControlKeyEnum {
case "temp":return TEMPERATURE.getControlContext();
case "intemp":return IN_TEMPERATURE.getControlContext();
case "outtemp":return OUT_TEMPERATURE.getControlContext();
+ case "startandstop":return START_AND_STOP.getControlContext();
default:return null;
}
}
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/controller/SysJobController.java b/psdc-quartz/src/main/java/com/psdc/controller/SysJobController.java
similarity index 90%
rename from psdc-quartz/src/main/java/com/psdc/quartz/controller/SysJobController.java
rename to psdc-quartz/src/main/java/com/psdc/controller/SysJobController.java
index 5306d87..1ed6463 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/controller/SysJobController.java
+++ b/psdc-quartz/src/main/java/com/psdc/controller/SysJobController.java
@@ -1,18 +1,5 @@
-package com.psdc.quartz.controller;
+package com.psdc.controller;
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.quartz.SchedulerException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
import com.psdc.annotation.Log;
import com.psdc.constant.Constants;
import com.psdc.core.controller.BaseController;
@@ -20,12 +7,19 @@ import com.psdc.core.domain.AjaxResult;
import com.psdc.core.page.TableDataInfo;
import com.psdc.enums.BusinessType;
import com.psdc.exception.job.TaskException;
+import com.psdc.domain.SysJob;
+import com.psdc.service.ISysJobService;
+import com.psdc.util.CronUtils;
+import com.psdc.util.ScheduleUtils;
import com.psdc.utils.StringUtils;
import com.psdc.utils.poi.ExcelUtil;
-import com.psdc.quartz.domain.SysJob;
-import com.psdc.quartz.service.ISysJobService;
-import com.psdc.quartz.util.CronUtils;
-import com.psdc.quartz.util.ScheduleUtils;
+import org.quartz.SchedulerException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
/**
* 调度任务信息操作处理
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/controller/SysJobLogController.java b/psdc-quartz/src/main/java/com/psdc/controller/SysJobLogController.java
similarity index 83%
rename from psdc-quartz/src/main/java/com/psdc/quartz/controller/SysJobLogController.java
rename to psdc-quartz/src/main/java/com/psdc/controller/SysJobLogController.java
index ea7c56a..ccabc24 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/controller/SysJobLogController.java
+++ b/psdc-quartz/src/main/java/com/psdc/controller/SysJobLogController.java
@@ -1,23 +1,19 @@
-package com.psdc.quartz.controller;
+package com.psdc.controller;
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
import com.psdc.annotation.Log;
import com.psdc.core.controller.BaseController;
import com.psdc.core.domain.AjaxResult;
import com.psdc.core.page.TableDataInfo;
+import com.psdc.domain.SysJobLog;
import com.psdc.enums.BusinessType;
+import com.psdc.service.ISysJobLogService;
import com.psdc.utils.poi.ExcelUtil;
-import com.psdc.quartz.domain.SysJobLog;
-import com.psdc.quartz.service.ISysJobLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
/**
* 调度日志操作处理
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/domain/SysJob.java b/psdc-quartz/src/main/java/com/psdc/domain/SysJob.java
similarity index 97%
rename from psdc-quartz/src/main/java/com/psdc/quartz/domain/SysJob.java
rename to psdc-quartz/src/main/java/com/psdc/domain/SysJob.java
index edbdb8c..93bbcdc 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/domain/SysJob.java
+++ b/psdc-quartz/src/main/java/com/psdc/domain/SysJob.java
@@ -1,22 +1,22 @@
-package com.psdc.quartz.domain;
+package com.psdc.domain;
-import java.util.Date;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.psdc.annotation.Excel;
import com.psdc.annotation.Excel.ColumnType;
import com.psdc.constant.ScheduleConstants;
import com.psdc.core.domain.BaseEntity;
+import com.psdc.util.CronUtils;
import com.psdc.utils.StringUtils;
-import com.psdc.quartz.util.CronUtils;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+import java.util.Date;
/**
* 定时任务调度表 sys_job
- *
- * @author ruoyi
+ *
*/
public class SysJob extends BaseEntity
{
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/domain/SysJobLog.java b/psdc-quartz/src/main/java/com/psdc/domain/SysJobLog.java
similarity index 98%
rename from psdc-quartz/src/main/java/com/psdc/quartz/domain/SysJobLog.java
rename to psdc-quartz/src/main/java/com/psdc/domain/SysJobLog.java
index 68c7df6..033a366 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/domain/SysJobLog.java
+++ b/psdc-quartz/src/main/java/com/psdc/domain/SysJobLog.java
@@ -1,15 +1,15 @@
-package com.psdc.quartz.domain;
+package com.psdc.domain;
-import java.util.Date;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
import com.psdc.annotation.Excel;
import com.psdc.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
/**
* 定时任务调度日志表 sys_job_log
- *
- * @author ruoyi
+ *
*/
public class SysJobLog extends BaseEntity
{
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/mapper/SysJobLogMapper.java b/psdc-quartz/src/main/java/com/psdc/mapper/SysJobLogMapper.java
similarity index 91%
rename from psdc-quartz/src/main/java/com/psdc/quartz/mapper/SysJobLogMapper.java
rename to psdc-quartz/src/main/java/com/psdc/mapper/SysJobLogMapper.java
index 5793698..f002d24 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/mapper/SysJobLogMapper.java
+++ b/psdc-quartz/src/main/java/com/psdc/mapper/SysJobLogMapper.java
@@ -1,13 +1,16 @@
-package com.psdc.quartz.mapper;
+package com.psdc.mapper;
+
+import com.psdc.domain.SysJobLog;
+import org.apache.ibatis.annotations.Mapper;
import java.util.List;
-import com.psdc.quartz.domain.SysJobLog;
/**
* 调度任务日志信息 数据层
- *
- * @author ruoyi
+ *
*/
+
+@Mapper
public interface SysJobLogMapper
{
/**
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/mapper/SysJobMapper.java b/psdc-quartz/src/main/java/com/psdc/mapper/SysJobMapper.java
similarity index 82%
rename from psdc-quartz/src/main/java/com/psdc/quartz/mapper/SysJobMapper.java
rename to psdc-quartz/src/main/java/com/psdc/mapper/SysJobMapper.java
index f688976..9b82b96 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/mapper/SysJobMapper.java
+++ b/psdc-quartz/src/main/java/com/psdc/mapper/SysJobMapper.java
@@ -1,13 +1,15 @@
-package com.psdc.quartz.mapper;
+package com.psdc.mapper;
+
+import com.psdc.domain.SysJob;
+import org.apache.ibatis.annotations.Mapper;
import java.util.List;
-import com.psdc.quartz.domain.SysJob;
/**
* 调度任务信息 数据层
- *
- * @author ruoyi
+ *
*/
+@Mapper
public interface SysJobMapper
{
/**
@@ -64,4 +66,11 @@ public interface SysJobMapper
* @return 结果
*/
public int insertJob(SysJob job);
+
+ /**
+ * 根据名称查询调度信息
+ * @param jobName
+ * @return
+ */
+ public SysJob selectJobByName(String jobName);
}
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/service/ISysJobLogService.java b/psdc-quartz/src/main/java/com/psdc/service/ISysJobLogService.java
similarity index 92%
rename from psdc-quartz/src/main/java/com/psdc/quartz/service/ISysJobLogService.java
rename to psdc-quartz/src/main/java/com/psdc/service/ISysJobLogService.java
index 3c1473b..45b8310 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/service/ISysJobLogService.java
+++ b/psdc-quartz/src/main/java/com/psdc/service/ISysJobLogService.java
@@ -1,12 +1,12 @@
-package com.psdc.quartz.service;
+package com.psdc.service;
+
+import com.psdc.domain.SysJobLog;
import java.util.List;
-import com.psdc.quartz.domain.SysJobLog;
/**
* 定时任务调度日志信息信息 服务层
- *
- * @author ruoyi
+ *
*/
public interface ISysJobLogService
{
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/service/ISysJobService.java b/psdc-quartz/src/main/java/com/psdc/service/ISysJobService.java
similarity index 89%
rename from psdc-quartz/src/main/java/com/psdc/quartz/service/ISysJobService.java
rename to psdc-quartz/src/main/java/com/psdc/service/ISysJobService.java
index ae84196..14055b9 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/service/ISysJobService.java
+++ b/psdc-quartz/src/main/java/com/psdc/service/ISysJobService.java
@@ -1,9 +1,10 @@
-package com.psdc.quartz.service;
+package com.psdc.service;
-import java.util.List;
-import org.quartz.SchedulerException;
import com.psdc.exception.job.TaskException;
-import com.psdc.quartz.domain.SysJob;
+import com.psdc.domain.SysJob;
+import org.quartz.SchedulerException;
+
+import java.util.List;
/**
* 定时任务调度信息信息 服务层
@@ -28,6 +29,14 @@ public interface ISysJobService
*/
public SysJob selectJobById(Long jobId);
+ /**
+ * 通过调度任务name查询调度信息
+ *
+ * @param jobName 调度任务ID
+ * @return 调度任务对象信息
+ */
+ public SysJob selectJobByName(String jobName);
+
/**
* 暂停任务
*
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/service/impl/SysJobLogServiceImpl.java b/psdc-quartz/src/main/java/com/psdc/service/impl/SysJobLogServiceImpl.java
similarity index 89%
rename from psdc-quartz/src/main/java/com/psdc/quartz/service/impl/SysJobLogServiceImpl.java
rename to psdc-quartz/src/main/java/com/psdc/service/impl/SysJobLogServiceImpl.java
index 2c1f954..54a602d 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/service/impl/SysJobLogServiceImpl.java
+++ b/psdc-quartz/src/main/java/com/psdc/service/impl/SysJobLogServiceImpl.java
@@ -1,16 +1,16 @@
-package com.psdc.quartz.service.impl;
+package com.psdc.service.impl;
-import java.util.List;
+import com.psdc.domain.SysJobLog;
+import com.psdc.mapper.SysJobLogMapper;
+import com.psdc.service.ISysJobLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import com.psdc.quartz.domain.SysJobLog;
-import com.psdc.quartz.mapper.SysJobLogMapper;
-import com.psdc.quartz.service.ISysJobLogService;
+
+import java.util.List;
/**
* 定时任务调度日志信息 服务层
- *
- * @author ruoyi
+ *
*/
@Service
public class SysJobLogServiceImpl implements ISysJobLogService
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/service/impl/SysJobServiceImpl.java b/psdc-quartz/src/main/java/com/psdc/service/impl/SysJobServiceImpl.java
similarity index 93%
rename from psdc-quartz/src/main/java/com/psdc/quartz/service/impl/SysJobServiceImpl.java
rename to psdc-quartz/src/main/java/com/psdc/service/impl/SysJobServiceImpl.java
index 9e05179..c580f8d 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/service/impl/SysJobServiceImpl.java
+++ b/psdc-quartz/src/main/java/com/psdc/service/impl/SysJobServiceImpl.java
@@ -1,7 +1,12 @@
-package com.psdc.quartz.service.impl;
+package com.psdc.service.impl;
-import java.util.List;
-import javax.annotation.PostConstruct;
+import com.psdc.constant.ScheduleConstants;
+import com.psdc.exception.job.TaskException;
+import com.psdc.domain.SysJob;
+import com.psdc.mapper.SysJobMapper;
+import com.psdc.service.ISysJobService;
+import com.psdc.util.CronUtils;
+import com.psdc.util.ScheduleUtils;
import org.quartz.JobDataMap;
import org.quartz.JobKey;
import org.quartz.Scheduler;
@@ -9,18 +14,13 @@ import org.quartz.SchedulerException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.psdc.constant.ScheduleConstants;
-import com.psdc.exception.job.TaskException;
-import com.psdc.quartz.domain.SysJob;
-import com.psdc.quartz.mapper.SysJobMapper;
-import com.psdc.quartz.service.ISysJobService;
-import com.psdc.quartz.util.CronUtils;
-import com.psdc.quartz.util.ScheduleUtils;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
/**
* 定时任务调度信息 服务层
- *
- * @author ruoyi
+ *
*/
@Service
public class SysJobServiceImpl implements ISysJobService
@@ -69,6 +69,19 @@ public class SysJobServiceImpl implements ISysJobService
return jobMapper.selectJobById(jobId);
}
+ /**
+ * 通过调度任务ID查询调度信息
+ *
+ * @param jobName 调度任务ID
+ * @return 调度任务对象信息
+ */
+ @Override
+ public SysJob selectJobByName(String jobName)
+ {
+ return jobMapper.selectJobByName(jobName);
+ }
+
+
/**
* 暂停任务
*
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/task/RyTask.java b/psdc-quartz/src/main/java/com/psdc/task/RyTask.java
similarity index 95%
rename from psdc-quartz/src/main/java/com/psdc/quartz/task/RyTask.java
rename to psdc-quartz/src/main/java/com/psdc/task/RyTask.java
index 5ad0e14..f7c5fc9 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/task/RyTask.java
+++ b/psdc-quartz/src/main/java/com/psdc/task/RyTask.java
@@ -1,7 +1,7 @@
-package com.psdc.quartz.task;
+package com.psdc.task;
-import org.springframework.stereotype.Component;
import com.psdc.utils.StringUtils;
+import org.springframework.stereotype.Component;
/**
* 定时任务调度测试
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/util/AbstractQuartzJob.java b/psdc-quartz/src/main/java/com/psdc/util/AbstractQuartzJob.java
similarity index 95%
rename from psdc-quartz/src/main/java/com/psdc/quartz/util/AbstractQuartzJob.java
rename to psdc-quartz/src/main/java/com/psdc/util/AbstractQuartzJob.java
index 6065849..ce39486 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/util/AbstractQuartzJob.java
+++ b/psdc-quartz/src/main/java/com/psdc/util/AbstractQuartzJob.java
@@ -1,20 +1,21 @@
-package com.psdc.quartz.util;
+package com.psdc.util;
-import java.util.Date;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.psdc.constant.Constants;
import com.psdc.constant.ScheduleConstants;
+import com.psdc.domain.SysJob;
+import com.psdc.domain.SysJobLog;
+import com.psdc.service.ISysJobLogService;
import com.psdc.utils.ExceptionUtil;
import com.psdc.utils.StringUtils;
import com.psdc.utils.bean.BeanUtils;
import com.psdc.utils.spring.SpringUtils;
-import com.psdc.quartz.domain.SysJob;
-import com.psdc.quartz.domain.SysJobLog;
-import com.psdc.quartz.service.ISysJobLogService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
/**
* 抽象quartz调用
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/util/CronUtils.java b/psdc-quartz/src/main/java/com/psdc/util/CronUtils.java
similarity index 98%
rename from psdc-quartz/src/main/java/com/psdc/quartz/util/CronUtils.java
rename to psdc-quartz/src/main/java/com/psdc/util/CronUtils.java
index 32859a8..f3d17ed 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/util/CronUtils.java
+++ b/psdc-quartz/src/main/java/com/psdc/util/CronUtils.java
@@ -1,8 +1,9 @@
-package com.psdc.quartz.util;
+package com.psdc.util;
+
+import org.quartz.CronExpression;
import java.text.ParseException;
import java.util.Date;
-import org.quartz.CronExpression;
/**
* cron表达式工具类
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/util/JobInvokeUtil.java b/psdc-quartz/src/main/java/com/psdc/util/JobInvokeUtil.java
similarity index 98%
rename from psdc-quartz/src/main/java/com/psdc/quartz/util/JobInvokeUtil.java
rename to psdc-quartz/src/main/java/com/psdc/util/JobInvokeUtil.java
index 46d95ad..abf930e 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/util/JobInvokeUtil.java
+++ b/psdc-quartz/src/main/java/com/psdc/util/JobInvokeUtil.java
@@ -1,12 +1,13 @@
-package com.psdc.quartz.util;
+package com.psdc.util;
+
+import com.psdc.domain.SysJob;
+import com.psdc.utils.StringUtils;
+import com.psdc.utils.spring.SpringUtils;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.LinkedList;
import java.util.List;
-import com.psdc.utils.StringUtils;
-import com.psdc.utils.spring.SpringUtils;
-import com.psdc.quartz.domain.SysJob;
/**
* 任务执行工具
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/util/QuartzDisallowConcurrentExecution.java b/psdc-quartz/src/main/java/com/psdc/util/QuartzDisallowConcurrentExecution.java
similarity index 86%
rename from psdc-quartz/src/main/java/com/psdc/quartz/util/QuartzDisallowConcurrentExecution.java
rename to psdc-quartz/src/main/java/com/psdc/util/QuartzDisallowConcurrentExecution.java
index bbb5974..6862337 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/util/QuartzDisallowConcurrentExecution.java
+++ b/psdc-quartz/src/main/java/com/psdc/util/QuartzDisallowConcurrentExecution.java
@@ -1,8 +1,8 @@
-package com.psdc.quartz.util;
+package com.psdc.util;
+import com.psdc.domain.SysJob;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext;
-import com.psdc.quartz.domain.SysJob;
/**
* 定时任务处理(禁止并发执行)
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/util/QuartzJobExecution.java b/psdc-quartz/src/main/java/com/psdc/util/QuartzJobExecution.java
similarity index 83%
rename from psdc-quartz/src/main/java/com/psdc/quartz/util/QuartzJobExecution.java
rename to psdc-quartz/src/main/java/com/psdc/util/QuartzJobExecution.java
index 9cbffe2..f8fa006 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/util/QuartzJobExecution.java
+++ b/psdc-quartz/src/main/java/com/psdc/util/QuartzJobExecution.java
@@ -1,7 +1,7 @@
-package com.psdc.quartz.util;
+package com.psdc.util;
+import com.psdc.domain.SysJob;
import org.quartz.JobExecutionContext;
-import com.psdc.quartz.domain.SysJob;
/**
* 定时任务处理(允许并发执行)
diff --git a/psdc-quartz/src/main/java/com/psdc/quartz/util/ScheduleUtils.java b/psdc-quartz/src/main/java/com/psdc/util/ScheduleUtils.java
similarity index 92%
rename from psdc-quartz/src/main/java/com/psdc/quartz/util/ScheduleUtils.java
rename to psdc-quartz/src/main/java/com/psdc/util/ScheduleUtils.java
index 69cde6e..47aa77c 100644
--- a/psdc-quartz/src/main/java/com/psdc/quartz/util/ScheduleUtils.java
+++ b/psdc-quartz/src/main/java/com/psdc/util/ScheduleUtils.java
@@ -1,22 +1,13 @@
-package com.psdc.quartz.util;
+package com.psdc.util;
-import org.quartz.CronScheduleBuilder;
-import org.quartz.CronTrigger;
-import org.quartz.Job;
-import org.quartz.JobBuilder;
-import org.quartz.JobDetail;
-import org.quartz.JobKey;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
-import org.quartz.TriggerBuilder;
-import org.quartz.TriggerKey;
import com.psdc.constant.Constants;
import com.psdc.constant.ScheduleConstants;
import com.psdc.exception.job.TaskException;
import com.psdc.exception.job.TaskException.Code;
+import com.psdc.domain.SysJob;
import com.psdc.utils.StringUtils;
import com.psdc.utils.spring.SpringUtils;
-import com.psdc.quartz.domain.SysJob;
+import org.quartz.*;
/**
* 定时任务工具类
diff --git a/psdc-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml b/psdc-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
index e0ef048..77b18a3 100644
--- a/psdc-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
+++ b/psdc-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/psdc-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml b/psdc-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
index 3bebda1..e634026 100644
--- a/psdc-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
+++ b/psdc-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
@@ -2,7 +2,7 @@
-
+
@@ -51,6 +51,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where job_id = #{jobId}
+
+
delete from quartz_job where job_id = #{jobId}
diff --git a/psdc-web/src/main/java/com/psdc/controller/control/TimerControl.java b/psdc-web/src/main/java/com/psdc/controller/control/TimerControl.java
index 0967975..3268e69 100644
--- a/psdc-web/src/main/java/com/psdc/controller/control/TimerControl.java
+++ b/psdc-web/src/main/java/com/psdc/controller/control/TimerControl.java
@@ -1,14 +1,102 @@
package com.psdc.controller.control;
+import com.alibaba.fastjson2.JSONObject;
+import com.psdc.core.controller.BaseController;
+import com.psdc.core.domain.AjaxResult;
+import com.psdc.core.page.TableDataInfo;
+import com.psdc.entity.PsdcControlLog;
+import com.psdc.entity.request.PsdcTimerRequest;
+import com.psdc.entity.request.PsdcTimerRunTimeRequest;
+import com.psdc.entity.vo.PsdcTimerVo;
+import com.psdc.service.IPsdcTimerService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.aspectj.weaver.loadtime.Aj;
+import org.quartz.SchedulerException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
@RestController
@Slf4j
@RequestMapping("/control/timer")
-public class TimerControl {
+public class TimerControl extends BaseController {
+
+ @Autowired
+ private IPsdcTimerService psdcTimerService;
+
+ /**
+ * 获取定时任务列表
+ */
+ @PreAuthorize("@ss.hasPermi('control:timer:list')")
+ @PostMapping("/list")
+ public TableDataInfo timerList(@RequestBody JSONObject jsonObject) {
+ PsdcTimerRequest psdcTimerRequest = myPage(jsonObject, PsdcTimerRequest.class);
+ List query = psdcTimerService.query(psdcTimerRequest);
+ return getDataTable(query);
+ }
+
+ /**
+ * 获取定时任务详情
+ */
+ @PreAuthorize("@ss.hasPermi('control:timer:info')")
+ @GetMapping("/queryTimer/{timerId}")
+ public AjaxResult queryTimer(@PathVariable(value = "timerId") Integer timerId) {
+ return AjaxResult.success(psdcTimerService.queryById(timerId));
+ }
+
+ /**
+ * 新增定时任务
+ */
+ @PreAuthorize("@ss.hasPermi('control:timer:add')")
+ @PostMapping("/addTimer")
+ public AjaxResult addTimer(@RequestBody PsdcTimerRunTimeRequest psdcTimerRunTimeRequest) {
+ Integer i = psdcTimerService.addTimer(psdcTimerRunTimeRequest);
+ if (i == 1){
+ return AjaxResult.success("创建任务成功");
+ } else {
+ return AjaxResult.error("创建任务失败,请联系管理员");
+ }
+ }
+
+ /**
+ * 修改定时任务状态
+ */
+ @PreAuthorize("@ss.hasPermi('control:timer:update')")
+ @GetMapping("/updateStatus/{timerId}/{status}")
+ public AjaxResult updateStatus(@PathVariable(value = "timerId")Integer timerId,@PathVariable(value = "status") Integer status) throws SchedulerException {
+ int i = psdcTimerService.updateStatus(timerId,status);
+ if (i == 1){
+ return AjaxResult.success("修改任务状态成功");
+ } else {
+ return AjaxResult.error("修改任务状态失败,请联系管理员");
+ }
+ }
+
+
+ /**
+ * 更新定时任务
+ */
+ @PreAuthorize("@ss.hasPermi('control:timer:update')")
+ @PostMapping("/update")
+ public TableDataInfo updateTimer() {
+return null;
+ }
+ /**
+ * 删除定时任务
+ */
+ @PreAuthorize("@ss.hasPermi('control:timer:delete')")
+ @GetMapping("/deleteTimer/{timerId}")
+ public AjaxResult deleteTimer(@PathVariable(value = "timerId") Integer timerId) throws SchedulerException {
+ int i = psdcTimerService.delete(timerId);
+ if (i == 1){
+ return AjaxResult.success("删除定时任务成功");
+ } else {
+ return AjaxResult.error("删除定时任务失败,请联系管理员");
+ }
+ }
}