liupeng 4 年之前
父节点
当前提交
9d6f36dc86

+ 0 - 1
code/sapparent/sapservice/src/main/java/org/fouram/.gitignore

@@ -1 +0,0 @@
-/service/

+ 1 - 1
code/sapparent/sapservice/src/main/java/org/fouram/core/base/exception/ControllerExceptionHandler.java

@@ -30,7 +30,7 @@ public class ControllerExceptionHandler {
 			return AppUtil.error(ex.getMessage());
 		}
 		String messageContent = Tools.getExceptionAllInfo(ex);
-		WXCpMessageUtil.sendAdminError(messageContent);
+//		WXCpMessageUtil.sendAdminError(messageContent);
 		log.error(messageContent);
 		if (ex.getClass().getSimpleName().equals(WxErrorException.class.getSimpleName())) {
 			WxErrorException wxErrorException = (WxErrorException) ex;

+ 1 - 0
code/sapparent/sapservice/src/main/java/org/fouram/entity/SapEmpJob.java

@@ -25,6 +25,7 @@ public class SapEmpJob implements Serializable {
 	private String divisionName;// 部门
 	private String departmentName;// 团队
 	private String teamName;// 小组
+	private String location;// 工作地点
 	private String locationName;// 工作地点
 	private String managerId;// 直线经理
 	private String managerName;// 直线经理

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

@@ -8,11 +8,11 @@
 	
 	<insert id="save">
 		insert into sap_emp_job(userId,positionName,positionEntryDate,companyName,businessUnitName,
-			divisionName,departmentName,teamName,locationName,managerId,managerName,jobCodeName,
-			jobTitle,rank,managementOrNot) 
+			divisionName,departmentName,teamName,location,locationName,managerId,
+			managerName,jobCodeName,jobTitle,rank,managementOrNot) 
 		values (#{userId},#{positionName},#{positionEntryDate},#{companyName},#{businessUnitName},
-			#{divisionName},#{departmentName},#{teamName},#{locationName},#{managerId},#{managerName},#{jobCodeName},
-			#{jobTitle},#{rank},#{managementOrNot})
+			#{divisionName},#{departmentName},#{teamName},#{location},#{locationName},#{managerId},
+			#{managerName},#{jobCodeName},#{jobTitle},#{rank},#{managementOrNot})
 	</insert>
 	
 </mapper>

+ 35 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapBankService.java

@@ -0,0 +1,35 @@
+package org.fouram.service;
+
+import java.util.Iterator;
+
+import org.fouram.core.base.service.BaseService;
+import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.entity.SapBank;
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+@Service
+public class SapBankService extends BaseService {
+
+	public void saveSapData() throws Exception {
+		delete("SapBankMapper.deleteAll", null);
+
+		String url = "https://api15.sapsf.cn/odata/v2/cust_bank?$format=json&$expand=cust_bankNav";
+		JsonNode node = requestService.getForObject(url, getHttpHeaders());
+		if (node != null) {
+			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
+			while (iterator.hasNext()) {
+				JsonNode userNode = iterator.next();
+				String userId = JsonNodeUtil.getValue(userNode, "externalCode");
+				String bank = JsonNodeUtil.getValue(userNode, "cust_bankNav", "label_zh_CN");
+				String branch = JsonNodeUtil.getValue(userNode, "cust_branch");
+				String number = JsonNodeUtil.getValue(userNode, "cust_number");
+				String effectiveStartDate = JsonNodeUtil.getValue(userNode, "effectiveStartDate");
+				SapBank entity = SapBank.builder().userId(userId).bank(bank).branch(branch).number(number)
+						.effectiveStartDate(effectiveStartDate).build();
+				save("SapBankMapper.save", entity);
+			}
+		}
+	}
+}

+ 36 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapContractService.java

@@ -0,0 +1,36 @@
+package org.fouram.service;
+
+import java.util.Iterator;
+
+import org.fouram.core.base.service.BaseService;
+import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.entity.SapContract;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+@Service
+public class SapContractService extends BaseService {
+
+	public void saveSapData() throws Exception {
+		HttpHeaders headers = getHttpHeaders();
+
+		delete("SapContractMapper.deleteAll", null);
+
+		String url = "https://api15.sapsf.cn/odata/v2/cust_Contract?$format=json&$expand=cust_LegalNav";
+		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 = JsonNodeUtil.getValue(userNode, "externalCode");
+				String startDate = JsonNodeUtil.getValue(userNode, "cust_BEGDA");
+				String legalName = JsonNodeUtil.getValue(userNode, "cust_LegalNav", "name");
+				SapContract entity = SapContract.builder().userId(userId).startDate(startDate).legalName(legalName)
+						.build();
+				save("SapContractMapper.save", entity);
+			}
+		}
+	}
+}

