From 24d553e9fc8833d545a36fc5f048f9c5d29cace7 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Tue, 2 Jul 2024 19:41:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E6=BA=90=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E7=9B=91=E6=B5=8B=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/DatasourceSyncManage.java | 24 +++---- .../datasource/provider/ApiUtils.java | 1 - .../datasource/server/DatasourceServer.java | 46 ++---------- .../data/datasource/form/CreatDsGroup.vue | 13 ++-- .../data/datasource/form/EditorDetail.vue | 71 ++++++++++--------- .../visualized/data/datasource/form/index.vue | 12 +++- .../visualized/data/datasource/index.vue | 2 +- 7 files changed, 73 insertions(+), 96 deletions(-) diff --git a/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java b/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java index cbcd6b79e4..bb9b1ff249 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/manage/DatasourceSyncManage.java @@ -112,21 +112,21 @@ public class DatasourceSyncManage { LogUtil.info("Skip synchronization task for datasource due to exist others, datasource ID : " + datasourceId); return; } - - DatasourceServer.UpdateType updateType = DatasourceServer.UpdateType.valueOf(coreDatasourceTask.getUpdateType()); - if (context != null) { - UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", datasourceId); - CoreDatasource record = new CoreDatasource(); - record.setQrtzInstance(context.getFireInstanceId()); - datasourceMapper.update(record, updateWrapper); - } - extractedData(taskId, coreDatasource, updateType, coreDatasourceTask.getSyncRate()); try { + DatasourceServer.UpdateType updateType = DatasourceServer.UpdateType.valueOf(coreDatasourceTask.getUpdateType()); + if (context != null) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("id", datasourceId); + CoreDatasource record = new CoreDatasource(); + record.setQrtzInstance(context.getFireInstanceId()); + datasourceMapper.update(record, updateWrapper); + } + extractedData(taskId, coreDatasource, updateType, coreDatasourceTask.getSyncRate()); + } catch (Exception e) { + LogUtil.error(e); + } finally { datasourceTaskServer.updateTaskStatus(coreDatasourceTask); updateDsTaskStatus(datasourceId); - } catch (Exception ignore) { - LogUtil.error(ignore); } } diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java index 785cbd5888..143cacca0c 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ApiUtils.java @@ -139,7 +139,6 @@ public class ApiUtils { if (field.getOriginName().equalsIgnoreCase(param)) { String resultStr = execHttpRequest(definition, definition.getApiQueryTimeout() == null || apiDefinition.getApiQueryTimeout() <= 0 ? 10 : apiDefinition.getApiQueryTimeout(), null); List dataList = fetchResult(resultStr, definition); - System.out.println(dataList.get(0)[i]); if (dataList.size() > 0) { httpClientConfig.addHeader(header.get("name").toString(), dataList.get(0)[i]); } diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index 975f1777a3..05397e3a5d 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -480,7 +480,8 @@ public class DatasourceServer implements DatasourceApi { BeanUtils.copyBean(coreDatasource, dataSourceDTO); checkDatasourceStatus(dataSourceDTO); DatasourceDTO result = new DatasourceDTO(); - result.setStatus(coreDatasource.getStatus()); + result.setType(dataSourceDTO.getType()); + result.setStatus(dataSourceDTO.getStatus()); return result; } @@ -679,59 +680,24 @@ public class DatasourceServer implements DatasourceApi { } private DatasourceDTO validate(CoreDatasource coreDatasource) { - String lastStatus = coreDatasource.getStatus(); DatasourceDTO datasourceDTO = new DatasourceDTO(); BeanUtils.copyBean(datasourceDTO, coreDatasource); try { checkDatasourceStatus(datasourceDTO); - calciteProvider.updateDsPoolAfterCheckStatus(datasourceDTO); + if (!Arrays.asList("API", "Excel", "folder").contains(coreDatasource.getType())) { + calciteProvider.updateDsPoolAfterCheckStatus(datasourceDTO); + } } catch (Exception e) { coreDatasource.setStatus("Error"); DEException.throwException(e.getMessage()); } finally { - datasourceDTO.setStatus(coreDatasource.getStatus()); - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq("id", coreDatasource.getId()); - CoreDatasource originData = datasourceMapper.selectById(coreDatasource.getId()); - String originStatus = originData.getStatus(); + coreDatasource.setStatus(datasourceDTO.getStatus()); dataSourceManage.innerEditStatus(coreDatasource); } datasourceDTO.setConfiguration(""); return datasourceDTO; } - private int getExtraFlag(Object typeObj, Object statusObj) { - if (ObjectUtils.isNotEmpty(statusObj)) { - String status = statusObj.toString(); - if (typeObj.toString().equalsIgnoreCase("API")) { - TypeReference> listTypeReference = new TypeReference>() { - }; - List apiStatus = JsonUtil.parseList(status, listTypeReference); - boolean hasError = false; - for (ObjectNode jsonNodes : apiStatus) { - if (jsonNodes.get("status") != null && jsonNodes.get("status").asText().equalsIgnoreCase("Error")) { - hasError = true; - break; - } - } - if (hasError) { - return -DataSourceType.valueOf(typeObj.toString()).getFlag(); - } else { - return DataSourceType.valueOf(typeObj.toString()).getFlag(); - } - - } else { - if (StringUtils.equalsIgnoreCase(status, "Error")) { - return -DataSourceType.valueOf(typeObj.toString()).getFlag(); - } else { - return DataSourceType.valueOf(typeObj.toString()).getFlag(); - } - } - } else { - return DataSourceType.valueOf(typeObj.toString()).getFlag(); - } - } - @Override public List tree(BusiNodeRequest request) throws DEException { return dataSourceManage.tree(request); diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/CreatDsGroup.vue b/core/core-frontend/src/views/visualized/data/datasource/form/CreatDsGroup.vue index 62ff287991..9a303b1547 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/CreatDsGroup.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/CreatDsGroup.vue @@ -236,7 +236,6 @@ const saveDataset = () => { nodeType: nodeType.value as 'folder' | 'datasource', name: datasetForm.name } - switch (cmd.value) { case 'move': params.pid = activeAll.value ? '0' : (datasetForm.pid as string) @@ -276,8 +275,8 @@ const saveDataset = () => { checkRepeat(request).then(res => { let method = request.id === '' ? save : update if (res) { - ElMessageBox.confirm(t('datasource.has_same_ds'), options as ElMessageBoxOptions).then( - () => { + ElMessageBox.confirm(t('datasource.has_same_ds'), options as ElMessageBoxOptions) + .then(() => { method({ ...request, name: datasetForm.name, pid: params.pid }) .then(res => { if (res !== undefined) { @@ -290,8 +289,12 @@ const saveDataset = () => { .finally(() => { loading.value = false }) - } - ) + }) + .catch(() => { + console.log('aaa') + loading.value = false + createDataset.value = false + }) } else { method({ ...request, name: datasetForm.name, pid: params.pid }) .then(res => { diff --git a/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue b/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue index 8fd2a801fb..0a6bdd0427 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/form/EditorDetail.vue @@ -364,6 +364,7 @@ const resetForm = () => { const returnItem = apiItem => { var find = false if (apiItem.type !== 'params') { + apiItem.status = 'Success' for (let i = 0; i < form.value.apiConfiguration.length; i++) { if (form.value.apiConfiguration[i].serialNumber === apiItem.serialNumber) { find = true @@ -907,41 +908,6 @@ defineExpose({ autocomplete="off" /> - - - - - - - - - + + + + + + + + + { ElMessage.error('需要添加数据表') return } - request.configuration = Base64.encode(JSON.stringify(request.apiConfiguration)) + let apiItems = [] + apiItems = apiItems.concat(request.apiConfiguration) + apiItems = apiItems.concat(request.paramsConfiguration) + request.configuration = Base64.encode(JSON.stringify(apiItems)) request.syncSetting.startTime = new Date(request.syncSetting.startTime).getTime() request.syncSetting.endTime = new Date(request.syncSetting.endTime).getTime() } else { @@ -272,11 +275,16 @@ const validateDS = () => { validate(request).then(res => { if (res.data.type === 'API') { let error = 0 - const status = JSON.parse(res.data.status) as Array<{ status: string }> + const status = JSON.parse(res.data.status) as Array<{ status: string; name: string }> for (let i = 0; i < status.length; i++) { if (status[i].status === 'Error') { error++ } + for (let j = 0; j < form.apiConfiguration.length; j++) { + if (status[i].name === form.apiConfiguration[j].name) { + form.apiConfiguration[j].status = status[i].status + } + } } if (error === 0) { ElMessage.success(t('datasource.validate_success')) diff --git a/core/core-frontend/src/views/visualized/data/datasource/index.vue b/core/core-frontend/src/views/visualized/data/datasource/index.vue index 8c209135e3..c9d835ced7 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/index.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/index.vue @@ -634,7 +634,7 @@ const handleEdit = async data => { } const handleCopy = async data => { - getById(nodeInfo.id).then(res => { + getById(data.id).then(res => { let { name, createBy,