skyouc
2025-03-25 f9281b83739ceb938687264dcabd9e2e12acfd56
修改
#
优化物料分组搜索功能
2个文件已修改
30 ■■■■■ 已修改文件
rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java
@@ -48,26 +48,6 @@
        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()) {
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java
@@ -37,7 +37,15 @@
                List<Long> collect = groups.stream().map(MatnrGroup::getId).collect(Collectors.toList());
                List<MatnrGroup> list = this.list(new LambdaQueryWrapper<MatnrGroup>().in(MatnrGroup::getId, collect));
                matnrs.addAll(list);
                List<MatnrGroup> treeData = Utils.toTreeData(matnrs, 0L, MatnrGroup::getParentId, MatnrGroup::getId, MatnrGroup::setChildren);
                if (matnrs.isEmpty()) {
                    return new ArrayList<>();
                }
                MatnrGroup one = this.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getParentId, 0));
                if (Objects.isNull(one)) {
                    throw new CoolException("顶级分组不存在,请添加后再操作!!");
                }
                List<MatnrGroup> treeData = Utils.toTreeData(matnrs, one.getId(), MatnrGroup::getParentId, MatnrGroup::getId, MatnrGroup::setChildren);
                return treeData;
            } else {
                matnrs = this.list(new LambdaQueryWrapper<MatnrGroup>().orderByAsc(MatnrGroup::getCode));