|
@@ -3,6 +3,7 @@ package org.fouram.service;
|
|
import java.util.Iterator;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
+import org.fouram.constants.WebConstants;
|
|
import org.fouram.core.base.service.BaseService;
|
|
import org.fouram.core.base.service.BaseService;
|
|
import org.fouram.core.base.service.RequestService;
|
|
import org.fouram.core.base.service.RequestService;
|
|
import org.fouram.core.util.JsonNodeUtil;
|
|
import org.fouram.core.util.JsonNodeUtil;
|
|
@@ -45,30 +46,50 @@ public class SapReportService extends BaseService {
|
|
public void saveSapAllReportData() throws Exception {
|
|
public void saveSapAllReportData() throws Exception {
|
|
HttpHeaders headers = getHttpHeaders();
|
|
HttpHeaders headers = getHttpHeaders();
|
|
List<SapUser> sapUsers = selectReportUserList();
|
|
List<SapUser> sapUsers = selectReportUserList();
|
|
-// this.saveSapCertificates(headers, sapUsers);
|
|
|
|
-// this.saveSapCourses(headers, sapUsers);
|
|
|
|
- this.saveSapEducation(headers, sapUsers);
|
|
|
|
-// this.saveSapInsideWorkExperience(headers, sapUsers);
|
|
|
|
-// this.saveSapLanguages(headers, sapUsers);
|
|
|
|
-// this.saveSapOverallPerformance(headers, sapUsers);
|
|
|
|
-// this.saveSapEmpJob(headers, sapUsers);
|
|
|
|
-// this.saveSapOutsideWorkExperience(headers, sapUsers);
|
|
|
|
-// this.saveSapEmpEmployment(headers, sapUsers);
|
|
|
|
-// this.saveSapEmpJobRelationships(headers, sapUsers);
|
|
|
|
-// this.saveSapPerEmail(headers, sapUsers);
|
|
|
|
|
|
+ for (SapUser sapUser : sapUsers) {
|
|
|
|
+ WebConstants.NAME_MAP.put(sapUser.getUserId(), sapUser.getName());
|
|
|
|
+ }
|
|
|
|
+// // 基本信息 PerPerson
|
|
|
|
+// this.saveSapPerPerson(headers, sapUsers);
|
|
|
|
+// // 基本信息 PerPerson,PerPersonal
|
|
|
|
+// this.saveSapPerPersonal(headers, sapUsers);
|
|
|
|
+// // 个人信息 PerGlobalInfoCHN
|
|
// this.saveSapPerGlobalInfoCHN(headers, sapUsers);
|
|
// this.saveSapPerGlobalInfoCHN(headers, sapUsers);
|
|
|
|
+// // 国家身份信息 PerNationalId
|
|
// this.saveSapPerNationalId(headers, sapUsers);
|
|
// this.saveSapPerNationalId(headers, sapUsers);
|
|
-// this.saveSapPerPersonal(headers, sapUsers);
|
|
|
|
-// this.saveSapPerPerson(headers, sapUsers);
|
|
|
|
|
|
+// // 邮件信息 PerEmail
|
|
|
|
+// this.saveSapPerEmail(headers, sapUsers);
|
|
|
|
+// // 通讯信息 PerPhone
|
|
// this.saveSapPerPhone(headers, sapUsers);
|
|
// this.saveSapPerPhone(headers, sapUsers);
|
|
|
|
+// // 社交账号 PerSocialAccount
|
|
// this.saveSapPerSocialAccount(headers, sapUsers);
|
|
// this.saveSapPerSocialAccount(headers, sapUsers);
|
|
|
|
+// // 雇佣详细信息 EmpEmployment
|
|
|
|
+// this.saveSapEmpEmployment(headers, sapUsers);
|
|
|
|
+// // 组织以及职位信息 EmpJob
|
|
|
|
+// this.saveSapEmpJob(headers, sapUsers);
|
|
|
|
+// // 工作关系 EmpJobRelationships
|
|
|
|
+// this.saveSapEmpJobRelationships(headers, sapUsers);
|
|
|
|
+// // 先前工作经历 Background_OutsideWorkExperience
|
|
|
|
+// this.saveSapOutsideWorkExperience(headers, sapUsers);
|
|
|
|
+ // 公司内工作经历 Background_InsideWorkExperience
|
|
|
|
+ this.saveSapInsideWorkExperience(headers, sapUsers);
|
|
|
|
+ // 培训经历 Background_Courses
|
|
|
|
+ this.saveSapCourses(headers, sapUsers);
|
|
|
|
+ // 学历教育 Background_Education
|
|
|
|
+ this.saveSapEducation(headers, sapUsers);
|
|
|
|
+ // 证书 Background_Certificates
|
|
|
|
+ this.saveSapCertificates(headers, sapUsers);
|
|
|
|
+ // 语言能力 Background_Languages
|
|
|
|
+ this.saveSapLanguages(headers, sapUsers);
|
|
|
|
+ // 绩效历史 TrendData_SysOverallPerformance
|
|
|
|
+ this.saveSapOverallPerformance(headers, sapUsers);
|
|
}
|
|
}
|
|
|
|
|
|
// 基本信息 PerPerson
|
|
// 基本信息 PerPerson
|
|
public void saveSapPerPerson(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapPerPerson(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
delete("SapReportMapper.deleteSapPerPerson", null);
|
|
delete("SapReportMapper.deleteSapPerPerson", null);
|
|
|
|
|
|
- String url = "https://api15.sapsf.cn/odata/v2/PerPerson?$filter=personIdExternal in %s&$format=json&$expand=customString1Nav";
|
|
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/PerPerson?$filter=personIdExternal in %s&$format=json";
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -78,7 +99,7 @@ public class SapReportService extends BaseService {
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");// 员工号
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");// 员工号
|
|
String dateOfBirth = JsonNodeUtil.getValue(userNode, "dateOfBirth");// 出生日期
|
|
String dateOfBirth = JsonNodeUtil.getValue(userNode, "dateOfBirth");// 出生日期
|
|
String placeOfBirth = JsonNodeUtil.getValue(userNode, "placeOfBirth");// 籍贯
|
|
String placeOfBirth = JsonNodeUtil.getValue(userNode, "placeOfBirth");// 籍贯
|
|
- String education = JsonNodeUtil.getValue(userNode, "customString1Nav", "externalCode");// 最高学历
|
|
|
|
|
|
+ String education = getLabelValue(JsonNodeUtil.getValue(userNode, "customString1"));// 最高学历
|
|
SapPerPerson entity = SapPerPerson.builder().personId(personId).dateOfBirth(dateOfBirth)
|
|
SapPerPerson entity = SapPerPerson.builder().personId(personId).dateOfBirth(dateOfBirth)
|
|
.placeOfBirth(placeOfBirth).education(education).build();
|
|
.placeOfBirth(placeOfBirth).education(education).build();
|
|
save("SapReportMapper.saveSapPerPerson", entity);
|
|
save("SapReportMapper.saveSapPerPerson", entity);
|
|
@@ -90,7 +111,7 @@ public class SapReportService extends BaseService {
|
|
public void saveSapPerPersonal(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapPerPersonal(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
delete("SapReportMapper.deleteSapPerPersonal", null);
|
|
delete("SapReportMapper.deleteSapPerPersonal", null);
|
|
|
|
|
|
- String url = "https://api15.sapsf.cn/odata/v2/PerPersonal?$filter=personIdExternal in %s&$format=json&$expand=maritalStatusNav";
|
|
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/PerPersonal?$filter=personIdExternal in %s&$format=json";
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -104,14 +125,14 @@ public class SapReportService extends BaseService {
|
|
String formalName = JsonNodeUtil.getValue(userNode, "formalName");// 全名
|
|
String formalName = JsonNodeUtil.getValue(userNode, "formalName");// 全名
|
|
String nationality = JsonNodeUtil.getValue(userNode, "nationality");// 国籍
|
|
String nationality = JsonNodeUtil.getValue(userNode, "nationality");// 国籍
|
|
String gender = JsonNodeUtil.getValue(userNode, "gender");// 性别
|
|
String gender = JsonNodeUtil.getValue(userNode, "gender");// 性别
|
|
- String maritalStatusCode = JsonNodeUtil.getValue(userNode, "maritalStatusNav", "externalCode");// 婚姻状况
|
|
|
|
|
|
+ String maritalStatus = getLabelValue(JsonNodeUtil.getValue(userNode, "maritalStatus"));// 婚姻状况
|
|
String firstNameAlt1 = JsonNodeUtil.getValue(userNode, "firstNameAlt1");// 英文名
|
|
String firstNameAlt1 = JsonNodeUtil.getValue(userNode, "firstNameAlt1");// 英文名
|
|
String lastNameAlt1 = JsonNodeUtil.getValue(userNode, "lastNameAlt1");// 英文姓
|
|
String lastNameAlt1 = JsonNodeUtil.getValue(userNode, "lastNameAlt1");// 英文姓
|
|
String firstNameAlt2 = JsonNodeUtil.getValue(userNode, "firstNameAlt2");// 拼音名
|
|
String firstNameAlt2 = JsonNodeUtil.getValue(userNode, "firstNameAlt2");// 拼音名
|
|
String lastNameAlt2 = JsonNodeUtil.getValue(userNode, "lastNameAlt2");// 拼音姓
|
|
String lastNameAlt2 = JsonNodeUtil.getValue(userNode, "lastNameAlt2");// 拼音姓
|
|
SapPerPersonal entity = SapPerPersonal.builder().personId(personId).firstName(firstName)
|
|
SapPerPersonal entity = SapPerPersonal.builder().personId(personId).firstName(firstName)
|
|
.lastName(lastName).displayName(displayName).formalName(formalName).nationality(nationality)
|
|
.lastName(lastName).displayName(displayName).formalName(formalName).nationality(nationality)
|
|
- .gender(gender).maritalStatusCode(maritalStatusCode).firstNameAlt1(firstNameAlt1)
|
|
|
|
|
|
+ .gender(gender).maritalStatus(maritalStatus).firstNameAlt1(firstNameAlt1)
|
|
.lastNameAlt1(lastNameAlt1).firstNameAlt2(firstNameAlt2).lastNameAlt2(lastNameAlt2).build();
|
|
.lastNameAlt1(lastNameAlt1).firstNameAlt2(firstNameAlt2).lastNameAlt2(lastNameAlt2).build();
|
|
save("SapReportMapper.saveSapPerPersonal", entity);
|
|
save("SapReportMapper.saveSapPerPersonal", entity);
|
|
}
|
|
}
|
|
@@ -130,11 +151,11 @@ public class SapReportService extends BaseService {
|
|
while (iterator.hasNext()) {
|
|
while (iterator.hasNext()) {
|
|
JsonNode userNode = iterator.next();
|
|
JsonNode userNode = iterator.next();
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
|
|
- String householdRegistrationType = JsonNodeUtil.getValue(userNode, "genericNumber1Nav", "externalCode");// 户口类型
|
|
|
|
- String nation = JsonNodeUtil.getValue(userNode, "genericNumber4Nav", "externalCode");// 民族
|
|
|
|
- String politicalOutlook = JsonNodeUtil.getValue(userNode, "customString6Nav", "externalCode");// 政治面貌
|
|
|
|
|
|
+ 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 orgRelationshipLocation = JsonNodeUtil.getValue(userNode, "customString1");// 组织关系所在地
|
|
- String socialSecurityLocation = JsonNodeUtil.getValue(userNode, "customString2");// 社保所在地
|
|
|
|
|
|
+ String socialSecurityLocation = getLabelValue(JsonNodeUtil.getValue(userNode, "customString2"));// 社保所在地
|
|
SapPerGlobalInfoCHN entity = SapPerGlobalInfoCHN.builder().personId(personId)
|
|
SapPerGlobalInfoCHN entity = SapPerGlobalInfoCHN.builder().personId(personId)
|
|
.householdRegistrationType(householdRegistrationType).nation(nation)
|
|
.householdRegistrationType(householdRegistrationType).nation(nation)
|
|
.politicalOutlook(politicalOutlook).orgRelationshipLocation(orgRelationshipLocation)
|
|
.politicalOutlook(politicalOutlook).orgRelationshipLocation(orgRelationshipLocation)
|
|
@@ -170,7 +191,7 @@ public class SapReportService extends BaseService {
|
|
public void saveSapPerEmail(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapPerEmail(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
delete("SapReportMapper.deleteSapPerEmail", null);
|
|
delete("SapReportMapper.deleteSapPerEmail", null);
|
|
|
|
|
|
- String url = "https://api15.sapsf.cn/odata/v2/PerEmail?$filter=personIdExternal in %s&$format=json&$expand=emailTypeNav";
|
|
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/PerEmail?$filter=personIdExternal in %s&$format=json";
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -178,10 +199,10 @@ public class SapReportService extends BaseService {
|
|
while (iterator.hasNext()) {
|
|
while (iterator.hasNext()) {
|
|
JsonNode userNode = iterator.next();
|
|
JsonNode userNode = iterator.next();
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
|
|
- String emailTypeCode = JsonNodeUtil.getValue(userNode, "emailTypeNav", "externalCode");// 电子邮件类型
|
|
|
|
|
|
+ String emailType = getLabelValue(JsonNodeUtil.getValue(userNode, "emailType"));// 电子邮件类型
|
|
String emailAddress = JsonNodeUtil.getValue(userNode, "emailAddress");// 电子邮件地址
|
|
String emailAddress = JsonNodeUtil.getValue(userNode, "emailAddress");// 电子邮件地址
|
|
String isPrimary = JsonNodeUtil.getValue(userNode, "isPrimary");// 主要
|
|
String isPrimary = JsonNodeUtil.getValue(userNode, "isPrimary");// 主要
|
|
- SapPerEmail entity = SapPerEmail.builder().personId(personId).emailTypeCode(emailTypeCode)
|
|
|
|
|
|
+ SapPerEmail entity = SapPerEmail.builder().personId(personId).emailType(emailType)
|
|
.emailAddress(emailAddress).isPrimary(isPrimary).build();
|
|
.emailAddress(emailAddress).isPrimary(isPrimary).build();
|
|
save("SapReportMapper.saveSapPerEmail", entity);
|
|
save("SapReportMapper.saveSapPerEmail", entity);
|
|
}
|
|
}
|
|
@@ -193,7 +214,7 @@ public class SapReportService extends BaseService {
|
|
public void saveSapPerPhone(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapPerPhone(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
delete("SapReportMapper.deleteSapPerPhone", null);
|
|
delete("SapReportMapper.deleteSapPerPhone", null);
|
|
|
|
|
|
- String url = "https://api15.sapsf.cn/odata/v2/PerPhone?$filter=personIdExternal in %s&$format=json&$expand=phoneTypeNav";
|
|
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/PerPhone?$filter=personIdExternal in %s&$format=json";
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -201,11 +222,11 @@ public class SapReportService extends BaseService {
|
|
while (iterator.hasNext()) {
|
|
while (iterator.hasNext()) {
|
|
JsonNode userNode = iterator.next();
|
|
JsonNode userNode = iterator.next();
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
|
|
- String phoneTypeCode = JsonNodeUtil.getValue(userNode, "phoneTypeNav", "externalCode");// 电话类型
|
|
|
|
|
|
+ String phoneType = getLabelValue(JsonNodeUtil.getValue(userNode, "phoneType"));// 电话类型
|
|
String phoneNumber = JsonNodeUtil.getValue(userNode, "phoneNumber");// 电话号码
|
|
String phoneNumber = JsonNodeUtil.getValue(userNode, "phoneNumber");// 电话号码
|
|
String isPrimary = JsonNodeUtil.getValue(userNode, "isPrimary");// 主要
|
|
String isPrimary = JsonNodeUtil.getValue(userNode, "isPrimary");// 主要
|
|
SapPerPhone entity = SapPerPhone.builder().personId(personId).phoneNumber(phoneNumber)
|
|
SapPerPhone entity = SapPerPhone.builder().personId(personId).phoneNumber(phoneNumber)
|
|
- .phoneTypeCode(phoneTypeCode).isPrimary(isPrimary).build();
|
|
|
|
|
|
+ .phoneType(phoneType).isPrimary(isPrimary).build();
|
|
save("SapReportMapper.saveSapPerPhone", entity);
|
|
save("SapReportMapper.saveSapPerPhone", entity);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -215,7 +236,7 @@ public class SapReportService extends BaseService {
|
|
public void saveSapPerSocialAccount(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapPerSocialAccount(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
delete("SapReportMapper.deleteSapPerSocialAccount", null);
|
|
delete("SapReportMapper.deleteSapPerSocialAccount", null);
|
|
|
|
|
|
- String url = "https://api15.sapsf.cn/odata/v2/PerSocialAccount?$filter=personIdExternal in %s&$format=json&$expand=domainNav";
|
|
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/PerSocialAccount?$filter=personIdExternal in %s&$format=json";
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
url = String.format(url, getPersonIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -223,10 +244,10 @@ public class SapReportService extends BaseService {
|
|
while (iterator.hasNext()) {
|
|
while (iterator.hasNext()) {
|
|
JsonNode userNode = iterator.next();
|
|
JsonNode userNode = iterator.next();
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
|
|
String personId = JsonNodeUtil.getValue(userNode, "personIdExternal");
|
|
- String domainCode = JsonNodeUtil.getValue(userNode, "domainNav", "externalCode");// 微信
|
|
|
|
|
|
+ String domain = getLabelValue(JsonNodeUtil.getValue(userNode, "domain"));// 微信
|
|
String imId = JsonNodeUtil.getValue(userNode, "imId");// 微信号
|
|
String imId = JsonNodeUtil.getValue(userNode, "imId");// 微信号
|
|
- SapPerSocialAccount entity = SapPerSocialAccount.builder().personId(personId).domainCode(domainCode)
|
|
|
|
- .imId(imId).build();
|
|
|
|
|
|
+ SapPerSocialAccount entity = SapPerSocialAccount.builder().personId(personId).domain(domain).imId(imId)
|
|
|
|
+ .build();
|
|
save("SapReportMapper.saveSapPerSocialAccount", entity);
|
|
save("SapReportMapper.saveSapPerSocialAccount", entity);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -254,12 +275,12 @@ public class SapReportService extends BaseService {
|
|
String okToRehire = JsonNodeUtil.getValue(userNode, "okToRehire");// 可以再雇佣
|
|
String okToRehire = JsonNodeUtil.getValue(userNode, "okToRehire");// 可以再雇佣
|
|
String salaryEndDate = JsonNodeUtil.getValue(userNode, "salaryEndDate");// 最后结薪日期
|
|
String salaryEndDate = JsonNodeUtil.getValue(userNode, "salaryEndDate");// 最后结薪日期
|
|
String benefitsEndDate = JsonNodeUtil.getValue(userNode, "benefitsEndDate");// 福利结算日期
|
|
String benefitsEndDate = JsonNodeUtil.getValue(userNode, "benefitsEndDate");// 福利结算日期
|
|
- String leavingReasonCode = JsonNodeUtil.getValue(userNode, "customString16Nav", "externalCode");// 离职详细原因
|
|
|
|
|
|
+ String leavingReason = getLabelValue(JsonNodeUtil.getValue(userNode, "customString16"));// 离职详细原因
|
|
SapEmpEmployment entity = SapEmpEmployment.builder().personId(personId).startDate(startDate)
|
|
SapEmpEmployment entity = SapEmpEmployment.builder().personId(personId).startDate(startDate)
|
|
.firstDateWorked(firstDateWorked).originalStartDate(originalStartDate)
|
|
.firstDateWorked(firstDateWorked).originalStartDate(originalStartDate)
|
|
.seniorityDate(seniorityDate).socialServiceAge(socialServiceAge).seniority(seniority)
|
|
.seniorityDate(seniorityDate).socialServiceAge(socialServiceAge).seniority(seniority)
|
|
.endDate(endDate).okToRehire(okToRehire).salaryEndDate(salaryEndDate)
|
|
.endDate(endDate).okToRehire(okToRehire).salaryEndDate(salaryEndDate)
|
|
- .benefitsEndDate(benefitsEndDate).leavingReasonCode(leavingReasonCode).build();
|
|
|
|
|
|
+ .benefitsEndDate(benefitsEndDate).leavingReason(leavingReason).build();
|
|
save("SapReportMapper.saveSapEmpEmployment", entity);
|
|
save("SapReportMapper.saveSapEmpEmployment", entity);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -270,7 +291,7 @@ public class SapReportService extends BaseService {
|
|
delete("SapReportMapper.deleteSapEmpJob", null);
|
|
delete("SapReportMapper.deleteSapEmpJob", null);
|
|
|
|
|
|
String url = "https://api15.sapsf.cn/odata/v2/EmpJob?$filter=userId in %s&$format=json"
|
|
String url = "https://api15.sapsf.cn/odata/v2/EmpJob?$filter=userId in %s&$format=json"
|
|
- + "&$expand=positionNav,companyNav,divisionNav,departmentNav,customString19Nav,locationNav,jobCodeNav,customString2Nav,customString4Nav";
|
|
|
|
|
|
+ + "&$expand=positionNav,companyNav,businessUnitNav,divisionNav,departmentNav,customString19Nav,locationNav,jobCodeNav";
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -280,7 +301,6 @@ public class SapReportService extends BaseService {
|
|
String userId = JsonNodeUtil.getValue(userNode, "userId");
|
|
String userId = JsonNodeUtil.getValue(userNode, "userId");
|
|
String positionName = JsonNodeUtil.getValue(userNode, "positionNav", "externalName_zh_CN");// 职位
|
|
String positionName = JsonNodeUtil.getValue(userNode, "positionNav", "externalName_zh_CN");// 职位
|
|
String positionEntryDate = JsonNodeUtil.getValue(userNode, "positionEntryDate");// 就职日期
|
|
String positionEntryDate = JsonNodeUtil.getValue(userNode, "positionEntryDate");// 就职日期
|
|
- // TODO 在职时间
|
|
|
|
String companyName = JsonNodeUtil.getValue(userNode, "companyNav", "name");// 公司
|
|
String companyName = JsonNodeUtil.getValue(userNode, "companyNav", "name");// 公司
|
|
String businessUnitName = JsonNodeUtil.getValue(userNode, "businessUnitNav", "name");// 业务单元
|
|
String businessUnitName = JsonNodeUtil.getValue(userNode, "businessUnitNav", "name");// 业务单元
|
|
String divisionName = JsonNodeUtil.getValue(userNode, "divisionNav", "name");// 部门
|
|
String divisionName = JsonNodeUtil.getValue(userNode, "divisionNav", "name");// 部门
|
|
@@ -288,16 +308,17 @@ public class SapReportService extends BaseService {
|
|
String teamName = JsonNodeUtil.getValue(userNode, "customString19Nav", "externalName_zh_CN");// 小组
|
|
String teamName = JsonNodeUtil.getValue(userNode, "customString19Nav", "externalName_zh_CN");// 小组
|
|
String locationName = JsonNodeUtil.getValue(userNode, "locationNav", "name");// 工作地点
|
|
String locationName = JsonNodeUtil.getValue(userNode, "locationNav", "name");// 工作地点
|
|
String managerId = JsonNodeUtil.getValue(userNode, "managerId");// 直线经理
|
|
String managerId = JsonNodeUtil.getValue(userNode, "managerId");// 直线经理
|
|
|
|
+ String managerName = WebConstants.NAME_MAP.get(managerId);// 直线经理
|
|
String jobCodeName = JsonNodeUtil.getValue(userNode, "jobCodeNav", "name");// 职务分类
|
|
String jobCodeName = JsonNodeUtil.getValue(userNode, "jobCodeNav", "name");// 职务分类
|
|
String jobTitle = JsonNodeUtil.getValue(userNode, "jobTitle");// 标准职务名称
|
|
String jobTitle = JsonNodeUtil.getValue(userNode, "jobTitle");// 标准职务名称
|
|
- // TODO 员工性质
|
|
|
|
- String rank = JsonNodeUtil.getValue(userNode, "customString2Nav", "externalCode");// 职级
|
|
|
|
- String managementOrNot = JsonNodeUtil.getValue(userNode, "customString4Nav", "externalCode");// 是否管理层
|
|
|
|
|
|
+ String rank = getLabelValue(JsonNodeUtil.getValue(userNode, "customString2"));// 职级
|
|
|
|
+ String managementOrNot = getLabelValue(JsonNodeUtil.getValue(userNode, "customString4"));// 是否管理层
|
|
SapEmpJob entity = SapEmpJob.builder().userId(userId).positionName(positionName)
|
|
SapEmpJob entity = SapEmpJob.builder().userId(userId).positionName(positionName)
|
|
.positionEntryDate(positionEntryDate).companyName(companyName)
|
|
.positionEntryDate(positionEntryDate).companyName(companyName)
|
|
.businessUnitName(businessUnitName).divisionName(divisionName).departmentName(departmentName)
|
|
.businessUnitName(businessUnitName).divisionName(divisionName).departmentName(departmentName)
|
|
- .teamName(teamName).locationName(locationName).managerId(managerId).jobCodeName(jobCodeName)
|
|
|
|
- .jobTitle(jobTitle).rank(rank).managementOrNot(managementOrNot).build();
|
|
|
|
|
|
+ .teamName(teamName).locationName(locationName).managerId(managerId).managerName(managerName)
|
|
|
|
+ .jobCodeName(jobCodeName).jobTitle(jobTitle).rank(rank).managementOrNot(managementOrNot)
|
|
|
|
+ .build();
|
|
save("SapReportMapper.saveSapEmpJob", entity);
|
|
save("SapReportMapper.saveSapEmpJob", entity);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -307,7 +328,7 @@ public class SapReportService extends BaseService {
|
|
public void saveSapEmpJobRelationships(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapEmpJobRelationships(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
delete("SapReportMapper.deleteSapEmpJobRelationships", null);
|
|
delete("SapReportMapper.deleteSapEmpJobRelationships", null);
|
|
|
|
|
|
- String url = "https://api15.sapsf.cn/odata/v2/EmpJobRelationships?$filter=userId in %s&$format=json&$expand=relationshipTypeNav,relUserNav";
|
|
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/EmpJobRelationships?$filter=userId in %s&$format=json&$expand=relUserNav";
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -315,11 +336,11 @@ public class SapReportService extends BaseService {
|
|
while (iterator.hasNext()) {
|
|
while (iterator.hasNext()) {
|
|
JsonNode userNode = iterator.next();
|
|
JsonNode userNode = iterator.next();
|
|
String userId = JsonNodeUtil.getValue(userNode, "userId");
|
|
String userId = JsonNodeUtil.getValue(userNode, "userId");
|
|
- String relationshipTypeCode = JsonNodeUtil.getValue(userNode, "relationshipTypeNav", "externalCode");// 关系类型
|
|
|
|
|
|
+ String relationshipType = getLabelValue(JsonNodeUtil.getValue(userNode, "relationshipType"));// 关系类型
|
|
String relUserName = JsonNodeUtil.getValue(userNode, "relUserNav", "lastName")
|
|
String relUserName = JsonNodeUtil.getValue(userNode, "relUserNav", "lastName")
|
|
+ JsonNodeUtil.getValue(userNode, "relUserNav", "firstName");// 姓名
|
|
+ JsonNodeUtil.getValue(userNode, "relUserNav", "firstName");// 姓名
|
|
SapEmpJobRelationships entity = SapEmpJobRelationships.builder().userId(userId)
|
|
SapEmpJobRelationships entity = SapEmpJobRelationships.builder().userId(userId)
|
|
- .relationshipTypeCode(relationshipTypeCode).relUserName(relUserName).build();
|
|
|
|
|
|
+ .relationshipType(relationshipType).relUserName(relUserName).build();
|
|
save("SapReportMapper.saveSapEmpJobRelationships", entity);
|
|
save("SapReportMapper.saveSapEmpJobRelationships", entity);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -358,6 +379,8 @@ public class SapReportService extends BaseService {
|
|
|
|
|
|
// 公司内工作经历 Background_InsideWorkExperience
|
|
// 公司内工作经历 Background_InsideWorkExperience
|
|
public void saveSapInsideWorkExperience(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapInsideWorkExperience(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
|
|
+ delete("SapReportMapper.deleteSapInsideWorkExperience", null);
|
|
|
|
+
|
|
String url = "https://api15.sapsf.cn/odata/v2/Background_InsideWorkExperience?$filter=userId in %s&$format=json";
|
|
String url = "https://api15.sapsf.cn/odata/v2/Background_InsideWorkExperience?$filter=userId in %s&$format=json";
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
@@ -379,7 +402,9 @@ public class SapReportService extends BaseService {
|
|
|
|
|
|
// 培训经历 Background_Courses
|
|
// 培训经历 Background_Courses
|
|
public void saveSapCourses(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapCourses(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
- String url = "https://api15.sapsf.cn/odata/v2/Background_Courses?$filter=userId in %s&$format=json&$expand=custom3Nav,lengthNav";
|
|
|
|
|
|
+ delete("SapReportMapper.deleteSapCourses", null);
|
|
|
|
+
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/Background_Courses?$filter=userId in %s&$format=json";
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -389,16 +414,16 @@ public class SapReportService extends BaseService {
|
|
String userId = JsonNodeUtil.getValue(userNode, "userId");
|
|
String userId = JsonNodeUtil.getValue(userNode, "userId");
|
|
String course = JsonNodeUtil.getValue(userNode, "course");// 课程名称
|
|
String course = JsonNodeUtil.getValue(userNode, "course");// 课程名称
|
|
String startDate = JsonNodeUtil.getValue(userNode, "institution");// 开始日期
|
|
String startDate = JsonNodeUtil.getValue(userNode, "institution");// 开始日期
|
|
- String endData = JsonNodeUtil.getValue(userNode, "instructionType");// 结束日期
|
|
|
|
- String lengthCode = JsonNodeUtil.getValue(userNode, "lengthNav", "externalCode");// 培训类型
|
|
|
|
|
|
+ String endDate = JsonNodeUtil.getValue(userNode, "instructionType");// 结束日期
|
|
|
|
+ String type = getLabelValue(JsonNodeUtil.getValue(userNode, "length"));// 培训类型
|
|
String place = JsonNodeUtil.getValue(userNode, "custom9");// 培训地点
|
|
String place = JsonNodeUtil.getValue(userNode, "custom9");// 培训地点
|
|
String duration = JsonNodeUtil.getValue(userNode, "custom1");// 历时
|
|
String duration = JsonNodeUtil.getValue(userNode, "custom1");// 历时
|
|
String result = JsonNodeUtil.getValue(userNode, "custom2");// 培训结果
|
|
String result = JsonNodeUtil.getValue(userNode, "custom2");// 培训结果
|
|
- String certificateOrNot = JsonNodeUtil.getValue(userNode, "custom3Nav", "externalCode");// 是否有证书
|
|
|
|
|
|
+ String certificateOrNot = getLabelValue(JsonNodeUtil.getValue(userNode, "custom3"));// 是否有证书
|
|
String dueTime = JsonNodeUtil.getValue(userNode, "custom4");// 培训服务期到期时间
|
|
String dueTime = JsonNodeUtil.getValue(userNode, "custom4");// 培训服务期到期时间
|
|
String remark = JsonNodeUtil.getValue(userNode, "custom7");// 备注
|
|
String remark = JsonNodeUtil.getValue(userNode, "custom7");// 备注
|
|
SapCourses entity = SapCourses.builder().userId(userId).course(course).startDate(startDate)
|
|
SapCourses entity = SapCourses.builder().userId(userId).course(course).startDate(startDate)
|
|
- .endData(endData).lengthCode(lengthCode).place(place).duration(duration).result(result)
|
|
|
|
|
|
+ .endDate(endDate).type(type).place(place).duration(duration).result(result)
|
|
.certificateOrNot(certificateOrNot).dueTime(dueTime).remark(remark).build();
|
|
.certificateOrNot(certificateOrNot).dueTime(dueTime).remark(remark).build();
|
|
save("SapReportMapper.saveSapCourses", entity);
|
|
save("SapReportMapper.saveSapCourses", entity);
|
|
}
|
|
}
|
|
@@ -407,6 +432,8 @@ public class SapReportService extends BaseService {
|
|
|
|
|
|
// 学历教育 Background_Education
|
|
// 学历教育 Background_Education
|
|
public void saveSapEducation(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapEducation(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
|
|
+ delete("SapReportMapper.deleteSapEducation", null);
|
|
|
|
+
|
|
String url = "https://api15.sapsf.cn/odata/v2/Background_Education?$filter=userId in %s&$format=json";
|
|
String url = "https://api15.sapsf.cn/odata/v2/Background_Education?$filter=userId in %s&$format=json";
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
@@ -456,7 +483,7 @@ public class SapReportService extends BaseService {
|
|
public void saveSapLanguages(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
public void saveSapLanguages(HttpHeaders headers, List<SapUser> sapUsers) throws Exception {
|
|
delete("SapReportMapper.deleteSapLanguages", null);
|
|
delete("SapReportMapper.deleteSapLanguages", null);
|
|
|
|
|
|
- String url = "https://api15.sapsf.cn/odata/v2/Background_Languages?$filter=userId in %s&$format=json&$expand=languageNav,speakingProfNav,readingProfNav,writingProfNav";
|
|
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/Background_Languages?$filter=userId in %s&$format=json";
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
url = String.format(url, getUserIds(sapUsers));
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
JsonNode node = requestService.getForObject(url, headers);
|
|
if (node != null) {
|
|
if (node != null) {
|
|
@@ -464,13 +491,12 @@ public class SapReportService extends BaseService {
|
|
while (iterator.hasNext()) {
|
|
while (iterator.hasNext()) {
|
|
JsonNode userNode = iterator.next();
|
|
JsonNode userNode = iterator.next();
|
|
String userId = JsonNodeUtil.getValue(userNode, "userId");
|
|
String userId = JsonNodeUtil.getValue(userNode, "userId");
|
|
- String languageCode = JsonNodeUtil.getValue(userNode, "languageNav", "externalCode");// 语言
|
|
|
|
- String speakingProfCode = JsonNodeUtil.getValue(userNode, "speakingProfNav");// 口语能力
|
|
|
|
- String readingProfCode = JsonNodeUtil.getValue(userNode, "readingProfNav");// 阅读能力
|
|
|
|
- String writingProfCode = JsonNodeUtil.getValue(userNode, "writingProfNav");// 书写能力
|
|
|
|
- SapLanguages entity = SapLanguages.builder().userId(userId).languageCode(languageCode)
|
|
|
|
- .speakingProfCode(speakingProfCode).readingProfCode(readingProfCode)
|
|
|
|
- .writingProfCode(writingProfCode).build();
|
|
|
|
|
|
+ String language = getLabelValue(JsonNodeUtil.getValue(userNode, "language"));// 语言
|
|
|
|
+ String speakingProf = getLabelValue(JsonNodeUtil.getValue(userNode, "speakingProf"));// 口语能力
|
|
|
|
+ String readingProf = getLabelValue(JsonNodeUtil.getValue(userNode, "readingProf"));// 阅读能力
|
|
|
|
+ String writingProf = getLabelValue(JsonNodeUtil.getValue(userNode, "writingProf"));// 书写能力
|
|
|
|
+ SapLanguages entity = SapLanguages.builder().userId(userId).language(language)
|
|
|
|
+ .speakingProf(speakingProf).readingProf(readingProf).writingProf(writingProf).build();
|
|
save("SapReportMapper.saveSapLanguages", entity);
|
|
save("SapReportMapper.saveSapLanguages", entity);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -501,12 +527,22 @@ public class SapReportService extends BaseService {
|
|
}
|
|
}
|
|
|
|
|
|
public String getLabelValue(String optionId) {
|
|
public String getLabelValue(String optionId) {
|
|
- if(Tools.isEmpty(optionId)) {
|
|
|
|
|
|
+ if (Tools.isEmpty(optionId)) {
|
|
return "";
|
|
return "";
|
|
}
|
|
}
|
|
- String url = "https://api15.sapsf.cn/odata/v2/PicklistLabel(locale='zh_CN',optionId=" + optionId
|
|
|
|
- + ")?$format=json";
|
|
|
|
- JsonNode node = requestService.getForObject(url, getHttpHeaders());
|
|
|
|
- return JsonNodeUtil.getValue(node, "d", "label");
|
|
|
|
|
|
+ if (WebConstants.LABEL_MAP.containsKey(optionId)) {
|
|
|
|
+ return WebConstants.LABEL_MAP.get(optionId);
|
|
|
|
+ } else {
|
|
|
|
+ String value = "";
|
|
|
|
+ try {
|
|
|
|
+ String url = "https://api15.sapsf.cn/odata/v2/PicklistLabel(locale='zh_CN',optionId=" + optionId
|
|
|
|
+ + ")?$format=json";
|
|
|
|
+ JsonNode node = requestService.getForObject(url, getHttpHeaders());
|
|
|
|
+ value = JsonNodeUtil.getValue(node, "d", "label");
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ }
|
|
|
|
+ WebConstants.LABEL_MAP.put(optionId, value);
|
|
|
|
+ return value;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|