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<GroupTreeVO> allGroupTree(CommonGroupTypeVO vo, List<GroupTreeVO> children) {
|
return getTree(children, vo);
|
}
|
|
public static List<OffEmployeeTreeVO> allGroupTreeOff(CommonGroupTypeVO vo, List<OffEmployeeTreeVO> children) {
|
return getTreeOff(children, vo);
|
}
|
|
private static List<GroupTreeVO> getTree(List<GroupTreeVO> children, CommonGroupTypeVO vo) {
|
List<CommonGroup> commonGroups = COMMON_GROUP_SERVICE.list(Wrappers.<CommonGroup>lambdaQuery()
|
.eq(CommonGroup::getGroupType, vo.getGroupType())
|
.eq(CommonGroup::getGroupCategory, vo.getGroupCategory()));
|
List<GroupTreeVO> groups = commonGroups.stream().map(TreeUtils::convert).collect(Collectors.toList());
|
children.addAll(groups);
|
return ForestNodeMerger.merge(children);
|
|
/*
|
List<CommonGroup> commonGroups = COMMON_GROUP_SERVICE.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getGroupType();
|
}, vo.getGroupType())).eq((v0) -> {
|
return v0.getGroupCategory();
|
}, vo.getGroupCategory()));
|
List<GroupTreeVO> groups = (List) commonGroups.stream().map(TreeUtils::convert).collect(Collectors.toList());
|
children.addAll(groups);
|
return ForestNodeMerger.merge(children);
|
*/
|
}
|
|
private static List<OffEmployeeTreeVO> getTreeOff(List<OffEmployeeTreeVO> children, CommonGroupTypeVO vo) {
|
List<CommonGroup> commonGroups = COMMON_GROUP_SERVICE.list(Wrappers.<CommonGroup>lambdaQuery()
|
.eq(CommonGroup::getGroupType, vo.getGroupType())
|
.eq(CommonGroup::getGroupCategory, vo.getGroupCategory()));
|
List<OffEmployeeTreeVO> groups = commonGroups.stream().map(TreeUtils::convertOff).collect(Collectors.toList());
|
children.addAll(groups);
|
return ForestNodeMerger.merge(children);
|
|
/*
|
List<CommonGroup> commonGroups = COMMON_GROUP_SERVICE.list((Wrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq((v0) -> {
|
return v0.getGroupType();
|
}, vo.getGroupType())).eq((v0) -> {
|
return v0.getGroupCategory();
|
}, vo.getGroupCategory()));
|
List<OffEmployeeTreeVO> 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;
|
}
|
}
|