feat(): 资产模型基本信息

dev
chao 2024-04-26 15:20:04 +08:00
parent 8a897e1066
commit c66661c52c
6 changed files with 128 additions and 9 deletions

View File

@ -4,10 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.etl.common.core.annotation.Excel;
import com.etl.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
@ -21,9 +19,8 @@ import lombok.experimental.SuperBuilder;
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
@EqualsAndHashCode(callSuper = true)
@TableName("asset_table_details")
public class AssetTableDetails extends BaseEntity {
public class AssetTableDetails {
private static final long serialVersionUID = 1L;
/**

View File

@ -1,6 +1,5 @@
package com.etl.data.structure.domain.resp;
import com.etl.data.structure.domain.AssetStructureTable;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -23,7 +22,7 @@ public class AssetStructureTableResp {
/**
*
*/
private List<AssetStructureTable> assetStructureList;
private List<TableDetailsResp> tableDetailsRespList;
/**
*

View File

@ -0,0 +1,63 @@
package com.etl.data.structure.domain.resp;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.etl.common.core.annotation.Excel;
import com.etl.data.structure.domain.AssetTableDetails;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
*
*
* @author Chao
* @ClassName: TableDetailsResp
* @CreateTime: 2024/4/26 10:41
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@SuperBuilder
public class TableDetailsResp {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* id
*/
@Excel(name = "数据资产id")
private Long assetStructureId;
/**
*
*/
@Excel(name = "数据资产表")
private String tableName;
/**
*
*/
@Excel(name = "表数据总数")
private Long tableDataCount;
/**
*
*/
@Excel(name = "表注释")
private String tableNameAnnotation;
/**
*
*/
private List<AssetTableDetails> assetTableDetailsList;
}

View File

@ -3,6 +3,8 @@ package com.etl.data.structure.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.etl.data.structure.domain.AssetTableDetails;
import java.util.List;
/**
* Service
*
@ -11,4 +13,6 @@ import com.etl.data.structure.domain.AssetTableDetails;
* @CreateTime: 2024/4/23 7:38
*/
public interface IAssetTableDetailsService extends IService<AssetTableDetails> {
public List<AssetTableDetails> selectAssetTableDetailsList();
}

View File

@ -3,12 +3,18 @@ package com.etl.data.structure.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.etl.data.structure.domain.AssetStructureTable;
import com.etl.data.structure.domain.AssetTableDetails;
import com.etl.data.structure.domain.resp.AssetStructureTableResp;
import com.etl.data.structure.domain.resp.TableDetailsResp;
import com.etl.data.structure.mapper.AssetStructureTableMapper;
import com.etl.data.structure.service.IAssetStructureTableService;
import com.etl.data.structure.service.IAssetTableDetailsService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* Service
@ -18,7 +24,12 @@ import java.util.List;
* @CreateTime: 2024/4/22 5:22
*/
@Service
@Log4j2
public class AssetStructureTableServiceImpl extends ServiceImpl<AssetStructureTableMapper, AssetStructureTable> implements IAssetStructureTableService {
@Autowired
private IAssetTableDetailsService assetTableDetailsService;
/**
*
*
@ -27,16 +38,51 @@ public class AssetStructureTableServiceImpl extends ServiceImpl<AssetStructureTa
*/
@Override
public AssetStructureTableResp selectAssetSouructureTableList(Long assetStructureId) {
// 检查assetStructureId是否为null
if (assetStructureId == null) {
log.info("数据资产id不能为空");
throw new IllegalArgumentException("数据资产id不能为空");
}
log.info("查询该数据资产表");
List<AssetStructureTable> assetStructureTableList = this.list(
new LambdaQueryWrapper<AssetStructureTable>()
.eq(AssetStructureTable::getAssetStructureId, assetStructureId)
);
// 如果assetStructureTableList为空则返回空的AssetStructureTableResp对象
if (assetStructureTableList.isEmpty()){
log.info("该数据资产表为空");
return AssetStructureTableResp.builder().build();
}
// 获取所有AssetTableDetails
log.info("获取所有表数据详情");
List<AssetTableDetails> assetTableDetails = assetTableDetailsService.selectAssetTableDetailsList();
// 遍历assetStructureTableList获取每个AssetStructureTable的AssetTableDetails
log.info("开始过滤并获取每一个表的数据结构");
List<TableDetailsResp> assetTableDetailsList = assetStructureTableList.stream()
.map(assetStructureTable -> {
List<AssetTableDetails> matchingDetails = assetTableDetails.stream()
.filter(tableDetails -> assetStructureTable.getId().equals(tableDetails.getAssetStructureTableId()))
.collect(Collectors.toList());
return TableDetailsResp.builder()
.id(assetStructureTable.getId())
.assetStructureId(assetStructureTable.getAssetStructureId())
.tableName(assetStructureTable.getTableName())
.tableDataCount(assetStructureTable.getTableDataCount())
.tableNameAnnotation(assetStructureTable.getTableNameAnnotation())
.assetTableDetailsList(matchingDetails)
.build();
}).collect(Collectors.toList());
// 统计数据表总数
log.info("统计数据表总数");
long tableCount = assetStructureTableList.size();
log.info("统计数据表数据总数");
long tableDataCount = assetStructureTableList.stream().mapToLong(AssetStructureTable::getTableDataCount).sum();
log.info("------------------------------分隔符------------------------------------");
return AssetStructureTableResp.builder()
.assetStructureList(assetStructureTableList)
.tableDetailsRespList(assetTableDetailsList)
.tableCount(tableCount)
.tableDataCount(tableDataCount)
.build();

View File

@ -6,9 +6,10 @@ import com.etl.data.structure.mapper.AssetTableDetailsMapper;
import com.etl.data.structure.service.IAssetTableDetailsService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
* Service
* Service
*
* @author Chao
* @ClassName: AssetTableDetailsServiceImpl
@ -16,4 +17,13 @@ import org.springframework.stereotype.Service;
*/
@Service
public class AssetTableDetailsServiceImpl extends ServiceImpl<AssetTableDetailsMapper, AssetTableDetails> implements IAssetTableDetailsService {
/**
* id
*
* @return
*/
@Override
public List<AssetTableDetails> selectAssetTableDetailsList() {
return this.list();
}
}