Commit 0217cff4 authored by 王亚雷's avatar 王亚雷

修复企业微信userId大小写导致user_info主键重复

parent 7d6de66c
...@@ -182,13 +182,13 @@ public class OrgSyncByWxcpJob { ...@@ -182,13 +182,13 @@ public class OrgSyncByWxcpJob {
for (WxCpUser wxCpUser : wxCpUserList) { for (WxCpUser wxCpUser : wxCpUserList) {
// key employee_id + '&' + role_id // key employee_id + '&' + role_id
String type = wxCpUser.getIsLeader() != null && wxCpUser.getIsLeader() == 1 ? RoleTypeEnum.TEAM.code : RoleTypeEnum.IFA.code; String type = wxCpUser.getIsLeader() != null && wxCpUser.getIsLeader() == 1 ? RoleTypeEnum.TEAM.code : RoleTypeEnum.IFA.code;
hashMap.put(corpId + "_" + wxCpUser.getUserId() + "&" + roleMap.get(type), wxCpUser); hashMap.put(corpId + "_" + StringUtils.lowerCase(wxCpUser.getUserId()) + "&" + roleMap.get(type), wxCpUser);
} }
} }
for (EmployeeRoleEntity employeeRole : employeeRoleList) { for (EmployeeRoleEntity employeeRole : employeeRoleList) {
String employeeId = employeeRole.getEmployeeId(); String employeeId = employeeRole.getEmployeeId();
String roleId = employeeRole.getRoleId(); String roleId = employeeRole.getRoleId();
String key = employeeId + "&" + roleId; String key = StringUtils.lowerCase(employeeId) + "&" + roleId;
WxCpUser wxCpUser = hashMap.get(key); WxCpUser wxCpUser = hashMap.get(key);
//删除 //删除
if (ObjectUtil.isNull(wxCpUser)) { if (ObjectUtil.isNull(wxCpUser)) {
...@@ -202,8 +202,9 @@ public class OrgSyncByWxcpJob { ...@@ -202,8 +202,9 @@ public class OrgSyncByWxcpJob {
Map<String, List<EmployeeRoleEntity>> map = employeeRoleList.stream().collect(Collectors.groupingBy(EmployeeRoleEntity::getEmployeeId)); Map<String, List<EmployeeRoleEntity>> map = employeeRoleList.stream().collect(Collectors.groupingBy(EmployeeRoleEntity::getEmployeeId));
String adminRoleId = roleMap.get(RoleTypeEnum.ADMIN.code); String adminRoleId = roleMap.get(RoleTypeEnum.ADMIN.code);
for (String key : hashMap.keySet()) { for (String key : hashMap.keySet()) {
WxCpUser wxCpUser = hashMap.get(key);
String employeeId = corpId + "_" + wxCpUser.getUserId();
String[] split = key.split("&"); String[] split = key.split("&");
String employeeId = split[0];
String roleId = split[1]; String roleId = split[1];
// 如果已经有一个admin的角色,那么就不要插入新的 // 如果已经有一个admin的角色,那么就不要插入新的
List<EmployeeRoleEntity> roleList = map.get(employeeId); List<EmployeeRoleEntity> roleList = map.get(employeeId);
...@@ -242,14 +243,14 @@ public class OrgSyncByWxcpJob { ...@@ -242,14 +243,14 @@ public class OrgSyncByWxcpJob {
List<WxCpUser> wxCpUserList = wxCpDepartDto.getWxCpUserList(); List<WxCpUser> wxCpUserList = wxCpDepartDto.getWxCpUserList();
for (WxCpUser wxCpUser : wxCpUserList) { for (WxCpUser wxCpUser : wxCpUserList) {
// key department_id + '&' + employee_id // key department_id + '&' + employee_id
hashMap.put(orgId + "_" + wxCpDepartDto.getId() + "&" + corpId + "_" + wxCpUser.getUserId(), wxCpUser); hashMap.put(orgId + "_" + wxCpDepartDto.getId() + "&" + corpId + "_" + StringUtils.lowerCase(wxCpUser.getUserId()), wxCpUser);
} }
} }
for (DepartmentEmployeeEntity departmentEmployee : departmentEmployeeList) { for (DepartmentEmployeeEntity departmentEmployee : departmentEmployeeList) {
String departmentId = departmentEmployee.getDepartmentId(); String departmentId = departmentEmployee.getDepartmentId();
String employeeId = departmentEmployee.getEmployeeId(); String employeeId = departmentEmployee.getEmployeeId();
String key = departmentId + "&" + employeeId; String key = departmentId + "&" + StringUtils.lowerCase(employeeId);
WxCpUser wxCpUser = hashMap.get(key); WxCpUser wxCpUser = hashMap.get(key);
if (ObjectUtil.isNull(wxCpUser)) { if (ObjectUtil.isNull(wxCpUser)) {
// 删除 // 删除
...@@ -269,9 +270,8 @@ public class OrgSyncByWxcpJob { ...@@ -269,9 +270,8 @@ public class OrgSyncByWxcpJob {
String type = wxCpUser.getIsLeader() != null && wxCpUser.getIsLeader() == 1 ? EmployeeDutyEnum.DIRECTOR.code : EmployeeDutyEnum.STAFF.code; String type = wxCpUser.getIsLeader() != null && wxCpUser.getIsLeader() == 1 ? EmployeeDutyEnum.DIRECTOR.code : EmployeeDutyEnum.STAFF.code;
String[] split = s.split("&"); String[] split = s.split("&");
String departmentId = split[0]; String departmentId = split[0];
String employeeId = split[1];
DepartmentEmployeeEntity departmentEmployee = new DepartmentEmployeeEntity(); DepartmentEmployeeEntity departmentEmployee = new DepartmentEmployeeEntity();
departmentEmployee.setEmployeeId(employeeId); departmentEmployee.setEmployeeId(corpId + "_" + wxCpUser.getUserId());
departmentEmployee.setDepartmentId(departmentId); departmentEmployee.setDepartmentId(departmentId);
departmentEmployee.setType(type); departmentEmployee.setType(type);
departmentEmployee.setOrgId(orgId); departmentEmployee.setOrgId(orgId);
...@@ -375,13 +375,13 @@ public class OrgSyncByWxcpJob { ...@@ -375,13 +375,13 @@ public class OrgSyncByWxcpJob {
for (WxCpDepartDto wxCpDepartDto : wxCpDepartDtoList) { for (WxCpDepartDto wxCpDepartDto : wxCpDepartDtoList) {
List<WxCpUser> wxCpUserList = wxCpDepartDto.getWxCpUserList(); List<WxCpUser> wxCpUserList = wxCpDepartDto.getWxCpUserList();
for (WxCpUser wxCpUser : wxCpUserList) { for (WxCpUser wxCpUser : wxCpUserList) {
hashMap.put(corpId + "_" + wxCpUser.getUserId(), wxCpUser); hashMap.put(corpId + "_" + StringUtils.lowerCase(wxCpUser.getUserId()), wxCpUser);
} }
} }
// 计算 变化数据 // 计算 变化数据
for (EmployeeEntity employee : employeeList) { for (EmployeeEntity employee : employeeList) {
String employeeId = employee.getEmployeeId(); String employeeId = StringUtils.lowerCase(employee.getEmployeeId());
WxCpUser wxCpUser = hashMap.get(employeeId); WxCpUser wxCpUser = hashMap.get(employeeId);
//删除 //删除
if (ObjectUtil.isNull(wxCpUser)) { if (ObjectUtil.isNull(wxCpUser)) {
...@@ -440,14 +440,14 @@ public class OrgSyncByWxcpJob { ...@@ -440,14 +440,14 @@ public class OrgSyncByWxcpJob {
for (WxCpDepartDto wxCpDepartDto : wxCpDepartDtoList) { for (WxCpDepartDto wxCpDepartDto : wxCpDepartDtoList) {
List<WxCpUser> wxCpUserList = wxCpDepartDto.getWxCpUserList(); List<WxCpUser> wxCpUserList = wxCpDepartDto.getWxCpUserList();
for (WxCpUser wxCpUser : wxCpUserList) { for (WxCpUser wxCpUser : wxCpUserList) {
hashMap.put(corpId + "_" + wxCpUser.getUserId(), wxCpUser); hashMap.put(corpId + "_" + StringUtils.lowerCase(wxCpUser.getUserId()), wxCpUser);
} }
} }
// 计算 变化数据 // 计算 变化数据
for (UserInfoEntity userInfo : userInfoList) { for (UserInfoEntity userInfo : userInfoList) {
String id = userInfo.getId(); String id = StringUtils.lowerCase(userInfo.getId());
WxCpUser wxCpUser = hashMap.get(id); WxCpUser wxCpUser = hashMap.get(id);
// 删除 // 删除
if (ObjectUtil.isNull(wxCpUser)) { if (ObjectUtil.isNull(wxCpUser)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment