liupeng il y a 4 ans
Parent
commit
811afa506e

+ 28 - 0
code/sapparent/sapservice/src/main/java/org/fouram/dto/input/UploadModifyEmpDTO.java

@@ -0,0 +1,28 @@
+package org.fouram.dto.input;
+
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class UploadModifyEmpDTO implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	private String cardId;
+	private Integer cardType;
+	private String entryDate;
+	private String jobNumber;
+	private String phone;
+	private String resignDate;
+	private Integer type;
+	private String username;
+}

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

@@ -37,6 +37,12 @@ public class SapUser implements Serializable {
 	
 	@ApiModelProperty(value = "姓名")
 	private String name;
+	
+	private String cardId;
+	
+	private Integer cardType;
+	
+	private String jobNumber;
 
 	// sap机构
 	private String firstOrgId;

+ 22 - 0
code/sapparent/sapservice/src/main/java/org/fouram/enums/UploadHrEmpUserEnum.java

@@ -0,0 +1,22 @@
+package org.fouram.enums;
+
+public enum UploadHrEmpUserEnum {
+	
+	ENTRY(1, "入职"), LEAVE(2, "离职");
+	
+	private final Integer code;
+	private final String desc;
+
+	UploadHrEmpUserEnum(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	public Integer getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+}

+ 5 - 0
code/sapparent/sapservice/src/main/java/org/fouram/job/MessageSchedule.java

@@ -7,6 +7,7 @@ import org.fouram.core.util.LoggerUtil;
 import org.fouram.core.util.Tools;
 import org.fouram.entity.SapMessageUser;
 import org.fouram.entity.SapUser;
+import org.fouram.enums.UploadHrEmpUserEnum;
 import org.fouram.service.SapMessageUserService;
 import org.fouram.service.SapUserService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +37,8 @@ public class MessageSchedule {
 						.append(sapUser.getRealEmail()).append("\n")
 						.append("<a href=\"https://studybom.suggest.vip/#/userSync/list\">立即同步</a>");
 				sapUserService.sendEntryMessage(messageContent.toString(), sapUser, messageUsers);
+				
+				sapUserService.uploadHrEmpUserInfo(sapUser, UploadHrEmpUserEnum.ENTRY.getCode());
 			}
 			// 离职
 			sapUsers = sapUserService.selectNotSendLeaveMessageList();
@@ -47,6 +50,8 @@ public class MessageSchedule {
 						.append(sapUser.getRealEmail()).append("\n")
 						.append("<a href=\"https://studybom.suggest.vip/#/userSync/list\">立即同步</a>");
 				sapUserService.sendLeaveMessage(messageContent.toString(), sapUser, messageUsers);
+				
+				sapUserService.uploadHrEmpUserInfo(sapUser, UploadHrEmpUserEnum.LEAVE.getCode());
 			}
 		} catch (Exception e) {
 			WXCpMessageUtil.sendAdminError(Tools.getExceptionAllInfo(e));

+ 12 - 8
code/sapparent/sapservice/src/main/java/org/fouram/service/SapEmpEmploymentService.java

@@ -20,20 +20,24 @@ public class SapEmpEmploymentService extends BaseService {
 	@Autowired
 	private RequestService requestService;
 
-	public void setStartDate(List<SapUser> sapUsers) {
+	public void setEmpInfo(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();
+		JsonNode jsonNode = requestService.getForObject(url, getHttpHeaders());
+		Map<String, String> startDateMap = Maps.newHashMap();
+		Map<String, String> jobNumberMap = Maps.newHashMap();
+		if (jsonNode != null) {
+			Iterator<JsonNode> iterator = jsonNode.get("d").get("results").elements();
 			while (iterator.hasNext()) {
-				JsonNode userNode = iterator.next();
-				map.put(JsonNodeUtil.getValue(userNode, "userId"), JsonNodeUtil.getValue(userNode, "startDate"));
+				JsonNode node = iterator.next();
+				String userId = JsonNodeUtil.getValue(node, "userId");
+				startDateMap.put(userId, JsonNodeUtil.getValue(node, "startDate"));
+				jobNumberMap.put(userId, JsonNodeUtil.getValue(node, "jobNumber"));
 			}
 		}
 		for (SapUser sapUser : sapUsers) {
-			sapUser.setStartDate(map.get(sapUser.getUserId()));
+			sapUser.setStartDate(startDateMap.get(sapUser.getUserId()));
+			sapUser.setJobNumber(jobNumberMap.get(sapUser.getUserId()));
 		}
 	}
 }

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

@@ -14,13 +14,14 @@ import org.fouram.core.plugin.weixin.cp.util.WXCpMessageUtil;
 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.HttpClientUtil;
 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;
+import org.fouram.dto.input.UploadModifyEmpDTO;
 import org.fouram.dto.output.GetIngoreListOutput;
 import org.fouram.dto.output.GetToBeConfirmedListOutput;
 import org.fouram.entity.SapMessageUser;
@@ -34,6 +35,7 @@ import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.google.common.collect.Lists;
 
@@ -59,6 +61,8 @@ public class SapUserService extends BaseService {
 	@Autowired
 	private SapBlacklistService sapBlacklistService;
 	@Autowired
+	private SapPerNationalIdService sapPerNationalIdService;
+	@Autowired
 	private SapEmpEmploymentService sapEmpEmploymentService;
 	@Autowired
 	private SapEmpEmploymentTerminationService sapEmpEmploymentTerminationService;
@@ -94,19 +98,16 @@ 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());
+		// EmpEmployment->startDate/jobNumber
+		sapEmpEmploymentService.setEmpInfo(sapUsers);
+		// PerNationalId->userId/cardType
+		sapPerNationalIdService.setCardInfo(sapUsers);
 		// EmpEmploymentTermination->endDate
 		sapEmpEmploymentTerminationService.setEndDate(sapUsers);
-		LoggerUtil.info("saveWxDeparts->setEndDate:" + DateUtil.getTime());
 		// 更新用户
 		SapUser sapUserDb = null;
 		SapUser sapUser = null;
@@ -501,12 +502,12 @@ public class SapUserService extends BaseService {
 		SapUser sapUser = SapUser.builder().userId(userId).sendEntryMessageFlag(sendEntryMessageFlag).build();
 		update("SapUserMapper.updateSendEntryMessageFlag", sapUser);
 	}
-	
+
 	@SuppressWarnings("unchecked")
 	public List<SapUser> selectNotSendLeaveMessageList() throws Exception {
 		return (List<SapUser>) findList("SapUserMapper.selectNotSendLeaveMessageList", null);
 	}
-	
+
 	@Transactional
 	public void sendLeaveMessage(String messageContent, SapUser sapUser, List<SapMessageUser> sapMessageUsers)
 			throws Exception {
@@ -515,9 +516,19 @@ public class SapUserService extends BaseService {
 		}
 		updateSendLeaveMessageFlag(sapUser.getUserId(), true);
 	}
-	
+
 	private void updateSendLeaveMessageFlag(String userId, boolean sendEntryMessageFlag) throws Exception {
 		SapUser sapUser = SapUser.builder().userId(userId).sendEntryMessageFlag(sendEntryMessageFlag).build();
 		update("SapUserMapper.updateSendLeaveMessageFlag", sapUser);
 	}
+
+	public void uploadHrEmpUserInfo(SapUser user, Integer type) throws Exception {
+		UploadModifyEmpDTO reqdata = UploadModifyEmpDTO.builder().username(user.getUsername())
+				.entryDate(user.getStartDate()).resignDate(user.getEndDate()).type(type).phone(user.getFormatMobile())
+				.cardId(user.getCardId()).cardType(user.getCardType()).jobNumber(user.getJobNumber()).build();
+		String url = "http://cmcadmin.info666.com/hr/emp/modifyEmpInfo";
+		JSONObject parameters = new JSONObject();
+		parameters.put("reqdata", reqdata);
+		HttpClientUtil.postJson(url, parameters.toJSONString());
+	}
 }