From 673f4ea4a6b47a1430b7c4a892a76e743bdcb373 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 3 Aug 2021 15:37:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=9A=84=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/DataSetTableTaskController.java | 2 +- .../dataset/DataSetTableTaskService.java | 14 ++++++++----- .../resources/i18n/messages_en_US.properties | 5 ++++- .../resources/i18n/messages_zh_CN.properties | 4 ++++ .../resources/i18n/messages_zh_TW.properties | 5 ++++- .../src/views/system/task/DatasetTaskList.vue | 21 ++++++++++++------- 6 files changed, 35 insertions(+), 16 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java index 5eb8b32c92..14a5c365f9 100644 --- a/backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java +++ b/backend/src/main/java/io/dataease/controller/dataset/DataSetTableTaskController.java @@ -57,7 +57,7 @@ public class DataSetTableTaskController { } @PostMapping("/updateStatus") - public void updateStatus(@RequestBody DatasetTableTask datasetTableTask) { + public void updateStatus(@RequestBody DatasetTableTask datasetTableTask) throws Exception{ dataSetTableTaskService.updateDatasetTableTaskStatus(datasetTableTask); } diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java index e3fb3369ed..5ee2153f2e 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskService.java @@ -1,6 +1,5 @@ package io.dataease.service.dataset; -import com.google.gson.Gson; import io.dataease.base.domain.*; import io.dataease.base.mapper.DatasetTableMapper; import io.dataease.base.mapper.DatasetTableTaskMapper; @@ -53,8 +52,6 @@ public class DataSetTableTaskService { private ExtDataSetTaskMapper extDataSetTaskMapper; @Resource private DatasetTableMapper datasetTableMapper; - @Resource - private UtilMapper utilMapper; public DatasetTableTask save(DataSetTaskRequest dataSetTaskRequest) throws Exception { checkName(dataSetTaskRequest); @@ -99,9 +96,10 @@ public class DataSetTableTaskService { // simple if (datasetTableTask.getRate().equalsIgnoreCase(ScheduleType.SIMPLE.toString())) { // SIMPLE 类型,提前占位 execNow(datasetTableTask); + }else { + checkTaskIsStopped(datasetTableTask); } scheduleService.addSchedule(datasetTableTask); - checkTaskIsStopped(datasetTableTask); return datasetTableTask; } @@ -282,7 +280,13 @@ public class DataSetTableTaskService { } } - public void updateDatasetTableTaskStatus(DatasetTableTask datasetTableTask){ + public void updateDatasetTableTaskStatus(DatasetTableTask datasetTableTask)throws Exception{ + + DatasetTableTask dbDatasetTableTask = datasetTableTaskMapper.selectByPrimaryKey(datasetTableTask.getId()); + if(dbDatasetTableTask.getStatus().equalsIgnoreCase(TaskStatus.Exec.name()) || dbDatasetTableTask.getStatus().equals(TaskStatus.Stopped.name())){ + throw new Exception(Translator.get("i18n_change_task_status_error") + Translator.get("i18n_" + dbDatasetTableTask.getStatus())); + } + DatasetTableTaskExample datasetTableTaskExample = new DatasetTableTaskExample(); DatasetTableTaskExample.Criteria criteria = datasetTableTaskExample.createCriteria(); criteria.andIdEqualTo(datasetTableTask.getId()); diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index df267ca744..c1735c6cb2 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -277,4 +277,7 @@ i18n_data_not_sync=Please sync data first i18n_excel_colume_change=The column name of Excel is inconsistent with the original data set i18n_timed_task=Timed Task i18n_datasource_connect_error=Data source connection exception: -i18n_check_sql_error=Check incremental SQL exception, \ No newline at end of file +i18n_check_sql_error=Check incremental SQL exception, +i18n_change_task_status_error=Suspension is not allowed. The task status is: +i18n_Stopped=END +i18n_Exec=Running \ No newline at end of file diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties index 63e928d866..9ccd5e60bf 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -277,3 +277,7 @@ i18n_excel_colume_change=Excel的列名与原数据集不一致 i18n_timed_task=定时任务 i18n_datasource_connect_error=数据源连接异常: i18n_check_sql_error=校验增量 SQL 异常, +i18n_change_task_status_error=不允许暂停,任务状态为: +i18n_Stopped=执行结束 +i18n_Exec=运行中 + diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index 6ca4b80ab5..9e79137c74 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -279,4 +279,7 @@ i18n_data_not_sync=請先完成數據同步 i18n_excel_colume_change=Excel的列名與原數據集不一致 i18n_timed_task=定時任務 i18n_datasource_connect_error=數據源連接異常: -i18n_check_sql_error=校驗增量SQL異常, \ No newline at end of file +i18n_check_sql_error=校驗增量SQL異常, +i18n_change_task_status_error=不允許暫停,任務狀態為: +i18n_Stopped=執行結束 +i18n_Exec=運行中 \ No newline at end of file diff --git a/frontend/src/views/system/task/DatasetTaskList.vue b/frontend/src/views/system/task/DatasetTaskList.vue index 3ae0ebb40d..53cd99bdf9 100644 --- a/frontend/src/views/system/task/DatasetTaskList.vue +++ b/frontend/src/views/system/task/DatasetTaskList.vue @@ -416,15 +416,20 @@ export default { this.update_task = true }, changeTaskStatus(task) { - const param = task - param.status = task.status === 'Underway' ? 'Pending' : 'Underway' + let param = JSON.parse(JSON.stringify(task)); post('/dataset/task/updateStatus', task).then(response => { - task.status = param.status - this.$message({ - message: this.$t('dataset.task.change_success'), - type: 'success', - showClose: true - }) + if(response.success){ + task.status = param.status + this.$message({ + message: this.$t('dataset.task.change_success'), + type: 'success', + showClose: true + }) + }else { + this.search(this.last_condition, false) + } + }).catch(() => { + this.search(this.last_condition, false) }) }, execTask(task) {