diff --git a/backend/src/main/java/io/dataease/job/sechedule/ExtractDataJob.java b/backend/src/main/java/io/dataease/job/sechedule/ExtractDataJob.java index ec91fbdce7..d6411e3b96 100644 --- a/backend/src/main/java/io/dataease/job/sechedule/ExtractDataJob.java +++ b/backend/src/main/java/io/dataease/job/sechedule/ExtractDataJob.java @@ -13,7 +13,6 @@ public class ExtractDataJob extends DeScheduleJob{ extractDataService = (ExtractDataService) CommonBeanFactory.getBean(ExtractDataService.class); } - @Override void businessExecute(JobExecutionContext context) { extractDataService.extractData(datasetTableId, taskId, updateType); diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index efe1615205..d3f00a6633 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -7,6 +7,7 @@ import io.dataease.base.mapper.DatasetTableIncrementalConfigMapper; import io.dataease.base.mapper.DatasetTableMapper; import io.dataease.base.mapper.DatasourceMapper; import io.dataease.base.mapper.ext.ExtDataSetTableMapper; +import io.dataease.commons.constants.JobStatus; import io.dataease.commons.utils.*; import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.datasource.dto.TableFiled; @@ -71,6 +72,8 @@ public class DataSetTableService { private DatasetTableIncrementalConfigMapper datasetTableIncrementalConfigMapper; @Resource private DataSetTableUnionService dataSetTableUnionService; + @Resource + private DataSetTableTaskLogService dataSetTableTaskLogService; @Value("${upload.file.path}") private String path; @@ -256,6 +259,16 @@ public class DataSetTableService { e.printStackTrace(); } } else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), "excel")) { + List datasetTableTaskLogs = dataSetTableTaskLogService.getByTableId(datasetTable.getId()); + if(CollectionUtils.isEmpty(datasetTableTaskLogs)){ + throw new Exception("no records"); + } + if(datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Underway.name())){ + throw new Exception(Translator.get("i18n_processing_data")); + } + if(datasetTableTaskLogs.get(0).getStatus().equalsIgnoreCase(JobStatus.Error.name())){ + throw new Exception("Failed to extract data: " + datasetTableTaskLogs.get(0).getInfo()); + } Datasource ds = (Datasource) CommonBeanFactory.getBean("DorisDatasource"); JdbcProvider jdbcProvider = CommonBeanFactory.getBean(JdbcProvider.class); DatasourceRequest datasourceRequest = new DatasourceRequest(); diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskLogService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskLogService.java index 9f1054db50..b0072fc786 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskLogService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableTaskLogService.java @@ -49,4 +49,10 @@ public class DataSetTableTaskLogService { datasetTableTaskLogMapper.deleteByExample(datasetTableTaskLogExample); } + public List getByTableId(String datasetId){ + DatasetTableTaskLogExample datasetTableTaskLogExample = new DatasetTableTaskLogExample(); + DatasetTableTaskLogExample.Criteria criteria = datasetTableTaskLogExample.createCriteria(); + criteria.andTableIdEqualTo(datasetId); + return datasetTableTaskLogMapper.selectByExampleWithBLOBs(datasetTableTaskLogExample); + } } diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties index 4271da9eb0..b8488fb325 100644 --- a/backend/src/main/resources/i18n/messages_en_US.properties +++ b/backend/src/main/resources/i18n/messages_en_US.properties @@ -235,3 +235,4 @@ i18n_cron_expression_error=Cron expression error i18n_same_folder_can_not_repeat=Same Folder Can Not Repeat i18n_default_panel=Default Panel i18n_panel_list=Panel List +i18n_processing_data=Processing data now, Refresh later \ 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 2262059625..428ee4eab3 100644 --- a/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -236,3 +236,4 @@ i18n_cron_expression_error=Cron表达式校验错误 i18n_same_folder_can_not_repeat=相同的目录下名称不能重复 i18n_default_panel=默认仪表盘 i18n_panel_list=仪表盘列表 +i18n_processing_data=正在处理数据,稍后刷新 diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties index 4b3dea3692..4307cc1605 100644 --- a/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -236,3 +236,4 @@ i18n_cron_expression_error=Cron表達式校驗錯誤 i18n_same_folder_can_not_repeat=相同的目录下名称不能重复 i18n_default_panel=默认仪表盘 i18n_panel_list=仪表盘列表 +i18n_processing_data=正在處理數據,稍後刷新 \ No newline at end of file