文档库--树形数据字典

This commit is contained in:
zhn
2022-03-04 11:51:21 +08:00
parent b56ff37c2c
commit 3996804acf
8 changed files with 63 additions and 31 deletions
@@ -47,6 +47,7 @@ public class OnlCgformField implements Serializable {
private Integer orderNum;
private String updateBy;
private String showArea;
private String dictId;
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
@@ -75,6 +76,14 @@ public class OnlCgformField implements Serializable {
private String queryMustInput;
private String sortFlag;
public String getDictId() {
return dictId;
}
public void setDictId(String dictId) {
this.dictId = dictId;
}
public String getShowArea() {
return showArea;
}
@@ -48,7 +48,7 @@ import java.util.stream.Collectors;
public class SysCategoryController {
@Autowired
private ISysCategoryService sysCategoryService;
/**
* 分页列表查询
* @param sysCategory
@@ -67,7 +67,7 @@ public class SysCategoryController {
sysCategory.setPid("0");
}
Result<IPage<SysCategory>> result = new Result<IPage<SysCategory>>();
//--author:os_chengtgen---date:20190804 -----for: 分类字典页面显示错误,issues:377--------start
//QueryWrapper<SysCategory> queryWrapper = QueryGenerator.initQueryWrapper(sysCategory, req.getParameterMap());
QueryWrapper<SysCategory> queryWrapper = new QueryWrapper<SysCategory>();
@@ -126,7 +126,7 @@ public class SysCategoryController {
}
return result;
}
/**
* 编辑
* @param sysCategory
@@ -145,7 +145,7 @@ public class SysCategoryController {
}
return result;
}
/**
* 通过id删除
* @param id
@@ -162,10 +162,10 @@ public class SysCategoryController {
this.sysCategoryService.deleteSysCategory(id);
result.success("删除成功!");
}
return result;
}
/**
* 批量删除
* @param ids
@@ -183,7 +183,7 @@ public class SysCategoryController {
}
return result;
}
/**
* 通过id查询
* @param id
@@ -285,9 +285,9 @@ public class SysCategoryController {
}
return Result.error("文件导入失败!");
}
/**
* 加载单个数据 用于回显
*/
@@ -296,7 +296,7 @@ public class SysCategoryController {
public Result<SysCategory> loadOne(@RequestParam(name="field") String field,@RequestParam(name="val") String val) {
Result<SysCategory> result = new Result<SysCategory>();
try {
QueryWrapper<SysCategory> query = new QueryWrapper<SysCategory>();
query.eq(field, val);
List<SysCategory> ls = this.sysCategoryService.list(query);
@@ -317,7 +317,7 @@ public class SysCategoryController {
}
return result;
}
/**
* 加载节点的子数据
*/
@@ -336,7 +336,7 @@ public class SysCategoryController {
}
return result;
}
/**
* 加载一级节点/如果是同步 则所有数据
*/
@@ -358,7 +358,7 @@ public class SysCategoryController {
}
return result;
}
/**
* 递归求子节点 同步加载用到
*/
@@ -518,7 +518,7 @@ public class SysCategoryController {
@GetMapping("/getSysCategoryTree")
public Result getSysCategoryTree() {
return sysCategoryService.getSysCategoryTree();
return Result.OK(sysCategoryService.getSysCategoryTree());
}
}
@@ -17,6 +17,8 @@ public class SysCategoryTreeVO {
private String title;
private String dictId;
private List<SysCategoryTreeVO> children;
}
@@ -1,9 +1,9 @@
package com.jero.modules.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysCategoryTreeVO;
import com.jero.modules.system.model.TreeSelectModel;
import java.util.List;
@@ -21,16 +21,16 @@ public interface ISysCategoryService extends IService<SysCategory> {
public static final String ROOT_PID_VALUE = "0";
void addSysCategory(SysCategory sysCategory);
void updateSysCategory(SysCategory sysCategory);
/**
* 根据父级编码加载分类字典的数据
* @param pcode
* @return
*/
public List<TreeSelectModel> queryListByCode(String pcode) throws JeroBootException;
/**
* 根据pid查询子节点集合
* @param pid
@@ -70,5 +70,5 @@ public interface ISysCategoryService extends IService<SysCategory> {
* 获取树形结构
* @return
*/
Result getSysCategoryTree();
List<SysCategoryTreeVO> getSysCategoryTree();
}
@@ -62,7 +62,7 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
sysCategory.setPid(categoryPid);
baseMapper.insert(sysCategory);
}
@Override
public void updateSysCategory(SysCategory sysCategory) {
if(oConvertUtils.isEmpty(sysCategory.getPid())){
@@ -221,14 +221,14 @@ public class SysCategoryServiceImpl extends ServiceImpl<SysCategoryMapper, SysCa
}
@Override
public Result getSysCategoryTree() {
public List<SysCategoryTreeVO> getSysCategoryTree() {
try {
List<SysCategory> list = super.baseMapper.selectList(new QueryWrapper<>());
List<SysCategoryTreeVO> tree = new ArrayList<>();
if(CollectionUtils.isNotEmpty(list)){
tree = TreeUtils.getSysCategoryTree(list);
}
return Result.OK(tree);
return tree;
}catch (Exception ex){
log.error("查询树形结构失败: " + ex.getMessage());
throw new JeroBootException("查询树形结构失败!");
@@ -25,6 +25,7 @@ public class TreeUtils {
if (TREE_ROOT_CODE.equals(sysCategory.getPid())) {
SysCategoryTreeVO sysCategoryTreeVO = new SysCategoryTreeVO();
sysCategoryTreeVO.setId(sysCategory.getId());
sysCategoryTreeVO.setDictId(sysCategory.getSysDictId());
sysCategoryTreeVO.setTitle(sysCategory.getName());
sysCategoryTreeVO.setParentId(sysCategory.getPid());
sysCategoryTreeVO.setChildren(getSysCategoryTreeChild(sysCategory.getId(), sysCategoryList));
@@ -39,6 +40,7 @@ public class TreeUtils {
for (SysCategory sysCategory : sysCategoryList) {
if (id.equals(sysCategory.getPid())) {
SysCategoryTreeVO sysCategoryTreeVO = new SysCategoryTreeVO();
sysCategoryTreeVO.setDictId(sysCategory.getSysDictId());
sysCategoryTreeVO.setId(sysCategory.getId());
sysCategoryTreeVO.setTitle(sysCategory.getName());
sysCategoryTreeVO.setParentId(sysCategory.getPid());
@@ -12,6 +12,7 @@ public enum FieldTypeEnum {
// FILE("文件","file"),
// DATE("日期","date");
//属性类型 1输入框(字符串),2输入框(数字),3单选下拉框,4多选下拉框,5单日期选择,6多日期选择,7文件,8文本框,9人员选择,10标准选择
TREE("树形结构","0"),
TEXT_STRING("输入框(字符串)","1"),
TEXT_NUMBER("输入框(数字)","2"),
PULL_SINGLE("单选下拉框","3"),
@@ -29,13 +29,12 @@ import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import com.jero.modules.subscribe.service.IOnlCgformSubscribeService;
import com.jero.modules.system.entity.SysAnnouncement;
import com.jero.modules.system.entity.SysAnnouncementSend;
import com.jero.modules.system.entity.SysCategoryTreeVO;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.ISysAnnouncementSendService;
import com.jero.modules.system.service.ISysAnnouncementService;
import com.jero.modules.system.service.impl.SysBaseApiImpl;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import com.jero.modules.tag.entity.OnlCgformArea;
import com.jero.modules.tag.service.impl.OnlCgformAreaServiceImpl;
@@ -112,6 +111,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
private SysUserMapper sysUserMapper;
@Autowired
private DomainUserRelService domainUserRelService;
@Autowired
private SysCategoryServiceImpl sysCategoryService;
@Value(value = "${jero.path.upload}")
private String uploadpath;
@@ -258,6 +259,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<OnlCgformArea> areaList = onlCgformAreaServiceImpl.queryList(onlCgformArea);
//字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(flag);
//过滤出字段为树形结构的
List<OnlCgformField> onlCgformFieldTree = fieldList.stream().filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType())).collect(Collectors.toList());
if (fieldList.size() != 0) {
//过滤出表单字段(is_show_form-->表单是否显示0否 1是)
@@ -273,6 +276,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
}
//树形数据字典
List<SysCategoryTreeVO> sysCategoryTree = sysCategoryService.getSysCategoryTree();
List<Map<String, Object>> result = new ArrayList<>();
for (OnlCgformArea onlCgformAreaTemp : areaList) {
String areaName = "";
@@ -283,8 +288,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
List<OnlCgformField> fieldListTemp = fieldList.stream().filter(e -> onlCgformAreaTemp.getId().equals(e.getShowArea())).collect(Collectors.toList());
for (OnlCgformField onlCgformField : fieldListTemp) {
String dictId = onlCgformField.getDictId();
SysCategoryTreeVO sysCategoryTreeVO = new SysCategoryTreeVO();
if(StringUtils.isNotBlank(dictId)){
List<SysCategoryTreeVO> sysCategoryTreeVOList = sysCategoryTree.stream().filter(e -> dictId.equals(e.getDictId())).collect(Collectors.toList());
if(sysCategoryTreeVOList.size() != 0){
sysCategoryTreeVO = sysCategoryTreeVOList.get(0);
}
}
Map<String, Object> map = new HashMap<>();
mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName);
mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName,sysCategoryTreeVO);
map.put("field_must_input", onlCgformField.getFieldMustInput());//区域
result.add(map);
}
@@ -479,14 +492,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
for (OSSFile fileInfo : fileInfos) {
Map<String, Object> mapNew = new HashMap<>();
mapNew.put("value", fileInfo);
mapPut(cut, mapNew, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName);
mapPut(cut, mapNew, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName,null);
resultTemp.add(mapNew);
}
}
} else if (fileInfos.size() == 1) {
//单个文件处理
map.put("value", fileInfos.get(0));
mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName);
mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName,null);
resultTemp.add(map);
}
}
@@ -513,7 +526,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
});
}
mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName);
mapPut(cut, map, "field_show_type", onlCgformField.getFieldShowType(), "dict_field", onlCgformField.getDictField(), "db_field_name", onlCgformField.getDbFieldName(), "db_field_txt", onlCgformField.getDbFieldTxt(), "db_field_en_name", onlCgformField.getDbFieldEnName(), "area", areaName,null);
}
if (map.size() != 0) {
resultTemp.add(map);
@@ -531,7 +544,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
return result;
}
private void mapPut(String cut, Map<String, Object> map, String field_show_type, String fieldShowType2, String dict_field, String dictField, String db_field_name, String dbFieldName2, String db_field_txt, String dbFieldTxt, String db_field_en_name, String dbFieldEnName, String area, String showArea) {
private void mapPut(String cut, Map<String, Object> map, String field_show_type,
String fieldShowType2, String dict_field, String dictField,
String db_field_name, String dbFieldName2, String db_field_txt,
String dbFieldTxt, String db_field_en_name, String dbFieldEnName,
String area, String showArea,SysCategoryTreeVO sysCategoryTreeVO) {
map.put(field_show_type, fieldShowType2);//类型(判断是下拉还是输入框,等等)
map.put(dict_field, dictField);
map.put(db_field_name, dbFieldName2);//字段
@@ -545,6 +562,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
map.put(db_field_txt, dbFieldTxt);//字段中文名
}
map.put(area, showArea);//区域
map.put("tree", sysCategoryTreeVO);//区域
}
/**