|
|
|
@ -5,7 +5,9 @@ import cn.estsh.i3plus.pojo.base.bean.ListPager;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.Pager;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.common.PagerHelper;
|
|
|
|
|
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.*;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysRefTaskCyclePlan;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.platrepositorymongo.SysLogTaskTimeRepository;
|
|
|
|
|
import cn.estsh.i3plus.pojo.platform.repository.SysRefTaskCyclePlanRepository;
|
|
|
|
@ -15,16 +17,12 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
|
|
|
|
import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum;
|
|
|
|
|
import cn.estsh.impp.framework.boot.util.ValidatorBean;
|
|
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
|
import org.quartz.*;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.text.ParseException;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -48,94 +46,35 @@ public class SysTaskPlanService implements ISysTaskPlanService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private SysLogTaskTimeRepository sysLogTaskTimeRDao;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private Scheduler scheduler;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ApiOperation(value = "新增任务计划", notes = "新增任务计划")
|
|
|
|
|
public SysTaskPlan insertSysTaskPlan(SysTaskPlan sysTaskPlan, SysTaskCycle sysTaskCycle, SysTask sysTask) {
|
|
|
|
|
try {
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
// 唯一校验
|
|
|
|
|
JobKey jobKey = JobKey.jobKey(sysTaskPlan.getName(), sysTaskPlan.getGroupName());
|
|
|
|
|
TriggerKey triggerKey = TriggerKey.triggerKey(sysTaskPlan.getName(), sysTaskPlan.getGroupName());
|
|
|
|
|
if (sysTaskPlanRDao.isExitByProperty(new String[]{"name", "groupName"}, new String[]{sysTaskPlan.getName(), sysTaskPlan.getGroupName()})
|
|
|
|
|
|| scheduler.checkExists(jobKey) || scheduler.checkExists(triggerKey)) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("定时任务已存在")
|
|
|
|
|
.setErrorSolution("请重新输入任务名称和组名称")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sysTaskPlan = sysTaskPlanRDao.insert(sysTaskPlan);
|
|
|
|
|
|
|
|
|
|
SysRefTaskCyclePlan refTaskCyclePlan = new SysRefTaskCyclePlan();
|
|
|
|
|
refTaskCyclePlan.setTaskCycleId(sysTaskCycle.getId());
|
|
|
|
|
refTaskCyclePlan.setTaskPlanId(sysTaskPlan.getId());
|
|
|
|
|
refTaskCyclePlan.setTaskPlanName(sysTaskPlan.getName());
|
|
|
|
|
refTaskCyclePlan.setTaskPlanGroupName(sysTaskPlan.getGroupName());
|
|
|
|
|
|
|
|
|
|
// 添加表达式与触发器关系表
|
|
|
|
|
sysRefTaskCyclePlanRDao.insert(refTaskCyclePlan);
|
|
|
|
|
|
|
|
|
|
// 添加定时任务与触发器到quartz表中
|
|
|
|
|
CronScheduleBuilder schedBuilder = CronScheduleBuilder
|
|
|
|
|
.cronSchedule(sysTaskCycle.getTaskCycleExps())
|
|
|
|
|
.withMisfireHandlingInstructionDoNothing();
|
|
|
|
|
TriggerBuilder<CronTrigger> trigger = TriggerBuilder.newTrigger()
|
|
|
|
|
.withIdentity(triggerKey)
|
|
|
|
|
.withDescription(sysTaskCycle.getTaskCycleDescription())
|
|
|
|
|
.withSchedule(schedBuilder)
|
|
|
|
|
.startAt(sdf.parse(sysTaskCycle.getTaskCycleStartDatetime()));
|
|
|
|
|
if (sysTaskCycle.getTaskCycleEndDatetime() != null && sysTaskCycle.getTaskCycleEndDatetime().length() != 0) {
|
|
|
|
|
trigger = trigger.endAt(sdf.parse(sysTaskCycle.getTaskCycleEndDatetime()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Class<? extends Job> clazz = (Class<? extends Job>) Class.forName(sysTask.getTaskPackage() + "." + sysTask.getTaskClass());
|
|
|
|
|
JobDetail jobDetail = JobBuilder.newJob(clazz).withIdentity(jobKey).withDescription(sysTaskPlan.getTaskPlanDescription()).build();
|
|
|
|
|
|
|
|
|
|
scheduler.scheduleJob(jobDetail, trigger.build());
|
|
|
|
|
} catch (SchedulerException e) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail(e.getMessage())
|
|
|
|
|
.build();
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail("表达式起止时间错误")
|
|
|
|
|
.setErrorSolution("请更改表达式起止时间")
|
|
|
|
|
.build();
|
|
|
|
|
} catch (ClassNotFoundException e) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail("定时任务包名及类名不正确")
|
|
|
|
|
.setErrorSolution("请重新输入定时任务包名及类名")
|
|
|
|
|
.build();
|
|
|
|
|
} catch (RuntimeException e) {
|
|
|
|
|
String message;
|
|
|
|
|
if (e.getMessage().indexOf("CronExpression") == 0) {
|
|
|
|
|
message = "时间周期表达式错误";
|
|
|
|
|
} else {
|
|
|
|
|
message = e.getMessage();
|
|
|
|
|
}
|
|
|
|
|
public SysTaskPlan insertSysTaskPlan(SysTaskPlan sysTaskPlan) {
|
|
|
|
|
// 唯一校验
|
|
|
|
|
if (sysTaskPlanRDao.isExitByProperty(new String[]{"name", "groupName"}, new String[]{sysTaskPlan.getName(), sysTaskPlan.getGroupName()})) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail(message)
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("定时任务已存在")
|
|
|
|
|
.setErrorSolution("请重新输入任务名称和组名称")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sysTaskPlan = sysTaskPlanRDao.insert(sysTaskPlan);
|
|
|
|
|
|
|
|
|
|
SysRefTaskCyclePlan refTaskCyclePlan = new SysRefTaskCyclePlan();
|
|
|
|
|
refTaskCyclePlan.setTaskCycleId(sysTaskPlan.getTaskCycleId());
|
|
|
|
|
refTaskCyclePlan.setTaskPlanId(sysTaskPlan.getId());
|
|
|
|
|
refTaskCyclePlan.setTaskPlanName(sysTaskPlan.getName());
|
|
|
|
|
refTaskCyclePlan.setTaskPlanGroupName(sysTaskPlan.getGroupName());
|
|
|
|
|
|
|
|
|
|
// 添加表达式与触发器关系表
|
|
|
|
|
sysRefTaskCyclePlanRDao.insert(refTaskCyclePlan);
|
|
|
|
|
return sysTaskPlan;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ApiOperation(value = "修改任务计划", notes = "修改任务计划")
|
|
|
|
|
public void updateSysTaskPlan(SysTaskPlan sysTaskPlan, SysTaskCycle sysTaskCycle) {
|
|
|
|
|
public void updateSysTaskPlan(SysTaskPlan sysTaskPlan) {
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
|
|
SysTaskPlan oldSysTaskPlan = sysTaskPlanRDao.getById(sysTaskPlan.getId());
|
|
|
|
@ -150,54 +89,6 @@ public class SysTaskPlanService implements ISysTaskPlanService {
|
|
|
|
|
sysTaskPlan.setLastRunDateTime(oldSysTaskPlan.getLastRunDateTime());
|
|
|
|
|
sysTaskPlan.setTaskPlanStatus(oldSysTaskPlan.getTaskPlanStatus());
|
|
|
|
|
sysTaskPlanRDao.update(sysTaskPlan);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
TriggerKey triggerKey = TriggerKey.triggerKey(oldSysTaskPlan.getName(), oldSysTaskPlan.getGroupName());
|
|
|
|
|
|
|
|
|
|
if (!scheduler.checkExists(triggerKey)) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("定时任务不存在")
|
|
|
|
|
.setErrorSolution("请重新选择")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 添加定时任务与触发器到quartz表中
|
|
|
|
|
CronScheduleBuilder schedBuilder = CronScheduleBuilder
|
|
|
|
|
.cronSchedule(sysTaskCycle.getTaskCycleExps())
|
|
|
|
|
.withMisfireHandlingInstructionDoNothing();
|
|
|
|
|
TriggerBuilder<CronTrigger> trigger = TriggerBuilder.newTrigger()
|
|
|
|
|
.withIdentity(triggerKey)
|
|
|
|
|
.withDescription(sysTaskCycle.getTaskCycleDescription())
|
|
|
|
|
.withSchedule(schedBuilder)
|
|
|
|
|
.startAt(sdf.parse(sysTaskCycle.getTaskCycleStartDatetime()));
|
|
|
|
|
if (sysTaskCycle.getTaskCycleEndDatetime() != null && !"".equals(sysTaskCycle.getTaskCycleEndDatetime())) {
|
|
|
|
|
trigger = trigger.endAt(sdf.parse(sysTaskCycle.getTaskCycleEndDatetime()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
JobKey jobKey = new JobKey(sysTaskPlan.getName(), sysTaskPlan.getGroupName());
|
|
|
|
|
JobDetail jobDetail = scheduler.getJobDetail(jobKey);
|
|
|
|
|
jobDetail.getJobBuilder().withDescription(sysTaskPlan.getTaskPlanDescription());
|
|
|
|
|
|
|
|
|
|
HashSet<Trigger> triggerSet = new HashSet<>();
|
|
|
|
|
triggerSet.add(trigger.build());
|
|
|
|
|
|
|
|
|
|
scheduler.scheduleJob(jobDetail, triggerSet, true);
|
|
|
|
|
} catch (SchedulerException e) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail(e.getMessage())
|
|
|
|
|
.build();
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.setErrorDetail("表达式起止时间错误")
|
|
|
|
|
.setErrorSolution("请更改表达式起止时间")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -208,60 +99,19 @@ public class SysTaskPlanService implements ISysTaskPlanService {
|
|
|
|
|
sysTaskPlan.setTaskPlanStatus(status);
|
|
|
|
|
sysTaskPlan.setModifyUser(user.getUserName());
|
|
|
|
|
sysTaskPlanRDao.update(sysTaskPlan);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
TriggerKey triggerKey = TriggerKey.triggerKey(sysTaskPlan.getName(), sysTaskPlan.getGroupName());
|
|
|
|
|
if (!scheduler.checkExists(triggerKey)) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("定时任务不存在")
|
|
|
|
|
.setErrorSolution("请重新选择")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (status == CommonEnumUtil.DATA_STATUS.ENABLE.getValue()) {
|
|
|
|
|
scheduler.resumeTrigger(triggerKey);
|
|
|
|
|
} else {
|
|
|
|
|
scheduler.pauseTrigger(triggerKey);
|
|
|
|
|
}
|
|
|
|
|
} catch (SchedulerException e) {
|
|
|
|
|
LOGGER.info("重新开始任务-->复杂调度" + e.getMessage());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ApiOperation(value = "根据根据id删除数据")
|
|
|
|
|
public void deleteSysTaskPlanById(Long id) {
|
|
|
|
|
try {
|
|
|
|
|
SysTaskPlan sysTaskPlan = sysTaskPlanRDao.getById(id);
|
|
|
|
|
ValidatorBean.checkNotNull(sysTaskPlan, "定时任务不存在");
|
|
|
|
|
|
|
|
|
|
sysTaskPlanRDao.deleteById(id);
|
|
|
|
|
SysTaskPlan sysTaskPlan = sysTaskPlanRDao.getById(id);
|
|
|
|
|
ValidatorBean.checkNotNull(sysTaskPlan, "定时任务不存在");
|
|
|
|
|
|
|
|
|
|
// 删除关系表数据
|
|
|
|
|
sysRefTaskCyclePlanRDao.deleteByProperties(new String[]{"taskPlanName", "taskPlanGroupName"},
|
|
|
|
|
new Object[]{sysTaskPlan.getName(), sysTaskPlan.getGroupName()});
|
|
|
|
|
sysTaskPlanRDao.deleteById(id);
|
|
|
|
|
|
|
|
|
|
TriggerKey triggerKey = TriggerKey.triggerKey(sysTaskPlan.getName(), sysTaskPlan.getGroupName());
|
|
|
|
|
if (scheduler.checkExists(triggerKey)) {
|
|
|
|
|
scheduler.pauseTrigger(triggerKey);
|
|
|
|
|
scheduler.unscheduleJob(triggerKey);
|
|
|
|
|
} else {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("定时任务不存在")
|
|
|
|
|
.setErrorSolution("请重新选择")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
} catch (SchedulerException e) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
// 删除关系表数据
|
|
|
|
|
sysRefTaskCyclePlanRDao.deleteByProperties(new String[]{"taskPlanName", "taskPlanGroupName"},
|
|
|
|
|
new Object[]{sysTaskPlan.getName(), sysTaskPlan.getGroupName()});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -290,29 +140,6 @@ public class SysTaskPlanService implements ISysTaskPlanService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ApiOperation(value = "立即执行任务计划", notes = "立即执行任务计划")
|
|
|
|
|
public void executeSysTaskPlan(SysTaskPlan sysTaskPlan) {
|
|
|
|
|
JobKey jobKey = JobKey.jobKey(sysTaskPlan.getName(), sysTaskPlan.getGroupName());
|
|
|
|
|
try {
|
|
|
|
|
if (scheduler.checkExists(jobKey)) {
|
|
|
|
|
scheduler.triggerJob(jobKey);
|
|
|
|
|
} else {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("任务计划不存在")
|
|
|
|
|
.setErrorSolution("请重新选择任务计划")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
} catch (SchedulerException e) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ApiOperation(value = "查询任务计划", notes = "根据任务计划名称与组名称查询")
|
|
|
|
|
public SysTaskPlan getSysTaskPlanByNameAndGroup(String name, String groupName) {
|
|
|
|
|
List<SysTaskPlan> sysTaskPlanList = sysTaskPlanRDao.findByProperty(new String[]{"name", "groupName"}, new Object[]{name, groupName});
|
|
|
|
@ -327,60 +154,4 @@ public class SysTaskPlanService implements ISysTaskPlanService {
|
|
|
|
|
public void logInsertSysLogTaskTime(SysLogTaskTime sysLogTaskTime) {
|
|
|
|
|
sysLogTaskTimeRDao.insert(sysLogTaskTime);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ApiOperation(value = "修改定时任务信息", notes = "修改定时任务信息,不会更新quartz数据库")
|
|
|
|
|
public void updateSysTaskPlan(SysTaskPlan sysTaskPlan) {
|
|
|
|
|
sysTaskPlanRDao.update(sysTaskPlan);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@ApiOperation(value = "批量删除任务计划信息", notes = "批量删除任务计划信息")
|
|
|
|
|
public void deleteSysTaskPlanByIds(Long[] ids) {
|
|
|
|
|
try {
|
|
|
|
|
List<SysTaskPlan> sysTaskPlan = sysTaskPlanRDao.findByHqlWhere(CoreHqlPack.packHqlIds("id", ids));
|
|
|
|
|
List<TriggerKey> triggerKeyList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
//数据校验
|
|
|
|
|
if (sysTaskPlan == null || sysTaskPlan.size() == 0) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("任务计划不存在")
|
|
|
|
|
.setErrorSolution("请重新选择任务计划")
|
|
|
|
|
.build();
|
|
|
|
|
} else {
|
|
|
|
|
for (int i = 0; i < sysTaskPlan.size(); i++) {
|
|
|
|
|
triggerKeyList.add(TriggerKey.triggerKey(sysTaskPlan.get(i).getName(), sysTaskPlan.get(i).getGroupName()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sysTaskPlanRDao.deleteByIds(ids);
|
|
|
|
|
|
|
|
|
|
// 删除关系表数据
|
|
|
|
|
sysRefTaskCyclePlanRDao.deleteByPropertyIn("taskPlanId", ids);
|
|
|
|
|
|
|
|
|
|
// 检查定时人计划是否存在,并暂停
|
|
|
|
|
for (TriggerKey trigger : triggerKeyList) {
|
|
|
|
|
if (scheduler.checkExists(trigger)) {
|
|
|
|
|
scheduler.pauseTrigger(trigger);
|
|
|
|
|
} else {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode())
|
|
|
|
|
.setErrorDetail("定时任务不存在")
|
|
|
|
|
.setErrorSolution("请重新选择")
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 取消调度任务
|
|
|
|
|
scheduler.unscheduleJobs(triggerKeyList);
|
|
|
|
|
} catch (SchedulerException e) {
|
|
|
|
|
throw ImppExceptionBuilder.newInstance()
|
|
|
|
|
.setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode())
|
|
|
|
|
.setErrorCode(ImppExceptionEnum.TASK_EXCEPTION.getCode())
|
|
|
|
|
.build();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|