diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java index 5a3692a..41f2815 100644 --- a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java @@ -180,19 +180,22 @@ public class DataSourceServiceImpl extends ServiceImpl() .eq(AssetStructure::getDataSourceSystemId, id) ); - boolean b = this.testConnection(id); - if (b) { + // 判断是否连接成功 + if (this.testConnection(id)) { + log.info("连接成功,正在同步数据..."); // 如果不存在就给他添加资产结构表 if (assetStructure == null) { + log.info("当前数据为新数据,正在同步"); // 构建实体 AssetStructure entity = AssetStructure.dataSourceSaveBuilder(id, dataSource); + // 保存数据源信息 assetStructureService.save(entity); + log.info("数据源信息已同步"); String jdbcUrl = ""; String driveClass = ""; - DataType dataType = dataTypeService.getOne( - new LambdaQueryWrapper() - .eq(DataType::getId, dataSource.getTypeId()) - ); + DataType dataType = dataTypeService.selectDataTypeById(dataSource.getTypeId()); + // 同步数据结构 + this.jdbcSync(entity, dataSource, dataType); try { List assetStructureTableList = new ArrayList<>(); List assetTableDetails = new ArrayList<>(); @@ -207,6 +210,7 @@ public class DataSourceServiceImpl extends ServiceImpl { String tableDataCountSQL = "select count(*) as countNum from " + assetStructureTable.getTableName(); try { @@ -236,6 +241,9 @@ public class DataSourceServiceImpl extends ServiceImpl { try { DatabaseMetaData metaData = conn.getMetaData(); @@ -307,6 +315,7 @@ public class DataSourceServiceImpl extends ServiceImpl() .eq(AssetStructure::getId, entity.getId()) ); - + log.info("已将修改过的数据源信息同步"); // 获取原来的数据 - List assetStructureTables = assetStructureTableService.list( new LambdaQueryWrapper() .eq(AssetStructureTable::getAssetStructureId, entity.getId()) ); - // 删除资产结构表信息 assetStructureTableService.remove( new LambdaQueryWrapper() .eq(AssetStructureTable::getAssetStructureId, entity.getId()) ); - + log.info("已删除原数据,正在准备同步新数据"); String jdbcUrl = ""; String driveClass = ""; - DataType dataType = dataTypeService.getOne( - new LambdaQueryWrapper() - .eq(DataType::getId, dataSource.getTypeId()) - ); + DataType dataType = dataTypeService.selectDataTypeById(dataSource.getTypeId()); try { List assetStructureTableList = new ArrayList<>(); List assetTableDetails = new ArrayList<>(); @@ -530,6 +535,8 @@ public class DataSourceServiceImpl extends ServiceImpl mysqlEdConnection = this.mysqlConnection(dataSource, dataType); - return testDatasource(mysqlEdConnection.get("driveClass"), mysqlEdConnection.get("jdbcUrl"),dataSource.getDataSourceUsername(),dataSource.getDataSourcePassword()); + return testDatasource(mysqlEdConnection.get("driveClass"), mysqlEdConnection.get("jdbcUrl"), dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword()); } if ("oracle".equals(dataType.getDataType())) { log.info("Oracle测试连接"); Map mysqlEdConnection = this.mysqlConnection(dataSource, dataType); - return testDatasource(mysqlEdConnection.get("driveClass"), mysqlEdConnection.get("jdbcUrl"),dataSource.getDataSourceUsername(),dataSource.getDataSourcePassword()); + return testDatasource(mysqlEdConnection.get("driveClass"), mysqlEdConnection.get("jdbcUrl"), dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword()); } if ("sqlserver".equals(dataType.getDataType())) { log.info("SQLServer测试连接"); Map mysqlEdConnection = this.mysqlConnection(dataSource, dataType); - return testDatasource(mysqlEdConnection.get("driveClass"), mysqlEdConnection.get("jdbcUrl"),dataSource.getDataSourceUsername(),dataSource.getDataSourcePassword()); + return testDatasource(mysqlEdConnection.get("driveClass"), mysqlEdConnection.get("jdbcUrl"), dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword()); } return false; } @@ -591,12 +599,12 @@ public class DataSourceServiceImpl extends ServiceImpl mysqlConnection(DataSource dataSource, DataType dataType) { + public Map mysqlConnection(DataSource dataSource, DataType dataType) { String driveClass = dataType.getDriverManager(); String jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceDatabaseName() + "?" + dataSource.getAdditionalConfiguration(); - return new HashMap(){{ - put("driveClass",driveClass); - put("jdbcUrl",jdbcUrl); + return new HashMap() {{ + put("driveClass", driveClass); + put("jdbcUrl", jdbcUrl); }}; } @@ -607,12 +615,12 @@ public class DataSourceServiceImpl extends ServiceImpl oracleConnection(DataSource dataSource, DataType dataType) { + public Map oracleConnection(DataSource dataSource, DataType dataType) { String driveClass = dataType.getDriverManager(); String jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ":" + dataSource.getDataSourceDatabaseName(); - return new HashMap(){{ - put("driveClass",driveClass); - put("jdbcUrl",jdbcUrl); + return new HashMap() {{ + put("driveClass", driveClass); + put("jdbcUrl", jdbcUrl); }}; } @@ -626,9 +634,9 @@ public class DataSourceServiceImpl extends ServiceImpl sqlserverConnection(DataSource dataSource, DataType dataType) { String driveClass = dataType.getDriverManager(); String jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ";databaseName=" + dataSource.getDataSourceDatabaseName(); - return new HashMap(){{ - put("driveClass",driveClass); - put("jdbcUrl",jdbcUrl); + return new HashMap() {{ + put("driveClass", driveClass); + put("jdbcUrl", jdbcUrl); }}; }