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 d1096a5cc7..856622cbc1 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 @@ -17,21 +17,18 @@ import io.dataease.extensions.datasource.dto.DatasetTableDTO; import io.dataease.extensions.datasource.dto.DatasourceDTO; import io.dataease.extensions.datasource.dto.DatasourceRequest; import io.dataease.extensions.datasource.dto.TableField; -import io.dataease.extensions.datasource.factory.ProviderFactory; -import io.dataease.extensions.datasource.provider.Provider; import io.dataease.job.schedule.ExtractDataJob; import io.dataease.job.schedule.ScheduleManager; import io.dataease.utils.BeanUtils; -import io.dataease.utils.JsonUtil; import io.dataease.utils.LogUtil; import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.quartz.JobExecutionContext; import org.quartz.JobKey; import org.quartz.TriggerKey; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; -import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -53,6 +50,7 @@ public class DatasourceSyncManage { @Resource private CalciteProvider calciteProvider; + @Async public void extractExcelData(CoreDatasource coreDatasource, String type) { if (coreDatasource == null) { LogUtil.error("Can not find CoreDatasource: " + coreDatasource.getName()); @@ -87,7 +85,7 @@ public class DatasourceSyncManage { } datasetTableTaskLog.setTaskStatus(TaskStatus.Error.toString()); datasetTableTaskLog.setInfo(datasetTableTaskLog.getInfo() + "/n Failed to sync datatable: " + datasourceRequest.getTable() + ", " + e.getMessage()); - + DEException.throwException(e); } finally { datasourceTaskServer.saveLog(datasetTableTaskLog); } diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java index fc49382c8c..145020f470 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/ExcelUtils.java @@ -329,6 +329,9 @@ public class ExcelUtils { Double d = Double.valueOf(value); double eps = 1e-10; if (d - Math.floor(d) < eps) { + if(value.contains(".")){ + return "DOUBLE"; + } return "LONG"; } else { return "DOUBLE"; 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 c5dcc503ca..17ca9d88e0 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 @@ -274,9 +274,7 @@ public class DatasourceServer implements DatasourceApi { } } } - commonThreadPool.addTask(() -> { - datasourceSyncManage.extractExcelData(coreDatasource, "all_scope"); - }); + datasourceSyncManage.extractExcelData(coreDatasource, "all_scope"); } else if (dataSourceDTO.getType().equals(DatasourceConfiguration.DatasourceType.API.name())) { CoreDatasourceTask coreDatasourceTask = new CoreDatasourceTask(); BeanUtils.copyBean(coreDatasourceTask, dataSourceDTO.getSyncSetting()); @@ -423,16 +421,12 @@ public class DatasourceServer implements DatasourceApi { DEException.throwException("Failed to create table " + toCreateTable + ", " + e.getMessage()); } } - commonThreadPool.addTask(() -> { - datasourceSyncManage.extractExcelData(requestDatasource, "all_scope"); - }); + datasourceSyncManage.extractExcelData(requestDatasource, "all_scope"); dataSourceManage.checkName(dataSourceDTO); ExcelUtils.mergeSheets(requestDatasource, sourceData); dataSourceManage.innerEdit(requestDatasource); } else { - commonThreadPool.addTask(() -> { - datasourceSyncManage.extractExcelData(requestDatasource, "add_scope"); - }); + datasourceSyncManage.extractExcelData(requestDatasource, "add_scope"); ExcelUtils.mergeSheets(requestDatasource, sourceData); dataSourceManage.checkName(dataSourceDTO); dataSourceManage.innerEdit(requestDatasource);