mirror of
https://gitee.com/dromara/RuoYi-Cloud-Plus.git
synced 2026-05-12 14:52:07 +08:00
同步vue版本代码修改
update 使用常量替代硬编码的删除标志,优化查询条件 update 增加消息推送模块注释 update 优化 将全局继承MPJ改为按需求继承 fix 修复 distinct 在 sqlserver 中的限制 补缺排序字段 确保语法正确 update 增加部门Excel转换处理和下拉选项数据源
This commit is contained in:
@@ -5,10 +5,12 @@ import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
import cn.hutool.core.lang.tree.parser.NodeParser;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.dromara.common.core.utils.reflect.ReflectUtils;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -120,6 +122,20 @@ public class TreeBuildUtils extends TreeUtil {
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建树节点路径 Map: 路径为 key, 节点为 value
|
||||
*
|
||||
* @param trees 树结构
|
||||
* @param joiner 拼接符
|
||||
* @param fieldGetter 路径拼接字段
|
||||
* @return Map<拼接路径, 原始Tree节点>
|
||||
*/
|
||||
public static <K> Map<String, Tree<K>> buildTreeNodeMap(List<Tree<K>> trees, String joiner, Function<Tree<K>, CharSequence> fieldGetter) {
|
||||
Map<String, Tree<K>> nodeMap = new LinkedHashMap<>();
|
||||
doBuildTreeNodeMap(trees, "", joiner, fieldGetter, nodeMap);
|
||||
return nodeMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定节点下的所有叶子节点
|
||||
*
|
||||
@@ -137,4 +153,20 @@ public class TreeBuildUtils extends TreeUtil {
|
||||
}
|
||||
}
|
||||
|
||||
private static <K> void doBuildTreeNodeMap(List<Tree<K>> trees, String parentPath, String joiner,
|
||||
Function<Tree<K>, CharSequence> fieldGetter, Map<String, Tree<K>> nodeMap) {
|
||||
if (CollUtil.isEmpty(trees)) {
|
||||
return;
|
||||
}
|
||||
for (Tree<K> tree : trees) {
|
||||
CharSequence field = fieldGetter.apply(tree);
|
||||
if (StrUtil.isEmpty(field)) {
|
||||
continue;
|
||||
}
|
||||
String currentPath = StrUtil.isEmpty(parentPath) ? field.toString() : parentPath + joiner + field;
|
||||
nodeMap.put(currentPath, tree);
|
||||
doBuildTreeNodeMap(tree.getChildren(), currentPath, joiner, fieldGetter, nodeMap);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user