liupeng 5 tahun lalu
induk
melakukan
191545e648

+ 14 - 0
code/sapparent/sapservice/src/main/java/org/fouram/core/util/JsonNodeUtil.java

@@ -0,0 +1,14 @@
+package org.fouram.core.util;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class JsonNodeUtil {
+	
+	public static String getValue(JsonNode userNode, String key1, String key2) {
+		String value = null;
+		if (userNode.get(key1) != null && userNode.get(key1).get(key2) != null) {
+			value = userNode.get(key1).get(key2).asText().trim();// 是否管理层
+		}
+		return value;
+	}
+}

+ 1 - 1
code/sapparent/sapservice/src/main/java/org/fouram/mapper/SapReportMapper.xml

@@ -50,7 +50,7 @@
 	</insert>
 	
 	<insert id="saveSapEmpJob">
-		insert into SapEmpJob(userId,positionName,positionEntryDate,companyName,businessUnitName,
+		insert into sapempjob(userId,positionName,positionEntryDate,companyName,businessUnitName,
 			divisionName,departmentName,teamName,locationName,managerId,jobCodeName,
 			jobTitle,rank,managementOrNot) 
 		values (#{userId},#{positionName},#{positionEntryDate},#{companyName},#{businessUnitName},

+ 24 - 21
code/sapparent/sapservice/src/main/java/org/fouram/service/SapReportService.java

@@ -5,6 +5,7 @@ import java.util.List;
 
 import org.fouram.core.base.service.BaseService;
 import org.fouram.core.base.service.RequestService;
+import org.fouram.core.util.JsonNodeUtil;
 import org.fouram.entity.SapCertificates;
 import org.fouram.entity.SapCourses;
 import org.fouram.entity.SapEducation;
@@ -55,9 +56,11 @@ public class SapReportService extends BaseService {
 //		this.saveSapInsideWorkExperience(headers, userIds);
 //		this.saveSapLanguages(headers, personIds, userIds);
 //		this.saveSapOverallPerformance(headers, userIds);
-		this.saveSapOutsideWorkExperience(headers, userIds);
+
+		this.saveSapEmpJob(headers, userIds);
+
+//		this.saveSapOutsideWorkExperience(headers, userIds);
 //		this.saveSapEmpEmployment(headers, personIds, userIds);
-//		this.saveSapEmpJob(headers, personIds, userIds);
 //		this.saveSapEmpJobRelationships(headers, userIds);
 //		this.saveSapPerEmail(headers, personIds, userIds);
 //		this.saveSapPerGlobalInfoCHN(headers, personIds, userIds);
@@ -255,31 +258,31 @@ public class SapReportService extends BaseService {
 	}
 
 	// 组织以及职位信息 EmpJob
-	public void saveSapEmpJob(HttpHeaders headers, String personIds, String userIds) throws Exception {
+	public void saveSapEmpJob(HttpHeaders headers, String userIds) throws Exception {
 		String url = "https://api15.sapsf.cn/odata/v2/EmpJob?$filter=userId in %s&$format=json"
 				+ "&$expand=positionNav,companyNav,divisionNav,departmentNav,customString19Nav,locationNav,jobCodeNav,customString2Nav,customString4Nav";
-		url = String.format(url, personIds);
+		url = String.format(url, userIds);
 		JsonNode node = requestService.getForObject(url, headers);
 		if (node != null) {
 			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
 			while (iterator.hasNext()) {
 				JsonNode userNode = iterator.next();
 				String userId = userNode.get("userId").asText().trim();
-				String positionName = userNode.get("positionNav").get("externalName_zh_CN").asText().trim();// 职位
+				String positionName = JsonNodeUtil.getValue(userNode, "positionNav", "externalName_zh_CN");// 职位
 				String positionEntryDate = userNode.get("positionEntryDate").asText().trim();// 就职日期
 				// TODO 在职时间
-				String companyName = userNode.get("companyNav").get("name").asText().trim();// 公司
-				String businessUnitName = userNode.get("businessUnitNav").get("name").asText().trim();// 业务单元
-				String divisionName = userNode.get("divisionNav").get("name").asText().trim();// 部门
-				String departmentName = userNode.get("departmentNav").get("name").asText().trim();// 团队
-				String teamName = userNode.get("customString19Nav").get("externalName_zh_CN").asText().trim();// 小组
-				String locationName = userNode.get("locationNav").get("name").asText().trim();// 工作地点
+				String companyName = JsonNodeUtil.getValue(userNode, "companyNav", "name");// 公司
+				String businessUnitName = JsonNodeUtil.getValue(userNode, "businessUnitNav", "name");// 业务单元
+				String divisionName = JsonNodeUtil.getValue(userNode, "divisionNav", "name");// 部门
+				String departmentName = JsonNodeUtil.getValue(userNode, "departmentNav", "name");// 团队
+				String teamName = JsonNodeUtil.getValue(userNode, "customString19Nav", "externalName_zh_CN");// 小组
+				String locationName = JsonNodeUtil.getValue(userNode, "locationNav", "name");// 工作地点
 				String managerId = userNode.get("managerId").asText().trim();// 直线经理
-				String jobCodeName = userNode.get("jobCodeNav").get("name").asText().trim();// 职务分类
+				String jobCodeName = JsonNodeUtil.getValue(userNode, "jobCodeNav", "name");// 职务分类
 				String jobTitle = userNode.get("jobTitle").asText().trim();// 标准职务名称
 				// TODO 员工性质
-				String rank = userNode.get("customString2Nav").get("externalCode").asText().trim();// 职级
-				String managementOrNot = userNode.get("customString4Nav").get("externalCode").asText().trim();// 是否管理层
+				String rank = JsonNodeUtil.getValue(userNode, "customString2Nav", "externalCode");// 职级
+				String managementOrNot = JsonNodeUtil.getValue(userNode, "customString4Nav", "externalCode");// 是否管理层
 				SapEmpJob entity = SapEmpJob.builder().userId(userId).positionName(positionName)
 						.positionEntryDate(positionEntryDate).companyName(companyName)
 						.businessUnitName(businessUnitName).divisionName(divisionName).departmentName(departmentName)
@@ -300,9 +303,9 @@ public class SapReportService extends BaseService {
 			while (iterator.hasNext()) {
 				JsonNode userNode = iterator.next();
 				String userId = userNode.get("userId").asText().trim();
-				String relationshipTypeCode = userNode.get("relationshipTypeNav").get("externalCode").asText().trim();// 关系类型
-				String relUserName = userNode.get("relUserNav").get("lastName").asText().trim()
-						+ userNode.get("relUserNav").get("firstName").asText().trim();// 姓名
+				String relationshipTypeCode = JsonNodeUtil.getValue(userNode, "relationshipTypeNav", "externalCode");// 关系类型
+				String relUserName = JsonNodeUtil.getValue(userNode, "relUserNav", "lastName")
+						+ JsonNodeUtil.getValue(userNode, "relUserNav", "firstName");// 姓名
 				SapEmpJobRelationships entity = SapEmpJobRelationships.builder().userId(userId)
 						.relationshipTypeCode(relationshipTypeCode).relUserName(relUserName).build();
 				save("SapReportMapper.saveSapEmpJobRelationships", entity);
@@ -313,7 +316,7 @@ public class SapReportService extends BaseService {
 	// 先前工作经历 Background_OutsideWorkExperience
 	public void saveSapOutsideWorkExperience(HttpHeaders headers, String userIds) throws Exception {
 		delete("SapReportMapper.deleteSapOutsideWorkExperience", null);
-		
+
 		String url = "https://api15.sapsf.cn/odata/v2/Background_OutsideWorkExperience?$filter=userId in %s&$format=json";
 		url = String.format(url, userIds);
 		JsonNode node = requestService.getForObject(url, headers);
@@ -416,7 +419,7 @@ public class SapReportService extends BaseService {
 	// 证书 Background_Certificates
 	public void saveSapCertificates(HttpHeaders headers, String userIds) throws Exception {
 		delete("SapReportMapper.deleteSapCertificates", null);
-		
+
 		String url = "https://api15.sapsf.cn/odata/v2/Background_Certificates?$filter=userId in %s&$format=json";
 		url = String.format(url, userIds);
 		JsonNode node = requestService.getForObject(url, headers);
@@ -440,7 +443,7 @@ public class SapReportService extends BaseService {
 	// 语言能力 Background_Languages
 	public void saveSapLanguages(HttpHeaders headers, String personIds, String userIds) throws Exception {
 		delete("SapReportMapper.deleteSapLanguages", null);
-		
+
 		String url = "https://api15.sapsf.cn/odata/v2/Background_Languages?$filter=userId in %s&$format=json&$expand=languageNav,speakingProfNav,readingProfNav,writingProfNav";
 		url = String.format(url, personIds);
 		JsonNode node = requestService.getForObject(url, headers);
@@ -464,7 +467,7 @@ public class SapReportService extends BaseService {
 	// 绩效历史 TrendData_SysOverallPerformance
 	public void saveSapOverallPerformance(HttpHeaders headers, String userIds) throws Exception {
 		delete("SapReportMapper.deleteSapOverallPerformance", null);
-		
+
 		String url = "https://api15.sapsf.cn/odata/v2/TrendData_SysOverallPerformance?$filter=userId in %s&$format=json";
 		url = String.format(url, userIds);
 		JsonNode node = requestService.getForObject(url, headers);

+ 2 - 5
code/sapparent/sapservice/src/main/java/org/fouram/service/SapUserService.java

@@ -10,6 +10,7 @@ import org.fouram.core.base.service.BaseService;
 import org.fouram.core.base.service.RequestService;
 import org.fouram.core.plugin.weixin.cp.util.WXCpUserUtil;
 import org.fouram.core.util.Base64Util;
+import org.fouram.core.util.JsonNodeUtil;
 import org.fouram.core.util.Tools;
 import org.fouram.entity.SapOrg;
 import org.fouram.entity.SapUser;
@@ -53,11 +54,7 @@ public class SapUserService extends BaseService {
 					String businessPhone = userNode.get("businessPhone").asText().trim();
 					String formatMobile = formatMobile(mobile).trim();
 					String email = userNode.get("email").asText().trim();
-					String personId = null;
-					JsonNode personKeyNav = userNode.get("personKeyNav");
-					if (personKeyNav != null && personKeyNav.get("personIdExternal") != null) {
-						personId = personKeyNav.get("personIdExternal").asText().trim();
-					}
+					String personId = JsonNodeUtil.getValue(userNode, "personKeyNav", "personIdExternal");
 					// 手机号码脱敏
 //					if (StringUtils.isNotBlank(formatMobile) && formatMobile.length() == 11) {
 //						formatMobile = formatMobile.substring(0, 8) + "999";