合并xuanran组织架构同步
parent
ad3eed6d87
commit
4abb771154
|
@ -2,7 +2,9 @@ package weaver.youhong.ai.pcn.hrorganization.wesmat;
|
||||||
|
|
||||||
import aiyh.utils.Util;
|
import aiyh.utils.Util;
|
||||||
import aiyh.utils.zwl.common.ToolUtil;
|
import aiyh.utils.zwl.common.ToolUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.weaver.esb.server.cache.ResourceComInfo;
|
import com.weaver.esb.server.cache.ResourceComInfo;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import weaver.hrm.company.DepartmentComInfo;
|
import weaver.hrm.company.DepartmentComInfo;
|
||||||
import weaver.hrm.company.SubCompanyComInfo;
|
import weaver.hrm.company.SubCompanyComInfo;
|
||||||
import weaver.hrm.job.JobTitlesComInfo;
|
import weaver.hrm.job.JobTitlesComInfo;
|
||||||
|
@ -11,6 +13,7 @@ import weaver.integration.logging.Logger;
|
||||||
import weaver.integration.logging.LoggerFactory;
|
import weaver.integration.logging.LoggerFactory;
|
||||||
import weaver.interfaces.hrm.*;
|
import weaver.interfaces.hrm.*;
|
||||||
import weaver.matrix.MatrixUtil;
|
import weaver.matrix.MatrixUtil;
|
||||||
|
import weaver.youhong.ai.pcn.hrorganization.wesmat.mapper.HrmAsyncJobMapper;
|
||||||
import weaver.youhong.ai.pcn.hrorganization.wesmat.model.Department;
|
import weaver.youhong.ai.pcn.hrorganization.wesmat.model.Department;
|
||||||
import weaver.youhong.ai.pcn.hrorganization.wesmat.model.Employee;
|
import weaver.youhong.ai.pcn.hrorganization.wesmat.model.Employee;
|
||||||
import weaver.youhong.ai.pcn.hrorganization.wesmat.model.Position;
|
import weaver.youhong.ai.pcn.hrorganization.wesmat.model.Position;
|
||||||
|
@ -18,21 +21,30 @@ import weaver.youhong.ai.pcn.hrorganization.wesmat.result.GetOrganizationResult;
|
||||||
import weaver.youhong.ai.pcn.hrorganization.wesmat.util.SyncOrganizationUtils;
|
import weaver.youhong.ai.pcn.hrorganization.wesmat.util.SyncOrganizationUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author EBU7-dev1-ayh
|
* @author EBU7-dev1-ayh
|
||||||
* @create 2021/7/20 0020 15:16
|
* @create 2021/7/20 0020 15:16
|
||||||
* 同步第三方系统人员组织结构
|
* 同步第三方系统人员组织结构
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
public class SyncOrganizationForOtherAPI extends ToolUtil implements HrmSynService {
|
public class SyncOrganizationForOtherAPI extends ToolUtil implements HrmSynService {
|
||||||
private final Logger log = LoggerFactory.getLogger(SyncOrganizationForOtherAPI.class);
|
private final Logger log = LoggerFactory.getLogger(SyncOrganizationForOtherAPI.class);
|
||||||
private final GetOrganizationResult getOrganizationResult = new GetOrganizationResult();
|
private final GetOrganizationResult getOrganizationResult = new GetOrganizationResult();
|
||||||
private final SyncOrganizationUtils organizationUtils = new SyncOrganizationUtils();
|
private final SyncOrganizationUtils organizationUtils = new SyncOrganizationUtils();
|
||||||
String className = "SyncOrganizationForOtherAPI";
|
String className = "SyncOrganizationForOtherAPI";
|
||||||
private HashMap<String, Object> synResult;
|
private HashMap<String, Object> synResult;
|
||||||
|
private List<String> unAsyncDepIdList = new ArrayList<>();
|
||||||
|
|
||||||
|
public void getUnAsyncDepIdList() {
|
||||||
|
HrmAsyncJobMapper mapper = Util.getMapper(HrmAsyncJobMapper.class);
|
||||||
|
List<String> unableConfig = mapper.getUnableConfig();
|
||||||
|
List<Map<String, Object>> departInfo = mapper.getDepartInfo();
|
||||||
|
for (String id : unableConfig) {
|
||||||
|
getUnAsyncId(unAsyncDepIdList, departInfo, id);
|
||||||
|
}
|
||||||
|
writeDebuggerLog(className, "UnAsyncSubIdList => " + JSONObject.toJSONString(unAsyncDepIdList));
|
||||||
|
}
|
||||||
|
|
||||||
public SyncOrganizationForOtherAPI() {
|
public SyncOrganizationForOtherAPI() {
|
||||||
this.writeDebuggerLog(className, "===========> create Object! <============");
|
this.writeDebuggerLog(className, "===========> create Object! <============");
|
||||||
|
@ -56,14 +68,20 @@ public class SyncOrganizationForOtherAPI extends ToolUtil implements HrmSynServi
|
||||||
@Override
|
@Override
|
||||||
public String SynTimingToOADepartment() {
|
public String SynTimingToOADepartment() {
|
||||||
this.writeDebuggerLog(className, "===========> synchronous department to OA system starts <============");
|
this.writeDebuggerLog(className, "===========> synchronous department to OA system starts <============");
|
||||||
|
unAsyncDepIdList.clear();
|
||||||
|
getUnAsyncDepIdList();
|
||||||
try {
|
try {
|
||||||
List<Department> departmentList = getOrganizationResult.getDepartmentList();
|
List<Department> departmentList = getOrganizationResult.getDepartmentList();
|
||||||
Collections.sort(departmentList);
|
Collections.sort(departmentList);
|
||||||
List<Map<String, Object>> synResultlist = new ArrayList<>();
|
List<Map<String, Object>> synResultlist = new ArrayList<>();
|
||||||
departmentList.forEach(department -> {
|
for (Department department : departmentList) {
|
||||||
|
// 如果不启用就不执行
|
||||||
|
if (unAsyncDepIdList.contains(String.valueOf(department.getDEPARTMENTID()))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
Map<String, String> stringStringMap = organizationUtils.asyncDepartment(department);
|
Map<String, String> stringStringMap = organizationUtils.asyncDepartment(department);
|
||||||
synResultlist.add(buildItemMap("", "", department.getDEPARTMENTNAME(), stringStringMap.get("code"), stringStringMap.get("msg")));
|
synResultlist.add(buildItemMap("", "", department.getDEPARTMENTNAME(), stringStringMap.get("code"), stringStringMap.get("msg")));
|
||||||
});
|
}
|
||||||
this.writeDebuggerLog(className, departmentList.size() + " data pieces are updated this time");
|
this.writeDebuggerLog(className, departmentList.size() + " data pieces are updated this time");
|
||||||
//清除OA中分部的缓存记录
|
//清除OA中分部的缓存记录
|
||||||
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
|
SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo();
|
||||||
|
@ -123,10 +141,15 @@ public class SyncOrganizationForOtherAPI extends ToolUtil implements HrmSynServi
|
||||||
List<Employee> employeeList = getOrganizationResult.getEmployeeList();
|
List<Employee> employeeList = getOrganizationResult.getEmployeeList();
|
||||||
List<Map<String, Object>> synResultlist = new ArrayList<>();
|
List<Map<String, Object>> synResultlist = new ArrayList<>();
|
||||||
Collections.sort(employeeList);
|
Collections.sort(employeeList);
|
||||||
employeeList.forEach(employee -> {
|
for (Employee employee : employeeList) {
|
||||||
|
if (unAsyncDepIdList.contains(String.valueOf(employee.getDEPARTMENTID()))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
Map<String, String> stringStringMap = organizationUtils.asyncEmployee(employee);
|
Map<String, String> stringStringMap = organizationUtils.asyncEmployee(employee);
|
||||||
synResultlist.add(buildItemMap(employee.getUSERCODE(), employee.getUSERCODE(), employee.getPreferred_Name() + "/" + employee.getUSERNAMECN(), stringStringMap.get("code"), stringStringMap.get("msg")));
|
synResultlist.add(buildItemMap(employee.getUSERCODE(), employee.getUSERCODE(), employee.getPreferred_Name() + "/" + employee.getUSERNAMECN(), stringStringMap.get("code"), stringStringMap.get("msg")));
|
||||||
});
|
}
|
||||||
|
// employeeList.forEach(employee -> {
|
||||||
|
// });
|
||||||
this.writeDebuggerLog(className, employeeList.size() + " data pieces are updated this time");
|
this.writeDebuggerLog(className, employeeList.size() + " data pieces are updated this time");
|
||||||
// 清除人员缓存
|
// 清除人员缓存
|
||||||
try {
|
try {
|
||||||
|
@ -203,11 +226,31 @@ public class SyncOrganizationForOtherAPI extends ToolUtil implements HrmSynServi
|
||||||
private Map<String, Object> buildItemMap(String pkcode, String pk, String memo, String succ, String error) {
|
private Map<String, Object> buildItemMap(String pkcode, String pk, String memo, String succ, String error) {
|
||||||
//保存结果
|
//保存结果
|
||||||
HashMap<String, Object> itemMap = new HashMap<>();
|
HashMap<String, Object> itemMap = new HashMap<>();
|
||||||
itemMap.put(HrmSynDAO.OUTPK, pkcode);
|
itemMap.put(weaver.hrm.resource.HrmSynDAO.OUTPK, pkcode);
|
||||||
itemMap.put(HrmSynDAO.PK, pk);
|
itemMap.put(weaver.hrm.resource.HrmSynDAO.PK, pk);
|
||||||
itemMap.put(HrmSynDAO.Memo, memo);
|
itemMap.put(weaver.hrm.resource.HrmSynDAO.Memo, memo);
|
||||||
itemMap.put(HrmSynDAO.Success, succ);
|
itemMap.put(weaver.hrm.resource.HrmSynDAO.Success, succ);
|
||||||
itemMap.put(HrmSynDAO.ErrorMessage, error);
|
itemMap.put(HrmSynDAO.ErrorMessage, error);
|
||||||
return itemMap;
|
return itemMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getUnAsyncId(List<String> res, List<Map<String, Object>> info, String unAsyncId) {
|
||||||
|
List<String> id = info.stream()
|
||||||
|
.filter(item ->
|
||||||
|
unAsyncId.equals(String.valueOf(item.get("outkey"))))
|
||||||
|
.map(item -> String.valueOf(item.get("id")))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (!CollectionUtils.isEmpty(id)) {
|
||||||
|
List<Map<String, Object>> collect = info.stream().filter(item ->
|
||||||
|
id.get(0).equals(String.valueOf(item.get("supdepid")))
|
||||||
|
).collect(Collectors.toList());
|
||||||
|
if (CollectionUtils.isNotEmpty(collect)) {
|
||||||
|
for (Map<String, Object> map : collect) {
|
||||||
|
String outKey = String.valueOf(map.get("outkey"));
|
||||||
|
res.add(outKey);
|
||||||
|
getUnAsyncId(res, info, outKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package weaver.youhong.ai.pcn.hrorganization.wesmat.mapper;
|
||||||
|
|
||||||
|
import aiyh.utils.annotation.recordset.Select;
|
||||||
|
import aiyh.utils.annotation.recordset.SqlMapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author xuanran.wang
|
||||||
|
* @Date 2022/10/10 16:25
|
||||||
|
*/
|
||||||
|
@SqlMapper
|
||||||
|
public interface HrmAsyncJobMapper {
|
||||||
|
@Select("select id, supdepid, outkey from hrmdepartment")
|
||||||
|
List<Map<String, Object>> getDepartInfo();
|
||||||
|
|
||||||
|
@Select("select frist_company from uf_sub_mapping where enable = 1")
|
||||||
|
List<String> getUnableConfig();
|
||||||
|
}
|
Loading…
Reference in New Issue