From 31f68d95b67d09005719db30ff47b82a7c144ee8 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 27 Jul 2022 18:18:50 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E6=95=B0=E6=8D=AE=E9=9B=86=E5=90=8C=E6=AD=A5=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dataset/DataSetTableService.java | 18 +++++++++++++++++- .../service/dataset/ExtractDataService.java | 8 ++++---- .../service/datasource/DatasourceService.java | 11 +++++++---- 3 files changed, 28 insertions(+), 9 deletions(-) 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 2a287871e0..b99f672017 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -2456,13 +2456,29 @@ public class DataSetTableService { DatasetTableExample example = new DatasetTableExample(); example.createCriteria().andSyncStatusEqualTo(JobStatus.Underway.name()); List jobStoppeddDatasetTables = new ArrayList<>(); + List syncDatasetTables = new ArrayList<>(); - datasetTableMapper.selectByExample(example).forEach(datasetTable -> { + List datasetTables = datasetTableMapper.selectByExample(example); + datasetTables.forEach(datasetTable -> { if (StringUtils.isNotEmpty(datasetTable.getQrtzInstance()) && !activeQrtzInstances.contains(datasetTable.getQrtzInstance().substring(0, datasetTable.getQrtzInstance().length() - 13))) { jobStoppeddDatasetTables.add(datasetTable); + }else { + syncDatasetTables.add(datasetTable); } }); + datasetTables.forEach(datasetTable -> { + DatasetTableTaskExample datasetTableTaskExample = new DatasetTableTaskExample(); + DatasetTableTaskExample.Criteria criteria = datasetTableTaskExample.createCriteria(); + criteria.andTableIdEqualTo(datasetTable.getId()).andLastExecStatusEqualTo(JobStatus.Underway.name()); + if(CollectionUtils.isEmpty(dataSetTableTaskService.list(datasetTableTaskExample))){ + DatasetTable record = new DatasetTable(); + record.setSyncStatus(JobStatus.Error.name()); + example.clear(); + example.createCriteria().andIdEqualTo(datasetTable.getId()); + datasetTableMapper.updateByExampleSelective(record, example); + } + }); if (CollectionUtils.isEmpty(jobStoppeddDatasetTables)) { return; } diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index c5447b6525..d892af5f70 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -333,12 +333,12 @@ public class ExtractDataService { System.out.println(ignore.getMessage()); } try { - dataSetTableTaskService.updateTaskStatus(datasetTableTask, lastExecStatus); + updateTableStatus(datasetTableId, lastExecStatus, execTime); } catch (Exception ignore) { System.out.println(ignore.getMessage()); } try { - updateTableStatus(datasetTableId, lastExecStatus, execTime); + dataSetTableTaskService.updateTaskStatus(datasetTableTask, lastExecStatus); } catch (Exception ignore) { System.out.println(ignore.getMessage()); } @@ -392,11 +392,11 @@ public class ExtractDataService { } catch (Exception ignore) { } try { - dataSetTableTaskService.updateTaskStatus(datasetTableTask, lastExecStatus); + updateTableStatus(datasetTableId, lastExecStatus, execTime); } catch (Exception ignore) { } try { - updateTableStatus(datasetTableId, lastExecStatus, execTime); + dataSetTableTaskService.updateTaskStatus(datasetTableTask, lastExecStatus); } catch (Exception ignore) { } } diff --git a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java index 90b9cc9be2..d5d9c6ae60 100644 --- a/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java +++ b/backend/src/main/java/io/dataease/service/datasource/DatasourceService.java @@ -452,19 +452,22 @@ public class DatasourceService { } private void checkAndUpdateDatasourceStatus(Datasource datasource, Boolean withMsg) { + Datasource record = new Datasource(); + DatasourceExample example = new DatasourceExample(); + example.createCriteria().andIdEqualTo(datasource.getId()); try { Provider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); DatasourceRequest datasourceRequest = new DatasourceRequest(); datasourceRequest.setDatasource(datasource); String status = datasourceProvider.checkStatus(datasourceRequest); - datasource.setStatus(status); - datasourceMapper.updateByPrimaryKeySelective(datasource); + record.setStatus(status); + datasourceMapper.updateByExampleSelective(datasource, example); } catch (Exception e) { Datasource temp = datasourceMapper.selectByPrimaryKey(datasource.getId()); - datasource.setStatus("Error"); + record.setStatus("Error"); if (!StringUtils.equals(temp.getStatus(), "Error")) { sendWebMsg(datasource); - datasourceMapper.updateByPrimaryKeySelective(datasource); + datasourceMapper.updateByExampleSelective(datasource, example); } }