|
@@ -24,65 +24,61 @@ public class TaskService extends BaseService {
|
|
|
private SapUserService sapUserService;
|
|
|
|
|
|
@Transactional
|
|
|
- public void syncWeixinUser() {
|
|
|
+ public void syncWeixinUser() throws Exception {
|
|
|
LoggerUtil.info("同步开始->" + DateUtil.getTime());
|
|
|
- try {
|
|
|
- // 更新所有数据删除
|
|
|
- sapUserService.updateAllDelete();
|
|
|
-
|
|
|
- // 获取SAP所有用户数据
|
|
|
- List<SapUser> getSapUsers = sapUserService.getSapUsers();
|
|
|
-
|
|
|
- // 根据机构获取对应企业微信id,同时更新企业微信对应部门名称
|
|
|
- Map<String, Long> orgWxDepartMap = sapOrgService.updateAllWxDepartId();
|
|
|
-
|
|
|
- LoggerUtil.info("接口获取所有有效数据->" + getSapUsers.size());
|
|
|
-
|
|
|
- // 遍历用户,企业微信用户没有,新增用户并且同步企业微信;数据已有情况,数据未发生变化的,更新为未删除;数据发生变化的,同步微信用户,更新为未删除
|
|
|
- for (int i = 0; i < getSapUsers.size(); i ++) {
|
|
|
- SapUser sapUser = getSapUsers.get(i);
|
|
|
- sapUser.setFirstOrgWxDepartId(orgWxDepartMap.get(sapUser.getFirstOrgId()));
|
|
|
- sapUser.setSecondOrgWxDepartId(orgWxDepartMap.get(sapUser.getSecondOrgId()));
|
|
|
- sapUser.setThirdOrgWxDepartId(orgWxDepartMap.get(sapUser.getThirdOrgId()));
|
|
|
- sapUser.setFourthOrgWxDepartId(orgWxDepartMap.get(sapUser.getFourthOrgId()));
|
|
|
- sapUser.setSortNumber(i + 1);
|
|
|
- SapUser sapUserDb = sapUserService.selectByUserId(sapUser.getUserId());
|
|
|
- if (sapUserDb == null) {
|
|
|
- sapUserService.saveOneAndSyncWX(sapUser);
|
|
|
+ // 更新所有数据删除
|
|
|
+ sapUserService.updateAllDelete();
|
|
|
+
|
|
|
+ // 获取SAP所有用户数据
|
|
|
+ List<SapUser> getSapUsers = sapUserService.getSapUsers();
|
|
|
+
|
|
|
+ // 根据机构获取对应企业微信id,同时更新企业微信对应部门名称
|
|
|
+ Map<String, Long> orgWxDepartMap = sapOrgService.updateAllWxDepartId();
|
|
|
+
|
|
|
+ LoggerUtil.info("接口获取所有有效数据->" + getSapUsers.size());
|
|
|
+
|
|
|
+ // 遍历用户,企业微信用户没有,新增用户并且同步企业微信;数据已有情况,数据未发生变化的,更新为未删除;数据发生变化的,同步微信用户,更新为未删除
|
|
|
+ for (int i = 0; i < getSapUsers.size(); i++) {
|
|
|
+ SapUser sapUser = getSapUsers.get(i);
|
|
|
+ sapUser.setFirstOrgWxDepartId(orgWxDepartMap.get(sapUser.getFirstOrgId()));
|
|
|
+ sapUser.setSecondOrgWxDepartId(orgWxDepartMap.get(sapUser.getSecondOrgId()));
|
|
|
+ sapUser.setThirdOrgWxDepartId(orgWxDepartMap.get(sapUser.getThirdOrgId()));
|
|
|
+ sapUser.setFourthOrgWxDepartId(orgWxDepartMap.get(sapUser.getFourthOrgId()));
|
|
|
+ sapUser.setSortNumber(i + 1);
|
|
|
+ SapUser sapUserDb = sapUserService.selectByUserId(sapUser.getUserId());
|
|
|
+ if (sapUserDb == null) {
|
|
|
+ sapUserService.saveOneAndSyncWX(sapUser);
|
|
|
+ } else {
|
|
|
+ if (!isEquals(sapUserDb, sapUser)) {
|
|
|
+ sapUserService.updateOneAndSyncWX(sapUser);
|
|
|
} else {
|
|
|
- if (!isEquals(sapUserDb, sapUser)) {
|
|
|
- sapUserService.updateOneAndSyncWX(sapUser);
|
|
|
- } else {
|
|
|
- sapUserService.updateEnable(sapUser.getUserId());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 更新用户头像
|
|
|
- List<SapUser> successUsers = sapUserService.selectSuccessList();
|
|
|
- for (SapUser sapUser : successUsers) {
|
|
|
- WxCpUser user = WXCpUserUtil.getById(sapUser.getPersonId());
|
|
|
- if(user != null && StringUtils.isNotBlank(user.getAvatar())) {
|
|
|
- sapUser.setAvatar(user.getAvatar());
|
|
|
- sapUserService.updateAvatar(sapUser);
|
|
|
+ sapUserService.updateEnable(sapUser.getUserId());
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- // 查询未更新delFlag数据对应企业微信账号
|
|
|
- List<SapUser> deleteSapUsers = sapUserService.selectDeleteList();
|
|
|
- LoggerUtil.info("SAP删除数据->" + deleteSapUsers.size());
|
|
|
-// for(SapUser sapUser : deleteSapUsers) {
|
|
|
-// WXCpUserUtil.delete(sapUser.getPersonId());
|
|
|
-// }
|
|
|
-
|
|
|
- // 部分数据插入微信未成功,处理数据后,重新插入
|
|
|
- List<SapUser> unSyncSapUsers = sapUserService.selectUnSyncList();
|
|
|
- LoggerUtil.info("部分未成功插入数据->" + unSyncSapUsers.size());
|
|
|
- for (SapUser sapUser : unSyncSapUsers) {
|
|
|
- sapUserService.updateOneAndSyncWX(sapUser);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新用户头像
|
|
|
+ List<SapUser> successUsers = sapUserService.selectSuccessList();
|
|
|
+ for (SapUser sapUser : successUsers) {
|
|
|
+ WxCpUser user = WXCpUserUtil.getById(sapUser.getPersonId());
|
|
|
+ if (user != null && StringUtils.isNotBlank(user.getAvatar())) {
|
|
|
+ sapUser.setAvatar(user.getAvatar());
|
|
|
+ sapUserService.updateAvatar(sapUser);
|
|
|
}
|
|
|
- } catch (Exception e) {
|
|
|
- LoggerUtil.error(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询未更新delFlag数据对应企业微信账号
|
|
|
+ List<SapUser> deleteSapUsers = sapUserService.selectDeleteList();
|
|
|
+ LoggerUtil.info("SAP删除数据->" + deleteSapUsers.size());
|
|
|
+// for(SapUser sapUser : deleteSapUsers) {
|
|
|
+// WXCpUserUtil.delete(sapUser.getPersonId());
|
|
|
+// }
|
|
|
+
|
|
|
+ // 部分数据插入微信未成功,处理数据后,重新插入
|
|
|
+ List<SapUser> unSyncSapUsers = sapUserService.selectUnSyncList();
|
|
|
+ LoggerUtil.info("部分未成功插入数据->" + unSyncSapUsers.size());
|
|
|
+ for (SapUser sapUser : unSyncSapUsers) {
|
|
|
+ sapUserService.updateOneAndSyncWX(sapUser);
|
|
|
}
|
|
|
LoggerUtil.info("同步结束->" + DateUtil.getTime());
|
|
|
}
|