package com.qianwen.smartman.common.utils; import java.util.List; import java.util.stream.Collectors; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.qianwen.core.tool.node.ForestNodeMerger; import com.qianwen.core.tool.utils.SpringUtil; import com.qianwen.smartman.modules.cps.entity.CommonGroup; import com.qianwen.smartman.modules.cps.service.ICommonGroupService; import com.qianwen.smartman.modules.cps.vo.CommonGroupTypeVO; import com.qianwen.smartman.modules.cps.vo.GroupTreeVO; import com.qianwen.smartman.modules.perf.vo.OffEmployeeTreeVO; public class TreeUtils { private static final ICommonGroupService COMMON_GROUP_SERVICE = SpringUtil.getBean(ICommonGroupService.class); public static List allGroupTree(CommonGroupTypeVO vo, List children) { return getTree(children, vo); } public static List allGroupTreeOff(CommonGroupTypeVO vo, List children) { return getTreeOff(children, vo); } private static List getTree(List children, CommonGroupTypeVO vo) { List commonGroups = COMMON_GROUP_SERVICE.list(Wrappers.lambdaQuery() .eq(CommonGroup::getGroupType, vo.getGroupType()) .eq(CommonGroup::getGroupCategory, vo.getGroupCategory())); List groups = commonGroups.stream().map(TreeUtils::convert).collect(Collectors.toList()); children.addAll(groups); return ForestNodeMerger.merge(children); /* List commonGroups = COMMON_GROUP_SERVICE.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getGroupType(); }, vo.getGroupType())).eq((v0) -> { return v0.getGroupCategory(); }, vo.getGroupCategory())); List groups = (List) commonGroups.stream().map(TreeUtils::convert).collect(Collectors.toList()); children.addAll(groups); return ForestNodeMerger.merge(children); */ } private static List getTreeOff(List children, CommonGroupTypeVO vo) { List commonGroups = COMMON_GROUP_SERVICE.list(Wrappers.lambdaQuery() .eq(CommonGroup::getGroupType, vo.getGroupType()) .eq(CommonGroup::getGroupCategory, vo.getGroupCategory())); List groups = commonGroups.stream().map(TreeUtils::convertOff).collect(Collectors.toList()); children.addAll(groups); return ForestNodeMerger.merge(children); /* List commonGroups = COMMON_GROUP_SERVICE.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> { return v0.getGroupType(); }, vo.getGroupType())).eq((v0) -> { return v0.getGroupCategory(); }, vo.getGroupCategory())); List groups = (List) commonGroups.stream().map(TreeUtils::convertOff).collect(Collectors.toList()); children.addAll(groups); return ForestNodeMerger.merge(children); */ } private static GroupTreeVO convert(CommonGroup group) { GroupTreeVO treeVO = new GroupTreeVO(); treeVO.setId(group.getId()); treeVO.setName(group.getName()); treeVO.setCode(group.getCode()); treeVO.setParentId(group.getParentId()); treeVO.setIsGroup(Boolean.TRUE); return treeVO; } private static OffEmployeeTreeVO convertOff(CommonGroup group) { OffEmployeeTreeVO treeVO = new OffEmployeeTreeVO(); treeVO.setId(group.getId()); treeVO.setName(group.getName()); treeVO.setCode(group.getCode()); treeVO.setParentId(group.getParentId()); treeVO.setIsGroup(Boolean.TRUE); return treeVO; } }