From 80e5ee8049eefe7039d77048f43e6e0566a07953 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 25 三月 2024 09:10:43 +0800 Subject: [PATCH] Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 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..0ac4c2a 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 @@ -2,13 +2,87 @@ import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.wcs.common.constant.Constants; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Iterator; +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 */ 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); + if(children.size() > 0) { + consumer.accept(d, children); + } + result.add(d); + } + } + return result; + } + +// public static <T> List<T> treeRemove(List<T> data, String condition, +// Function<? super T, ? extends String> fetcher, +// Function<T, List<T>> childrenGetter, +// BiConsumer<T, List<T>> childrenSetter) { +// List<T> result = new ArrayList<>(); +// for (T node : data) { +// List<T> children = childrenGetter.apply(node); +// +// if (children != null && !children.isEmpty()) { +// List<T> newChildren = treeRemove(children, condition, fetcher, childrenGetter, childrenSetter); +// childrenSetter.accept(node, newChildren); +// } +// +// if (fetcher.apply(node).contains(condition)) { +// result.add(node); +// } +// } +// 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()) { + T next = iterator.next(); + List<T> children = childrenGetter.apply(next); + if (children != null && !children.isEmpty()) { + treeRemove(children, condition, fetcher, childrenGetter); + } else { + if (!fetcher.apply(next).contains(condition)) { + iterator.remove(); + } + } + } + } /** * 鏁扮粍鍊掑簭 @@ -221,4 +295,13 @@ } } + public static void cors(HttpServletResponse response){ + // 璺ㄥ煙璁剧疆 + response.setHeader("Access-Control-Max-Age", "3600"); + response.setHeader("Access-Control-Allow-Origin", "*"); + response.setHeader("Access-Control-Allow-Methods", "*"); + response.setHeader("Access-Control-Allow-Headers", "*"); + response.setHeader("Access-Control-Expose-Headers", Constants.TOKEN_HEADER_NAME); + } + } -- Gitblit v1.9.1