数据字典列表增加查询条件和标签内容区分

This commit is contained in:
xiejunyu
2022-04-18 09:18:52 +08:00
parent 37e56d7ebe
commit 808c3a4b44
2 changed files with 54 additions and 23 deletions
@@ -4,8 +4,9 @@ package com.jero.modules.enums;
public enum FixedFieldEnum { public enum FixedFieldEnum {
NON_FIXED_FIELD_ENUM("非固定字段","0"), NON_FIXED_FIELD_ENUM("非固定字段","0"),
FIXED_FIELD_ENUM("固定字段","1"), FIXED_FIELD_ENUM("固定字段","1"),
CONFIGURABLE_FIELD("字段固定,内部可配","2"); CONFIGURABLE_FIELD("字段固定,内部可配","2"),
SYS_DICT_SYSTEM("系统数据字典标志值","0"),
;
String name; String name;
String value; String value;
@@ -81,6 +81,7 @@ public class SysDictController {
Result<IPage<SysDict>> result = new Result<IPage<SysDict>>(); Result<IPage<SysDict>> result = new Result<IPage<SysDict>>();
QueryWrapper<SysDict> queryWrapper = QueryGenerator.initQueryWrapper(sysDict, req.getParameterMap()); QueryWrapper<SysDict> queryWrapper = QueryGenerator.initQueryWrapper(sysDict, req.getParameterMap());
queryWrapper.eq("del_flag",CommonConstant.DEL_FLAG_0); queryWrapper.eq("del_flag",CommonConstant.DEL_FLAG_0);
queryWrapper.eq("is_tag_dict",FixedFieldEnum.SYS_DICT_SYSTEM.getValue());
Page<SysDict> page = new Page<SysDict>(pageNo, pageSize); Page<SysDict> page = new Page<SysDict>(pageNo, pageSize);
IPage<SysDict> pageList = sysDictService.page(page, queryWrapper); IPage<SysDict> pageList = sysDictService.page(page, queryWrapper);
log.debug("查询当前页:"+pageList.getCurrent()); log.debug("查询当前页:"+pageList.getCurrent());
@@ -384,21 +385,25 @@ public class SysDictController {
@RequiresPermissions("dict:add") @RequiresPermissions("dict:add")
public Result<SysDict> add(@RequestBody SysDict sysDict) { public Result<SysDict> add(@RequestBody SysDict sysDict) {
Result<SysDict> result = new Result<SysDict>(); Result<SysDict> result = new Result<SysDict>();
//校验--不能重复数据
QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>();
//查询同一模块下,同名数据
queryWrapper.eq("dict_name",sysDict.getDictName());
List<SysDict> existDictList = this.sysDictService.list(queryWrapper);
try { try {
Integer count = sysDictService.queryExitData(sysDict); if(!existDictList.isEmpty()) {
Integer countDictName=sysDictService.queryExitDictName(sysDict); SysDict sysDictDB = existDictList.get(0);
System.out.println("count="+count); //存在重复同名标签内容,且已删,恢复
if (countDictName > 0) { if (sysDictDB.getDelFlag() == CommonConstant.DEL_FLAG_1) {
result.error500("标签名称不能重复"); sysDictService.updateDictDelFlag(CommonConstant.DEL_FLAG_0, sysDictDB.getId());
}else{ }else{//存在重复同名标签内容,未删
//判断逻辑删除 result.error500("标签名称不能重复");
if (count > 0) { }
sysDict.setDelFlag(CommonConstant.DEL_FLAG_0); } else {//不是同名
} else { if(ObjectUtils.isNotEmpty(sysDict.getIsTagDict()) && sysDict.getIsTagDict() == 1){
if(ObjectUtils.isNotEmpty(sysDict.getIsTagDict()) && sysDict.getIsTagDict() == 1){ String pinYin = HanYuPinYinUtil.changeToNumberPinYin(sysDict.getDictName());
String pinYin = HanYuPinYinUtil.changeToNumberPinYin(sysDict.getDictName()); sysDict.setDictCode(pinYin.replace(" ","_"));
sysDict.setDictCode(pinYin.replace(" ","_"));
}
sysDict.setCreateTime(new Date()); sysDict.setCreateTime(new Date());
sysDict.setDelFlag(CommonConstant.DEL_FLAG_0); sysDict.setDelFlag(CommonConstant.DEL_FLAG_0);
sysDictService.save(sysDict); sysDictService.save(sysDict);
@@ -432,13 +437,38 @@ public class SysDictController {
if (StringUtils.isNotBlank(String.valueOf(sysDict.getIsReadOnly()))) { if (StringUtils.isNotBlank(String.valueOf(sysDict.getIsReadOnly()))) {
if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(String.valueOf(sysDict.getIsReadOnly()))) { if (FixedFieldEnum.FIXED_FIELD_ENUM.getValue().equals(String.valueOf(sysDict.getIsReadOnly()))) {
result.error500("固定字段,不可修改"); result.error500("固定字段,不可修改");
}else{ } else {
sysDict.setUpdateTime(new Date()); //校验--不能重复数据
boolean ok = sysDictService.updateById(sysDict); QueryWrapper<SysDict> queryWrapper = new QueryWrapper<>();
if (ok) { //查询同一模块下,同名数据
result.success("编辑成功!"); queryWrapper.eq("dict_name", sysDict.getDictName());
//编辑成功后需要刷新缓存 List<SysDict> existDictList = this.sysDictService.list(queryWrapper);
sysDictService.refreshCache(); if (!existDictList.isEmpty()) {
if (existDictList.get(0).getId().equals(sysDict.getId())) {//已存在同名的数据,就是正在编辑的这个
sysDict.setUpdateTime(new Date());
boolean ok = sysDictService.updateById(sysDict);
if (ok) {
result.success("编辑成功!");
//编辑成功后需要刷新缓存
sysDictService.refreshCache();
} else {//已存在同名的数据,不是正在编辑的这个
SysDict sysDictDB = existDictList.get(0);
//存在重复同名标签内容,且已删,恢复
if (sysDictDB.getDelFlag() == CommonConstant.DEL_FLAG_1) {
sysDictService.updateDictDelFlag(CommonConstant.DEL_FLAG_0, sysDictDB.getId());
} else {//存在重复同名标签内容,未删
result.error500("标签名称不能重复");
}
}
} else {//不是同名
sysDict.setUpdateTime(new Date());
boolean ok = sysDictService.updateById(sysDict);
if (ok) {
result.success("编辑成功!");
//编辑成功后需要刷新缓存
sysDictService.refreshCache();
}
}
} }
} }
} }