liupeng 5 anos atrás
pai
commit
a05c1df364

+ 26 - 0
code/sapparent/sapservice/src/main/java/org/fouram/entity/SapOrg.java

@@ -0,0 +1,26 @@
+package org.fouram.entity;
+
+import java.io.Serializable;
+
+import org.apache.ibatis.type.Alias;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Alias(value = "SapOrg")
+public class SapOrg implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	private String id;
+	private String sapCode;
+	private String sapName; 
+	private String orgLevel;
+	private String wxDepartId;
+	private String wxDepartName; 
+}

+ 16 - 0
code/sapparent/sapservice/src/main/java/org/fouram/mapper/SapOrgMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="SapOrgMapper">
+	<insert id="saveOne">
+		insert into sap_org(id,sapCode,sapName,orgLevel) 
+		values (#{id},#{sapCode},#{sapName},#{orgLevel})
+	</insert>
+	
+	<update id="updateSapName">
+		update sap_org set sapName=#{sapName} where id=#{id}
+	</update>
+	
+	<select id="selectOne" resultType="SapOrg">
+		select * from sap_org where sapCode=#{sapCode} and orgLevel=#{orgLevel}
+	</select>
+</mapper>

+ 33 - 11
code/sapparent/sapservice/src/main/java/org/fouram/service/SapOrgService.java

@@ -7,6 +7,8 @@ import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
 import org.fouram.core.base.service.BaseService;
 import org.fouram.core.base.service.RequestService;
+import org.fouram.core.util.UUIDUtil;
+import org.fouram.entity.SapOrg;
 import org.fouram.entity.SapUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
@@ -22,7 +24,7 @@ public class SapOrgService extends BaseService {
 	private RequestService requestService;
 
 	// FOCompany->FOBusinessUnit->FODivision->FODepartment->cust_orgunit4/cust_org4
-	private Map<String, String> getOrgMap(HttpHeaders headers, String entityName) {
+	private Map<String, String> getOrgMap(HttpHeaders headers, String entityName) throws Exception {
 		String url = "https://api15.sapsf.cn/odata/v2/" + entityName + "?$format=json";
 		JsonNode node = requestService.getForObject(url, headers);
 		Map<String, String> empInfo = Maps.newHashMap();
@@ -31,26 +33,46 @@ public class SapOrgService extends BaseService {
 			while (iterator.hasNext()) {
 				JsonNode userNode = iterator.next();
 				String externalCode = userNode.get("externalCode").asText().trim();
-				if(userNode.get("externalName") != null) {
-					String externalName = userNode.get("externalName").asText().trim();
-					empInfo.put(externalCode, externalName);
-				}else if(userNode.get("name") != null) {
-					String externalName = userNode.get("name").asText().trim();
-					empInfo.put(externalCode, externalName);
-				}else {
-					String name = userNode.get("externalName_zh_CN").asText().trim();
-					empInfo.put(externalCode, name);
+				String externalName = null;
+				if (userNode.get("externalName") != null) {
+					externalName = userNode.get("externalName").asText().trim();
+				} else if (userNode.get("name") != null) {
+					externalName = userNode.get("name").asText().trim();
+				} else {
+					externalName = userNode.get("externalName_zh_CN").asText().trim();
 				}
+				empInfo.put(externalCode, externalName);
+				saveOrUpdateSapOrg(externalCode, externalName, entityName);
 			}
 		}
 		return empInfo;
 	}
 
-	public List<SapUser> setOrg(HttpHeaders headers, List<SapUser> sapUsers) {
+	public SapOrg selectOne(String sapCode, String orgLevel) throws Exception {
+		SapOrg sapOrg = SapOrg.builder().orgLevel(orgLevel).sapCode(sapCode).build();
+		return (SapOrg) findObject("SapOrgMapper.selectOne", sapOrg);
+	}
+
+	private void saveOrUpdateSapOrg(String sapCode, String sapName, String orgLevel) throws Exception {
+		SapOrg sapOrg = selectOne(sapCode, orgLevel);
+		if (sapOrg != null) {
+			sapOrg.setSapName(sapName);
+			update("SapOrgMapper.updateSapName", sapOrg);
+		} else {
+			sapOrg = SapOrg.builder().id(UUIDUtil.get32UUID()).sapCode(sapCode).sapName(sapName).orgLevel(orgLevel)
+					.build();
+			save("SapOrgMapper.saveOne", sapOrg);
+		}
+	}
+
+	public List<SapUser> setOrg(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
 		Map<String, String> businessUnitMap = getOrgMap(headers, "FOBusinessUnit");
 		Map<String, String> divisionMap = getOrgMap(headers, "FODivision");
 		Map<String, String> departmentMap = getOrgMap(headers, "FODepartment");
 		Map<String, String> orgunit4Map = getOrgMap(headers, "cust_org4");// cust_orgunit4/cust_org4
+
+		// 根据机构名称更新微信部门名称
+
 		String userIds = "";
 		Map<String, SapUser> map = Maps.newHashMap();
 		for (SapUser sapUser : sapUsers) {