同步vue版本代码修改

update 使用常量替代硬编码的删除标志,优化查询条件
update 增加消息推送模块注释
update 优化 将全局继承MPJ改为按需求继承
fix 修复 distinct 在 sqlserver 中的限制 补缺排序字段 确保语法正确
update 增加部门Excel转换处理和下拉选项数据源
This commit is contained in:
疯狂的狮子Li
2026-03-30 19:44:04 +08:00
parent fd22881cd8
commit 070b4bd9bb
33 changed files with 876 additions and 261 deletions

View File

@@ -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);
}
}
}