zhangherong
2025-06-12 6abc1a2fb78003bb1ea6283d813b8ccc0bcd9b2b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package org.jeecg.modules.base.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.system.vo.SelectTreeModel;
import org.jeecg.modules.base.entity.WorkCenterUser;
import org.jeecg.modules.base.mapper.WorkCenterUserMapper;
import org.jeecg.modules.base.service.IWorkCenterUserService;
import org.jeecg.modules.system.entity.SysDepart;
import org.jeecg.modules.system.mapper.SysDepartMapper;
import org.jeecg.modules.system.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
import java.util.*;
import java.util.stream.Collectors;
 
/**
 * @Description: mom_base_work_center_user
 * @Author: jeecg-boot
 * @Date:   2022-12-06
 * @Version: V1.0
 */
@Service
public class WorkCenterUserServiceImpl extends ServiceImpl<WorkCenterUserMapper, WorkCenterUser> implements IWorkCenterUserService {
    @Autowired
    private WorkCenterUserMapper workCenterUserMapper;
 
    @Autowired
    private SysDepartMapper sysDepartMapper;
 
    @Override
    public Page<Map<String,Object>> listByWorkCenterId(Page<Map<String, Object>> page, String workCenterId) {
        return page.setRecords(workCenterUserMapper.listByWorkCenterId(page,workCenterId));
    }
 
    @Override
    public Page<Map<String, Object>> getAddUserList(Page<Map<String, Object>> page, String departId, List<String> userIdList) {
 
        return page.setRecords(workCenterUserMapper.getAddUserList(page,departId,userIdList));
    }
 
    @Override
    public Page<Map<String, Object>> getUserList(Page<Map<String, Object>> page, List<String> userIdList, String departId) {
        return page.setRecords(workCenterUserMapper.getUserList(page,userIdList,departId));
    }
 
    @Override
    public List<SelectTreeModel> getDepartTreeByEnterpriseId(String enterpriseId, String departId,Integer version) {
        return loadDepartTreeByParentId(enterpriseId,departId,version);
    }
 
    @Override
    public Page<Map<String, Object>> listByEnterpriseId(Page<Map<String, Object>> page, String enterpriseId, List<String> userIdList,String departId) {
        Set<String> departIds = getDepartIds(departId);
        departIds.add(departId);
         return page.setRecords(workCenterUserMapper.listByEnterpriseId(page,enterpriseId,userIdList,departIds.stream().collect(Collectors.toList())));
    }
 
    public  List<SelectTreeModel> loadDepartTreeByParentId(String parentId,String departId,Integer version){
        List<SelectTreeModel> list = workCenterUserMapper.getAddDepartTree(parentId,departId,version);
        if(list.size()!=0){
            for(SelectTreeModel selectTreeModel:list){
                selectTreeModel.setChildren(loadDepartTreeByParentId(selectTreeModel.getKey(),departId,version));
            }
        }
        return list;
    }
    public Set<String> getDepartIds(String parentId){
        Set<String> departIds = new HashSet<>();
        List <String> child = sysDepartMapper.selectList(
                new QueryWrapper<SysDepart>()
                .eq("parent_id",parentId)
                .eq("del_flag",0)
                ).stream().map(SysDepart::getId).collect(Collectors.toList());
        if(CollectionUtils.isNotEmpty(child)){
            child.forEach(id->{
                departIds.add(id);
                departIds.addAll(getDepartIds(id));
            });
        }
        return departIds;
 
    }
 
}