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("删除定时任务失败,请联系管理员"); + } + } }