+ 6 - 5
code/sapparent/sapservice/src/main/java/org/fouram/service/SapEmpJobService.java

@@ -36,12 +36,12 @@ public class SapEmpJobService extends BaseService {
 				jobTitleMap.put(userId, jobTitle);
 			}
 		}
-		for(SapUser sapUser : sapUsers) {
+		for (SapUser sapUser : sapUsers) {
 			sapUser.setPosition(jobTitleMap.get(sapUser.getUserId()));
 			sapUser.setFormatPosition(formatPosition(sapUser.getPosition()));
 		}
 	}
-	
+
 	public void saveSapData() throws Exception {
 		delete("SapEmpJobMapper.deleteAll", null);
 
@@ -60,6 +60,7 @@ public class SapEmpJobService extends BaseService {
 				String divisionName = JsonNodeUtil.getValue(userNode, "divisionNav", "name");// 部门
 				String departmentName = JsonNodeUtil.getValue(userNode, "departmentNav", "name");// 团队
 				String teamName = JsonNodeUtil.getValue(userNode, "customString19Nav", "externalName_zh_CN");// 小组
+				String location = JsonNodeUtil.getValue(userNode, "location");// 工作地点
 				String locationName = JsonNodeUtil.getValue(userNode, "locationNav", "name");// 工作地点
 				String managerId = JsonNodeUtil.getValue(userNode, "managerId");// 直线经理
 				String managerName = WebConstants.NAME_MAP.get(managerId);// 直线经理
@@ -70,9 +71,9 @@ public class SapEmpJobService extends BaseService {
 				SapEmpJob entity = SapEmpJob.builder().userId(userId).positionName(positionName)
 						.positionEntryDate(positionEntryDate).companyName(companyName)
 						.businessUnitName(businessUnitName).divisionName(divisionName).departmentName(departmentName)
-						.teamName(teamName).locationName(locationName).managerId(managerId).managerName(managerName)
-						.jobCodeName(jobCodeName).jobTitle(jobTitle).rank(rank).managementOrNot(managementOrNot)
-						.build();
+						.teamName(teamName).location(location).locationName(locationName).managerId(managerId)
+						.managerName(managerName).jobCodeName(jobCodeName).jobTitle(jobTitle).rank(rank)
+						.managementOrNot(managementOrNot).build();
 				save("SapEmpJobMapper.save", entity);
 			}
 		}

+ 41 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapPerGlobalInfoCHNService.java

@@ -0,0 +1,41 @@
+package org.fouram.service;
+
+import java.util.Iterator;
+
+import org.fouram.core.base.service.BaseService;
+import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.entity.SapPerGlobalInfoCHN;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+@Service
+public class SapPerGlobalInfoCHNService extends BaseService {
+
+	public void saveSapData() throws Exception {
+		HttpHeaders headers = getHttpHeaders();
+		
+		delete("SapPerGlobalInfoCHNMapper.deleteAll", null);
+
+		String url = "https://api15.sapsf.cn/odata/v2/PerGlobalInfoCHN?$format=json";
+		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 personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
+				String householdRegistrationType = getLabelValue(JsonNodeUtil.getValue(userNode, "genericNumber1"));// 户口类型
+				String nation = getLabelValue(JsonNodeUtil.getValue(userNode, "genericNumber4"));// 民族
+				String politicalOutlook = getLabelValue(JsonNodeUtil.getValue(userNode, "customString6"));// 政治面貌
+				String orgRelationshipLocation = JsonNodeUtil.getValue(userNode, "customString1");// 组织关系所在地
+				String socialSecurityLocation = getLabelValue(JsonNodeUtil.getValue(userNode, "customString2"));// 社保所在地
+				SapPerGlobalInfoCHN entity = SapPerGlobalInfoCHN.builder().personId(personId)
+						.householdRegistrationType(householdRegistrationType).nation(nation)
+						.politicalOutlook(politicalOutlook).orgRelationshipLocation(orgRelationshipLocation)
+						.socialSecurityLocation(socialSecurityLocation).build();
+				save("SapPerGlobalInfoCHNMapper.save", entity);
+			}
+		}
+	}
+}

+ 42 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapPerNationalIdService.java

