liupeng 4 年之前
父節點
當前提交
77652e4fcc

+ 1 - 2
code/sapparent/sapcms/src/main/java/org/fouram/controller/ApiController.java

@@ -22,7 +22,6 @@ import org.fouram.core.util.ResultUtil;
 import org.fouram.entity.SapOrg;
 import org.fouram.entity.SapUser;
 import org.fouram.enums.DelFlagEnum;
-import org.fouram.enums.SapUserResultEnum;
 import org.fouram.input.FindUsersDTO;
 import org.fouram.service.SapCheckReportService;
 import org.fouram.service.SapOrgService;
@@ -175,7 +174,7 @@ public class ApiController extends BaseController {
 			return AppUtil.error(ResultConstant.NO_TOKEN, ResultConstant.TOKEN_ERR_MSG);
 		}
 		try {
-			return AppUtil.success(sapUserService.selectListByResult(SapUserResultEnum.LEAVE.getCode()), null);
+			return AppUtil.success(sapUserService.selectListByDelFlag(DelFlagEnum.UNABLE.getCode()), null);
 		} catch (Exception e) {
 			LoggerUtil.error(e);
 			return AppUtil.error(ResultConstant.WEB_ERR_MSG);

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

@@ -65,4 +65,14 @@ public class SapUser implements Serializable {
 
 	private List<List<SapOrg>> departList;
 
+	@Override
+	public String toString() {
+		StringBuilder sBuilder = new StringBuilder();
+		sBuilder.append(userId).append(personId).append(username).append(name).append(firstOrgName).append(firstOrgId)
+				.append(firstOrgWxDepartId).append(secondOrgName).append(secondOrgId).append(secondOrgWxDepartId)
+				.append(thirdOrgName).append(thirdOrgId).append(thirdOrgWxDepartId).append(fourthOrgName)
+				.append(fourthOrgId).append(fourthOrgWxDepartId).append(position).append(mobile).append(businessPhone)
+				.append(gender).append(email).append(isPrimary);
+		return sBuilder.toString();
+	}
 }

+ 4 - 1
code/sapparent/sapservice/src/main/java/org/fouram/enums/SapUserResultEnum.java

@@ -2,7 +2,10 @@ package org.fouram.enums;
 
 public enum SapUserResultEnum {
 
-	SUCCESS("SUCCESS", "执行成功"), SENSITIVE("SENSITIVE", "敏感数据"), LEAVE("LEAVE", "离职"), ENTRY("ENTRY", "入职"),
+	NORMAL("NORMAL", "正常未同步数据"), 
+	SUCCESS("SUCCESS", "执行成功"), 
+	SENSITIVE("SENSITIVE", "敏感数据"), 
+	ENTRY("ENTRY", "入职"),
 	GARBAGE("GARBAGE", "垃圾数据");
 
 	private final String code;

+ 9 - 3
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,sortNumber) 
+			email,formatEmail,isPrimary,delFlag,createDate,result,sortNumber) 
 		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},#{sortNumber})
+			#{email},#{formatEmail},#{isPrimary},#{delFlag},#{createDate},#{result},#{sortNumber})
 	</insert>
 	
 	<update id="updateOne">
@@ -25,7 +25,7 @@
 			mobile=#{mobile},formatMobile=#{formatMobile},
 			businessPhone=#{businessPhone},formatBusinessPhone=#{formatBusinessPhone},
 			gender=#{gender},email=#{email},formatEmail=#{formatEmail},
-			isPrimary=#{isPrimary},delFlag=#{delFlag}
+			isPrimary=#{isPrimary},result=#{result},delFlag=#{delFlag}
 		where userId=#{userId}
 	</update>
 	
@@ -73,6 +73,12 @@
 		order by sortNumber ASC
 	</select>
 	
+	<select id="selectListByDelFlag" resultType="SapUser">
+		select * from sap_user 
+		where isPrimary = 1 and delFlag = #{delFlag} 
+		order by sortNumber ASC
+	</select>
+	
 	<select id="selectListByDepartIdAndLevel" resultType="SapUser">
 		select * from sap_user 
 		where result = 'SUCCESS' and isPrimary = 1 and delFlag = 0 

+ 36 - 3
code/sapparent/sapservice/src/main/java/org/fouram/service/SapUserService.java

@@ -33,6 +33,8 @@ public class SapUserService extends BaseService {
 	@Autowired
 	private RequestService requestService;
 	@Autowired
+	private WxDepartService wxDepartService;
+	@Autowired
 	private SapEmpJobService sapEmpJobService;
 	@Autowired
 	private SapOprLogService sapOprLogService;
@@ -92,18 +94,40 @@ public class SapUserService extends BaseService {
 			if (sapUserDb == null) {
 				this.saveSapUser(sapUser);
 			} else {
-				this.updateSapUser(sapUser);
+				if (sapUserDb.toString().equals(sapUser.toString())) {
+					// 用户数据没变,result保留SUCCESS,不用重复同步
+					this.updateDelFlag(sapUser.getUserId(), DelFlagEnum.ENABLE);
+				} else {
+					this.updateSapUser(sapUser);
+				}
+			}
+		}
+	}
+
+	public void updateResultByCondition() throws Exception {
+		// SENSITIVE("SENSITIVE", "敏感数据")、ENTRY("ENTRY", "入职")
+		List<SapUser> normalList = selectListByResult(SapUserResultEnum.NORMAL.getCode());
+		for (SapUser sapUser : normalList) {
+			if (sapUser.getFirstOrgWxDepartId() == null) {
+				sapUser.setResult(SapUserResultEnum.ENTRY.getCode());
+				this.updateResult(sapUser);
+			} else if (!sapUser.getFourthOrgName()
+					.equals(wxDepartService.selectById(sapUser.getFourthOrgWxDepartId()).getName())) {
+				sapUser.setResult(SapUserResultEnum.SENSITIVE.getCode());
+				this.updateResult(sapUser);
 			}
 		}
 	}
 
 	public void saveSapUser(SapUser entity) throws Exception {
 		entity.setCreateDate(new Date());
+		entity.setResult(SapUserResultEnum.NORMAL.getCode());
 		entity.setDelFlag(DelFlagEnum.ENABLE.getCode());
 		save("SapUserMapper.saveOne", entity);
 	}
 
 	public void updateSapUser(SapUser entity) throws Exception {
+		entity.setResult(SapUserResultEnum.NORMAL.getCode());
 		entity.setDelFlag(DelFlagEnum.ENABLE.getCode());
 		update("SapUserMapper.updateOne", entity);
 	}
@@ -173,7 +197,7 @@ public class SapUserService extends BaseService {
 	public void updateAllDelFlag(String delFlag) throws Exception {
 		update("SapUserMapper.updateAllDelFlag", delFlag);
 	}
-	
+
 	public void updateDelFlag(String userId, DelFlagEnum delFlagEnum) throws Exception {
 		SapUser entity = SapUser.builder().userId(userId).delFlag(delFlagEnum.getCode()).build();
 		update("SapUserMapper.updateDelFlag", entity);
@@ -193,7 +217,12 @@ public class SapUserService extends BaseService {
 
 	@SuppressWarnings("unchecked")
 	public List<SapUser> selectListByResult(String result) throws Exception {
-		return (List<SapUser>) findList("SapUserMapper.selectListByResult", null);
+		return (List<SapUser>) findList("SapUserMapper.selectListByResult", result);
+	}
+
+	@SuppressWarnings("unchecked")
+	public List<SapUser> selectListByDelFlag(String delFlag) throws Exception {
+		return (List<SapUser>) findList("SapUserMapper.selectListByDelFlag", delFlag);
 	}
 
 	@SuppressWarnings("unchecked")
@@ -252,6 +281,10 @@ public class SapUserService extends BaseService {
 		update("SapUserMapper.updateAvatar", sapUser);
 	}
 
+	public void updateResult(SapUser sapUser) throws Exception {
+		update("SapUserMapper.updateResult", sapUser);
+	}
+
 	public void deleteQuitUserByUserId(String userId, String oprUserId) throws Exception {
 		SapUser sapUser = selectByUserId(userId);
 		String personId = sapUser.getPersonId();

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

@@ -29,13 +29,11 @@ public class SyncSapUserToWxService extends BaseService {
 		sapUserService.updateAllDelFlag(DelFlagEnum.UNABLE.getCode());
 		// 2.保存SAP用户数据
 		sapUserService.saveOrUpdateSapUsers();
-
-//		sapUserService.updateDelFlag(sapUser.getUserId(), DelFlagEnum.ENABLE);
-
-		// 更新用户头像
+		// 3.根据SAP用户数据情况更新result字段
+		sapUserService.updateResultByCondition();
+		// 4.更新用户头像
 		this.updateAvatar();
-
-		// 发送禁用企业微信账号信息
+		// 5.发送禁用企业微信账号信息
 		this.sendQuitUserMsg();
 
 		// 部分数据插入微信未成功,处理数据后,重新插入
@@ -61,7 +59,7 @@ public class SyncSapUserToWxService extends BaseService {
 
 	// 发送禁用企业微信账号信息
 	private void sendQuitUserMsg() throws Exception {
-		List<SapUser> unableSapUsers = sapUserService.selectListByResult(SapUserResultEnum.LEAVE.getCode());
+		List<SapUser> unableSapUsers = sapUserService.selectListByDelFlag(DelFlagEnum.UNABLE.getCode());
 		if (unableSapUsers.size() > 0) {
 			WXCpMessageUtil.sendQuitUserMsg("离职用户" + unableSapUsers.size() + "个,请确认");
 		}