From 47a682630b8563017db497f2d0b48b3827a2ab40 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 25 三月 2025 14:25:49 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
---
rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java b/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java
index 6123a36..008d82d 100644
--- a/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java
+++ b/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java
@@ -48,6 +48,26 @@
return result;
}
+ public static <T, R> List<T> getAllTree(List<T> data, R parentId, Function<? super T, ? extends R> parentIdMapper, Function<? super T, ? extends R> idMapper, BiConsumer<T, List<T>> consumer) {
+ List<T> result = new ArrayList<>();
+ for (T datum : data) {
+ R dParentId = parentIdMapper.apply(datum);
+ R dId = idMapper.apply(datum);
+ if (dParentId.equals(dId)) {
+ List<T> children = toTreeData(data, dId, parentIdMapper, idMapper, consumer);
+ if (!children.isEmpty()) {
+ consumer.accept(datum, children);
+ }
+ result.add(datum);
+ }
+ if (dParentId.equals(dId)) {
+ continue;
+ }
+ }
+ return result;
+ }
+
+
public static <T> void treeRemove(List<T> list, String condition, Function<? super T, ? extends String> fetcher, Function<T, List<T>> childrenGetter) {
Iterator<T> iterator = list.iterator();
while (iterator.hasNext()) {
--
Gitblit v1.9.1