From 490037e66e46160021e2ee9d172206a6d77be011 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 31 一月 2024 09:24:03 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java | 33 +++++++++++++++++++++++++++++++++ 1 files changed, 33 insertions(+), 0 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java index 9db68ff..5c21a4f 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java @@ -3,7 +3,11 @@ import com.zy.asrs.framework.common.Cools; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; +import java.util.function.BiConsumer; +import java.util.function.Function; /** * Created by vincent on 2023/3/14 @@ -11,6 +15,35 @@ public class Utils { /** + * List杞负鏍戝舰缁撴瀯 + * + * @param data List + * @param parentId 椤剁骇鐨刾arentId + * @param parentIdMapper 鑾峰彇parentId鐨凢unction + * @param idMapper 鑾峰彇id鐨凢unction + * @param consumer 璧嬪�糲hildren鐨凜onsumer + * @param <T> 鏁版嵁鐨勭被鍨� + * @param <R> parentId鐨勭被鍨� + * @return List<T> + */ + public static <T, R> List<T> toTreeData(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 d : data) { + R dParentId = parentIdMapper.apply(d); + if (parentId.equals(dParentId)) { + R dId = idMapper.apply(d); + List<T> children = toTreeData(data, dId, parentIdMapper, idMapper, consumer); + consumer.accept(d, children); + result.add(d); + } + } + return result; + } + + /** * 鏁扮粍鍊掑簭 * @param bytes * @param <T> -- Gitblit v1.9.1