@@ -0,0 +1,42 @@
+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 SapPerNationalIdService extends BaseService {
+
+	@Autowired
+	private RequestService requestService;
+
+	public void setCardInfo(List<SapUser> sapUsers) {
+		String url = "https://api15.sapsf.cn/odata/v2/PerNationalId?$format=json";
+		JsonNode jsonNode = requestService.getForObject(url, getHttpHeaders());
+		Map<String, String> nationalIdMap = Maps.newHashMap();
+		Map<String, String> cardTypeMap = Maps.newHashMap();
+		if (jsonNode != null) {
+			Iterator<JsonNode> iterator = jsonNode.get("d").get("results").elements();
+			while (iterator.hasNext()) {
+				JsonNode node = iterator.next();
+				String userId = JsonNodeUtil.getValue(node, "personIdExternal");
+				nationalIdMap.put(userId, JsonNodeUtil.getValue(node, "nationalId"));
+				cardTypeMap.put(userId, JsonNodeUtil.getValue(node, "cardType"));
+			}
+		}
+		for (SapUser sapUser : sapUsers) {
+			sapUser.setCardId(nationalIdMap.get(sapUser.getUserId()));
+			sapUser.setCardType(cardTypeMap.get(sapUser.getUserId()));
+		}
+	}
+}

+ 40 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapPerPersonRelationshipService.java

@@ -0,0 +1,40 @@
+package org.fouram.service;
+
+import java.util.Iterator;
+
+import org.fouram.core.base.service.BaseService;
+import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.entity.SapPerPersonRelationship;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+@Service
+public class SapPerPersonRelationshipService extends BaseService {
+
+	public void saveSapData() throws Exception {
+		HttpHeaders headers = getHttpHeaders();
+
+		delete("SapPerPersonRelationshipMapper.deleteAll", null);
+
+		String url = "https://api15.sapsf.cn/odata/v2/PerPersonRelationship?$format=json&$expand=relPersonNav";
+		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 personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
+				String relatedPersonId = JsonNodeUtil.getValue(userNode, "relatedPersonIdExternal");
+				String firstName = JsonNodeUtil.getValue(userNode, "firstName");
+				String lastName = JsonNodeUtil.getValue(userNode, "lastName");
+				String relationshipType = getLabelValue(JsonNodeUtil.getValue(userNode, "relationshipType"));
+				String dateOfBirth = JsonNodeUtil.getValue(userNode, "relPersonNav", "dateOfBirth");
+				SapPerPersonRelationship entity = SapPerPersonRelationship.builder().personId(personId)
+						.relatedPersonId(relatedPersonId).lastName(lastName).firstName(firstName)
+						.relationshipType(relationshipType).dateOfBirth(dateOfBirth).build();
+				save("SapPerPersonRelationshipMapper.save", entity);
+			}
+		}
+	}
+}

+ 35 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SapPersonService.java

@@ -0,0 +1,35 @@
+package org.fouram.service;
+
+import java.util.Iterator;
+
+import org.fouram.core.base.service.BaseService;
+import org.fouram.core.util.JsonNodeUtil;
+import org.fouram.entity.SapPerPerson;
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+@Service
+public class SapPersonService extends BaseService {
+
+	public void saveSapData() throws Exception {
+		delete("SapPerPersonMapper.deleteAll", null);
+
+		String url = "https://api15.sapsf.cn/odata/v2/PerPerson?$format=json";
+		JsonNode node = requestService.getForObject(url, getHttpHeaders());
+		if (node != null) {
+			Iterator<JsonNode> iterator = node.get("d").get("results").elements();
+			while (iterator.hasNext()) {
+				JsonNode userNode = iterator.next();
+				String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");// 员工号
+				String dateOfBirth = JsonNodeUtil.getValue(userNode, "dateOfBirth");// 出生日期
+				String placeOfBirth = JsonNodeUtil.getValue(userNode, "placeOfBirth");// 籍贯
+				String education = getLabelValue(JsonNodeUtil.getValue(userNode, "customString1"));// 最高学历
+				SapPerPerson entity = SapPerPerson.builder().personId(personId).dateOfBirth(dateOfBirth)
+						.placeOfBirth(placeOfBirth).education(education).build();
+				save("SapPerPersonMapper.save", entity);
+			}
+		}
+	}
+
+}

+ 33 - 0
code/sapparent/sapservice/src/main/java/org/fouram/service/SyncUploadService.java

@@ -0,0 +1,33 @@
+package org.fouram.service;
+
+import org.fouram.core.base.service.BaseService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SyncUploadService extends BaseService {
+
+	@Autowired
+	private SapBankService bankService;
+	@Autowired
+	private SapEmpJobService empJobService;
+	@Autowired
+	private SapContractService contractService;
+	@Autowired
+	private SapPerGlobalInfoCHNService globalInfoCHNService;
+	@Autowired
+	private SapPerPersonRelationshipService relationshipService;
+
+	public void sync() throws Exception {
+		// 社保所在地
+		globalInfoCHNService.saveSapData();
+		// 工作地点
+		empJobService.saveSapData();
+		// 银行信息
+		bankService.saveSapData();
+		// 合同信息
+		contractService.saveSapData();
+		// 家属信息
+		relationshipService.saveSapData();
+	}
+}