commit
33151c57a4
@ -0,0 +1,201 @@
|
||||
package com.engine.organization.thread;
|
||||
|
||||
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.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.extend.ExtMapper;
|
||||
import com.engine.organization.mapper.hrmresource.SystemDataMapper;
|
||||
import com.engine.organization.util.db.MapperProxyFactory;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/07/12
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class OrganizationRunable implements Runnable {
|
||||
private LogModuleNameEnum moduleName;
|
||||
private OperateTypeEnum operateType;
|
||||
private Map<String, Object> params;
|
||||
private User user;
|
||||
|
||||
private SystemDataMapper getSystemDataMapper() {
|
||||
return MapperProxyFactory.getProxy(SystemDataMapper.class);
|
||||
}
|
||||
|
||||
private ExtMapper getExtMapper() {
|
||||
return MapperProxyFactory.getProxy(ExtMapper.class);
|
||||
}
|
||||
|
||||
private CompMapper getCompMapper() {
|
||||
return MapperProxyFactory.getProxy(CompMapper.class);
|
||||
}
|
||||
|
||||
|
||||
public OrganizationRunable(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map<String, Object> params) {
|
||||
this.moduleName = moduleName;
|
||||
this.operateType = operateType;
|
||||
this.params = params;
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
switch (moduleName) {
|
||||
case COMPANY:
|
||||
refreshCompany();
|
||||
break;
|
||||
case DEPARTMENT:
|
||||
refreshDepartment();
|
||||
break;
|
||||
case JOB:
|
||||
refreshJob();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新HrmSubCompany表数据
|
||||
*/
|
||||
private void refreshCompany() {
|
||||
switch (operateType) {
|
||||
case ADD:
|
||||
addCompany();
|
||||
break;
|
||||
case UPDATE:
|
||||
updateCompany();
|
||||
break;
|
||||
case CANCELED:
|
||||
cancelCompany();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshDepartment() {
|
||||
switch (operateType) {
|
||||
case ADD:
|
||||
break;
|
||||
case UPDATE:
|
||||
break;
|
||||
case DELETE:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshJob() {
|
||||
switch (operateType) {
|
||||
case ADD:
|
||||
break;
|
||||
case UPDATE:
|
||||
break;
|
||||
case DELETE:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增分部
|
||||
*/
|
||||
private void addCompany() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("subcompanyname", params.get("comp_name_short").toString());
|
||||
|
||||
// 上级分部通过UUID联查ec表ID
|
||||
String parentCompany = Util.null2String(params.get("parent_company"));
|
||||
if (StringUtils.isNotBlank(parentCompany)) {
|
||||
map.put("supsubcomid", getEcCompanyId(parentCompany));
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
// 更新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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新分部
|
||||
*/
|
||||
private void updateCompany() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
// 获取ec表ID
|
||||
map.put("id", getEcCompanyId(Util.null2String(params.get("id"))));
|
||||
|
||||
// 上级分部通过UUID联查ec表ID
|
||||
String parentCompany = Util.null2String(params.get("parent_company"));
|
||||
if (StringUtils.isNotBlank(parentCompany)) {
|
||||
map.put("supsubcomid", getEcCompanyId(parentCompany));
|
||||
}
|
||||
map.put("subcompanycode", Util.null2String(params.get("comp_no")));
|
||||
map.put("subcompanyname", Util.null2String(params.get("comp_name_short")));
|
||||
map.put("subcompanydesc", Util.null2String(params.get("comp_name")));
|
||||
map.put("showorder", Util.null2String(params.get("show_order")));
|
||||
ServiceUtil.getService(OrganizationServiceImpl.class, user).editSubCompany(map, user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 封存、解封分部
|
||||
*/
|
||||
private void cancelCompany() {
|
||||
String companyIds = Util.null2String(params.get("id"));
|
||||
String forbiddenTag = Util.null2String(params.get("forbiddenTag"));
|
||||
List<String> idList = new ArrayList<>();
|
||||
String[] split = companyIds.split(",");
|
||||
for (String s : split) {
|
||||
idList.add(getEcCompanyId(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).doSubCompanyCancel(map, user);
|
||||
} else {
|
||||
// 解封
|
||||
ServiceUtil.getService(OrganizationServiceImpl.class, user).doSubCompanyISCanceled(map, user);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据jcl_org_comp.id获取HrmSubCompany.id
|
||||
*
|
||||
* @param companyId
|
||||
* @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());
|
||||
return supSubCompany.getString("id");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue