feat(): 数据资产展示
parent
4c6a93683d
commit
25da274496
|
@ -10,6 +10,8 @@ import com.etl.data.structure.service.IAssetTableDetailsService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import static com.etl.common.core.domain.Result.success;
|
import static com.etl.common.core.domain.Result.success;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,13 +29,12 @@ public class AssetTableDetailsController {
|
||||||
private IAssetTableDetailsService assetTableDetailsService;
|
private IAssetTableDetailsService assetTableDetailsService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据源信息详细信息
|
* 获取数据源信息详细信息
|
||||||
*/
|
*/
|
||||||
@RequiresPermissions("data:details:query")
|
@RequiresPermissions("data:details:query")
|
||||||
@GetMapping(value = "/{assetStructureTableId}")
|
@GetMapping(value = "/{assetStructureTableId}")
|
||||||
public Result findByAssetStructureTableIdlist(@PathVariable("assetStructureTableId") Long assetStructureTableId) {
|
public Result findByAssetStructureTableIdList(@PathVariable("assetStructureTableId") Long assetStructureTableId) {
|
||||||
return success(assetTableDetailsService.list(
|
return success(assetTableDetailsService.list(
|
||||||
new LambdaQueryWrapper<AssetTableDetails>()
|
new LambdaQueryWrapper<AssetTableDetails>()
|
||||||
.eq(AssetTableDetails::getAssetStructureTableId, assetStructureTableId))
|
.eq(AssetTableDetails::getAssetStructureTableId, assetStructureTableId))
|
||||||
|
@ -44,7 +45,7 @@ public class AssetTableDetailsController {
|
||||||
* 修改数据源详情信息
|
* 修改数据源详情信息
|
||||||
*/
|
*/
|
||||||
@RequiresPermissions("data:details:edit")
|
@RequiresPermissions("data:details:edit")
|
||||||
@Log(title = "数据详情", businessType = BusinessType.UPDATE)
|
@Log(title = "修改数据源详情信息", businessType = BusinessType.UPDATE)
|
||||||
@PutMapping
|
@PutMapping
|
||||||
public Result edit(@RequestBody AssetTableDetails assetTableDetails) {
|
public Result edit(@RequestBody AssetTableDetails assetTableDetails) {
|
||||||
return success(
|
return success(
|
||||||
|
@ -52,4 +53,15 @@ public class AssetTableDetailsController {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取数据源详情信息的value值
|
||||||
|
*/
|
||||||
|
@RequiresPermissions("data:details:tableDetailsValue")
|
||||||
|
@PostMapping(value = "tableDetailsValue/{tableId}")
|
||||||
|
public Result<Map<String, Object>> getTableDetailsValueList(@PathVariable("tableId") Long tableId) {
|
||||||
|
Map<String, Object> hashObjectMap = assetTableDetailsService.getTableDetailsValueList(tableId);
|
||||||
|
System.out.println(hashObjectMap);
|
||||||
|
return success(hashObjectMap);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.etl.data.structure.domain.AssetTableDetails;
|
import com.etl.data.structure.domain.AssetTableDetails;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据详情 Service 接口
|
* 数据详情 Service 接口
|
||||||
|
@ -28,4 +29,12 @@ public interface IAssetTableDetailsService extends IService<AssetTableDetails> {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
boolean updateAssetTableDetails(AssetTableDetails assetTableDetails);
|
boolean updateAssetTableDetails(AssetTableDetails assetTableDetails);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据详情的value值
|
||||||
|
*
|
||||||
|
* @param tableId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> getTableDetailsValueList(Long tableId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,28 @@
|
||||||
package com.etl.data.structure.service.impl;
|
package com.etl.data.structure.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.etl.data.source.domain.DataSource;
|
||||||
|
import com.etl.data.source.service.IDataSourceService;
|
||||||
|
import com.etl.data.structure.domain.AssetStructure;
|
||||||
|
import com.etl.data.structure.domain.AssetStructureTable;
|
||||||
import com.etl.data.structure.domain.AssetTableDetails;
|
import com.etl.data.structure.domain.AssetTableDetails;
|
||||||
import com.etl.data.structure.mapper.AssetTableDetailsMapper;
|
import com.etl.data.structure.mapper.AssetTableDetailsMapper;
|
||||||
|
import com.etl.data.structure.service.IAssetStructureService;
|
||||||
|
import com.etl.data.structure.service.IAssetStructureTableService;
|
||||||
import com.etl.data.structure.service.IAssetTableDetailsService;
|
import com.etl.data.structure.service.IAssetTableDetailsService;
|
||||||
|
import com.etl.data.type.domain.DataType;
|
||||||
|
import com.etl.data.type.service.IDataTypeService;
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据详情 Service 业务实现层
|
* 数据详情 Service 业务实现层
|
||||||
|
@ -20,6 +34,20 @@ import java.util.List;
|
||||||
@Service
|
@Service
|
||||||
@Log4j2
|
@Log4j2
|
||||||
public class AssetTableDetailsServiceImpl extends ServiceImpl<AssetTableDetailsMapper, AssetTableDetails> implements IAssetTableDetailsService {
|
public class AssetTableDetailsServiceImpl extends ServiceImpl<AssetTableDetailsMapper, AssetTableDetails> implements IAssetTableDetailsService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IAssetStructureTableService assetStructureTableService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IAssetStructureService assetStructureService;
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private IDataSourceService dataSourceService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IDataTypeService dataTypeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据详情
|
* 获取数据详情
|
||||||
*
|
*
|
||||||
|
@ -33,14 +61,14 @@ public class AssetTableDetailsServiceImpl extends ServiceImpl<AssetTableDetailsM
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateAssetTableDetails(AssetTableDetails assetTableDetails) {
|
public boolean updateAssetTableDetails(AssetTableDetails assetTableDetails) {
|
||||||
if ("Y".equals(assetTableDetails.getYesNoDictionary())){
|
if ("Y".equals(assetTableDetails.getYesNoDictionary())) {
|
||||||
return this.update(
|
return this.update(
|
||||||
new LambdaUpdateWrapper<AssetTableDetails>()
|
new LambdaUpdateWrapper<AssetTableDetails>()
|
||||||
.eq(AssetTableDetails::getId, assetTableDetails.getId())
|
.eq(AssetTableDetails::getId, assetTableDetails.getId())
|
||||||
.set(AssetTableDetails::getYesNoDictionary, assetTableDetails.getYesNoDictionary())
|
.set(AssetTableDetails::getYesNoDictionary, assetTableDetails.getYesNoDictionary())
|
||||||
.set(AssetTableDetails::getMappingDictionary, assetTableDetails.getMappingDictionary())
|
.set(AssetTableDetails::getMappingDictionary, assetTableDetails.getMappingDictionary())
|
||||||
);
|
);
|
||||||
}else {
|
} else {
|
||||||
return this.update(
|
return this.update(
|
||||||
new LambdaUpdateWrapper<AssetTableDetails>()
|
new LambdaUpdateWrapper<AssetTableDetails>()
|
||||||
.eq(AssetTableDetails::getId, assetTableDetails.getId())
|
.eq(AssetTableDetails::getId, assetTableDetails.getId())
|
||||||
|
@ -49,4 +77,99 @@ public class AssetTableDetailsServiceImpl extends ServiceImpl<AssetTableDetailsM
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取数据详情的value值
|
||||||
|
*
|
||||||
|
* @param tableId 表id
|
||||||
|
* @return 数据详情的value值集合
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> getTableDetailsValueList(Long tableId) {
|
||||||
|
List<AssetTableDetails> assetTableDetailsList = this.list(
|
||||||
|
new LambdaQueryWrapper<AssetTableDetails>()
|
||||||
|
.eq(AssetTableDetails::getAssetStructureTableId, tableId)
|
||||||
|
);
|
||||||
|
Map<String, Object> stringObjectHashMap = new HashMap<>();
|
||||||
|
// 获取所有字段的名字
|
||||||
|
List<String> strings = assetTableDetailsList.stream().map(AssetTableDetails::getName).toList();
|
||||||
|
|
||||||
|
|
||||||
|
//获取表名
|
||||||
|
AssetStructureTable structureTable = assetStructureTableService.getOne(
|
||||||
|
new LambdaQueryWrapper<AssetStructureTable>()
|
||||||
|
.eq(AssetStructureTable::getId, tableId)
|
||||||
|
);
|
||||||
|
// 获取数据源
|
||||||
|
AssetStructure assetStructure = assetStructureService.getOne(
|
||||||
|
new LambdaQueryWrapper<AssetStructure>()
|
||||||
|
.eq(AssetStructure::getId, structureTable.getAssetStructureId())
|
||||||
|
);
|
||||||
|
// 获取数据信息
|
||||||
|
DataSource dataSource = dataSourceService.getOne(
|
||||||
|
new LambdaQueryWrapper<DataSource>()
|
||||||
|
.eq(DataSource::getId, assetStructure.getDataSourceSystemId())
|
||||||
|
);
|
||||||
|
|
||||||
|
DataType dataType = dataTypeService.getOne(
|
||||||
|
new LambdaQueryWrapper<DataType>()
|
||||||
|
.eq(DataType::getId, dataSource.getTypeId())
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
String driveClass = dataType.getDriverManager();
|
||||||
|
String jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceDatabaseName() + "?" + dataSource.getAdditionalConfiguration();
|
||||||
|
|
||||||
|
if ("mysql".equals(dataType.getDataType())) {
|
||||||
|
log.info("MySQL");
|
||||||
|
Connection conn = null;
|
||||||
|
Statement st = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
|
||||||
|
String tableDetails = "";
|
||||||
|
for (AssetTableDetails assetTableDetails : assetTableDetailsList) {
|
||||||
|
tableDetails += assetTableDetails.getName() + ",";
|
||||||
|
}
|
||||||
|
// 去掉最后一个逗号
|
||||||
|
tableDetails = tableDetails.substring(0, tableDetails.length() - 1);
|
||||||
|
String sql = "select " + tableDetails + " from " + structureTable.getTableName();
|
||||||
|
try {
|
||||||
|
Class.forName(driveClass);
|
||||||
|
conn = DriverManager.getConnection(jdbcUrl, dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword());
|
||||||
|
st = conn.createStatement();
|
||||||
|
rs = st.executeQuery(sql);
|
||||||
|
while (rs.next()) {
|
||||||
|
for (String s : strings) {
|
||||||
|
String s1 = rs.getString(s);
|
||||||
|
stringObjectHashMap.put(s,s1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("----------------------------------分割线----------------------------------------");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.info("连接失败");
|
||||||
|
}finally {
|
||||||
|
try {
|
||||||
|
if (conn != null) {
|
||||||
|
conn.close();
|
||||||
|
}
|
||||||
|
if (st != null) {
|
||||||
|
st.close();
|
||||||
|
}
|
||||||
|
if (rs != null) {
|
||||||
|
rs.close();
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
log.info("关闭资源失败");
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("oracle".equals(dataType.getDataType())) {
|
||||||
|
log.info("Oracle");
|
||||||
|
}
|
||||||
|
if ("sqlserver".equals(dataType.getDataType())) {
|
||||||
|
log.info("SQLServer");
|
||||||
|
}
|
||||||
|
return stringObjectHashMap;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue