Explorar el Código

Merge branch 'master' of https://git.jiinfo.cn/cmc-project/cmc_weixin_sap

liupeng hace 4 años
padre
commit
fa0a14a23d

+ 1 - 1
code/sapparent/sapservice/src/main/java/org/fouram/core/plugin/weixin/cp/util/WXCpUserUtil.java

@@ -185,6 +185,6 @@ public class WXCpUserUtil {
 	}
 
 	public static void main(String[] args) throws WxErrorException {
-		System.out.println(getByIdOrEmail("kevin.wang@cmcpix.com", "kevin.wang@cmcpix.com"));
+		System.out.println(getByIdOrEmail("300026", "juri.hu@cmcinc.cn"));
 	}
 }

+ 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();
-	}
 }

+ 6 - 6
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,startDate,endDate) 
 		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},#{startDate},#{endDate})
 	</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},
+			startDate=#{startDate},endDate=#{endDate}
 		where userId=#{userId}
 	</update>
 	
@@ -103,7 +104,7 @@
 		<if test="level == 4">
 			and fourthOrgId = #{departId}
 		</if>
-		order by sortNumber ASC
+		order by startDate desc, createDate desc
 	</select>
 	
 	<select id="selectToBeConfirmedPrimaryList" resultType="SapUser">
@@ -115,7 +116,7 @@
 		<if test="name != null and name != ''">
 			and name like CONCAT(CONCAT('%', #{name}),'%')
 		</if>
-		order by sortNumber ASC
+		order by startDate desc, createDate desc
 		<if test="pageCurrent != null and pageCurrent != ''">
 			limit ${pageCurrent},${pageSize}
 		</if>
@@ -130,7 +131,6 @@
 		<if test="name != null and name != ''">
 			and name like CONCAT(CONCAT('%', #{name}),'%')
 		</if>
-		order by sortNumber ASC
 	</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()));
+		}
+	}
+}

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

@@ -13,8 +13,10 @@ 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.ConfConfig;
+import org.fouram.core.util.DateUtil;
 import org.fouram.core.util.JSONUtil;
 import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.core.util.LoggerUtil;
 import org.fouram.core.util.Tools;
 import org.fouram.dto.input.GetIngoreListDTO;
 import org.fouram.dto.input.GetToBeConfirmedListDTO;
@@ -54,6 +56,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();
@@ -86,10 +92,19 @@ public class SapUserService extends BaseService {
 		}
 		// 获取用户对应机构
 		sapOrgService.setOrg(sapUsers);
+		LoggerUtil.info("saveWxDeparts->setOrg:" + DateUtil.getTime());
 		// 获取用户对应性别
 		sapPersonalService.setGender(sapUsers);
+		LoggerUtil.info("saveWxDeparts->setGender:" + DateUtil.getTime());
 		// 获取用户对应职务
 		sapEmpJobService.setPosition(sapUsers);
+		LoggerUtil.info("saveWxDeparts->setPosition:" + DateUtil.getTime());
+		// EmpEmployment->startDate 
+		sapEmpEmploymentService.setStartDate(sapUsers);
+		LoggerUtil.info("saveWxDeparts->setStartDate:" + DateUtil.getTime());
+		// EmpEmploymentTermination->endDate
+		sapEmpEmploymentTerminationService.setEndDate(sapUsers);
+		LoggerUtil.info("saveWxDeparts->setEndDate:" + DateUtil.getTime());
 		// 更新用户
 		SapUser sapUserDb = null;
 		SapUser sapUser = null;

+ 7 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SyncSapUserToWxService.java

@@ -47,18 +47,25 @@ public class SyncSapUserToWxService extends BaseService {
 			WebConstants.CACHE.put(WebConstants.CACHE_SYNC_SAP, DateUtil.getTime());
 			// 更新微信部门
 			wxDepartService.saveWxDeparts();
+			LoggerUtil.info("saveWxDeparts:" + DateUtil.getTime());
 			// 更新微信用户
 			wxUserService.saveWxUsers();
+			LoggerUtil.info("saveWxUsers:" + DateUtil.getTime());
 			// 更新所有数据无效
 			sapUserService.updateAllDelFlag(DelFlagEnum.UNABLE.getCode());
+			LoggerUtil.info("updateAllDelFlag:" + DateUtil.getTime());
 			// 保存SAP用户数据
 			sapUserService.saveOrUpdateSapUsers();
+			LoggerUtil.info("saveOrUpdateSapUsers:" + DateUtil.getTime());
 			// 更新异常情况,敏感数据、入职等
 			sapUserService.updateAbnormalResult();
+			LoggerUtil.info("updateAbnormalResult:" + DateUtil.getTime());
 			// 更新用户头像
 			sapUserService.updateAvatars();
+			LoggerUtil.info("updateAvatars:" + DateUtil.getTime());
 			// NORMAL数据更新同步企业微信
 			sapUserService.updateAllNormalSyncWxResult();
+			LoggerUtil.info("updateAllNormalSyncWxResult:" + DateUtil.getTime());
 		} catch (Exception e) {
 			LoggerUtil.error(e);
 		} finally {