liupeng 4 years ago
parent
commit
393f8124b2

+ 17 - 0
code/sapparent/sapcms/src/main/java/org/fouram/controller/ApiController.java

@@ -28,6 +28,7 @@ import org.fouram.input.FindUsersDTO;
 import org.fouram.service.SapCheckReportService;
 import org.fouram.service.SapOrgService;
 import org.fouram.service.SapUserService;
+import org.fouram.service.SyncSapUserToWxService;
 import org.fouram.service.WxDepartService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -58,6 +59,9 @@ public class ApiController extends BaseController {
 	@Autowired
 	private SapCheckReportService sapCheckReportService;
 	@Autowired
+	private SyncSapUserToWxService syncSapUserToWxService;
+	
+	@Autowired
 	private static final String TOKEN = "UserId";
 
 	/**
@@ -239,6 +243,19 @@ public class ApiController extends BaseController {
 			return AppUtil.error(ResultConstant.WEB_ERR_MSG);
 		}
 	}
+	
+	@ApiOperation(value = "手动同步SAP用户数据")
+	@PostMapping(value = "/syncWeixinUser", produces = "application/json;charset=utf-8")
+	@ResponseBody
+	public Object syncWeixinUser() {
+		try {
+			syncSapUserToWxService.taskBiz();
+			return AppUtil.success();
+		} catch (Exception e) {
+			LoggerUtil.error(e);
+			return AppUtil.error(ResultConstant.WEB_ERR_MSG);
+		}
+	}
 
 	/**
 	 * 删除离职员工

+ 0 - 19
code/sapparent/sapcms/src/main/java/org/fouram/controller/TaskController.java

@@ -5,7 +5,6 @@ import org.fouram.core.util.AppUtil;
 import org.fouram.core.util.AppUtil.ResultConstant;
 import org.fouram.core.util.LoggerUtil;
 import org.fouram.service.SapReportService;
-import org.fouram.service.SyncSapUserToWxService;
 import org.fouram.service.TestUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -21,24 +20,6 @@ public class TaskController extends BaseController {
 	private TestUserService testUserService;
 	@Autowired
 	private SapReportService sapReportService;
-	@Autowired
-	private SyncSapUserToWxService syncSapUserToWxService;
-
-	/**
-	 * http://localhost:8080/sapcms/task/syncWeixinUser
-	 * @return
-	 */
-	@PostMapping(value = "/syncWeixinUser", produces = "application/json;charset=utf-8")
-	@ResponseBody
-	public Object syncWeixinUser() {
-		try {
-			syncSapUserToWxService.taskBiz();
-			return AppUtil.success();
-		} catch (Exception e) {
-			LoggerUtil.error(e);
-			return AppUtil.error(ResultConstant.WEB_ERR_MSG);
-		}
-	}
 	
 	/**
 	 * http://localhost:8080/sapcms/task/createOrUpdateWXUsers

+ 0 - 6
code/sapparent/sapservice/src/main/java/org/fouram/entity/SapUser.java

@@ -42,12 +42,6 @@ public class SapUser implements Serializable {
 	private String thirdOrgName;
 	private String fourthOrgName;
 
-	// 微信机构 非表字段
-	private Long firstWxDepartId;
-	private Long secondWxDepartId;
-	private Long thirdWxDepartId;
-	private Long fourthWxDepartId;
-
 	// sap职位
 	private String position;
 	private String formatPosition;

+ 18 - 42
code/sapparent/sapservice/src/main/java/org/fouram/service/SapOrgService.java

@@ -4,6 +4,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang3.StringUtils;
 import org.fouram.constants.WebConstants;
 import org.fouram.core.base.service.BaseService;
 import org.fouram.core.base.service.RequestService;
@@ -124,37 +125,6 @@ public class SapOrgService extends BaseService {
 		return sapUsers;
 	}
 
-	public Map<String, Long> updateAllWxDepartId() throws Exception {
-		Map<String, Long> result = Maps.newHashMap();
-		List<SapOrg> firstOrgs = selectListByParentId(WebConstants.TOP_DEPART.toString());
-		List<SapOrg> allOrgs = Lists.newArrayList();
-		for (SapOrg firstOrg : firstOrgs) {
-			firstOrg.setWxDepartId(getWxDepartId(firstOrg, WebConstants.TOP_DEPART));
-			allOrgs.add(firstOrg);
-			List<SapOrg> sencodOrgs = selectListByParentId(firstOrg.getId());
-			for (SapOrg sencodOrg : sencodOrgs) {
-				sencodOrg.setWxDepartId(getWxDepartId(sencodOrg, firstOrg.getWxDepartId()));
-				allOrgs.add(sencodOrg);
-				List<SapOrg> thirdOrgs = selectListByParentId(sencodOrg.getId());
-				for (SapOrg thirdOrg : thirdOrgs) {
-					thirdOrg.setWxDepartId(getWxDepartId(thirdOrg, sencodOrg.getWxDepartId()));
-					allOrgs.add(thirdOrg);
-					List<SapOrg> fourthOrgs = selectListByParentId(thirdOrg.getId());
-					for (SapOrg fourthOrg : fourthOrgs) {
-						fourthOrg.setWxDepartId(getWxDepartId(fourthOrg, thirdOrg.getWxDepartId()));
-						allOrgs.add(fourthOrg);
-					}
-				}
-			}
-		}
-
-		for (SapOrg org : allOrgs) {
-			updateWxDepartId(org);
-			result.put(org.getId(), org.getWxDepartId());
-		}
-		return result;
-	}
-
 	public Map<String, Long> updateWxDepartId(SapUser user) throws Exception {
 		Map<String, Long> result = Maps.newHashMap();
 		List<SapOrg> allOrgs = Lists.newArrayList();
@@ -163,17 +133,23 @@ public class SapOrgService extends BaseService {
 		firstOrg.setWxDepartId(getWxDepartId(firstOrg, WebConstants.TOP_DEPART));
 		allOrgs.add(firstOrg);
 
-		SapOrg sencodOrg = selectById(user.getSecondOrgId());
-		sencodOrg.setWxDepartId(getWxDepartId(sencodOrg, firstOrg.getWxDepartId()));
-		allOrgs.add(sencodOrg);
-
-		SapOrg thirdOrg = selectById(user.getThirdOrgId());
-		thirdOrg.setWxDepartId(getWxDepartId(thirdOrg, sencodOrg.getWxDepartId()));
-		allOrgs.add(thirdOrg);
-
-		SapOrg fourthOrg = selectById(user.getFourthOrgId());
-		fourthOrg.setWxDepartId(getWxDepartId(fourthOrg, thirdOrg.getWxDepartId()));
-		allOrgs.add(fourthOrg);
+		if(StringUtils.isNotBlank(user.getSecondOrgId())) {
+			SapOrg sencodOrg = selectById(user.getSecondOrgId());
+			sencodOrg.setWxDepartId(getWxDepartId(sencodOrg, firstOrg.getWxDepartId()));
+			allOrgs.add(sencodOrg);
+			
+			if(StringUtils.isNotBlank(user.getThirdOrgId())) {
+				SapOrg thirdOrg = selectById(user.getThirdOrgId());
+				thirdOrg.setWxDepartId(getWxDepartId(thirdOrg, sencodOrg.getWxDepartId()));
+				allOrgs.add(thirdOrg);
+				
+				if (StringUtils.isNotBlank(user.getFourthOrgId())) {
+					SapOrg fourthOrg = selectById(user.getFourthOrgId());
+					fourthOrg.setWxDepartId(getWxDepartId(fourthOrg, thirdOrg.getWxDepartId()));
+					allOrgs.add(fourthOrg);
+				}
+			}
+		}
 
 		for (SapOrg org : allOrgs) {
 			updateWxDepartId(org);

+ 14 - 11
code/sapparent/sapservice/src/main/java/org/fouram/service/SapUserService.java

@@ -3,6 +3,7 @@ package org.fouram.service;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
 import org.fouram.constants.WebConstants;
@@ -195,32 +196,34 @@ public class SapUserService extends BaseService {
 	private String createOrUpdateWXUser(String personId) throws Exception {
 		List<SapUser> sapUsers = selectListByPersonId(personId);
 		SapUser primarySapUser = sapUsers.get(0);
-		String mobile = primarySapUser.getFormatBusinessPhone();
+		String formatMobile = primarySapUser.getFormatMobile();
 		// 测试企业微信,手机号码脱敏
 		// fouram wxCp.corpId = ww51602aeb8dab7a95
 		// prod wxCp.corpId = ww911e29458d3a46fd
 		if (!ConfConfig.getConfigString("wxCp.corpId").equals("ww911e29458d3a46fd")) {
-			if (StringUtils.isNotBlank(mobile) && mobile.length() == 11) {
-				mobile = mobile.substring(0, 8) + "999";
+			if (StringUtils.isNotBlank(formatMobile) && formatMobile.length() == 11) {
+				formatMobile = formatMobile.substring(0, 8) + "999";
 			} else {
-				mobile = "";
+				formatMobile = "";
 			}
 		}
+		
 		Long[] firstWxDepartIdList = new Long[sapUsers.size()];
 		Long[] secondWxDepartIdList = new Long[sapUsers.size()];
 		Long[] thirdWxDepartIdList = new Long[sapUsers.size()];
 		Long[] fourthWxDepartIdList = new Long[sapUsers.size()];
 		for (int i = 0; i < sapUsers.size(); i++) {
 			SapUser sapUser = sapUsers.get(i);
-			firstWxDepartIdList[i] = sapUser.getFirstWxDepartId();
-			secondWxDepartIdList[i] = sapUser.getSecondWxDepartId();
-			thirdWxDepartIdList[i] = sapUser.getThirdWxDepartId();
-			fourthWxDepartIdList[i] = sapUser.getFourthWxDepartId();
+			Map<String, Long> map = sapOrgService.updateWxDepartId(sapUser);
+			firstWxDepartIdList[i] = map.get(sapUser.getFirstOrgId());
+			secondWxDepartIdList[i] = map.get(sapUser.getSecondOrgId());
+			thirdWxDepartIdList[i] = map.get(sapUser.getThirdOrgId());
+			fourthWxDepartIdList[i] = map.get(sapUser.getFourthOrgId());
 		}
 		return WXCpUserUtil.createOrUpdate(personId, primarySapUser.getName(), firstWxDepartIdList,
 				secondWxDepartIdList, thirdWxDepartIdList, fourthWxDepartIdList, primarySapUser.getFormatPosition(),
-				primarySapUser.getFormatMobile(), primarySapUser.getGender(), primarySapUser.getUsername(), mobile,
-				primarySapUser.getFirstOrgName());
+				formatMobile, primarySapUser.getGender(), primarySapUser.getUsername(),
+				primarySapUser.getFormatBusinessPhone(), primarySapUser.getFirstOrgName());
 	}
 
 	public SapUser selectByUserId(String userId) throws Exception {
@@ -331,7 +334,7 @@ public class SapUserService extends BaseService {
 			}
 		}
 	}
-	
+
 	public void updateResultByUserId(String result, String userId) throws Exception {
 		SapUser sapUser = SapUser.builder().userId(userId).result(result).build();
 		update("SapUserMapper.updateResultByUserId", sapUser);