liupeng 4 years ago
parent
commit
aed91585a9

+ 2 - 10
code/sapparent/sapservice/src/main/java/org/fouram/entity/SapUser.java

@@ -62,6 +62,8 @@ public class SapUser implements Serializable {
 	private Boolean isPrimary;
 	private String result;
 	private Integer delFlag;
+	private String startDate;
+	private String endDate;
 	
 	@ApiModelProperty(value = "忽略时间")
 	@JsonFormat(pattern = "yyyy-MM-dd")
@@ -99,14 +101,4 @@ public class SapUser implements Serializable {
 		}
 		return sb.toString();
 	}
-
-	@Override
-	public String toString() {
-		StringBuilder sBuilder = new StringBuilder();
-		sBuilder.append(userId).append(personId).append(name).append(firstOrgName).append(firstOrgId)
-				.append(secondOrgName).append(secondOrgId).append(thirdOrgName).append(thirdOrgId).append(fourthOrgName)
-				.append(fourthOrgId).append(position).append(mobile).append(businessPhone).append(gender).append(email)
-				.append(isPrimary);
-		return sBuilder.toString();
-	}
 }

+ 11 - 4
code/sapparent/sapservice/src/main/java/org/fouram/mapper/SapUserMapper.xml

@@ -6,12 +6,12 @@
 			firstOrgId,secondOrgId,thirdOrgId,fourthOrgId,
 			firstOrgName,secondOrgName,thirdOrgName,fourthOrgName,
 			position,formatPosition,mobile,formatMobile,businessPhone,formatBusinessPhone,gender,
-			email,formatEmail,isPrimary,delFlag,createDate,result,sortNumber) 
+			email,formatEmail,isPrimary,delFlag,createDate,result,sortNumber,startData,endData) 
 		values (#{userId},#{personId},#{username},#{name},
 			#{firstOrgId},#{secondOrgId},#{thirdOrgId},#{fourthOrgId},
 			#{firstOrgName},#{secondOrgName},#{thirdOrgName},#{fourthOrgName},
 			#{position},#{formatPosition},#{mobile},#{formatMobile},#{businessPhone},#{formatBusinessPhone},#{gender},
-			#{email},#{formatEmail},#{isPrimary},#{delFlag},#{createDate},#{result},#{sortNumber})
+			#{email},#{formatEmail},#{isPrimary},#{delFlag},#{createDate},#{result},#{sortNumber},#{startData},#{endData})
 	</insert>
 	
 	<update id="updateOne">
@@ -25,7 +25,8 @@
 			mobile=#{mobile},formatMobile=#{formatMobile},
 			businessPhone=#{businessPhone},formatBusinessPhone=#{formatBusinessPhone},
 			gender=#{gender},email=#{email},formatEmail=#{formatEmail},
-			isPrimary=#{isPrimary},result=#{result},delFlag=#{delFlag}
+			isPrimary=#{isPrimary},result=#{result},delFlag=#{delFlag},
+			startData=#{startData},endData=#{endData}
 		where userId=#{userId}
 	</update>
 	
@@ -130,7 +131,13 @@
 		<if test="name != null and name != ''">
 			and name like CONCAT(CONCAT('%', #{name}),'%')
 		</if>
-		order by sortNumber ASC
+		<!-- 排序 -->
+		<if test="result == 'LEAVE'">
+			order by endDate desc
+		</if>
+		<if test="result != 'LEAVE'">
+			order by startDate desc
+		</if>
 	</select>
 	
 	<select id="selectIngorePrimaryList" resultType="SapUser">

+ 39 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapEmpEmploymentService.java

@@ -0,0 +1,39 @@
+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 SapEmpEmploymentService extends BaseService {
+
+	@Autowired
+	private RequestService requestService;
+
+	public void setStartDate(List<SapUser> sapUsers) {
+		String url = "https://api15.sapsf.cn/odata/v2/EmpEmployment?$filter=userId in %s&$format=json";
+		url = String.format(url, getUserIds(sapUsers));
+		JsonNode node = requestService.getForObject(url, getHttpHeaders());
+		Map<String, String> map = Maps.newHashMap();
+		if (node != null) {
+			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
+			while (iterator.hasNext()) {
+				JsonNode userNode = iterator.next();
+				map.put(JsonNodeUtil.getValue(userNode, "userId"), JsonNodeUtil.getValue(userNode, "startDate"));
+			}
+		}
+		for (SapUser sapUser : sapUsers) {
+			sapUser.setStartDate(map.get(sapUser.getUserId()));
+		}
+	}
+}

+ 39 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapEmpEmploymentTerminationService.java

@@ -0,0 +1,39 @@
+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 SapEmpEmploymentTerminationService extends BaseService {
+
+	@Autowired
+	private RequestService requestService;
+
+	public void setEndDate(List<SapUser> sapUsers) {
+		String url = "https://api15.sapsf.cn/odata/v2/EmpEmploymentTermination?$filter=userId in %s&$format=json";
+		url = String.format(url, getUserIds(sapUsers));
+		JsonNode node = requestService.getForObject(url, getHttpHeaders());
+		Map<String, String> map = Maps.newHashMap();
+		if (node != null) {
+			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
+			while (iterator.hasNext()) {
+				JsonNode userNode = iterator.next();
+				map.put(JsonNodeUtil.getValue(userNode, "userId"), JsonNodeUtil.getValue(userNode, "endDate"));
+			}
+		}
+		for (SapUser sapUser : sapUsers) {
+			sapUser.setEndDate(map.get(sapUser.getUserId()));
+		}
+	}
+}

+ 8 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapUserService.java

@@ -54,6 +54,10 @@ public class SapUserService extends BaseService {
 	private SapPersonalService sapPersonalService;
 	@Autowired
 	private SapBlacklistService sapBlacklistService;
+	@Autowired
+	private SapEmpEmploymentService sapEmpEmploymentService;
+	@Autowired
+	private SapEmpEmploymentTerminationService sapEmpEmploymentTerminationService;
 
 	public void saveOrUpdateSapUsers() throws Exception {
 		HttpHeaders headers = getHttpHeaders();
@@ -90,6 +94,10 @@ public class SapUserService extends BaseService {
 		sapPersonalService.setGender(sapUsers);
 		// 获取用户对应职务
 		sapEmpJobService.setPosition(sapUsers);
+		// EmpEmployment->startDate 
+		sapEmpEmploymentService.setStartDate(sapUsers);
+		// EmpEmploymentTermination->endDate
+		sapEmpEmploymentTerminationService.setEndDate(sapUsers);
 		// 更新用户
 		SapUser sapUserDb = null;
 		SapUser sapUser = null;