cs 2 år sedan
förälder
incheckning
5f869ae6be

+ 46 - 24
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/DepartmentServiceImpl.java

@@ -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) {

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -2162,7 +2162,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             List users = result.get("user");
             msgResult.put("nextCursor",nextCursor);
             msg.data = msgResult;
-            if (users!=null){
+            if (users.size()!=0){
                 List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
                 msgResult.put("retUser",realUser);
                 return msg;