|
|
|
@ -3,11 +3,13 @@ package com.engine.organization.service.impl;
|
|
|
|
|
import cn.hutool.core.date.DateField;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import com.engine.core.impl.Service;
|
|
|
|
|
import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
|
|
|
|
|
import com.engine.organization.entity.map.JclOrgMap;
|
|
|
|
|
import com.engine.organization.entity.scheme.po.GradePO;
|
|
|
|
|
import com.engine.organization.entity.scheme.po.LevelPO;
|
|
|
|
|
import com.engine.organization.entity.staff.po.StaffPO;
|
|
|
|
|
import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
|
|
|
|
|
import com.engine.organization.mapper.resource.ResourceMapper;
|
|
|
|
|
import com.engine.organization.mapper.scheme.GradeMapper;
|
|
|
|
|
import com.engine.organization.mapper.scheme.LevelMapper;
|
|
|
|
|
import com.engine.organization.mapper.staff.StaffMapper;
|
|
|
|
@ -550,16 +552,27 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|
|
|
|
// 自下向上刷新
|
|
|
|
|
getJclOrgMapMapper().deleteAllMap(date);
|
|
|
|
|
getJclOrgMapMapper().updateAllMap(date,time);
|
|
|
|
|
//同步人员信息
|
|
|
|
|
getJclOrgMapMapper().insertResToMap(level,grade);
|
|
|
|
|
//同步岗位信息
|
|
|
|
|
getJclOrgMapMapper().insertJobToMap();
|
|
|
|
|
//同步部门信息
|
|
|
|
|
getJclOrgMapMapper().insertDeptToMap(level,grade);
|
|
|
|
|
//同步分部信息
|
|
|
|
|
getJclOrgMapMapper().insertSubComToMap();
|
|
|
|
|
//同步集团信息
|
|
|
|
|
getJclOrgMapMapper().insertComToMap();
|
|
|
|
|
//同步分部信息
|
|
|
|
|
getJclOrgMapMapper().insertSubComToMap();
|
|
|
|
|
//同步部门信息
|
|
|
|
|
getJclOrgMapMapper().insertDeptToMap(level,grade);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//同步岗位信息
|
|
|
|
|
// getJclOrgMapMapper().insertJobToMap();
|
|
|
|
|
// 同步部门负责人
|
|
|
|
|
getJclOrgMapMapper().insertBmfzrToMapJZ(level,grade);
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
|
rs.execute("select c.id as id,c.departmentid as departmentid from hrmdepartment a \n" +
|
|
|
|
|
"inner join hrmdepartmentdefined b on a.id=b.DEPTID\n" +
|
|
|
|
|
"inner join hrmresource c on b.BMFZR=c.id ");
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
//同步人员信息
|
|
|
|
|
syncHrmResource(rs.getString("id"),rs.getString("departmentid"),3);
|
|
|
|
|
}
|
|
|
|
|
// getJclOrgMapMapper().insertResToMap(level,grade);
|
|
|
|
|
//清除部门合并、转移造成的脏数据
|
|
|
|
|
getJclOrgMapMapper().deleteJobNull(date);
|
|
|
|
|
//刷新在岗数、编制数(从岗位向上刷,岗位不需处理)
|
|
|
|
@ -605,6 +618,37 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private ResourceMapper getResourceMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(ResourceMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void syncHrmResource(String managerId, String deptId,int ftype) {
|
|
|
|
|
String parentField = "";
|
|
|
|
|
// 根据直接上级id、部门Id,确认该直接上级id在当前部门的下属
|
|
|
|
|
switch (ftype) {
|
|
|
|
|
case 3:
|
|
|
|
|
parentField = "a.MANAGERID +200000000";
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
parentField = "a.MANAGERID +300000000";
|
|
|
|
|
break;
|
|
|
|
|
default: break;
|
|
|
|
|
}
|
|
|
|
|
int flag = getJclOrgMapMapper().insertResToMapJZ(level, grade,parentField, managerId, deptId);
|
|
|
|
|
// 下属寻找下属,直至没有下属
|
|
|
|
|
List<HrmResourcePO> list = getResourceMapper().getHrmByManagerIdAndDeptId(managerId, deptId);
|
|
|
|
|
for (HrmResourcePO hrmResourcePO : list) {
|
|
|
|
|
List<HrmResourcePO> childList = getResourceMapper().getHrmByManagerIdAndDeptId(String.valueOf(hrmResourcePO.getId()), deptId);
|
|
|
|
|
if (childList.size() > 0) {
|
|
|
|
|
parentField = "a.MANAGERID +300000000";
|
|
|
|
|
getJclOrgMapMapper().insertResToMapJZ(level, grade,parentField, String.valueOf(hrmResourcePO.getId()), deptId);
|
|
|
|
|
for (HrmResourcePO hrmResourcePOChild : childList) {
|
|
|
|
|
syncHrmResource(String.valueOf(hrmResourcePOChild.getId()), deptId,4);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
private String getFieldName(String fieldabel) {
|
|
|
|
|
RecordSet recordSet = new RecordSet();
|
|
|
|
|
String fieldname = null;
|
|
|
|
|