diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/AssetModelController.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/AssetModelController.java index f3d2b26..f8a6b32 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/AssetModelController.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/AssetModelController.java @@ -68,12 +68,13 @@ public class AssetModelController extends BaseController /** * 修改【请填写功能名称】 */ - @PutMapping + @PutMapping("UpdateAssetModel") public Result edit(@RequestBody AssetModel assetModel) { return toAjax(assetModelService.updateAssetModel(assetModel)); } + /** * 删除【请填写功能名称】 */ diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/DictionaryController.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/DictionaryController.java new file mode 100644 index 0000000..74a898f --- /dev/null +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/DictionaryController.java @@ -0,0 +1,96 @@ +package com.muyu.etl.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.page.TableDataInfo; + +import com.muyu.etl.domain.Dictionary; +import com.muyu.etl.service.DictionaryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 【请填写功能名称】Controller + * + * @author ruoyi + * @date 2024-04-24 + */ +@RestController +@RequestMapping("/dictionary") +public class DictionaryController extends BaseController +{ + @Autowired + private DictionaryService dictionaryService; + + /** + * 查询【请填写功能名称】列表 + */ + @GetMapping("/list") + public Result> getDictionaryList(Dictionary dictionary) + { + startPage(); + List list = dictionaryService.selectDictionaryList(dictionary); + return getDataTable(list); + } + + /** + * 导出【请填写功能名称】列表 + */ + @PostMapping("/export") + public void export(HttpServletResponse response, Dictionary dictionary) + { + List list = dictionaryService.selectDictionaryList(dictionary); + ExcelUtil util = new ExcelUtil(Dictionary.class); + util.exportExcel(response, list, "【请填写功能名称】数据"); + } + + /** + * 获取【请填写功能名称】详细信息 + */ + @GetMapping(value = "/{id}") + public Result getInfo(@PathVariable("id") Long id) + { + return success(dictionaryService.selectDictionaryById(id)); + } + + /** + * 新增【请填写功能名称】 + */ + @PostMapping("/dictionary") + public Result add(@RequestBody Dictionary dictionary) + { + return toAjax(dictionaryService.insertDictionary(dictionary)); + } + + /** + * 修改【请填写功能名称】 + */ + @PutMapping + public Result edit(@RequestBody Dictionary dictionary) + { + return toAjax(dictionaryService.updateDictionary(dictionary)); + } + + /** + * 删除【请填写功能名称】 + */ + @DeleteMapping("/{ids}") + public Result remove(@PathVariable Long[] ids) + { + return toAjax(dictionaryService.deleteDictionaryByIds(ids)); + } + @GetMapping("GetDictionaryList") + public Result getDictionaryList(@RequestParam("dataSourceId") Long dataSourceId){ + return dictionaryService.getDictionaryList(dataSourceId); + } + +// @GetMapping("delDict") +// public Result delDict(Long id){ +// return dictionaryService.delDict(id); +// } + +} diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/DictionaryDataController.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/DictionaryDataController.java new file mode 100644 index 0000000..203f33a --- /dev/null +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/controller/DictionaryDataController.java @@ -0,0 +1,85 @@ +package com.muyu.etl.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.etl.domain.DictionaryData; +import com.muyu.etl.service.DictionaryDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 【请填写功能名称】Controller + * + * @author ruoyi + * @date 2024-04-24 + */ +@RestController +@RequestMapping("/data") +public class DictionaryDataController extends BaseController +{ + @Autowired + private DictionaryDataService dictionaryDataService; + + /** + * 查询【请填写功能名称】列表 + */ + @GetMapping("/list") + public Result> list(DictionaryData dictionaryData) + { + startPage(); + List list = dictionaryDataService.selectDictionaryDataList(dictionaryData); + return getDataTable(list); + } + + /** + * 导出【请填写功能名称】列表 + */ + @PostMapping("/export") + public void export(HttpServletResponse response, DictionaryData dictionaryData) + { + List list = dictionaryDataService.selectDictionaryDataList(dictionaryData); + ExcelUtil util = new ExcelUtil(DictionaryData.class); + util.exportExcel(response, list, "【请填写功能名称】数据"); + } + + /** + * 获取【请填写功能名称】详细信息 + */ + @GetMapping(value = "/{id}") + public Result getInfo(@PathVariable("id") Long id) + { + return success(dictionaryDataService.selectDictionaryDataById(id)); + } + + /** + * 新增【请填写功能名称】 + */ + @PostMapping + public Result add(@RequestBody DictionaryData dictionaryData) + { + return toAjax(dictionaryDataService.insertDictionaryData(dictionaryData)); + } + + /** + * 修改【请填写功能名称】 + */ + @PutMapping + public Result edit(@RequestBody DictionaryData dictionaryData) + { + return toAjax(dictionaryDataService.updateDictionaryData(dictionaryData)); + } + + /** + * 删除【请填写功能名称】 + */ + @DeleteMapping("/{ids}") + public Result remove(@PathVariable Long[] ids) + { + return toAjax(dictionaryDataService.deleteDictionaryDataByIds(ids)); + } +} diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/AssetModel.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/AssetModel.java index a1b8ca9..da58a1a 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/AssetModel.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/AssetModel.java @@ -3,6 +3,8 @@ package com.muyu.etl.domain; import com.muyu.common.core.web.domain.BaseEntity; import lombok.Data; +import java.util.List; + /** * @ClassName AssetModel * @Description 描述 @@ -24,6 +26,8 @@ public class AssetModel extends BaseEntity { private String defaultValue; private String isDict; private String dictKey; + private Long dictionaryId; + private List dictionaryDatas; public Long getId() { return id; diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DataAsset.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DataAsset.java index 580b7cd..7de375c 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DataAsset.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DataAsset.java @@ -1,11 +1,24 @@ package com.muyu.etl.domain; import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.common.security.utils.SecurityUtils; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Date; + +/** + * @ClassName DataAsset + * @Description 描述 + * @Author HaoRan.Zhang + * @Date 2024/4/22 20:41 + */ @Data +@SuperBuilder @AllArgsConstructor @NoArgsConstructor public class DataAsset extends BaseEntity { @@ -63,4 +76,20 @@ public class DataAsset extends BaseEntity { public void setFields(Long fields) { this.fields = fields; } + + public DataAsset dataAssetBuild(DataSource dataSource,ResultSet resultSet){ + try { + return DataAsset.builder() + .tableName(resultSet.getString("t_name")) + .tableComment(resultSet.getString("table_comment") == null ? "-":resultSet.getString("table_comment")) + .tableCount(Long.valueOf(resultSet.getString("table_rows"))) + .fields(Long.valueOf(resultSet.getString("fields"))) + .dataSourceId(dataSource.getId()) + .createBy(SecurityUtils.getUsername()) + .createTime(new Date()) + .build(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DataSource.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DataSource.java index 4e8454d..99aea17 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DataSource.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DataSource.java @@ -31,5 +31,5 @@ public class DataSource extends BaseEntity { private String tableName; private List tableList; private String modeName; - private String JdbcDriver; + private String jdbcDriver; } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/Dictionary.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/Dictionary.java index 64775c8..8513131 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/Dictionary.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/Dictionary.java @@ -7,34 +7,34 @@ import lombok.NoArgsConstructor; import java.util.List; +/** + * @ClassName Dictionary + * @Description 描述 + * @Author HaoRan.Zhang + * @Date 2024/4/25 15:02 + */ @Data -@NoArgsConstructor @AllArgsConstructor +@NoArgsConstructor public class Dictionary extends BaseEntity { - /** * 主键 */ private Long id; - /** * 字典名称 */ private String dictionaryName; - /** - * 字典key + * 字典Key */ private String dictionaryKey; - /** * 数据源ID */ private Long dataSourceId; - /** * 字典集合 */ private List dictionaryDataList; - } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DictionaryData.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DictionaryData.java index 22b6451..177e34d 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DictionaryData.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/domain/DictionaryData.java @@ -5,13 +5,20 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + +/** + * @ClassName DictionaryData + * @Description 描述 + * @Author HaoRan.Zhang + * @Date 2024/4/25 15:05 + */ @Data -@NoArgsConstructor @AllArgsConstructor +@NoArgsConstructor public class DictionaryData extends BaseEntity { private Long id; - /** * 字典表Id */ @@ -32,4 +39,6 @@ public class DictionaryData extends BaseEntity { */ private Boolean isEdit = false; + private List dictionaryDatas; + } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/AssetModelMapper.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/AssetModelMapper.java index c479b7a..6352943 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/AssetModelMapper.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/AssetModelMapper.java @@ -68,4 +68,7 @@ public interface AssetModelMapper int clearTable1(@Param("id") Long[] id); void batchInsert(@Param("tableAssets") List tableAssets); + + void updateAssetModelDiction(Long id); + } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DataAssetMapper.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DataAssetMapper.java index 488c71f..1071059 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DataAssetMapper.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DataAssetMapper.java @@ -66,6 +66,6 @@ public interface DataAssetMapper void batchInsert(@Param("dataAssets") ArrayList dataAssets); - + List selectById(Long id); } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DataSourceMapper.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DataSourceMapper.java index ea342bf..99b35b4 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DataSourceMapper.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DataSourceMapper.java @@ -77,4 +77,6 @@ public interface DataSourceMapper List selectDataAssetBachId(@Param("longs") List longs); List selectId(Long id); + + } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DictionaryDataMapper.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DictionaryDataMapper.java index 66692e1..3b8a4e8 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DictionaryDataMapper.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DictionaryDataMapper.java @@ -6,7 +6,6 @@ import org.apache.ibatis.annotations.Param; import java.util.List; public interface DictionaryDataMapper { - /** * 查询【请填写功能名称】 * @@ -57,4 +56,8 @@ public interface DictionaryDataMapper { List getDictionaryDataList(@Param("dictionaryIds") List dictionaryIds); + void delDict(@Param("longs") List longs); + + void deleteDictionaryDataBy(Long id); + } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DictionaryMapper.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DictionaryMapper.java index b96798f..63119ea 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DictionaryMapper.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/mapper/DictionaryMapper.java @@ -6,7 +6,6 @@ import org.apache.ibatis.annotations.Param; import java.util.List; public interface DictionaryMapper { - /** * 查询【请填写功能名称】 * @@ -58,4 +57,6 @@ public interface DictionaryMapper { List getDictionaryList(@Param("dataSourceId") Long dataSourceId); + List getDictionaryDataList(@Param("string") List string); + } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DataSourceService.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DataSourceService.java index 5c7edb0..356b550 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DataSourceService.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DataSourceService.java @@ -64,17 +64,14 @@ public interface DataSourceService */ public int deleteDataSourceById(Long id); - Result test(DataSource dataSource); - Result assetsList(DataSource dataSource); Result structureList(DataSource dataSource); Result synchronization(DataSource dataSource); - Result dataAssetList(DataSource dataSource); Result assetModelList(DataAsset dataAsset); diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DictionaryDataService.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DictionaryDataService.java index 580f5ae..cc3b23a 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DictionaryDataService.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DictionaryDataService.java @@ -1,11 +1,12 @@ package com.muyu.etl.service; import com.muyu.etl.domain.DictionaryData; +import org.springframework.stereotype.Service; import java.util.List; +@Service public interface DictionaryDataService { - /** * 查询【请填写功能名称】 * @@ -53,5 +54,4 @@ public interface DictionaryDataService { * @return 结果 */ public int deleteDictionaryDataById(Long id); - } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DictionaryService.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DictionaryService.java index 1263cb3..4488854 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DictionaryService.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/DictionaryService.java @@ -6,7 +6,6 @@ import com.muyu.etl.domain.Dictionary; import java.util.List; public interface DictionaryService { - /** * 查询【请填写功能名称】 * @@ -55,7 +54,8 @@ public interface DictionaryService { */ public int deleteDictionaryById(Long id); - Result getDictionaryList(Long dataSourceId); + Result delDict(Long id); + } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DataSourceServiceImpl.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DataSourceServiceImpl.java index 2c5c572..f934357 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DataSourceServiceImpl.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DataSourceServiceImpl.java @@ -5,6 +5,7 @@ import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.DateUtils; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.etl.domain.*; +import com.muyu.etl.domain.Dictionary; import com.muyu.etl.mapper.AssetModelMapper; import com.muyu.etl.mapper.DataAssetMapper; import com.muyu.etl.mapper.DataSourceMapper; @@ -24,14 +25,19 @@ import java.util.*; */ @Service public class DataSourceServiceImpl implements DataSourceService{ + @Autowired private DataSourceMapper dataSourceMapper; @Autowired private AssetModelMapper assetModelMapper; + @Autowired private DataAssetMapper dataAssetMapper; + @Autowired + private DictionaryServiceImpl dictionaryService; + /** * 查询【请填写功能名称】 * @@ -66,6 +72,11 @@ public class DataSourceServiceImpl implements DataSourceService{ public int insertDataSource(DataSource dataSource) { dataSource.setCreateTime(DateUtils.getNowDate()); dataSource.setCreateBy(SecurityUtils.getUsername()); + if("Mysql".equals(dataSource.getType())){ + dataSource.setJdbcDriver("com.mysql.cj.jdbc.Driver"); + }else { + dataSource.setJdbcDriver("org.postgresql.Driver"); + } return dataSourceMapper.insertDataSource(dataSource); } @@ -80,6 +91,11 @@ public class DataSourceServiceImpl implements DataSourceService{ { dataSource.setUpdateTime(DateUtils.getNowDate()); dataSource.setUpdateBy(SecurityUtils.getUsername()); + if("Mysql".equals(dataSource.getType())){ + dataSource.setJdbcDriver("com.mysql.cj.jdbc.Driver"); + }else { + dataSource.setJdbcDriver("org.postgresql.Driver"); + } return dataSourceMapper.updateDataSource(dataSource); } @@ -202,8 +218,10 @@ public class DataSourceServiceImpl implements DataSourceService{ return "byte[]"; case "longtext": return "Clob"; - // ... 其他类型映射,包括日期、时间、字符串、二进制、Blob、枚举、集合等 + case "double": + return "double"; default: + //抛出新的IlLegalArgumentException(“不支持的数据类型:”+mappingType); throw new IllegalArgumentException("Unsupported data type: " + mappingType); } } @@ -220,6 +238,7 @@ public class DataSourceServiceImpl implements DataSourceService{ // 设置MySQL JDBC驱动类名和数据库连接URL String jdbcDriver="com.mysql.cj.jdbc.Driver"; String url = "jdbc:mysql://"+dataSource.getLinkAddress()+":"+dataSource.getPort()+"/"+dataSource.getDatabaseName(); + Connection con = null; ArrayList tableAssets = new ArrayList<>(); try{ @@ -238,9 +257,9 @@ public class DataSourceServiceImpl implements DataSourceService{ // 遍历查询结果,创建并填充资产模型列表 while (resultSet.next()){ AssetModel assetModel = new AssetModel(); - assetModel.setComment(resultSet.getString("COLUMN_COMMENT")); assetModel.setName(resultSet.getString("COLUMN_NAME")); +// int decimalPlaces = resultSet.getInt("DECIMAL_PLACES"); // 设置列长度或精度 if (resultSet.getString("CHARACTER_MAXIMUM_LENGTH")!=null){ assetModel.setLength(resultSet.getString("CHARACTER_MAXIMUM_LENGTH")); @@ -249,6 +268,12 @@ public class DataSourceServiceImpl implements DataSourceService{ }else{ assetModel.setLength("-"); } + if (resultSet.getString("NUMERIC_SCALE")!=null){ + assetModel.setDecimalPlaces(resultSet.getString("NUMERIC_SCALE")); + }else{ + assetModel.setDecimalPlaces("0"); + } + // 设置是否可为空 if (resultSet.getString("IS_NULLABLE").equals("YES")){ assetModel.setIsNull("Y"); @@ -257,6 +282,7 @@ public class DataSourceServiceImpl implements DataSourceService{ } // 设置是否有默认值 if (resultSet.getString("COLUMN_DEFAULT")!=null){ + assetModel.setDefaultValue(resultSet.getString("COLUMN_DEFAULT")); }else{ assetModel.setDefaultValue("-"); @@ -264,10 +290,11 @@ public class DataSourceServiceImpl implements DataSourceService{ // 初始化其他属性 assetModel.setIsDict(""); assetModel.setDictKey(""); + assetModel.setType("s"); - assetModel.setDecimalPlaces("0"); +// assetModel.setDecimalPlaces("0"); + String dataType = mapDataTypeToJavaClass(resultSet.getString("DATA_TYPE")); - System.out.println("==================================="+dataType); assetModel.setMappingType(dataType); assetModel.setType(resultSet.getString("DATA_TYPE")); // 设置是否为主键 @@ -397,7 +424,24 @@ public class DataSourceServiceImpl implements DataSourceService{ //数据同步 @Override public Result synchronization(DataSource dataSource) { - Long id1 = dataSource.getId(); + List dataSources = dataSourceMapper.selectId(dataSource.getId()); + List longs = dataSources.stream().map(DataSource::getId).toList(); + System.out.println("数据源的ID"+longs); + + ArrayList longArrayList = new ArrayList<>(); + + for (Long aLong : longs) { + List dataAssets = dataAssetMapper.selectById(aLong); + List longList = dataAssets.stream().map(DataAsset::getId).toList(); + System.out.println("数据模型的Id"+longList); + longArrayList.addAll(longList); + } + + Long[] longs2 = longArrayList.toArray(Long[]::new); + if (longs2.length != 0){ + assetModelMapper.clearTable1(longs2); + + } String username = dataSource.getUsername(); String password = dataSource.getPassword(); String jdbcDriver = "com.mysql.cj.jdbc.Driver"; @@ -418,30 +462,11 @@ public class DataSourceServiceImpl implements DataSourceService{ ResultSet resultSet = preparedStatement.executeQuery(); // 遍历结果集,将每条记录转换为DataAsset对象,并添加到数据列表中 while (resultSet.next()){ - DataAsset dataAsset = new DataAsset(); - // 设置表名 - dataAsset.setTableName(resultSet.getString("t_name")); - // 设置表注释 - dataAsset.setTableComment(resultSet.getString("table_comment")); - // 设置表行数 - dataAsset.setTableCount(resultSet.getLong("table_rows")); - // 设置字段数 - dataAsset.setFields(resultSet.getLong("fields")); - // 设置数据源ID - dataAsset.setDataSourceId(dataSource.getId()); - // 设置创建者为当前登录用户 - dataAsset.setCreateBy(SecurityUtils.getUsername()); - // 设置创建时间为当前时间 - dataAsset.setCreateTime(new Date()); - // 将DataAsset对象添加到数据列表中 - dataAssets.add(dataAsset); + dataAssets.add(new DataAsset().dataAssetBuild(dataSource,resultSet)); } // 将 DataAsset 对象的 ID 提取出来并转换为 Long 数组 - Long id = dataSource.getId(); - Long[] a = new Long[1]; - a[0] = id; - int i = dataSourceMapper.clearTable(a); + int i = dataSourceMapper.clearTable(new Long[]{dataSource.getId()}); dataSourceMapper.batchAdd(dataAssets); for (DataAsset dataAsset : dataAssets) { List tableAssets = getTableAssets(dataSource, dataAsset.getTableName()); @@ -467,6 +492,19 @@ public class DataSourceServiceImpl implements DataSourceService{ AssetModel assetModel = new AssetModel(); assetModel.setDataAssetId(dataAsset.getId()); List assetModels = assetModelMapper.selectAssetModelList(assetModel); + List strings = assetModels.stream().map(AssetModel::getDictKey).toList(); + if (!strings.isEmpty()){ + Result> dictionaryDataList = dictionaryService.getDictionaryDataList(strings); + List data = dictionaryDataList.getData(); + assetModels.stream().forEach(assetModel1 -> { + data.stream().forEach(dictionary -> { + if (assetModel1.getDictKey().equals(dictionary.getDictionaryKey())) { + assetModel.setDictionaryDatas(dictionary.getDictionaryDataList()); + } + }); + }); + + } return Result.success(assetModels); } @@ -478,7 +516,8 @@ public class DataSourceServiceImpl implements DataSourceService{ * @return Result 包含统计信息的结果对象,其中成功时携带Statistics对象,包含数据资产数量、数据模型数量和资产模型数量。 */ public Result statisticsInfo() { - long sum; long sum1; + long datasum; + long assetssum; // 查询所有的数据源 List dataSources = dataSourceMapper.selectDataSourceList(new DataSource()); // 查出数据源ID列表 @@ -491,14 +530,14 @@ public class DataSourceServiceImpl implements DataSourceService{ statistics.setDataAsset((long) longs.size()); System.out.println(statistics.getDataAsset()); // 统计所有数据资产的字段总数 - sum = dataAssets.stream().mapToLong(dataAsset -> Long.valueOf(dataAsset.getFields())).sum(); + datasum = dataAssets.stream().mapToLong(dataAsset -> Long.valueOf(dataAsset.getFields())).sum(); // 统计所有数据资产的表数量 - sum1 = dataAssets.stream().mapToLong(dataAsset -> Long.valueOf(dataAsset.getTableCount())).sum(); - System.out.println("数据"+sum); - System.out.println("资产"+sum1); + assetssum = dataAssets.stream().mapToLong(dataAsset -> Long.valueOf(dataAsset.getTableCount())).sum(); + System.out.println("数据"+datasum); + System.out.println("资产"+assetssum); // 设置数据模型数量和资产模型数量 - statistics.setDataModel(sum); - statistics.setAssetModel(sum1); + statistics.setDataModel(datasum); + statistics.setAssetModel(assetssum); // 返回携带统计信息的成功结果 return Result.success(statistics); } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DictionaryDataServiceImpl.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DictionaryDataServiceImpl.java index 75c589e..bdd73e4 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DictionaryDataServiceImpl.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DictionaryDataServiceImpl.java @@ -4,7 +4,6 @@ import com.muyu.common.core.utils.DateUtils; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.etl.domain.DictionaryData; import com.muyu.etl.mapper.DictionaryDataMapper; -import com.muyu.etl.mapper.DictionaryMapper; import com.muyu.etl.service.DictionaryDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,7 +12,6 @@ import java.util.List; @Service public class DictionaryDataServiceImpl implements DictionaryDataService { - @Autowired private DictionaryDataMapper dictionaryDataMapper; @@ -92,5 +90,4 @@ public class DictionaryDataServiceImpl implements DictionaryDataService { { return dictionaryDataMapper.deleteDictionaryDataById(id); } - } diff --git a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DictionaryServiceImpl.java b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DictionaryServiceImpl.java index 2a703e4..6e579b9 100644 --- a/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DictionaryServiceImpl.java +++ b/muyu-modules/muyu-etl/src/main/java/com/muyu/etl/service/impl/DictionaryServiceImpl.java @@ -1,18 +1,18 @@ package com.muyu.etl.service.impl; -import java.util.List; - import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.DateUtils; import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.etl.domain.Dictionary; import com.muyu.etl.domain.DictionaryData; +import com.muyu.etl.mapper.AssetModelMapper; import com.muyu.etl.mapper.DictionaryDataMapper; +import com.muyu.etl.mapper.DictionaryMapper; +import com.muyu.etl.service.DictionaryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.muyu.etl.mapper.DictionaryMapper; -import com.muyu.etl.domain.Dictionary; -import com.muyu.etl.service.DictionaryService; -import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * 【请填写功能名称】Service业务层处理 @@ -21,14 +21,17 @@ import org.springframework.transaction.annotation.Transactional; * @date 2024-04-25 */ @Service -public class DictionaryServiceImpl implements DictionaryService { - +public class DictionaryServiceImpl implements DictionaryService +{ @Autowired private DictionaryMapper dictionaryMapper; @Autowired private DictionaryDataMapper dictionaryDataMapper; + @Autowired + private AssetModelMapper assetModelMapper; + /** * 查询【请填写功能名称】 * @@ -101,18 +104,49 @@ public class DictionaryServiceImpl implements DictionaryService { @Override public Result getDictionaryList(Long dataSourceId) { - List dictionaryList = dictionaryMapper.getDictionaryList(dataSourceId); - if (!dictionaryList.isEmpty()){ - List longs = dictionaryList.stream() + List dictionaryList = dictionaryMapper.getDictionaryList(dataSourceId); + if (!dictionaryList.isEmpty()){ + List longs = dictionaryList.stream() + .map(Dictionary::getId).toList(); + List dictionaryDataList = dictionaryDataMapper.getDictionaryDataList(longs); + dictionaryList.stream() + .forEach(dictionary->{ + dictionaryDataList.stream().filter(dictionaryData -> dictionaryData.getDictionaryId().equals(dictionary.getId()) ).toList(); + dictionary.setDictionaryDataList(dictionaryDataList); + }); + } + return Result.success(dictionaryList); + } + + @Override + public Result delDict(Long id) { + dictionaryDataMapper.deleteDictionaryDataBy(id); + dictionaryMapper.deleteDictionaryById(id); + assetModelMapper.updateAssetModelDiction(id); + return Result.success(); + } + + /** + * 获取字典数据列表。 + */ + public Result getDictionaryDataList(List string){ + // 通过字符串列表查询字典数据列表 + List dictionaryDataList = dictionaryMapper.getDictionaryDataList(string); + if (!dictionaryDataList.isEmpty()){ + // 将字典数据列表中的每个字典项的ID提取出来,形成一个新的ID列表 + List longs = dictionaryDataList.stream() .map(Dictionary::getId).toList(); - List dictionaryDataList = dictionaryDataMapper.getDictionaryDataList(longs); - dictionaryList.stream() - .forEach(dictionary->{ - dictionaryDataList.stream().filter(dictionaryData -> dictionaryData.getDictionaryId().equals(dictionary.getId()) ).toList(); - dictionary.setDictionaryDataList(dictionaryDataList); + // 根据ID列表查询相应的字典详细数据列表 + List dictionaryDataList1 = dictionaryDataMapper.getDictionaryDataList(longs); + // 为每个字典项设置其详细的字典数据列表 + dictionaryDataList.stream() + .forEach(dictionary -> { + dictionaryDataList1.stream().filter(dictionaryData -> dictionaryData.getDictionaryId().equals(dictionary.getId())).toList(); + dictionary.setDictionaryDataList(dictionaryDataList1); }); } - return Result.success(dictionaryList); + // 返回成功结果,包含处理后的字典数据列表 + return Result.success(dictionaryDataList); } } diff --git a/muyu-modules/muyu-etl/src/main/resources/mapper/AssetModelMapper.xml b/muyu-modules/muyu-etl/src/main/resources/mapper/AssetModelMapper.xml index 28d8a70..a3a4cda 100644 --- a/muyu-modules/muyu-etl/src/main/resources/mapper/AssetModelMapper.xml +++ b/muyu-modules/muyu-etl/src/main/resources/mapper/AssetModelMapper.xml @@ -181,6 +181,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + update asset_model_copy1 set is_dict = '',dictionary_id = null where dictionary_id = #{id} + delete from asset_model_copy1 where id = #{id} diff --git a/muyu-modules/muyu-etl/src/main/resources/mapper/DataAssetMapper.xml b/muyu-modules/muyu-etl/src/main/resources/mapper/DataAssetMapper.xml index 6231b61..1b89fdf 100644 --- a/muyu-modules/muyu-etl/src/main/resources/mapper/DataAssetMapper.xml +++ b/muyu-modules/muyu-etl/src/main/resources/mapper/DataAssetMapper.xml @@ -37,6 +37,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + insert into data_asset diff --git a/muyu-modules/muyu-etl/src/main/resources/mapper/DataSourceMapper.xml b/muyu-modules/muyu-etl/src/main/resources/mapper/DataSourceMapper.xml index c86709c..f7a643b 100644 --- a/muyu-modules/muyu-etl/src/main/resources/mapper/DataSourceMapper.xml +++ b/muyu-modules/muyu-etl/src/main/resources/mapper/DataSourceMapper.xml @@ -152,42 +152,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - insert into data_asset diff --git a/muyu-modules/muyu-etl/src/main/resources/mapper/DictionaryDataMapper.xml b/muyu-modules/muyu-etl/src/main/resources/mapper/DictionaryDataMapper.xml index ec4fef4..783c004 100644 --- a/muyu-modules/muyu-etl/src/main/resources/mapper/DictionaryDataMapper.xml +++ b/muyu-modules/muyu-etl/src/main/resources/mapper/DictionaryDataMapper.xml @@ -95,4 +95,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + delete dictionarydata where dictionary_id in + + #{id} + + + + + delete from dictionarydata where dictionary_id = #{id} + + diff --git a/muyu-modules/muyu-etl/src/main/resources/mapper/DictionaryMapper.xml b/muyu-modules/muyu-etl/src/main/resources/mapper/DictionaryMapper.xml index 7e72c3a..4fd8293 100644 --- a/muyu-modules/muyu-etl/src/main/resources/mapper/DictionaryMapper.xml +++ b/muyu-modules/muyu-etl/src/main/resources/mapper/DictionaryMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -22,13 +22,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + insert into dictionary @@ -84,9 +93,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from dictionary where id in + delete from dictionary where id in #{id} - \ No newline at end of file + diff --git a/muyu-modules/muyu-etl/src/main/resources/mapper/system/DataSourceMapper.xml b/muyu-modules/muyu-etl/src/main/resources/mapper/system/DataSourceMapper.xml deleted file mode 100644 index b72bd3a..0000000 --- a/muyu-modules/muyu-etl/src/main/resources/mapper/system/DataSourceMapper.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, data_source_name, link_address, port, database_name, username, password, connection_param, init_num, max_num, max_wait_time, max_wait_size, create_by, create_time, update_by, update_time, remark, type, system_name from data_source - - - - - - - - insert into data_source - - data_source_name, - link_address, - port, - database_name, - username, - password, - connection_param, - init_num, - max_num, - max_wait_time, - max_wait_size, - create_by, - create_time, - update_by, - update_time, - remark, - type, - system_name, - - - #{dataSourceName}, - #{linkAddress}, - #{port}, - #{databaseName}, - #{username}, - #{password}, - #{connectionParam}, - #{initNum}, - #{maxNum}, - #{maxWaitTime}, - #{maxWaitSize}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - #{remark}, - #{type}, - #{systemName}, - - - - - update data_source - - data_source_name = #{dataSourceName}, - link_address = #{linkAddress}, - port = #{port}, - database_name = #{databaseName}, - username = #{username}, - password = #{password}, - connection_param = #{connectionParam}, - init_num = #{initNum}, - max_num = #{maxNum}, - max_wait_time = #{maxWaitTime}, - max_wait_size = #{maxWaitSize}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - remark = #{remark}, - type = #{type}, - system_name = #{systemName}, - - where id = #{id} - - - - delete from data_source where id = #{id} - - - - delete from data_source where id in - - #{id} - - -