添加字典关联相关功能
parent
6c34611600
commit
c2f14f42ff
@ -0,0 +1,71 @@
|
||||
package com.supervision.knowsub.controller.system;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.knowsub.model.SystemDic;
|
||||
import com.supervision.knowsub.model.SystemDicData;
|
||||
import com.supervision.knowsub.service.DicManageService;
|
||||
import com.supervision.knowsub.vo.dic.DicDataReqVo;
|
||||
import com.supervision.knowsub.vo.dic.DicReqVo;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Tag(name = "字典管理")
|
||||
@RestController
|
||||
@RequestMapping("/dicManage")
|
||||
@RequiredArgsConstructor
|
||||
public class DicManageController {
|
||||
|
||||
|
||||
private final DicManageService dicManageService;
|
||||
|
||||
@Operation(summary = "增加字典信息")
|
||||
@PostMapping("/saveDic")
|
||||
public String saveDic(@RequestBody DicReqVo dicReqVo) {
|
||||
|
||||
return dicManageService.saveDic(dicReqVo);
|
||||
}
|
||||
|
||||
@Operation(summary = "修改字典信息")
|
||||
@PostMapping("/updateDic")
|
||||
public void updateDic(@RequestBody DicReqVo dicReqVo) {
|
||||
|
||||
dicManageService.updateDic(dicReqVo);
|
||||
}
|
||||
|
||||
@Operation(summary = "删除字典信息")
|
||||
@DeleteMapping("/delete")
|
||||
public Boolean deleteDic(@Parameter(name = "id") @RequestParam(name="id") String id) {
|
||||
|
||||
return dicManageService.deleteDic(id);
|
||||
}
|
||||
|
||||
@Operation(summary = "分页查询字典信息列表")
|
||||
@GetMapping("/list")
|
||||
public IPage<SystemDic> listDic(@Parameter(name = "dicName",description = "字典名称") @RequestParam(required = false) String dicName,
|
||||
@Parameter(name = "dicCode",description = "字典编码") @RequestParam(required = false) String dicCode,
|
||||
@Parameter(name = "pageNum",description = "页码") @RequestParam(defaultValue = "1") Integer pageNum,
|
||||
@Parameter(name = "pageSize",description = "每页大小") @RequestParam(defaultValue = "10") Integer pageSize) {
|
||||
|
||||
return dicManageService.listDic(dicName,dicCode,pageNum,pageSize);
|
||||
}
|
||||
|
||||
@Operation(summary = "保存字典值配置信息")
|
||||
@PostMapping("/saveDicData")
|
||||
public String saveDicData(@RequestParam(name = "dicId") String dicId, @RequestBody List<DicDataReqVo> dicDataReqVoList) {
|
||||
|
||||
return dicManageService.saveDicData(dicId,dicDataReqVoList);
|
||||
}
|
||||
|
||||
|
||||
@Operation(summary = "查询字典配置信息列表")
|
||||
@GetMapping("/queryDicDate")
|
||||
public List<SystemDicData> queryDicDate(@RequestParam(name = "dicId") String dicId) {
|
||||
|
||||
return dicManageService.queryDicDate(dicId);
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.supervision.knowsub.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.knowsub.model.SystemDic;
|
||||
import com.supervision.knowsub.model.SystemDicData;
|
||||
import com.supervision.knowsub.vo.dept.DeptInfoResVo;
|
||||
import com.supervision.knowsub.vo.dic.DicDataReqVo;
|
||||
import com.supervision.knowsub.vo.dic.DicReqVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface DicManageService {
|
||||
String saveDic(DicReqVo dicReqVo);
|
||||
|
||||
void updateDic(DicReqVo dicReqVo);
|
||||
|
||||
Boolean deleteDic(String id);
|
||||
|
||||
IPage<SystemDic> listDic(String dicName, String dicCode, Integer pageNum, Integer pageSize);
|
||||
|
||||
String saveDicData(String dicId, List<DicDataReqVo> dicDataReqVoList);
|
||||
|
||||
List<SystemDicData> queryDicDate(String dicId);
|
||||
}
|
@ -0,0 +1,122 @@
|
||||
package com.supervision.knowsub.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.ObjUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.supervision.knowsub.model.SystemDic;
|
||||
import com.supervision.knowsub.model.SystemDicData;
|
||||
import com.supervision.knowsub.service.DicManageService;
|
||||
import com.supervision.knowsub.service.SystemDicDataService;
|
||||
import com.supervision.knowsub.service.SystemDicService;
|
||||
import com.supervision.knowsub.vo.dic.DicDataReqVo;
|
||||
import com.supervision.knowsub.vo.dic.DicReqVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DicManageServiceImpl implements DicManageService {
|
||||
|
||||
private final SystemDicService systemDicService;
|
||||
|
||||
private final SystemDicDataService systemDicDataService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String saveDic(DicReqVo dicReqVo) {
|
||||
|
||||
Assert.notEmpty(dicReqVo.getDicName(), "字典名称不能为空");
|
||||
Assert.notEmpty(dicReqVo.getDicCode(), "字典编码不能为空");
|
||||
|
||||
Long count = systemDicService.lambdaQuery().eq(SystemDic::getDicCode, dicReqVo.getDicCode()).count();
|
||||
Assert.isTrue(count == 0, "字典编码已存在");
|
||||
|
||||
SystemDic systemDic = new SystemDic();
|
||||
systemDic.setDicName(dicReqVo.getDicName());
|
||||
systemDic.setDicCode(dicReqVo.getDicCode());
|
||||
systemDic.setRemark(dicReqVo.getRemark());
|
||||
systemDicService.save(systemDic);
|
||||
return systemDic.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateDic(DicReqVo dicReqVo) {
|
||||
Assert.notEmpty(dicReqVo.getId(), "字典id不能为空");
|
||||
Assert.notEmpty(dicReqVo.getDicName(), "字典名称不能为空");
|
||||
Assert.notEmpty(dicReqVo.getDicCode(), "字典编码不能为空");
|
||||
|
||||
|
||||
SystemDic dbDic = systemDicService.getById(dicReqVo.getId());
|
||||
Assert.notNull(dbDic, "字典不存在");
|
||||
if (!StrUtil.equals(dbDic.getDicCode(), dicReqVo.getDicCode())){
|
||||
// 判断字典编码是否重复
|
||||
Long count = systemDicService.lambdaQuery().eq(SystemDic::getDicCode, dicReqVo.getDicCode()).count();
|
||||
Assert.isTrue(count == 0, "字典编码已存在");
|
||||
}
|
||||
|
||||
// 更新数据
|
||||
systemDicService.lambdaUpdate().set(SystemDic::getDicName, dicReqVo.getDicName())
|
||||
.set(SystemDic::getDicCode, dicReqVo.getDicCode())
|
||||
.set(SystemDic::getRemark, dicReqVo.getRemark())
|
||||
.eq(SystemDic::getId, dicReqVo.getId()).update();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean deleteDic(String id) {
|
||||
|
||||
Assert.notEmpty(id, "字典id不能为空");
|
||||
|
||||
boolean success = systemDicService.removeById(id);
|
||||
if (success){
|
||||
systemDicDataService.lambdaUpdate().eq(SystemDicData::getDicId, id).remove();
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<SystemDic> listDic(String dicName, String dicCode, Integer pageNum, Integer pageSize) {
|
||||
|
||||
return systemDicService.lambdaQuery()
|
||||
.like(StrUtil.isNotEmpty(dicName), SystemDic::getDicName, dicName)
|
||||
.eq(StrUtil.isNotEmpty(dicCode), SystemDic::getDicCode, dicCode)
|
||||
.page(new Page<>(pageNum, pageSize));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String saveDicData(String dicId, List<DicDataReqVo> dicDataReqVoList) {
|
||||
|
||||
Assert.notEmpty(dicId, "字典id不能为空");
|
||||
|
||||
//清除原本的数据
|
||||
systemDicDataService.lambdaUpdate().eq(SystemDicData::getDicId, dicId).remove();
|
||||
|
||||
List<SystemDicData> list = dicDataReqVoList.stream().map(dicDataReqVo -> {
|
||||
SystemDicData systemDicData = new SystemDicData();
|
||||
systemDicData.setDicId(dicId);
|
||||
systemDicData.setDicLabel(dicDataReqVo.getDicLabel());
|
||||
systemDicData.setDicValue(dicDataReqVo.getDicValue());
|
||||
systemDicData.setDicSort(ObjUtil.isNull(dicDataReqVo.getDicSort()) ? 0 : dicDataReqVo.getDicSort());
|
||||
return systemDicData;
|
||||
}).toList();
|
||||
systemDicDataService.saveBatch(list);
|
||||
return dicId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SystemDicData> queryDicDate(String dicId) {
|
||||
|
||||
Assert.notEmpty(dicId, "字典id不能为空");
|
||||
|
||||
return systemDicDataService.lambdaQuery().eq(SystemDicData::getDicId, dicId).orderBy(true,true, SystemDicData::getDicSort).list();
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.supervision.knowsub.vo.dic;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DicDataReqVo {
|
||||
|
||||
@Schema(description = "字典标签")
|
||||
private String dicLabel;
|
||||
|
||||
@Schema(description = "字典值")
|
||||
private String dicValue;
|
||||
|
||||
@Schema(description = "排序")
|
||||
private Integer dicSort;
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.supervision.knowsub.vo.dic;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DicReqVo {
|
||||
|
||||
@Schema(description = "字典id")
|
||||
private String id;
|
||||
|
||||
@Schema(description = "字典编码")
|
||||
private String dicCode;
|
||||
|
||||
@Schema(description = "字典名称")
|
||||
private String dicName;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
}
|
Loading…
Reference in New Issue