|
@@ -373,10 +373,26 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
public HttpRespMsg getDepartmentListById(User user) {
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
try {
|
|
|
- //筛选公司下所有的部门
|
|
|
- List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>()
|
|
|
+ //查询该员工所在部门
|
|
|
+ Department userDept = departmentMapper.selectOne(new QueryWrapper<Department>()
|
|
|
.eq("department_id", user.getDepartmentId()));
|
|
|
- List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("department_id", user.getDepartmentId()));
|
|
|
+ List<Department> allDepartmentList = departmentMapper.selectList(new QueryWrapper<Department>()
|
|
|
+ .eq("company_id", user.getCompanyId()));
|
|
|
+ ArrayList<Department> departmentList = new ArrayList<>();
|
|
|
+ //查找出员工所在顶层部门
|
|
|
+ while (true){
|
|
|
+ if (userDept.getSuperiorId()==null){
|
|
|
+ break;
|
|
|
+ }else {
|
|
|
+ for (Department supDept : allDepartmentList) {
|
|
|
+ if (supDept.getDepartmentId().equals(userDept.getSuperiorId())){
|
|
|
+ userDept = supDept;
|
|
|
+ departmentList.add(supDept);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<DepartmentOtherManager> departmentOtherManagerList = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("company_id", user.getCompanyId()));
|
|
|
//结果列表
|
|
|
List<DepartmentVO> list = new ArrayList<>();
|
|
|
List<Department> rootDepartments = departmentList.stream().filter(dept -> dept.getSuperiorId() == null).collect(Collectors.toList());
|
|
@@ -883,38 +899,36 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
Integer companyId = userMapper.selectById(request.getHeader("TOKEN")).getCompanyId();
|
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
|
List<HashMap> userMapList = new ArrayList<>();
|
|
|
- HttpRespMsg departmentList = departmentService.getDepartmentList(request);
|
|
|
- List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
|
|
|
- //加上未分配的部门
|
|
|
- DepartmentVO unAssignedDept = new DepartmentVO();
|
|
|
- unAssignedDept.setId(0);
|
|
|
- //unAssignedDept.setLabel("未分配");
|
|
|
- unAssignedDept.setLabel(MessageUtils.message("department.noDistribution"));
|
|
|
- list.add(unAssignedDept);
|
|
|
//通讯录查询人员
|
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
|
|
|
if (StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
|
|
|
HashMap<String, List> result = getOpenId(wxCorpInfo.getCorpid(), keyword, cursor);
|
|
|
List users = result.get("user");
|
|
|
- if (users!=null){
|
|
|
+ if (users.size()!=0){
|
|
|
List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
|
|
|
- List<DepartmentVO> temp = new ArrayList<>();
|
|
|
- //重新封装list集合
|
|
|
if (realUser.size()!=0){
|
|
|
- for (User user : realUser) {
|
|
|
-
|
|
|
- temp.add(unAssignedDept);
|
|
|
- }
|
|
|
- for (User u : realUser) {
|
|
|
+ List<DepartmentVO> listById = new ArrayList<>();
|
|
|
+ for (User item : realUser) {
|
|
|
+ HttpRespMsg departmentListById = getDepartmentListById(item);
|
|
|
+ listById = (List<DepartmentVO>) departmentListById.data;
|
|
|
+ if (listById.size()==0){
|
|
|
+ //加上未分配的部门
|
|
|
+ DepartmentVO unAssignedDeptById = new DepartmentVO();
|
|
|
+ unAssignedDeptById.setId(0);
|
|
|
+ //unAssignedDept.setLabel("未分配");
|
|
|
+ unAssignedDeptById.setLabel(MessageUtils.message("department.noDistribution"));
|
|
|
+ listById.add(unAssignedDeptById);
|
|
|
+ }
|
|
|
+ //封装员工信息
|
|
|
HashMap<String, Object> user = new HashMap<String, Object>();
|
|
|
- user.put("id", u.getId());
|
|
|
- user.put("name", u.getName());
|
|
|
- user.put("departmentId", u.getDepartmentId());
|
|
|
+ user.put("id", item.getId());
|
|
|
+ user.put("name", item.getName());
|
|
|
+ user.put("departmentId", item.getDepartmentId());
|
|
|
userMapList.add(user);
|
|
|
- fillDeptUser(list, userMapList);
|
|
|
+ fillDeptUser(listById, userMapList);
|
|
|
}
|
|
|
HashMap<String, Object> data = new HashMap<>();
|
|
|
- data.put("data",list);
|
|
|
+ data.put("data",listById);
|
|
|
data.put("nextCursor","");
|
|
|
msg.data = data;
|
|
|
return msg;
|
|
@@ -924,6 +938,14 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
|
|
|
msg.data = emptyList;
|
|
|
return msg;
|
|
|
}else {
|
|
|
+ HttpRespMsg departmentList = departmentService.getDepartmentList(request);
|
|
|
+ List<DepartmentVO> list = (List<DepartmentVO>) departmentList.data;
|
|
|
+ //加上未分配的部门
|
|
|
+ DepartmentVO unAssignedDept = new DepartmentVO();
|
|
|
+ unAssignedDept.setId(0);
|
|
|
+ //unAssignedDept.setLabel("未分配");
|
|
|
+ unAssignedDept.setLabel(MessageUtils.message("department.noDistribution"));
|
|
|
+ list.add(unAssignedDept);
|
|
|
//获取公司全部人员
|
|
|
List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId).eq("is_active", 1));
|
|
|
for (User u : userList) {
|