|
|
|
@ -4,10 +4,12 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.engine.common.util.ServiceUtil;
|
|
|
|
|
import com.engine.hrm.service.impl.OrganizationServiceImpl;
|
|
|
|
|
import com.engine.organization.entity.company.po.CompPO;
|
|
|
|
|
import com.engine.organization.entity.department.po.DepartmentPO;
|
|
|
|
|
import com.engine.organization.entity.extend.param.ExtendInfoParams;
|
|
|
|
|
import com.engine.organization.enums.LogModuleNameEnum;
|
|
|
|
|
import com.engine.organization.enums.OperateTypeEnum;
|
|
|
|
|
import com.engine.organization.mapper.comp.CompMapper;
|
|
|
|
|
import com.engine.organization.mapper.department.DepartmentMapper;
|
|
|
|
|
import com.engine.organization.mapper.extend.ExtMapper;
|
|
|
|
|
import com.engine.organization.mapper.hrmresource.SystemDataMapper;
|
|
|
|
|
import com.engine.organization.util.db.MapperProxyFactory;
|
|
|
|
@ -31,6 +33,12 @@ public class OrganizationRunable implements Runnable {
|
|
|
|
|
private Map<String, Object> params;
|
|
|
|
|
private User user;
|
|
|
|
|
|
|
|
|
|
private static final String HRM_COMPANY = "hrmsubcompany";
|
|
|
|
|
private static final String HRM_DEPARTMENT = "hrmdepartment";
|
|
|
|
|
|
|
|
|
|
private static final String JCL_COMPANY = "jcl_org_comp";
|
|
|
|
|
private static final String JCL_DEPARTMENT = "jcl_org_dept";
|
|
|
|
|
|
|
|
|
|
private SystemDataMapper getSystemDataMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(SystemDataMapper.class);
|
|
|
|
|
}
|
|
|
|
@ -43,6 +51,10 @@ public class OrganizationRunable implements Runnable {
|
|
|
|
|
return MapperProxyFactory.getProxy(CompMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private DepartmentMapper getDepartmentMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(DepartmentMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public OrganizationRunable(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map<String, Object> params) {
|
|
|
|
|
this.moduleName = moduleName;
|
|
|
|
@ -87,13 +99,19 @@ public class OrganizationRunable implements Runnable {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 刷新HrmDepartment表数据
|
|
|
|
|
*/
|
|
|
|
|
private void refreshDepartment() {
|
|
|
|
|
switch (operateType) {
|
|
|
|
|
case ADD:
|
|
|
|
|
addDepartment();
|
|
|
|
|
break;
|
|
|
|
|
case UPDATE:
|
|
|
|
|
updateDepartment();
|
|
|
|
|
break;
|
|
|
|
|
case DELETE:
|
|
|
|
|
case CANCELED:
|
|
|
|
|
cancelDepartment();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
@ -113,12 +131,92 @@ public class OrganizationRunable implements Runnable {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 新增部门
|
|
|
|
|
*/
|
|
|
|
|
private void addDepartment() {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("departmentmark", Util.null2String(params.get("dept_name_short")));
|
|
|
|
|
map.put("departmentname", Util.null2String(params.get("dept_name")));
|
|
|
|
|
|
|
|
|
|
// 上级分部通过UUID联查ec表ID
|
|
|
|
|
String parentCompany = Util.null2String(params.get("parent_comp"));
|
|
|
|
|
if (StringUtils.isNotBlank(parentCompany)) {
|
|
|
|
|
map.put("subcompanyid1", getEcCompanyId(parentCompany));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 上级部门通过UUID联查ec表ID
|
|
|
|
|
String parentDepartment = Util.null2String(params.get("parent_dept"));
|
|
|
|
|
if (StringUtils.isNotBlank(parentDepartment)) {
|
|
|
|
|
map.put("supdepid", getEcDepartmentId(parentDepartment));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
map.put("showorder", Util.null2String(params.get("show_order")));
|
|
|
|
|
map.put("departmentcode", Util.null2String(params.get("dept_no")));
|
|
|
|
|
map.put("coadjutant", Util.null2String(params.get("dept_principal")));
|
|
|
|
|
Map<String, Object> returnMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).addDepartment(map, user);
|
|
|
|
|
// 更新jcl_org_dept表 uuid字段
|
|
|
|
|
if ("1".equals(Util.null2String(returnMap.get("status"))) && null != returnMap.get("id")) {
|
|
|
|
|
updateJclUUID(Util.null2String(returnMap.get("id")), HRM_DEPARTMENT, JCL_DEPARTMENT);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 封存、解封部门
|
|
|
|
|
*/
|
|
|
|
|
private void cancelDepartment() {
|
|
|
|
|
String departmentIds = Util.null2String(params.get("id"));
|
|
|
|
|
String forbiddenTag = Util.null2String(params.get("forbiddenTag"));
|
|
|
|
|
List<String> idList = new ArrayList<>();
|
|
|
|
|
String[] split = departmentIds.split(",");
|
|
|
|
|
for (String s : split) {
|
|
|
|
|
idList.add(getEcDepartmentId(s));
|
|
|
|
|
}
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("id", StringUtils.join(idList, ","));
|
|
|
|
|
if (StringUtils.isBlank(forbiddenTag) || "1".equals(forbiddenTag)) {
|
|
|
|
|
// 封存
|
|
|
|
|
ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentCancel(map, user);
|
|
|
|
|
} else {
|
|
|
|
|
// 解封
|
|
|
|
|
ServiceUtil.getService(OrganizationServiceImpl.class, user).doDepartmentISCanceled(map, user);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新部门
|
|
|
|
|
*/
|
|
|
|
|
private void updateDepartment() {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
// 获取ec表ID
|
|
|
|
|
map.put("id", getEcDepartmentId(Util.null2String(params.get("id"))));
|
|
|
|
|
map.put("departmentmark", Util.null2String(params.get("dept_name_short")));
|
|
|
|
|
map.put("departmentname", Util.null2String(params.get("dept_name")));
|
|
|
|
|
|
|
|
|
|
// 上级分部通过UUID联查ec表ID
|
|
|
|
|
String parentCompany = Util.null2String(params.get("parent_comp"));
|
|
|
|
|
if (StringUtils.isNotBlank(parentCompany)) {
|
|
|
|
|
map.put("subcompanyid1", getEcCompanyId(parentCompany));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 上级部门通过UUID联查ec表ID
|
|
|
|
|
String parentDepartment = Util.null2String(params.get("parent_dept"));
|
|
|
|
|
if (StringUtils.isNotBlank(parentDepartment)) {
|
|
|
|
|
map.put("supdepid", getEcDepartmentId(parentDepartment));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
map.put("showorder", Util.null2String(params.get("show_order")));
|
|
|
|
|
map.put("departmentcode", Util.null2String(params.get("dept_no")));
|
|
|
|
|
map.put("coadjutant", Util.null2String(params.get("dept_principal")));
|
|
|
|
|
ServiceUtil.getService(OrganizationServiceImpl.class, user).editDepartment(map, user);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 新增分部
|
|
|
|
|
*/
|
|
|
|
|
private void addCompany() {
|
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
|
map.put("subcompanyname", params.get("comp_name_short").toString());
|
|
|
|
|
map.put("subcompanyname", Util.null2String(params.get("comp_name_short")));
|
|
|
|
|
|
|
|
|
|
// 上级分部通过UUID联查ec表ID
|
|
|
|
|
String parentCompany = Util.null2String(params.get("parent_company"));
|
|
|
|
@ -129,18 +227,11 @@ public class OrganizationRunable implements Runnable {
|
|
|
|
|
map.put("subcompanycode", params.get("comp_no").toString());
|
|
|
|
|
map.put("subcompanydesc", params.get("comp_name").toString());
|
|
|
|
|
map.put("showorder", Util.null2String(params.get("show_order")));
|
|
|
|
|
Map<String, Object> stringObjectMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).addSubCompany(map, user);
|
|
|
|
|
Map<String, Object> returnMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).addSubCompany(map, user);
|
|
|
|
|
|
|
|
|
|
// 更新jcl_org_comp表 uuid字段
|
|
|
|
|
if ("1".equals(Util.null2String(stringObjectMap.get("status"))) && null != stringObjectMap.get("id")) {
|
|
|
|
|
String id = Util.null2String(stringObjectMap.get("id"));
|
|
|
|
|
JSONObject hrmSubCompanyByID = getSystemDataMapper().getHrmSubCompanyByID(id);
|
|
|
|
|
String uuid = hrmSubCompanyByID.getString("uuid");
|
|
|
|
|
Map<String, Object> companyMap = new HashMap<>();
|
|
|
|
|
companyMap.put("uuid", uuid);
|
|
|
|
|
long companyId = Long.parseLong(Util.null2String(params.get("companyId")));
|
|
|
|
|
ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_COMP").params(companyMap).id(companyId).build();
|
|
|
|
|
getExtMapper().updateExt(infoParams);
|
|
|
|
|
if ("1".equals(Util.null2String(returnMap.get("status"))) && null != returnMap.get("id")) {
|
|
|
|
|
updateJclUUID(Util.null2String(returnMap.get("id")), HRM_COMPANY, JCL_COMPANY);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -187,6 +278,23 @@ public class OrganizationRunable implements Runnable {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新聚才林组织UUID
|
|
|
|
|
*
|
|
|
|
|
* @param id
|
|
|
|
|
* @param ecTableName
|
|
|
|
|
* @param jclTableName
|
|
|
|
|
*/
|
|
|
|
|
private void updateJclUUID(String id, String ecTableName, String jclTableName) {
|
|
|
|
|
JSONObject hrmDepartment = getSystemDataMapper().getHrmObjectByID(ecTableName, id);
|
|
|
|
|
String uuid = hrmDepartment.getString("uuid");
|
|
|
|
|
Map<String, Object> departmentMap = new HashMap<>();
|
|
|
|
|
departmentMap.put("uuid", uuid);
|
|
|
|
|
long departmentId = Long.parseLong(Util.null2String(params.get("id")));
|
|
|
|
|
ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName(jclTableName).params(departmentMap).id(departmentId).build();
|
|
|
|
|
getExtMapper().updateExt(infoParams);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据jcl_org_comp.id获取HrmSubCompany.id
|
|
|
|
|
*
|
|
|
|
@ -194,8 +302,20 @@ public class OrganizationRunable implements Runnable {
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private String getEcCompanyId(String companyId) {
|
|
|
|
|
CompPO compPO = MapperProxyFactory.getProxy(CompMapper.class).listById(Long.parseLong(companyId));
|
|
|
|
|
JSONObject supSubCompany = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmSubCompanyByUUID(compPO.getUuid());
|
|
|
|
|
CompPO compPO = getCompMapper().listById(Long.parseLong(companyId));
|
|
|
|
|
JSONObject supSubCompany = getSystemDataMapper().getHrmObjectByUUID(HRM_COMPANY, compPO.getUuid());
|
|
|
|
|
return supSubCompany.getString("id");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据jcl_org_dept.id获取HrmDepartment.id
|
|
|
|
|
*
|
|
|
|
|
* @param departmentId
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private String getEcDepartmentId(String departmentId) {
|
|
|
|
|
DepartmentPO departmentPO = getDepartmentMapper().getDeptById(Long.parseLong(departmentId));
|
|
|
|
|
JSONObject supDepartment = getSystemDataMapper().getHrmObjectByUUID(HRM_DEPARTMENT, departmentPO.getUuid());
|
|
|
|
|
return supDepartment.getString("id");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|