|
@@ -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) {
|