seyason 1 éve
szülő
commit
399efec0f9

+ 35 - 17
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -2136,21 +2136,39 @@ public class WeiXinCorpController {
                     System.out.println("synchronizationDP========="+departmentName);
                     Integer departmentId = ob.getInteger("id");
                     Integer departmentParentId =ob.getInteger("parentid");
-                    Integer cut = departmentWxMapper.selectCount(new QueryWrapper<DepartmentWx>().eq("corpid",corpid).eq("wx_deptid",departmentId));
-                    if(cut==0&&departmentId!=1){
-                        System.out.println("join===========");
-                        DepartmentWx departmentWx=new DepartmentWx();
-                        departmentWx.setCorpid(corpid)
-                                .setName(departmentName)
-                                .setWxParentid(departmentParentId)
-                                .setWxDeptid(departmentId);
-                        Department department = new Department();
-                        department.setCompanyId(company.getId());
-                        department.setDepartmentName(departmentName);
-                        department.setCorpwxDeptid(departmentId);
-                        departmentMapper.insert(department);
-                        departmentWx.setSysDeptid(department.getDepartmentId());
-                        departmentWxMapper.insert(departmentWx);
+                    if (departmentId != 1) {
+                        //非根部门
+                        DepartmentWx findDepartment = departmentWxMapper.selectOne(new QueryWrapper<DepartmentWx>().eq("corpid",corpid).eq("wx_deptid",departmentId));
+                        if (findDepartment == null) {
+                            DepartmentWx departmentWx=new DepartmentWx();
+                            departmentWx.setCorpid(corpid)
+                                    .setName(departmentName)
+                                    .setWxParentid(departmentParentId)
+                                    .setWxDeptid(departmentId);
+                            Department department = new Department();
+                            department.setCompanyId(company.getId());
+                            department.setDepartmentName(departmentName);
+                            department.setCorpwxDeptid(departmentId);
+                            departmentMapper.insert(department);
+                            departmentWx.setSysDeptid(department.getDepartmentId());
+                            departmentWxMapper.insert(departmentWx);
+                        } else {
+                            //存在的部门,更新
+                            findDepartment.setName(departmentName);
+                            findDepartment.setWxParentid(departmentParentId);
+                            departmentWxMapper.updateById(findDepartment);
+                            Department department = departmentMapper.selectOne(new QueryWrapper<Department>().eq("company_id", company.getId()).eq("corpwx_deptid", departmentId));
+                            if (department == null) {
+                                department = new Department();
+                                department.setCompanyId(company.getId());
+                                department.setDepartmentName(departmentName);
+                                department.setCorpwxDeptid(departmentId);
+                                departmentMapper.insert(department);
+                            } else {
+                                department.setDepartmentName(departmentName);
+                                departmentMapper.updateById(department);
+                            }
+                        }
                     }
                 }
                 SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","组员"));
@@ -2240,7 +2258,7 @@ public class WeiXinCorpController {
                             //跳过非激活状态的员工
                             if (userInfoOb.getInteger("status") != 1) continue;
                             String userName = String.valueOf(userInfoOb.get("name"));
-//                                String phone = String.valueOf(userInfoOb.get("phone"));
+                                String phone = String.valueOf(userInfoOb.get("phone"));
                             String openUserid = userInfoOb.getString("open_userid");
                             List<Integer> departments = (List<Integer>) userInfoOb.get("department");
                             Integer deptId = departments.get(0);
@@ -2263,7 +2281,7 @@ public class WeiXinCorpController {
                                     .setName(userName)
                                     .setRoleName(role.getRolename())
                                     .setRoleId(role.getId())
-//                                    .setPhone(phone)
+                                    .setPhone(phone)
                                     .setCorpwxRealUserid(corpWxuserid)
                                     .setColor(ColorUtil.randomColor())
                                     .setPassword(MD5Util.getPassword("000000"))

+ 4 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -201,8 +201,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
             userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, corpwx_userid").in("department_id", deptIncludeSubDeptIds));
         } else if (checkType == 2) {
             List<DepartmentOtherManager> otherManagers = departmentOtherManagerMapper.selectList(new QueryWrapper<DepartmentOtherManager>().eq("department_id", deptId));
-            List<String> userIds = otherManagers.stream().map(DepartmentOtherManager::getOtherManagerId).collect(Collectors.toList());
-            userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, corpwx_userid").in("id", userIds));
+            if (otherManagers.size() > 0) {
+                List<String> userIds = otherManagers.stream().map(DepartmentOtherManager::getOtherManagerId).collect(Collectors.toList());
+                userList = userMapper.selectList(new QueryWrapper<User>().select("id, name, corpwx_userid").in("id", userIds));
+            }
         }
         httpRespMsg.data = userList;
         return httpRespMsg;