diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/Dictionary.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/Dictionary.java index 07d919b..93e23d3 100644 --- a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/Dictionary.java +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/Dictionary.java @@ -1,6 +1,8 @@ package com.etl.data.domain; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; @@ -11,9 +13,10 @@ import lombok.experimental.SuperBuilder; import java.util.List; /** - * 字典表 - * @author YunFei.Du - * @date 21:27 2024/4/25 + * 字典表 + * + * @author YunFei.Du + * @date 21:27 2024/4/25 */ @Data @AllArgsConstructor @@ -25,6 +28,7 @@ public class Dictionary { /** * 主键 */ + @TableId(value = "id", type = IdType.INPUT) private Long id; /** * 数据源id @@ -36,7 +40,10 @@ public class Dictionary { */ private String dictionaryName; - @TableField(select = false) - private List< DictionaryInfo > dictionaryList; + /** + * 字典值 + */ + private String dictionaryValue; + } diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/DictionaryInfo.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/DictionaryInfo.java index 36d1305..e341356 100644 --- a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/DictionaryInfo.java +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/DictionaryInfo.java @@ -1,5 +1,7 @@ package com.etl.data.domain; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; @@ -22,6 +24,7 @@ public class DictionaryInfo { /** * 主键 */ + @TableId(value = "id",type = IdType.INPUT) private Long id; /** * 字典表id @@ -39,6 +42,6 @@ public class DictionaryInfo { /** * 是否编辑 (默认 0 不编辑) */ - private Integer isEdit; +// private Integer isEdit; } diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/model/DictionaryModel.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/model/DictionaryModel.java index e940e83..25dceb4 100644 --- a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/model/DictionaryModel.java +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/domain/model/DictionaryModel.java @@ -1,7 +1,9 @@ package com.etl.data.domain.model; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.etl.data.domain.Dictionary; +import com.etl.data.domain.DictionaryInfo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -35,7 +37,24 @@ public class DictionaryModel { */ private String dictionaryName; - private List< Dictionary > dictionaries; + /** + * 字典值 + */ + private String dictionaryValue; + private String dictionaryNameAndValue; + private List< DictionaryInfo > dictionaryList; + + + public static DictionaryModel dictionaryInfoBuild(Dictionary dictionary, List< DictionaryInfo > dictionaryInfos) { + return DictionaryModel.builder ( ) + .id ( dictionary.getId ( ) ) + .dataSourceId ( dictionary.getDataSourceId ()) + .dictionaryName ( dictionary.getDictionaryName ()) + .dictionaryValue ( dictionary.getDictionaryValue ()) + .dictionaryNameAndValue (dictionary.getDictionaryName ()+'('+dictionary.getDictionaryValue ()+')') + .dictionaryList (dictionaryInfos ) + .build ( ); + } } diff --git a/etl-modules/etl-data-source/etl-data-source-server/pom.xml b/etl-modules/etl-data-source/etl-data-source-server/pom.xml index 186eaf7..0e1e747 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/pom.xml +++ b/etl-modules/etl-data-source/etl-data-source-server/pom.xml @@ -92,6 +92,13 @@ etl-data-source-remote + + + org.postgresql + postgresql + 42.5.0 + + diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/controller/DataSourceController.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/controller/DataSourceController.java index a663a8f..5f898c4 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/controller/DataSourceController.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/controller/DataSourceController.java @@ -55,7 +55,7 @@ public class DataSourceController extends BaseController { return success(); } @PostMapping("/testConnect") - public Result testConnect(@RequestBody DataSourceResp dataSourceResp){ + public Boolean testConnect(@RequestBody DataSourceResp dataSourceResp){ return dataSourceService.testConnect(dataSourceResp); } diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/controller/DictionaryController.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/controller/DictionaryController.java index 7df6e5f..2b7f3c8 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/controller/DictionaryController.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/controller/DictionaryController.java @@ -2,13 +2,11 @@ package com.etl.data.controller; import com.etl.common.core.domain.Result; import com.etl.data.domain.Dictionary; +import com.etl.data.domain.DictionaryInfo; import com.etl.data.mapper.DictionaryMapper; import com.etl.data.service.DictionaryService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -29,7 +27,28 @@ public class DictionaryController { * @return */ @GetMapping("/getDictionaryByDataSourceId") - public Result< List< Dictionary > > getDictionaryByDataSourceId(@RequestParam Integer dataSourceId){ + public Result getDictionaryByDataSourceId(@RequestParam Integer dataSourceId){ return dictionaryService.getDictionaryByDataSourceId(dataSourceId); } + + + /** + * 新增字典表 + */ + @PostMapping("insertDictionary") + public Result insertDictionary(@RequestBody Dictionary dictionary){ + return dictionaryService.insertDictionary(dictionary); + } + + /** + * 新增字典选项 + */ + @PostMapping("insertDictionarySelect") + public Result insertDictionarySelect(@RequestBody DictionaryInfo dictionaryInfo){ + return dictionaryService.insertDictionarySelect(dictionaryInfo); + } + + + + } diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/DataSourceService.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/DataSourceService.java index 60c02ab..4c3f074 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/DataSourceService.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/DataSourceService.java @@ -19,7 +19,7 @@ import java.util.List; public interface DataSourceService extends IService { List list(DataSourceQueryReq dataSourceQueryReq); - Result testConnect(DataSourceResp dataSourceResp); + Boolean testConnect(DataSourceResp dataSourceResp); Result queryTableStructure(TableStructureQueryReq tableStructureQueryReq); diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/DictionaryService.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/DictionaryService.java index b88c968..b83b713 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/DictionaryService.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/DictionaryService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.etl.common.core.domain.Result; import com.etl.data.domain.DataType; import com.etl.data.domain.Dictionary; +import com.etl.data.domain.DictionaryInfo; import java.util.List; @@ -14,5 +15,14 @@ import java.util.List; * @Date 2024/4/20 11:48 */ public interface DictionaryService extends IService< Dictionary > { - Result< List< Dictionary > > getDictionaryByDataSourceId(Integer dataSourceId); + Result getDictionaryByDataSourceId(Integer dataSourceId); + /** + * 新增字典表 + */ + Result insertDictionary(Dictionary dictionary); + + /** + * 新增字典选项 + */ + Result insertDictionarySelect(DictionaryInfo dictionaryInfo); } diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/impl/DataSourceServiceImpl.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/impl/DataSourceServiceImpl.java index 06b1ff8..b0fbcda 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/impl/DataSourceServiceImpl.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/service/impl/DataSourceServiceImpl.java @@ -84,10 +84,8 @@ public class DataSourceServiceImpl extends ServiceImpl dataTableLambdaQueryWrapper1 = new LambdaQueryWrapper<> ( ); + dataTableLambdaQueryWrapper1.eq ( DataTable::getDataSourceId,dataSourceResp.getId () ); + List< DataTable > list = dataTableService.list ( dataTableLambdaQueryWrapper1 ); + list.stream ().map ( DataTable::getId ).toList (); + + if (list != null &&list.size ()!=0) { + LambdaQueryWrapper< AssetsModel > assetsModelLambdaQueryWrapper = new LambdaQueryWrapper<> ( ); + assetsModelLambdaQueryWrapper.in ( AssetsModel::getDataTableId, list ); + + } + //获取所有表,根据数据源id' LambdaQueryWrapper dataTableLambdaQueryWrapper = new LambdaQueryWrapper<>(); dataTableLambdaQueryWrapper.eq(DataTable::getDataSourceId,dataSourceResp.getId()); @@ -297,7 +316,6 @@ public class DataSourceServiceImpl extends ServiceImpl > getDictionaryByDataSourceId(Integer dataSourceId) { + public Result> getDictionaryByDataSourceId(Integer dataSourceId) { - List< Dictionary > dictionaryList = dictionaryMapper.selectList ( new LambdaQueryWrapper< Dictionary > ( ).eq ( Dictionary::getDataSourceId, dataSourceId ) ); - if (!dictionaryList.isEmpty ()){ - List< DictionaryInfo > dictionaryInfos = dictionaryInfoMapper.selectList ( new LambdaQueryWrapper< DictionaryInfo > ( ).in ( DictionaryInfo::getDictionaryId, dictionaryList.stream ().map ( Dictionary::getId ).collect ( Collectors.toList () ) ) ); - dictionaryList.stream () - .forEach ( dictionary -> { - List< DictionaryInfo > list = dictionaryInfos.stream ( ).filter ( dictionaryInfo -> dictionaryInfo.getDictionaryId ( ) == dictionary.getId ( ) ).toList ( ); - dictionary.setDictionaryList ( list ); + List< DictionaryModel > dictionaryModels = new ArrayList<> ( ); - }); + List< Dictionary > dictionaryList = this.list ( new LambdaQueryWrapper< Dictionary > ( ).eq ( Dictionary::getDataSourceId, dataSourceId ) ); + + for (Dictionary dictionary : dictionaryList) { + List< DictionaryInfo > dictionaryInfoList = dictionaryInfoService.list ( new LambdaQueryWrapper< DictionaryInfo > ( ).eq ( + DictionaryInfo::getDictionaryId, dictionary.getId ( ) )); + + dictionaryModels.add ( DictionaryModel.dictionaryInfoBuild (dictionary, dictionaryInfoList )); } - return Result.success (dictionaryList ); + + return Result.success (dictionaryModels); + } + + @Override + public Result insertDictionary(Dictionary dictionary) { + + boolean save = this.save ( dictionary ); + if (!save) { + return Result.error ( "添加失败" ); + } + return Result.success ( "添加成功" ); + } + + @Override + public Result insertDictionarySelect(DictionaryInfo dictionaryInfo) { + String returnString = ""; + boolean save; + if (dictionaryInfo.getId ( ) == null) { + save = dictionaryInfoService.save ( dictionaryInfo ); + returnString = save ? "添加字典标签成功" : "添加字典标签失败"; + } else { + save = dictionaryInfoService.updateById ( dictionaryInfo ); + returnString = save ? "修改字典标签成功" : "修改字典标签失败"; + } + if (save) { + return Result.success ( null, returnString ); + } + return Result.error ( returnString ); } }