From a9170951fdd641b807cf88bcb0d3e2cc8052581c Mon Sep 17 00:00:00 2001 From: gtl <2949451835@qq.com> Date: Tue, 23 Apr 2024 20:44:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(AssetStructureController):=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=B5=84=E4=BA=A7=E7=BB=93=E6=9E=84=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/etl/domain/ColumnInfo.java | 6 ++ .../com/ruoyi/etl/domain/DataDictData.java | 83 ++++++++++++++++ .../com/ruoyi/etl/domain/DataDictType.java | 95 ++++++++++++++++++ .../ruoyi/etl/domain/req/ColumnInfoReq.java | 31 ++++++ .../etl/domain/req/DataDictDataEditReq.java | 37 +++++++ .../etl/domain/req/DataDictDataSaveReq.java | 45 +++++++++ .../etl/domain/req/DataDictTypeEditReq.java | 37 +++++++ .../etl/domain/req/DataDictTypeSaveReq.java | 45 +++++++++ .../ruoyi/etl/domain/resp/DataDictResp.java | 42 ++++++++ .../controller/AssetStructureController.java | 29 +++++- .../controller/DataDictDataController.java | 97 ++++++++++++++++++ .../controller/DataDictTypeController.java | 99 +++++++++++++++++++ .../ruoyi/etl/mapper/DataDictDataMapper.java | 14 +++ .../ruoyi/etl/mapper/DataDictTypeMapper.java | 14 +++ .../etl/service/DataDictDataService.java | 22 +++++ .../etl/service/DataDictTypeService.java | 23 +++++ .../impl/AssetStructureServiceImpl.java | 16 +++ .../service/impl/DataDictDataServiceImpl.java | 53 ++++++++++ .../service/impl/DataDictTypeServiceImpl.java | 51 ++++++++++ 19 files changed, 836 insertions(+), 3 deletions(-) create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/DataDictData.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/DataDictType.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/ColumnInfoReq.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictDataEditReq.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictDataSaveReq.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictTypeEditReq.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictTypeSaveReq.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/resp/DataDictResp.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/DataDictDataController.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/DataDictTypeController.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/mapper/DataDictDataMapper.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/mapper/DataDictTypeMapper.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/DataDictDataService.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/DataDictTypeService.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/DataDictDataServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/DataDictTypeServiceImpl.java diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/ColumnInfo.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/ColumnInfo.java index c845cca..5589697 100644 --- a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/ColumnInfo.java +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/ColumnInfo.java @@ -55,4 +55,10 @@ public class ColumnInfo implements Serializable { /** 表编号 */ private Long tableId; + + /** 是否字典 */ + private String isDict; + + /** 数据字典编号 */ + private Long dataDictType; } diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/DataDictData.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/DataDictData.java new file mode 100644 index 0000000..b3d4f93 --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/DataDictData.java @@ -0,0 +1,83 @@ +package com.ruoyi.etl.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.etl.domain.req.DataDictDataSaveReq; +import com.ruoyi.etl.domain.req.DataDictDataEditReq; +import com.ruoyi.common.core.web.domain.BaseEntity; +import java.util.function.Supplier; +import java.util.Date; + +/** + * 字典数据对象 data_dict_data + * + * @author gtl + * @date 2024-04-23 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("data_dict_data") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "DataDictData", description = "字典数据") +public class DataDictData extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 字典编码 */ + @TableId(value = "dict_code",type = IdType.AUTO) + @ApiModelProperty(name = "字典编码", value = "字典编码") + private Long dictCode; + + /** 字典标签 */ + @Excel(name = "字典标签") + @ApiModelProperty(name = "字典标签", value = "字典标签", required = true) + private String dictLabel; + + /** 字典键值 */ + @Excel(name = "字典键值") + @ApiModelProperty(name = "字典键值", value = "字典键值", required = true) + private String dictValue; + + /** 字典类型编号 */ + @Excel(name = "字典类型编号") + @ApiModelProperty(name = "字典类型编号", value = "字典类型编号", required = true) + private Long dictTypeId; + + /** + * 添加构造器 + */ + public static DataDictData saveBuild(DataDictDataSaveReq dataDictDataSaveReq,Supplier createBy){ + return DataDictData.builder() + .dictLabel(dataDictDataSaveReq.getDictLabel()) + .dictValue(dataDictDataSaveReq.getDictValue()) + .dictTypeId(dataDictDataSaveReq.getDictTypeId()) + .createBy(createBy.get()) + .createTime(new Date()) + .build(); + } + + /** + * 修改构造器 + */ + public static DataDictData editBuild(Long dictCode, DataDictDataEditReq dataDictDataEditReq, Supplier updateBy){ + return DataDictData.builder() + .dictCode(dictCode) + .dictLabel(dataDictDataEditReq.getDictLabel()) + .dictValue(dataDictDataEditReq.getDictValue()) + .dictTypeId(dataDictDataEditReq.getDictTypeId()) + .updateBy(updateBy.get()) + .updateTime(new Date()) + .build(); + } + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/DataDictType.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/DataDictType.java new file mode 100644 index 0000000..6cd4321 --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/DataDictType.java @@ -0,0 +1,95 @@ +package com.ruoyi.etl.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.etl.domain.resp.DataDictResp; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.etl.domain.req.DataDictTypeSaveReq; +import com.ruoyi.etl.domain.req.DataDictTypeEditReq; +import com.ruoyi.common.core.web.domain.BaseEntity; + +import java.util.List; +import java.util.function.Supplier; +import java.util.Date; + +/** + * 字典类型对象 data_dict_type + * + * @author gtl + * @date 2024-04-23 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@TableName("data_dict_type") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "DataDictType", description = "字典类型") +public class DataDictType extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 字典主键 */ + @TableId(value = "id",type = IdType.AUTO) + @ApiModelProperty(name = "字典主键", value = "字典主键") + private Long id; + + /** 字典名称 */ + @Excel(name = "字典名称") + @ApiModelProperty(name = "字典名称", value = "字典名称", required = true) + private String dictName; + + /** 字典类型 */ + @Excel(name = "字典类型") + @ApiModelProperty(name = "字典类型", value = "字典类型", required = true) + private String dictType; + + /** 数据源编号 */ + @Excel(name = "数据源编号") + @ApiModelProperty(name = "数据源编号", value = "数据源编号", required = true) + private Long dataSourceId; + + /** + * 添加构造器 + */ + public static DataDictType saveBuild(DataDictTypeSaveReq dataDictTypeSaveReq,Supplier createBy){ + return DataDictType.builder() + .dictName(dataDictTypeSaveReq.getDictName()) + .dictType(dataDictTypeSaveReq.getDictType()) + .dataSourceId(dataDictTypeSaveReq.getDataSourceId()) + .createBy(createBy.get()) + .createTime(new Date()) + .build(); + } + + /** + * 修改构造器 + */ + public static DataDictType editBuild(Long id, DataDictTypeEditReq dataDictTypeEditReq, Supplier updateBy){ + return DataDictType.builder() + .id(id) + .dictName(dataDictTypeEditReq.getDictName()) + .dictType(dataDictTypeEditReq.getDictType()) + .dataSourceId(dataDictTypeEditReq.getDataSourceId()) + .updateBy(updateBy.get()) + .updateTime(new Date()) + .build(); + } + + public DataDictResp toDataDictResp(List list) { + return DataDictResp.builder() + .id(this.getId()) + .dictName(this.getDictName()) + .dictType(this.getDictType()) + .dataSourceId(this.getDataSourceId()) + .columnData(list) + .build(); + } +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/ColumnInfoReq.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/ColumnInfoReq.java new file mode 100644 index 0000000..53f8590 --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/ColumnInfoReq.java @@ -0,0 +1,31 @@ +package com.ruoyi.etl.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import java.io.Serializable; + +/** + * 字段详情 + * @ClassName ColumnInfoReq + * @Author 森静若林 + * @Date 2024/4/21 21:16 + */ + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class ColumnInfoReq implements Serializable { + private static final long serialVersionUID = 1L; + + /** 编号 */ + private Long id; + + /** 是否字典 */ + private String isDict; + + /** 数据字典编号 */ + private Long dataDictType; +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictDataEditReq.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictDataEditReq.java new file mode 100644 index 0000000..93a2c75 --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictDataEditReq.java @@ -0,0 +1,37 @@ +package com.ruoyi.etl.domain.req; + +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 字典数据对象 data_dict_data + * + * @author gtl + * @date 2024-04-23 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "DataDictDataEditReq", description = "字典数据") +public class DataDictDataEditReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 字典标签 */ + @ApiModelProperty(name = "字典标签", value = "字典标签", required = true) + private String dictLabel; + + /** 字典键值 */ + @ApiModelProperty(name = "字典键值", value = "字典键值", required = true) + private String dictValue; + + /** 字典类型编号 */ + @ApiModelProperty(name = "字典类型编号", value = "字典类型编号", required = true) + private Long dictTypeId; + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictDataSaveReq.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictDataSaveReq.java new file mode 100644 index 0000000..4b67a65 --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictDataSaveReq.java @@ -0,0 +1,45 @@ +package com.ruoyi.etl.domain.req; + +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 字典数据对象 data_dict_data + * + * @author gtl + * @date 2024-04-23 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "DataDictDataSaveReq", description = "字典数据") +public class DataDictDataSaveReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 字典编码 */ + + @ApiModelProperty(name = "字典编码", value = "字典编码") + private Long dictCode; + + /** 字典标签 */ + + @ApiModelProperty(name = "字典标签", value = "字典标签", required = true) + private String dictLabel; + + /** 字典键值 */ + + @ApiModelProperty(name = "字典键值", value = "字典键值", required = true) + private String dictValue; + + /** 字典类型编号 */ + + @ApiModelProperty(name = "字典类型编号", value = "字典类型编号", required = true) + private Long dictTypeId; + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictTypeEditReq.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictTypeEditReq.java new file mode 100644 index 0000000..69ee8cc --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictTypeEditReq.java @@ -0,0 +1,37 @@ +package com.ruoyi.etl.domain.req; + +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 字典类型对象 data_dict_type + * + * @author gtl + * @date 2024-04-23 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "DataDictTypeEditReq", description = "字典类型") +public class DataDictTypeEditReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 字典名称 */ + @ApiModelProperty(name = "字典名称", value = "字典名称", required = true) + private String dictName; + + /** 字典类型 */ + @ApiModelProperty(name = "字典类型", value = "字典类型", required = true) + private String dictType; + + /** 数据源编号 */ + @ApiModelProperty(name = "数据源编号", value = "数据源编号", required = true) + private Long dataSourceId; + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictTypeSaveReq.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictTypeSaveReq.java new file mode 100644 index 0000000..a0aca1d --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/req/DataDictTypeSaveReq.java @@ -0,0 +1,45 @@ +package com.ruoyi.etl.domain.req; + +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.AllArgsConstructor; +import lombok.experimental.SuperBuilder; +import io.swagger.annotations.*; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 字典类型对象 data_dict_type + * + * @author gtl + * @date 2024-04-23 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "DataDictTypeSaveReq", description = "字典类型") +public class DataDictTypeSaveReq extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** 字典主键 */ + + @ApiModelProperty(name = "字典主键", value = "字典主键") + private Long id; + + /** 字典名称 */ + + @ApiModelProperty(name = "字典名称", value = "字典名称", required = true) + private String dictName; + + /** 字典类型 */ + + @ApiModelProperty(name = "字典类型", value = "字典类型", required = true) + private String dictType; + + /** 数据源编号 */ + + @ApiModelProperty(name = "数据源编号", value = "数据源编号", required = true) + private Long dataSourceId; + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/resp/DataDictResp.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/resp/DataDictResp.java new file mode 100644 index 0000000..1d43852 --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-common/src/main/java/com/ruoyi/etl/domain/resp/DataDictResp.java @@ -0,0 +1,42 @@ +package com.ruoyi.etl.domain.resp; + +import com.ruoyi.etl.domain.DataDictData; +import io.swagger.annotations.ApiModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import java.io.Serializable; +import java.util.List; + +/** + * 字典类型对象 DataDictResp + * + * @author gtl + * @date 2024-04-23 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel(value = "DataDictResp", description = "字典类型") +public class DataDictResp implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 字典主键 */ + private Long id; + + /** 字典名称 */ + private String dictName; + + /** 字典类型 */ + private String dictType; + + /** 数据源编号 */ + private Long dataSourceId; + + /** 字段数据 */ + private List columnData; + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/AssetStructureController.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/AssetStructureController.java index dd4dd1d..7778374 100644 --- a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/AssetStructureController.java +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/AssetStructureController.java @@ -3,7 +3,9 @@ package com.ruoyi.etl.controller; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.etl.domain.ColumnInfo; import com.ruoyi.etl.domain.DataSource; +import com.ruoyi.etl.domain.req.ColumnInfoReq; import com.ruoyi.etl.domain.req.DataSourceQueryReq; import com.ruoyi.etl.domain.resp.AssetStructureResp; import com.ruoyi.etl.service.AssetStructureService; @@ -41,7 +43,7 @@ public class AssetStructureController{ * 通过数据源获取数据库信息 */ @ApiOperation("获取数据接入详细信息") - //@RequiresPermissions("etl:structure:query") + @RequiresPermissions("etl:structure:query") @GetMapping("/getDatabaseData/{dataSourceId}") public Result> getDatabaseData(@PathVariable Long dataSourceId) { return Result.success(assetStructureService.getDatabaseData(dataSourceId)); @@ -51,7 +53,7 @@ public class AssetStructureController{ * 通过数据库类型查询可用数据源信息 */ @ApiOperation("通过数据库类型查询可用数据源信息") - //@RequiresPermissions("etl:structure:query") + @RequiresPermissions("etl:structure:query") @GetMapping("/getDataSourceData/{databaseTypeId}") public Result> getDataSourceData(@PathVariable Long databaseTypeId) { return Result.success(assetStructureService.getDataSourceData(databaseTypeId)); @@ -61,10 +63,31 @@ public class AssetStructureController{ * 通过数据库名查询资产结构数据 */ @ApiOperation("通过数据库名查询表信息") - //@RequiresPermissions("etl:structure:query") + @RequiresPermissions("etl:structure:query") @GetMapping("/getAssetStructureData/{databaseName}") public Result> getAssetStructureData(@PathVariable String databaseName) { return Result.success(assetStructureService.getAssetStructureData(databaseName)); } + /** + * 通过字段信息编号查询字段信息 + */ + @ApiOperation("通过字段信息编号查询字段信息") + @RequiresPermissions("etl:structure:query") + @GetMapping("/getTableData/{tableInfoId}") + public Result getTableData(@PathVariable Long tableInfoId) { + return Result.success(assetStructureService.getTableData(tableInfoId)); + } + + /** + * 修改表映射字段数据 + */ + @ApiOperation("修改表映射字段数据") + @RequiresPermissions("etl:structure:edit") + @PutMapping + public Result columnInfoEdit(@RequestBody ColumnInfoReq columnInfoReq) { + assetStructureService.columnInfoEdit(columnInfoReq); + return Result.success(); + } + } diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/DataDictDataController.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/DataDictDataController.java new file mode 100644 index 0000000..7ece85f --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/DataDictDataController.java @@ -0,0 +1,97 @@ +package com.ruoyi.etl.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import com.ruoyi.common.security.utils.SecurityUtils; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.etl.domain.DataDictData; +import com.ruoyi.etl.domain.req.DataDictDataSaveReq; +import com.ruoyi.etl.domain.req.DataDictDataEditReq; +import com.ruoyi.etl.service.DataDictDataService; +import com.ruoyi.common.core.web.page.TableDataInfo; + +/** + * 字典数据Controller + * + * @author gtl + * @date 2024-04-23 + */ +@Api(tags = "字典数据") +@RestController +@RequestMapping("/dictData") +public class DataDictDataController extends BaseController { + @Autowired + private DataDictDataService dataDictDataService; + + /** + * 查询字典数据列表 + */ + @ApiOperation("获取字典数据列表") + @RequiresPermissions("etl:dictData:list") + @GetMapping("/list") + public Result> list() { + startPage(); + List list = dataDictDataService.list(); + return getDataTable(list); + } + + /** + * 获取字典数据详细信息 + */ + @ApiOperation("获取字典数据详细信息") + @RequiresPermissions("etl:dictData:query") + @GetMapping(value = "/{dictCode}") + @ApiImplicitParam(name = "dictCode", value = "dictCode", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class) + public Result getInfo(@PathVariable("dictCode") Long dictCode) { + return Result.success(dataDictDataService.getById(dictCode)); + } + + /** + * 新增字典数据 + */ + @RequiresPermissions("etl:dictData:add") + @Log(title = "字典数据", businessType = BusinessType.INSERT) + @PostMapping + @ApiOperation("新增字典数据") + public Result add(@RequestBody DataDictDataSaveReq dataDictDataSaveReq) { + return toAjax(dataDictDataService.save(DataDictData.saveBuild(dataDictDataSaveReq, SecurityUtils::getUsername))); + } + + /** + * 修改字典数据 + */ + @RequiresPermissions("etl:dictData:edit") + @Log(title = "字典数据", businessType = BusinessType.UPDATE) + @PutMapping("/{dictCode}") + @ApiOperation("修改字典数据") + public Result edit(@PathVariable Long dictCode, @RequestBody DataDictDataEditReq dataDictDataEditReq) { + return toAjax(dataDictDataService.updateById(DataDictData.editBuild(dictCode,dataDictDataEditReq, SecurityUtils::getUsername))); + } + + /** + * 删除字典数据 + */ + @RequiresPermissions("etl:dictData:remove") + @Log(title = "字典数据", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictCodes}") + @ApiOperation("删除字典数据") + @ApiImplicitParam(name = "dictCode", value = "dictCode", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4") + public Result remove(@PathVariable List dictCodes) { + return toAjax(dataDictDataService.removeBatchByIds(dictCodes)); + } +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/DataDictTypeController.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/DataDictTypeController.java new file mode 100644 index 0000000..f38b61d --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/controller/DataDictTypeController.java @@ -0,0 +1,99 @@ +package com.ruoyi.etl.controller; + +import java.util.List; +import java.util.Objects; + +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.etl.domain.resp.DataDictResp; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.etl.domain.DataDictType; +import com.ruoyi.etl.domain.req.DataDictTypeSaveReq; +import com.ruoyi.etl.domain.req.DataDictTypeEditReq; +import com.ruoyi.etl.service.DataDictTypeService; + +/** + * 字典类型Controller + * + * @author gtl + * @date 2024-04-23 + */ +@Api(tags = "字典类型") +@RestController +@RequestMapping("/dictType") +public class DataDictTypeController extends BaseController { + @Autowired + private DataDictTypeService dataDictTypeService; + + /** + * 查询字典类型列表 + */ + @ApiOperation("获取字典类型列表") + @RequiresPermissions("etl:dictType:list") + @GetMapping({"/list/{dataSourceId}","/list"}) + public Result> list(@PathVariable(required = false) Long dataSourceId) { + DataDictType dataDictType = new DataDictType(); + if(Objects.nonNull(dataSourceId)){ + dataDictType.setDataSourceId(dataSourceId); + } + return Result.success(dataDictTypeService.list(dataDictType)); + } + + /** + * 获取字典类型详细信息 + */ + @ApiOperation("获取字典类型详细信息") + @RequiresPermissions("etl:dictType:query") + @GetMapping(value = "/{id}") + @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class) + public Result getInfo(@PathVariable("id") Long id) { + return Result.success(dataDictTypeService.getById(id)); + } + + /** + * 新增字典类型 + */ + @RequiresPermissions("etl:dictType:add") + @Log(title = "字典类型", businessType = BusinessType.INSERT) + @PostMapping + @ApiOperation("新增字典类型") + public Result add(@RequestBody DataDictTypeSaveReq dataDictTypeSaveReq) { + return toAjax(dataDictTypeService.save(DataDictType.saveBuild(dataDictTypeSaveReq, SecurityUtils::getUsername))); + } + + /** + * 修改字典类型 + */ + @RequiresPermissions("etl:dictType:edit") + @Log(title = "字典类型", businessType = BusinessType.UPDATE) + @PutMapping("/{id}") + @ApiOperation("修改字典类型") + public Result edit(@PathVariable Long id, @RequestBody DataDictTypeEditReq dataDictTypeEditReq) { + return toAjax(dataDictTypeService.updateById(DataDictType.editBuild(id,dataDictTypeEditReq, SecurityUtils::getUsername))); + } + + /** + * 删除字典类型 + */ + @RequiresPermissions("etl:dictType:remove") + @Log(title = "字典类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + @ApiOperation("删除字典类型") + @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4") + public Result remove(@PathVariable List ids) { + return toAjax(dataDictTypeService.removeBatchByIds(ids)); + } +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/mapper/DataDictDataMapper.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/mapper/DataDictDataMapper.java new file mode 100644 index 0000000..f84d3fb --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/mapper/DataDictDataMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.etl.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.etl.domain.DataDictData; + +/** + * 字典数据Mapper接口 + * + * @author gtl + * @date 2024-04-23 + */ +public interface DataDictDataMapper extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/mapper/DataDictTypeMapper.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/mapper/DataDictTypeMapper.java new file mode 100644 index 0000000..982a2af --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/mapper/DataDictTypeMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.etl.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.etl.domain.DataDictType; + +/** + * 字典类型Mapper接口 + * + * @author gtl + * @date 2024-04-23 + */ +public interface DataDictTypeMapper extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/DataDictDataService.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/DataDictDataService.java new file mode 100644 index 0000000..176e6c7 --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/DataDictDataService.java @@ -0,0 +1,22 @@ +package com.ruoyi.etl.service; + +import java.util.List; +import com.ruoyi.etl.domain.DataDictData; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 字典数据Service接口 + * + * @author gtl + * @date 2024-04-23 + */ +public interface DataDictDataService extends IService { + /** + * 查询字典数据列表 + * + * @param dataDictData 字典数据 + * @return 字典数据集合 + */ + public List list(DataDictData dataDictData); + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/DataDictTypeService.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/DataDictTypeService.java new file mode 100644 index 0000000..9878c22 --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/DataDictTypeService.java @@ -0,0 +1,23 @@ +package com.ruoyi.etl.service; + +import java.util.List; +import com.ruoyi.etl.domain.DataDictType; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.etl.domain.resp.DataDictResp; + +/** + * 字典类型Service接口 + * + * @author gtl + * @date 2024-04-23 + */ +public interface DataDictTypeService extends IService { + /** + * 查询字典类型列表 + * + * @param dataDictType 字典类型 + * @return 字典类型集合 + */ + List list(DataDictType dataDictType); + +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/AssetStructureServiceImpl.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/AssetStructureServiceImpl.java index 4f37c69..6e72751 100644 --- a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/AssetStructureServiceImpl.java +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/AssetStructureServiceImpl.java @@ -1,12 +1,14 @@ package com.ruoyi.etl.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.etl.domain.ColumnInfo; import com.ruoyi.etl.domain.DataSource; import com.ruoyi.etl.domain.DatabaseType; import com.ruoyi.etl.domain.TableInfo; +import com.ruoyi.etl.domain.req.ColumnInfoReq; import com.ruoyi.etl.domain.resp.AssetStructureResp; import com.ruoyi.etl.service.*; import org.springframework.beans.factory.annotation.Autowired; @@ -66,4 +68,18 @@ public class AssetStructureServiceImpl implements AssetStructureService { }).toList(); } + @Override + public void columnInfoEdit(ColumnInfoReq columnInfoReq) { + columnInfoService.update(new LambdaUpdateWrapper() + .set(ColumnInfo::getIsDict,columnInfoReq.getIsDict()) + .set(ColumnInfo::getDataDictType,columnInfoReq.getDataDictType()) + .eq(ColumnInfo::getId,columnInfoReq.getId())); + } + + @Override + public AssetStructureResp getTableData(Long tableInfoId) { + return tableInfoService.getById(tableInfoId).toAssetStructureResp(columnInfoService.list(new LambdaQueryWrapper() + .eq(ColumnInfo::getTableId, tableInfoId))); + } + } diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/DataDictDataServiceImpl.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/DataDictDataServiceImpl.java new file mode 100644 index 0000000..0702bce --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/DataDictDataServiceImpl.java @@ -0,0 +1,53 @@ +package com.ruoyi.etl.service.impl; + +import java.util.List; + +import com.ruoyi.common.core.utils.ObjUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.ruoyi.etl.mapper.DataDictDataMapper; +import com.ruoyi.etl.domain.DataDictData; +import com.ruoyi.etl.service.DataDictDataService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +/** + * 字典数据Service业务层处理 + * + * @author gtl + * @date 2024-04-23 + */ +@Slf4j +@Service +public class DataDictDataServiceImpl extends ServiceImpl implements DataDictDataService { + + /** + * 查询字典数据列表 + * + * @param dataDictData 字典数据 + * @return 字典数据 + */ + @Override + public List list(DataDictData dataDictData) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + + if (ObjUtils.notNull(dataDictData.getDictLabel())){ + queryWrapper.eq(DataDictData::getDictLabel, dataDictData.getDictLabel()); + } + + if (ObjUtils.notNull(dataDictData.getDictValue())){ + queryWrapper.eq(DataDictData::getDictValue, dataDictData.getDictValue()); + } + + if (ObjUtils.notNull(dataDictData.getDictTypeId())){ + queryWrapper.eq(DataDictData::getDictTypeId, dataDictData.getDictTypeId()); + } + + + + + + return list(queryWrapper); + } +} diff --git a/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/DataDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/DataDictTypeServiceImpl.java new file mode 100644 index 0000000..2ef111c --- /dev/null +++ b/ruoyi-modules/ruoyi-etl/ruoyi-etl-server/src/main/java/com/ruoyi/etl/service/impl/DataDictTypeServiceImpl.java @@ -0,0 +1,51 @@ +package com.ruoyi.etl.service.impl; + +import java.util.List; +import com.ruoyi.common.core.utils.ObjUtils; +import com.ruoyi.etl.domain.DataDictData; +import com.ruoyi.etl.domain.resp.DataDictResp; +import com.ruoyi.etl.service.DataDictDataService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.etl.mapper.DataDictTypeMapper; +import com.ruoyi.etl.domain.DataDictType; +import com.ruoyi.etl.service.DataDictTypeService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; + +/** + * 字典类型Service业务层处理 + * + * @author gtl + * @date 2024-04-23 + */ +@Slf4j +@Service +public class DataDictTypeServiceImpl extends ServiceImpl implements DataDictTypeService { + + @Autowired + private DataDictDataService dataDictDataService; + + /** + * 查询字典类型列表 + * + * @param dataDictType 字典类型 + * @return 字典类型 + */ + @Override + public List list(DataDictType dataDictType) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + if (ObjUtils.notNull(dataDictType.getDataSourceId())){ + queryWrapper.eq(DataDictType::getDataSourceId, dataDictType.getDataSourceId()); + } + + return list(queryWrapper).stream().map(dataDict -> { + List list = dataDictDataService.list(new LambdaQueryWrapper() + .eq(DataDictData::getDictTypeId, dataDict.getId())); + return dataDict.toDataDictResp(list); + }).toList(); + } + +}