文档库--树形数据字典

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