feat(fix):定时任务修复

This commit is contained in:
junjie 2021-06-21 15:59:32 +08:00
parent 1b934dec57
commit c536ab7666

View File

@ -1,13 +1,15 @@
package io.dataease.service.dataset;
import io.dataease.base.domain.*;
import io.dataease.base.domain.DatasetTable;
import io.dataease.base.domain.DatasetTableTask;
import io.dataease.base.domain.DatasetTableTaskExample;
import io.dataease.base.domain.DatasetTableTaskLog;
import io.dataease.base.mapper.DatasetTableTaskMapper;
import io.dataease.commons.constants.JobStatus;
import io.dataease.commons.constants.ScheduleType;
import io.dataease.controller.request.dataset.DataSetTaskRequest;
import io.dataease.i18n.Translator;
import io.dataease.service.ScheduleService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.quartz.CronExpression;
@ -44,25 +46,29 @@ public class DataSetTableTaskService {
dataSetTableService.saveIncrementalConfig(dataSetTaskRequest.getDatasetTableIncrementalConfig());
// check
if (StringUtils.isNotEmpty(datasetTableTask.getCron())) {
if (!CronExpression.isValidExpression(datasetTableTask.getCron())) {
throw new RuntimeException(Translator.get("i18n_cron_expression_error"));
if (StringUtils.equalsIgnoreCase(datasetTableTask.getRate(),"CRON")){
if (StringUtils.isNotEmpty(datasetTableTask.getCron())) {
if (!CronExpression.isValidExpression(datasetTableTask.getCron())) {
throw new RuntimeException(Translator.get("i18n_cron_expression_error"));
}
}
// check start time and end time
if (StringUtils.equalsIgnoreCase(datasetTableTask.getEnd(), "1")
&& ObjectUtils.isNotEmpty(datasetTableTask.getStartTime())
&& ObjectUtils.isNotEmpty(datasetTableTask.getEndTime())
&& datasetTableTask.getStartTime() != 0
&& datasetTableTask.getEndTime() != 0
&& datasetTableTask.getStartTime() > datasetTableTask.getEndTime()) {
throw new RuntimeException(Translator.get("i18n_cron_time_error"));
}
}
// check start time and end time
if (ObjectUtils.isNotEmpty(datasetTableTask.getStartTime())
&& ObjectUtils.isNotEmpty(datasetTableTask.getEndTime())
&& datasetTableTask.getStartTime() != 0
&& datasetTableTask.getEndTime() != 0
&& datasetTableTask.getStartTime() > datasetTableTask.getEndTime()) {
throw new RuntimeException(Translator.get("i18n_cron_time_error"));
}
if (StringUtils.isEmpty(datasetTableTask.getId())) {
datasetTableTask.setId(UUID.randomUUID().toString());
datasetTableTask.setCreateTime(System.currentTimeMillis());
// SIMPLE 类型提前占位
if (datasetTableTask.getRate().equalsIgnoreCase(ScheduleType.SIMPLE.toString())) {
if(datasetTableTask.getType().equalsIgnoreCase("add_scope")){
if (datasetTableTask.getType().equalsIgnoreCase("add_scope")) {
DatasetTable datasetTable = dataSetTableService.get(datasetTableTask.getTableId());
if (datasetTable.getLastUpdateTime() == 0 || datasetTable.getLastUpdateTime() == null) {
throw new Exception(Translator.get("i18n_not_exec_add_sync"));
@ -70,7 +76,7 @@ public class DataSetTableTaskService {
}
if (extractDataService.updateSyncStatusIsNone(dataSetTableService.get(datasetTableTask.getTableId()))) {
throw new Exception(Translator.get("i18n_sync_job_exists"));
}else {
} else {
//write log
DatasetTableTaskLog datasetTableTaskLog = new DatasetTableTaskLog();
datasetTableTaskLog.setTableId(datasetTableTask.getTableId());