#
luxiaotao1123
2024-02-22 074513acdfed38c8537a046801ee5dbc8f01e2eb
#
3个文件已修改
32 ■■■■ 已修改文件
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/DeptController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/MenuController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/DeptController.java
@@ -49,7 +49,8 @@
        List<Dept> deptList = deptService.list(new LambdaQueryWrapper<Dept>().orderByAsc(Dept::getSort));
        List<Dept> treeData = Utils.toTreeData(deptList, 0L, Dept::getParentId, Dept::getId, Dept::setChildren);
        if (!Cools.isEmpty(map.get("condition"))) {
            treeData = Utils.treeRemove(deptList, String.valueOf(map.get("condition")), Dept::getName, Dept::getChildren, Dept::setChildren);
            Utils.treeRemove(treeData, String.valueOf(map.get("condition")), Dept::getName, Dept::getChildren);
            Utils.treeRemove(treeData, String.valueOf(map.get("condition")), Dept::getName, Dept::getChildren);
        }
        return R.ok().add(treeData);
    }
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/system/controller/MenuController.java
@@ -51,7 +51,8 @@
        List<Menu> menuList = menuService.list(new LambdaQueryWrapper<Menu>().orderByAsc(Menu::getSort));
        List<Menu> treeData = Utils.toTreeData(menuList, 0L, Menu::getParentId, Menu::getId, Menu::setChildren);
        if (!Cools.isEmpty(map.get("condition"))) {
            treeData = Utils.treeRemove(menuList, String.valueOf(map.get("condition")), Menu::getName, Menu::getChildren, Menu::setChildren);
            Utils.treeRemove(treeData, String.valueOf(map.get("condition")), Menu::getName, Menu::getChildren);
            Utils.treeRemove(treeData, String.valueOf(map.get("condition")), Menu::getName, Menu::getChildren);
        }
        return R.ok().add(treeData);
    }
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/utils/Utils.java
@@ -6,11 +6,11 @@
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;
import java.util.function.Predicate;
/**
 * Created by vincent on 2023/3/14
@@ -69,23 +69,19 @@
//        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<>();
        Predicate<T> predicate = node -> fetcher.apply(node).contains(condition);
        for (T node : data) {
            List<T> children = childrenGetter.apply(node);
    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()) {
                List<T> newChildren = treeRemove(children, condition, fetcher, childrenGetter, childrenSetter);
                childrenSetter.accept(node, newChildren);
            }
            if (predicate.test(node)) {
                result.add(node);
                treeRemove(children, condition, fetcher, childrenGetter);
            } else {
                if (!fetcher.apply(next).contains(condition)) {
                    iterator.remove();
                }
            }
        }
        return result;
    }
    /**