liupeng 5 лет назад
Родитель
Сommit
1e9ad4232c

+ 19 - 0
code/sapparent/sapservice/src/main/java/org/fouram/core/base/service/BaseService.java

@@ -1,10 +1,13 @@
 package org.fouram.core.base.service;
 
+import java.util.List;
+
 import javax.annotation.Resource;
 
 import org.fouram.core.base.dao.DAO;
 import org.fouram.core.util.Base64Util;
 import org.fouram.core.util.ConfConfig;
+import org.fouram.entity.SapUser;
 import org.springframework.http.HttpHeaders;
 
 /**
@@ -50,4 +53,20 @@ public abstract class BaseService {
 		String authorizationStr = stringBuilder.append("Basic ").append(Base64Util.encodeString(sapApiUser)).toString();
 		System.out.println(authorizationStr);
 	}
+	
+	public String getPersonIds(List<SapUser> sapUsers) {
+		String personIds = "";
+		for (SapUser sapUser : sapUsers) {
+			personIds += "'" + sapUser.getPersonId() + "',";
+		}
+		return personIds;
+	}
+
+	public String getUserIds(List<SapUser> sapUsers) {
+		String userIds = "";
+		for (SapUser sapUser : sapUsers) {
+			userIds += "'" + sapUser.getUserId() + "',";
+		}
+		return userIds;
+	}
 }

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

@@ -39,7 +39,6 @@ public class SapUser implements Serializable {
 	private Long thirdOrgWxDepartId;
 	private Long fourthOrgWxDepartId;
 	private String position;
-	private String formatPosition;
 	private String mobile;
 	//手机
 	private String formatMobile;

+ 41 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapEmpJobService.java

@@ -0,0 +1,41 @@
+package org.fouram.service;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.fouram.core.base.service.BaseService;
+import org.fouram.core.base.service.RequestService;
+import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.entity.SapUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.google.common.collect.Maps;
+
+@Service
+public class SapEmpJobService extends BaseService {
+
+	@Autowired
+	private RequestService requestService;
+
+	public void setPosition(List<SapUser> sapUsers) {
+		String url = "https://api15.sapsf.cn/odata/v2/EmpJob?$filter=userId in %s&$format=json";
+		url = String.format(url, getUserIds(sapUsers));
+		JsonNode node = requestService.getForObject(url, getHttpHeaders());
+		Map<String, String> jobTitleMap = Maps.newHashMap();
+		if (node != null) {
+			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
+			while (iterator.hasNext()) {
+				JsonNode userNode = iterator.next();
+				String userId = JsonNodeUtil.getValue(userNode, "userId");
+				String jobTitle = JsonNodeUtil.getValue(userNode, "jobTitle");
+				jobTitleMap.put(userId, jobTitle);
+			}
+		}
+		for(SapUser sapUser : sapUsers) {
+			sapUser.setPosition(jobTitleMap.get(sapUser.getUserId()));
+		}
+	}
+}

+ 2 - 1
code/sapparent/sapservice/src/main/java/org/fouram/service/SapOrgService.java

@@ -70,7 +70,8 @@ public class SapOrgService extends BaseService {
 		return sapOrg.getId();
 	}
 
-	public List<SapUser> setOrg(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
+	public List<SapUser> setOrg(List<SapUser> sapUsers) throws Exception {
+		HttpHeaders headers = getHttpHeaders();
 		Map<String, String> businessUnitMap = getOrgMap(headers, "FOBusinessUnit");
 		Map<String, String> divisionMap = getOrgMap(headers, "FODivision");
 		Map<String, String> departmentMap = getOrgMap(headers, "FODepartment");

+ 3 - 4
code/sapparent/sapservice/src/main/java/org/fouram/service/SapPersonalService.java

@@ -9,7 +9,6 @@ import org.fouram.core.base.service.BaseService;
 import org.fouram.core.base.service.RequestService;
 import org.fouram.entity.SapUser;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 
 import com.fasterxml.jackson.databind.JsonNode;
@@ -23,7 +22,7 @@ public class SapPersonalService extends BaseService {
 	@Autowired
 	private RequestService requestService;
 
-	public List<SapUser> setGender(HttpHeaders headers, List<SapUser> sapUsers) {
+	public List<SapUser> setGender(List<SapUser> sapUsers) {
 		String personIds = "";
 		Map<String, List<SapUser>> map = Maps.newHashMap();
 		for (SapUser sapUser : sapUsers) {
@@ -33,9 +32,9 @@ public class SapPersonalService extends BaseService {
 			}
 			map.get(sapUser.getPersonId()).add(sapUser);
 		}
-		String empUrl = "https://api15.sapsf.cn/odata/v2/PerPersonal?$filter=personIdExternal in " + personIds
+		String url = "https://api15.sapsf.cn/odata/v2/PerPersonal?$filter=personIdExternal in " + personIds
 				+ "&$format=json";
-		JsonNode node = requestService.getForObject(empUrl, headers);
+		JsonNode node = requestService.getForObject(url, getHttpHeaders());
 		if (node != null) {
 			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
 			while (iterator.hasNext()) {

+ 0 - 16
code/sapparent/sapservice/src/main/java/org/fouram/service/SapReportService.java

@@ -63,22 +63,6 @@ public class SapReportService extends BaseService {
 //		this.saveSapPerSocialAccount(headers, sapUsers);
 	}
 
-	private String getPersonIds(List<SapUser> sapUsers) {
-		String personIds = "";
-		for (SapUser sapUser : sapUsers) {
-			personIds += "'" + sapUser.getPersonId() + "',";
-		}
-		return personIds;
-	}
-
-	private String getUserIds(List<SapUser> sapUsers) {
-		String userIds = "";
-		for (SapUser sapUser : sapUsers) {
-			userIds += "'" + sapUser.getUserId() + "',";
-		}
-		return userIds;
-	}
-
 	// 基本信息 PerPerson
 	public void saveSapPerPerson(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
 		delete("SapReportMapper.deleteSapPerPerson", null);

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

@@ -30,6 +30,8 @@ public class SapUserService extends BaseService {
 	@Autowired
 	private RequestService requestService;
 	@Autowired
+	private SapEmpJobService sapEmpJobService;
+	@Autowired
 	private SapPersonalService sapPersonalService;
 
 	private static boolean isTestWXSync = true;
@@ -49,47 +51,27 @@ public class SapUserService extends BaseService {
 				if (!userId.startsWith("Test")) {
 					String username = userNode.get("username").asText().trim();
 					String name = userNode.get("lastName").asText().trim() + userNode.get("firstName").asText().trim();
-					String position = userNode.get("jobCode").asText().trim();
-					String formatPosition = formatLastCode(position).trim();
 					String mobile = userNode.get("cellPhone").asText().trim();
 					String businessPhone = userNode.get("businessPhone").asText().trim();
-					String formatMobile = formatMobile(mobile).trim();
 					String email = userNode.get("email").asText().trim();
 					String personId = JsonNodeUtil.getValue(userNode, "personKeyNav", "personIdExternal");
-					// 手机号码脱敏
-//					if (StringUtils.isNotBlank(formatMobile) && formatMobile.length() == 11) {
-//						formatMobile = formatMobile.substring(0, 8) + "999";
-//					} else {
-//						formatMobile = "";
-//					}
-					// 员工信息
 					SapUser sapUser = SapUser.builder().userId(userId).personId(personId).username(username).name(name)
-							.position(position).formatPosition(formatPosition).mobile(mobile).formatMobile(formatMobile)
-							.businessPhone(businessPhone).formatBusinessPhone(businessPhone).email(email)
-							.formatEmail(email).isPrimary(userId.equals(personId)).build();
+							.mobile(mobile).formatMobile(mobile).businessPhone(businessPhone)
+							.formatBusinessPhone(businessPhone).email(email).formatEmail(email)
+							.isPrimary(userId.equals(personId)).build();
 					sapUsers.add(sapUser);
 				}
 			}
 		}
 		// 获取用户对应机构
-		sapUsers = sapOrgService.setOrg(headers, sapUsers);
+		sapOrgService.setOrg(sapUsers);
 		// 获取用户对应性别
-		sapUsers = sapPersonalService.setGender(headers, sapUsers);
+		sapPersonalService.setGender(sapUsers);
+		// 获取用户对应职务
+		sapEmpJobService.setPosition(sapUsers);
 		return sapUsers;
 	}
 
-	private String formatLastCode(String str) {
-		str = str.replace(" ", "");
-		if (str.endsWith(")")) {
-			return str.substring(0, str.lastIndexOf("("));
-		}
-		return str;
-	}
-
-	private String formatMobile(String mobile) {
-		return mobile.replace(" ", "").replace("(86)", "").replace("(86)", "");
-	}
-
 	public void saveOneAndSyncWX(SapUser entity) throws Exception {
 		entity.setCreateDate(new Date());
 		entity.setDelFlag(false);
@@ -139,7 +121,7 @@ public class SapUserService extends BaseService {
 			fourthOrgWxDepartIdList[i] = sapUser.getFourthOrgWxDepartId();
 		}
 		return WXCpUserUtil.createOrUpdate(personId, wxSapUser.getName(), firstOrgWxDepartIdList,
-				secondOrgWxDepartIdList, thirdOrgWxDepartIdList, fourthOrgWxDepartIdList, wxSapUser.getFormatPosition(),
+				secondOrgWxDepartIdList, thirdOrgWxDepartIdList, fourthOrgWxDepartIdList, wxSapUser.getPosition(),
 				wxSapUser.getFormatMobile(), wxSapUser.getGender(), wxSapUser.getFormatEmail(),
 				wxSapUser.getFormatBusinessPhone(), wxSapUser.getFirstOrgName());
 	}
@@ -210,7 +192,7 @@ public class SapUserService extends BaseService {
 	}
 
 	public SapUser toInfoDetail(SapUser sapUser) throws Exception {
-		if(sapUser != null) {
+		if (sapUser != null) {
 			List<SapUser> users = selectListByPersonId(sapUser.getPersonId());
 			List<List<SapOrg>> departList = Lists.newArrayList();
 			for (int i = 0; i < users.size(); i++) {

+ 10 - 6
code/sapparent/sapservice/src/main/resources/env/develop/config.properties

@@ -1,18 +1,22 @@
 #fouram
-#wxCp.corpId = ww51602aeb8dab7a95
+wxCp.corpId = ww51602aeb8dab7a95
 wxCp.corpSecret = 0i1jzYxLcriGTXhoatAGYaCFUXshfASbavRScZQxVmI
 
-wxCp.mailList.corpSecret = aI66cnVoFAd381rgd3NpyZaEP2qnuZJ2ogpZKWmz9qg
-wxCp.redirectUri = http://cmcadressbook.suggest.vip/sapcms
-wxCp.mailList.userId = 1,2,3,4,5,6,7,8,9,10,dd4d61108fecaa34918a555fd1d8cce1,1102
-
 #test
 #wxCp.corpId = ww3fa314d9782219c7
 #wxCp.corpSecret = 80lhnjKd6hKNp1tNkRsN9i0wOtrSZ7Sg_apJDNa1RDQ
 #prod
-wxCp.corpId = ww911e29458d3a46fd
+#wxCp.corpId = ww911e29458d3a46fd
 #wxCp.corpSecret = amUNgH2lo-szEYkLmClZN2jMYcDu0NnXIAtWfW729P4
 
+
+
+wxCp.mailList.corpSecret = aI66cnVoFAd381rgd3NpyZaEP2qnuZJ2ogpZKWmz9qg
+wxCp.redirectUri = http://cmcadressbook.suggest.vip/sapcms
+wxCp.mailList.userId = 1,2,3,4,5,6,7,8,9,10,dd4d61108fecaa34918a555fd1d8cce1,1102
+
+
+
 #test
 #sapApi.user = APIADMIN@cmccoltdD:123456
 #prod