febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/FolderController.java
@@ -1,5 +1,6 @@ package cc.mrbird.febs.server.hr.controller; import cc.mrbird.febs.common.core.entity.system.Dept; import cc.mrbird.febs.server.hr.entity.Folder; import cc.mrbird.febs.server.hr.service.IFolderService; import cc.mrbird.febs.common.core.entity.FebsResponse; @@ -35,7 +36,11 @@ public FebsResponse getAllFolders(Folder folder) { return new FebsResponse().data(folderService.findFolders(folder)); } @GetMapping("treeList") public FebsResponse folderTreeList(QueryRequest request, Folder folder) { Map<String, Object> depts = this.folderService.folderTreeList(request, folder); return new FebsResponse().data(depts); } @GetMapping("list") @PreAuthorize("hasAuthority('folder:list')") public FebsResponse folderList(QueryRequest request, Folder folder) { febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/Folder.java
@@ -43,7 +43,11 @@ */ @TableId("folderId") private Long folderid; /** * id */ @TableId("parentId") private Long parentId; /** * 文件夹名称 */ febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IFolderService.java
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; import java.util.Map; /** * 文件夹 Service接口 @@ -52,4 +53,6 @@ * @param folder folder */ void deleteFolder(Folder folder); Map<String, Object> folderTreeList(QueryRequest request, Folder folder); } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/FolderServiceImpl.java
@@ -1,8 +1,13 @@ package cc.mrbird.febs.server.hr.service.impl; import cc.mrbird.febs.common.core.constant.ModuleCode; import cc.mrbird.febs.common.core.entity.DeptTree; import cc.mrbird.febs.common.core.entity.Tree; import cc.mrbird.febs.common.core.entity.constant.PageConstant; import cc.mrbird.febs.common.core.entity.system.Dept; import cc.mrbird.febs.common.core.utils.FebsUtil; import cc.mrbird.febs.common.core.utils.SequenceUtil; import cc.mrbird.febs.common.core.utils.TreeUtil; import cc.mrbird.febs.server.hr.entity.FilesUpload; import cc.mrbird.febs.server.hr.entity.Folder; import cc.mrbird.febs.server.hr.entity.Label; @@ -19,9 +24,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cc.mrbird.febs.common.core.entity.QueryRequest; import java.util.Date; import java.util.List; import java.util.Optional; import java.util.*; /** * 文件夹 Service实现 @@ -46,6 +49,34 @@ } @Override public Map<String, Object> folderTreeList(QueryRequest request, Folder folder) { Map<String, Object> result = new HashMap<>(2); try { List<Folder> depts = findFolders(folder); List<DeptTree> trees = new ArrayList<>(); buildTrees(trees, depts); List<? extends Tree<?>> deptTree = TreeUtil.build(trees); result.put(PageConstant.ROWS, deptTree); result.put(PageConstant.TOTAL, depts.size()); } catch (Exception e) { log.error("获取部门列表失败", e); result.put(PageConstant.ROWS, null); result.put(PageConstant.TOTAL, 0); } return result; } private void buildTrees(List<DeptTree> trees, List<Folder> depts) { depts.forEach(dept -> { DeptTree tree = new DeptTree(); tree.setId(dept.getFolderid().toString()); tree.setParentId(dept.getParentId().toString()); tree.setLabel(dept.getFoldername()); tree.setOrderNum(dept.getSort()); trees.add(tree); }); } @Override public List<Folder> findFolders(Folder folder) { LambdaQueryWrapper<Folder> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Folder::getDelFlag,0).orderByAsc(Folder::getSort); febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/vo/FolderTree.java
New file @@ -0,0 +1,19 @@ package cc.mrbird.febs.server.hr.vo; import cc.mrbird.febs.common.core.entity.Tree; import cc.mrbird.febs.server.hr.entity.Folder; import lombok.Data; import lombok.EqualsAndHashCode; /** * @author MrBird */ @Data @EqualsAndHashCode(callSuper = true) public class FolderTree extends Tree<Folder> { private Integer orderNum; private String deptType; private String deptFunction; private String allDeptName; } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/vo/Tree.java
New file @@ -0,0 +1,32 @@ package cc.mrbird.febs.server.hr.vo; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; import java.util.ArrayList; import java.util.List; /** * @author MrBird */ @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class Tree<T> { private String id; private String label; private List<Tree<T>> children; private String parentId; private boolean hasParent = false; private boolean hasChildren = false; public void initChildren() { this.children = new ArrayList<>(); } }