feat(): 资产结构数据的数据字典

dev
chao 2024-04-28 08:38:31 +08:00
parent c66661c52c
commit 8fcbd510f7
11 changed files with 393 additions and 0 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<DataDictionaryType> dataDictionaryTypeList;
public static DataDictionaryResp dataDictionaryBuilder(DataDictionary dataDictionary, List<DataDictionaryType> dataDictionaryTypes) {
return DataDictionaryResp.builder()
.id(dataDictionary.getId())
.assetStructureId(dataDictionary.getAssetStructureId())
.name(dataDictionary.getName())
.type(dataDictionary.getType())
.dataDictionaryTypeList(dataDictionaryTypes)
.build();
}
}

View File

@ -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<DataDictionaryResp>> 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();
}
}

View File

@ -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));
}
}

View File

@ -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<DataDictionary> {
}

View File

@ -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<DataDictionaryType> {
}

View File

@ -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<DataDictionary> {
/**
*
* @param assetStructureId id
* @return
*/
List<DataDictionaryResp> dictionaryList(Long assetStructureId);
}

View File

@ -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<DataDictionaryType> {
}

View File

@ -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<DataDictionaryTypeMapper, DataDictionaryType> implements IDataDictionaryTypeService {
}

View File

@ -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<DataDictionaryMapper, DataDictionary> implements IDataDictionaryService {
@Autowired
private IDataDictionaryTypeService dataDictionaryTypeService;
/**
*
*
* @param assetStructureId id
* @return
*/
@Override
public List<DataDictionaryResp> dictionaryList(Long assetStructureId) {
List<DataDictionary> dataDictionaryList = this.list(
new LambdaQueryWrapper<DataDictionary>()
.eq(DataDictionary::getAssetStructureId, assetStructureId)
);
List<DataDictionaryType> dataDictionaryTypeList = dataDictionaryTypeService.list();
return dataDictionaryList.stream().map(
dataDictionary -> {
List<DataDictionaryType> dataDictionaryTypes = dataDictionaryTypeList.stream()
.filter(
dataDictionaryType -> dataDictionaryType.getDataDictionaryId().equals(dataDictionary.getId())
).collect(Collectors.toList());
return DataDictionaryResp.dataDictionaryBuilder(dataDictionary, dataDictionaryTypes);
}
).collect(Collectors.toList());
}
}