提交 47392eea authored 作者: junjie's avatar junjie

feat(fix):定时任务重启执行修复;前端form校验优化

上级 183c8674
...@@ -2,9 +2,16 @@ package io.dataease.job.sechedule; ...@@ -2,9 +2,16 @@ package io.dataease.job.sechedule;
import io.dataease.commons.utils.LogUtil; import io.dataease.commons.utils.LogUtil;
import org.quartz.*; import org.quartz.*;
import org.quartz.impl.triggers.CronTriggerImpl;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -73,7 +80,9 @@ public class ScheduleManager { ...@@ -73,7 +80,9 @@ public class ScheduleManager {
triggerBuilder.withIdentity(triggerKey); triggerBuilder.withIdentity(triggerKey);
triggerBuilder.startAt(startTime); if (startTime.before(new Date())) {
triggerBuilder.startAt(getNTimeByCron(cron));
}
if (endTime != null) { if (endTime != null) {
triggerBuilder.endAt(endTime); triggerBuilder.endAt(endTime);
...@@ -149,7 +158,9 @@ public class ScheduleManager { ...@@ -149,7 +158,9 @@ public class ScheduleManager {
triggerBuilder.withIdentity(triggerKey);// 触发器名,触发器组 triggerBuilder.withIdentity(triggerKey);// 触发器名,触发器组
triggerBuilder.startAt(startTime); if (startTime.before(new Date())) {
triggerBuilder.startAt(getNTimeByCron(cron));
}
if (endTime != null) { if (endTime != null) {
triggerBuilder.endAt(endTime); triggerBuilder.endAt(endTime);
...@@ -395,4 +406,23 @@ public class ScheduleManager { ...@@ -395,4 +406,23 @@ public class ScheduleManager {
return returnMap; return returnMap;
} }
public static Date getNTimeByCron(String cron) {
try {
CronTriggerImpl cronTriggerImpl = new CronTriggerImpl();
cronTriggerImpl.setCronExpression(cron);
Calendar calendar = Calendar.getInstance();
Date now = calendar.getTime();
// calendar.add(java.util.Calendar.YEAR, 1);
calendar.add(Calendar.MONTH, 2);
List<Date> dates = TriggerUtils.computeFireTimesBetween(cronTriggerImpl, null, now, calendar.getTime());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nextTime = dateFormat.format(dates.get(0));
Date date = dateFormat.parse(nextTime);
return date;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
} }
...@@ -445,6 +445,7 @@ export default { ...@@ -445,6 +445,7 @@ export default {
}, },
close() { close() {
this.$refs['groupForm'].resetFields()
this.editGroup = false this.editGroup = false
this.groupForm = { this.groupForm = {
name: '', name: '',
......
...@@ -458,6 +458,7 @@ export default { ...@@ -458,6 +458,7 @@ export default {
}, },
close() { close() {
this.$refs['groupForm'].resetFields()
this.editGroup = false this.editGroup = false
this.groupForm = { this.groupForm = {
name: '', name: '',
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论