From 8fcbd510f76d231d3a328f4beb11a97ab6c893ad Mon Sep 17 00:00:00 2001 From: chao <3072464591@QQ.com> Date: Sun, 28 Apr 2024 08:38:31 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E8=B5=84=E4=BA=A7=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9A=84=E6=95=B0=E6=8D=AE=E5=AD=97=E5=85=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dictionary/domain/DataDictionary.java | 51 +++++++++++++++++ .../dictionary/domain/DataDictionaryType.java | 50 +++++++++++++++++ .../domain/resp/DataDictionaryResp.java | 55 +++++++++++++++++++ .../controller/DataDictionaryController.java | 50 +++++++++++++++++ .../DataDictionaryTypeController.java | 49 +++++++++++++++++ .../mapper/DataDictionaryMapper.java | 14 +++++ .../mapper/DataDictionaryTypeMapper.java | 14 +++++ .../service/IDataDictionaryService.java | 24 ++++++++ .../service/IDataDictionaryTypeService.java | 14 +++++ .../impl/DataDictionaryTypeServiceImpl.java | 18 ++++++ .../impl/IDataDictionaryServiceImpl.java | 54 ++++++++++++++++++ 11 files changed, 393 insertions(+) create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/DataDictionary.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/DataDictionaryType.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/resp/DataDictionaryResp.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/controller/DataDictionaryController.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/controller/DataDictionaryTypeController.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/mapper/DataDictionaryMapper.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/mapper/DataDictionaryTypeMapper.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/IDataDictionaryService.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/IDataDictionaryTypeService.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/impl/DataDictionaryTypeServiceImpl.java create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/impl/IDataDictionaryServiceImpl.java diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/DataDictionary.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/DataDictionary.java new file mode 100644 index 0000000..6e907e8 --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/DataDictionary.java @@ -0,0 +1,51 @@ +package com.etl.data.dictionary.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.etl.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 数据字典 + * @author Chao + * @ClassName: Dictionary + * @CreateTime: 2024/4/27 上午9:07 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +@TableName("data_dictionary") +public class DataDictionary extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.INPUT) + private Long id; + + /** + * + * 资产结构id + */ + private Long assetStructureId; + + /** + * + * 字典名 + */ + private String name; + + /** + * + * 字典类型 + */ + private String type; +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/DataDictionaryType.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/DataDictionaryType.java new file mode 100644 index 0000000..e7768c5 --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/DataDictionaryType.java @@ -0,0 +1,50 @@ +package com.etl.data.dictionary.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.etl.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 数据字典类型 + * + * @author Chao + * @ClassName: DataDictionaryType 数据字典类型 + * @CreateTime: 2024/4/27 上午9:55 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +@TableName("data_dictionary_type") +public class DataDictionaryType extends BaseEntity { + + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 字典id + */ + private Long dataDictionaryId; + + /** + * 类型 + */ + private String label; + + /** + * 类型编码 + */ + private String value; + +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/resp/DataDictionaryResp.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/resp/DataDictionaryResp.java new file mode 100644 index 0000000..06aa85a --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/dictionary/domain/resp/DataDictionaryResp.java @@ -0,0 +1,55 @@ +package com.etl.data.dictionary.domain.resp; + +import com.etl.data.dictionary.domain.DataDictionary; +import com.etl.data.dictionary.domain.DataDictionaryType; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * 字典数据返回类 + * + * @author Chao + * @ClassName: DataDicitonaryResp 字典数据返回类 + * @CreateTime: 2024/4/27 下午7:00 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +public class DataDictionaryResp { + private Long id; + + /** + * 资产结构id + */ + private Long assetStructureId; + + /** + * 字典名 + */ + private String name; + + /** + * 字典类型 + */ + private String type; + + /** + * 字典类型 + */ + private List dataDictionaryTypeList; + + public static DataDictionaryResp dataDictionaryBuilder(DataDictionary dataDictionary, List dataDictionaryTypes) { + return DataDictionaryResp.builder() + .id(dataDictionary.getId()) + .assetStructureId(dataDictionary.getAssetStructureId()) + .name(dataDictionary.getName()) + .type(dataDictionary.getType()) + .dataDictionaryTypeList(dataDictionaryTypes) + .build(); + } +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/controller/DataDictionaryController.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/controller/DataDictionaryController.java new file mode 100644 index 0000000..9843199 --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/controller/DataDictionaryController.java @@ -0,0 +1,50 @@ +package com.etl.data.dictionary.controller; + +import com.etl.common.core.domain.Result; +import com.etl.common.log.annotation.Log; +import com.etl.common.log.enums.BusinessType; +import com.etl.common.security.annotation.RequiresPermissions; +import com.etl.data.dictionary.domain.DataDictionary; +import com.etl.data.dictionary.domain.resp.DataDictionaryResp; +import com.etl.data.dictionary.service.IDataDictionaryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 数据字典Controller层 + * + * @author Chao + * @ClassName: DataDictionaryController 数据字典Controller层 + * @CreateTime: 2024/4/27 上午9:13 + */ +@RestController +@RequestMapping("/dictionary") +public class DataDictionaryController { + + @Autowired + private IDataDictionaryService dataDictionaryService; + + /** + * 获取数据字典列表 + * + * @return 数据字典集合 + */ + @GetMapping("dictionaryList/{assetStructureId}") + public Result> list(@PathVariable("assetStructureId") Long assetStructureId) { + return Result.success(dataDictionaryService.dictionaryList(assetStructureId)); + } + + /** + * 新增字典 + */ + @RequiresPermissions("data:dictionary:save") + @Log(title = "新增字典", businessType = BusinessType.INSERT) + @PostMapping("dictionarySave") + public Result save(@RequestBody DataDictionary dataDictionary) { + dataDictionaryService.save(dataDictionary); + return Result.success(); + } + +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/controller/DataDictionaryTypeController.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/controller/DataDictionaryTypeController.java new file mode 100644 index 0000000..77f0556 --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/controller/DataDictionaryTypeController.java @@ -0,0 +1,49 @@ +package com.etl.data.dictionary.controller; + +import com.etl.common.core.domain.Result; +import com.etl.common.log.annotation.Log; +import com.etl.common.log.enums.BusinessType; +import com.etl.common.security.annotation.RequiresPermissions; +import com.etl.data.dictionary.domain.DataDictionaryType; +import com.etl.data.dictionary.service.IDataDictionaryTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * 数据字典类型Controller + * + * @author Chao + * @ClassName: DataDictionaryTypeController 数据字典类型Controller + * @CreateTime: 2024/4/27 上午9:55 + */ +@RestController +@RequestMapping("/dictionaryType") +public class DataDictionaryTypeController { + + @Autowired + private IDataDictionaryTypeService dataDictionaryTypeService; + + + /** + * 新增字典类型 + */ + @RequiresPermissions("data:dictionaryType:save") + @Log(title = "数据源信息", businessType = BusinessType.INSERT) + @PostMapping() + public Result save(@RequestBody DataDictionaryType dataDictionaryType) { + dataDictionaryTypeService.save(dataDictionaryType); + return Result.success(); + } + + /** + * 修改数据源信息 + */ + @RequiresPermissions("data:dictionary:edit") + @Log(title = "数据源信息", businessType = BusinessType.UPDATE) + @PutMapping + public Result edit(@RequestBody DataDictionaryType dataDictionary) { + return Result.success(dataDictionaryTypeService.updateById(dataDictionary)); + } + + +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/mapper/DataDictionaryMapper.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/mapper/DataDictionaryMapper.java new file mode 100644 index 0000000..bba4489 --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/mapper/DataDictionaryMapper.java @@ -0,0 +1,14 @@ +package com.etl.data.dictionary.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.etl.data.dictionary.domain.DataDictionary; + +/** + * 数据字典mapper接口 + * + * @author Chao + * @ClassName: DataDictionaryMapper 数据字典mapper接口 + * @CreateTime: 2024/4/27 上午9:35 + */ +public interface DataDictionaryMapper extends BaseMapper { +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/mapper/DataDictionaryTypeMapper.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/mapper/DataDictionaryTypeMapper.java new file mode 100644 index 0000000..dea2205 --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/mapper/DataDictionaryTypeMapper.java @@ -0,0 +1,14 @@ +package com.etl.data.dictionary.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.etl.data.dictionary.domain.DataDictionaryType; + +/** + * 字典类型mapper接口 + * + * @author Chao + * @ClassName: DataDictionaryTypeMapper 字典类型mapper接口 + * @CreateTime: 2024/4/27 下午3:29 + */ +public interface DataDictionaryTypeMapper extends BaseMapper { +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/IDataDictionaryService.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/IDataDictionaryService.java new file mode 100644 index 0000000..b554474 --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/IDataDictionaryService.java @@ -0,0 +1,24 @@ +package com.etl.data.dictionary.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.etl.data.dictionary.domain.DataDictionary; +import com.etl.data.dictionary.domain.resp.DataDictionaryResp; + +import java.util.List; + +/** + * 数据字典Service接口 + * + * @author Chao + * @ClassName: IDataDictionaryService 数据字典Service接口 + * @CreateTime: 2024/4/27 上午9:28 + */ +public interface IDataDictionaryService extends IService { + + /** + * 查询该数据源下所有的字典表 + * @param assetStructureId 数据id + * @return + */ + List dictionaryList(Long assetStructureId); +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/IDataDictionaryTypeService.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/IDataDictionaryTypeService.java new file mode 100644 index 0000000..837cafc --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/IDataDictionaryTypeService.java @@ -0,0 +1,14 @@ +package com.etl.data.dictionary.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.etl.data.dictionary.domain.DataDictionaryType; + +/** + * 字典类型Service接口 + * + * @author Chao + * @ClassName: IDataDictionaryType 字典类型Service接口 + * @CreateTime: 2024/4/27 上午10:07 + */ +public interface IDataDictionaryTypeService extends IService { +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/impl/DataDictionaryTypeServiceImpl.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/impl/DataDictionaryTypeServiceImpl.java new file mode 100644 index 0000000..fb1d7d3 --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/impl/DataDictionaryTypeServiceImpl.java @@ -0,0 +1,18 @@ +package com.etl.data.dictionary.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.etl.data.dictionary.domain.DataDictionaryType; +import com.etl.data.dictionary.mapper.DataDictionaryTypeMapper; +import com.etl.data.dictionary.service.IDataDictionaryTypeService; +import org.springframework.stereotype.Service; + +/** + * 字典类型Service业务实现层 + * + * @author Chao + * @ClassName: DataDictionaryTypeServiceImpl 字典类型Service业务实现层 + * @CreateTime: 2024/4/27 下午3:27 + */ +@Service +public class DataDictionaryTypeServiceImpl extends ServiceImpl implements IDataDictionaryTypeService { +} diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/impl/IDataDictionaryServiceImpl.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/impl/IDataDictionaryServiceImpl.java new file mode 100644 index 0000000..48c0d6e --- /dev/null +++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/dictionary/service/impl/IDataDictionaryServiceImpl.java @@ -0,0 +1,54 @@ +package com.etl.data.dictionary.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.etl.data.dictionary.domain.DataDictionary; +import com.etl.data.dictionary.domain.DataDictionaryType; +import com.etl.data.dictionary.domain.resp.DataDictionaryResp; +import com.etl.data.dictionary.mapper.DataDictionaryMapper; +import com.etl.data.dictionary.service.IDataDictionaryService; +import com.etl.data.dictionary.service.IDataDictionaryTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 数据字典Service接口业务处理层 + * + * @author Chao + * @ClassName: IDataDictionaryServiceImpl 数据字典Service接口实现层 + * @CreateTime: 2024/4/27 上午9:28 + */ +@Service +public class IDataDictionaryServiceImpl extends ServiceImpl implements IDataDictionaryService { + + @Autowired + private IDataDictionaryTypeService dataDictionaryTypeService; + + /** + * 查询当前数据源下所有的字典表 + * + * @param assetStructureId 数据id + * @return + */ + @Override + public List dictionaryList(Long assetStructureId) { + List dataDictionaryList = this.list( + new LambdaQueryWrapper() + .eq(DataDictionary::getAssetStructureId, assetStructureId) + ); + List dataDictionaryTypeList = dataDictionaryTypeService.list(); + return dataDictionaryList.stream().map( + dataDictionary -> { + List dataDictionaryTypes = dataDictionaryTypeList.stream() + .filter( + dataDictionaryType -> dataDictionaryType.getDataDictionaryId().equals(dataDictionary.getId()) + ).collect(Collectors.toList()); + return DataDictionaryResp.dataDictionaryBuilder(dataDictionary, dataDictionaryTypes); + + } + ).collect(Collectors.toList()); + } +}