分部更新EC
This commit is contained in:
parent
3e9e3f59b6
commit
e217ecbe16
|
|
@ -39,6 +39,8 @@ public class DepartmentPO {
|
|||
|
||||
private Integer forbiddenTag;
|
||||
|
||||
private String uuid;
|
||||
|
||||
private Long creator;
|
||||
|
||||
private int deleteType;
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
<result column="delete_type" property="deleteType"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
|
||||
<result column="uuid" property="uuid"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
|
|
@ -32,7 +34,8 @@
|
|||
t.dept_principal,
|
||||
t.show_order,
|
||||
t.description,
|
||||
t.forbidden_tag
|
||||
t.forbidden_tag,
|
||||
t.uuid
|
||||
</sql>
|
||||
|
||||
<select id="getDeptListByCompId" resultType="com.engine.organization.entity.department.po.DepartmentPO">
|
||||
|
|
|
|||
|
|
@ -31,8 +31,9 @@ public interface SystemDataMapper {
|
|||
|
||||
String getScHrmResourceNameById(@Param("managerId") String managerId);
|
||||
|
||||
JSONObject getHrmSubCompanyByID(@Param("id") String id);
|
||||
JSONObject getHrmObjectByID(@Param("tableName") String tableName, @Param("id") String id);
|
||||
|
||||
JSONObject getHrmObjectByUUID(@Param("tableName") String tableName, @Param("uuid") String uuid);
|
||||
|
||||
JSONObject getHrmSubCompanyByUUID(@Param("uuid") String uuid);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,14 +48,15 @@
|
|||
from hrmresource
|
||||
where id = #{managerId}
|
||||
</select>
|
||||
<select id="getHrmSubCompanyByID" resultType="com.alibaba.fastjson.JSONObject">
|
||||
<select id="getHrmObjectByID" resultType="com.alibaba.fastjson.JSONObject">
|
||||
select *
|
||||
from hrmsubcompany
|
||||
from ${tableName}
|
||||
where id = #{id}
|
||||
</select>
|
||||
<select id="getHrmSubCompanyByUUID" resultType="com.alibaba.fastjson.JSONObject">
|
||||
<select id="getHrmObjectByUUID" resultType="com.alibaba.fastjson.JSONObject">
|
||||
select *
|
||||
from hrmsubcompany
|
||||
from ${tableName}
|
||||
where uuid = #{uuid}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -149,7 +149,7 @@ public class CompServiceImpl extends Service implements CompService {
|
|||
params.put("show_order", maxShowOrder + 1);
|
||||
}
|
||||
Long id = getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", null);
|
||||
params.put("companyId", id);
|
||||
params.put("id", id);
|
||||
new Thread(new OrganizationRunable(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, params)).start();
|
||||
return id;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ import com.engine.organization.entity.job.po.JobPO;
|
|||
import com.engine.organization.entity.job.vo.SingleJobTreeVO;
|
||||
import com.engine.organization.entity.searchtree.SearchTree;
|
||||
import com.engine.organization.entity.searchtree.SearchTreeParams;
|
||||
import com.engine.organization.enums.LogModuleNameEnum;
|
||||
import com.engine.organization.enums.OperateTypeEnum;
|
||||
import com.engine.organization.mapper.codesetting.CodeRuleMapper;
|
||||
import com.engine.organization.mapper.comp.CompMapper;
|
||||
import com.engine.organization.mapper.department.DepartmentMapper;
|
||||
|
|
@ -31,6 +33,7 @@ import com.engine.organization.mapper.extend.ExtendTitleMapper;
|
|||
import com.engine.organization.mapper.job.JobMapper;
|
||||
import com.engine.organization.service.DepartmentService;
|
||||
import com.engine.organization.service.ExtService;
|
||||
import com.engine.organization.thread.OrganizationRunable;
|
||||
import com.engine.organization.util.*;
|
||||
import com.engine.organization.util.coderule.CodeRuleUtil;
|
||||
import com.engine.organization.util.db.MapperProxyFactory;
|
||||
|
|
@ -192,18 +195,24 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
|
|||
// 判断是否开启自动编号
|
||||
deptNo = repeatDetermine(deptNo);
|
||||
params.put("dept_no", deptNo);
|
||||
if (StringUtils.isBlank((String) params.get("show_order"))) {
|
||||
if (StringUtils.isBlank(Util.null2String(params.get("show_order")))) {
|
||||
int maxShowOrder = getDepartmentMapper().getMaxShowOrder();
|
||||
params.put("show_order", maxShowOrder + 1);
|
||||
}
|
||||
|
||||
return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", null);
|
||||
Long departmentId = getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", null);
|
||||
params.put("id", departmentId);
|
||||
new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, params)).start();
|
||||
return departmentId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateForbiddenTagById(DeptSearchParam params) {
|
||||
HasRightUtil.hasRight(user, RIGHT_NAME, false);
|
||||
DepartmentPO departmentPO = DepartmentPO.builder().id(params.getId()).forbiddenTag(params.getForbiddenTag() ? 0 : 1).build();
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", departmentPO.getId());
|
||||
map.put("forbiddenTag", departmentPO.getForbiddenTag());
|
||||
new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map)).start();
|
||||
return getDepartmentMapper().updateForbiddenTagById(departmentPO);
|
||||
}
|
||||
|
||||
|
|
@ -224,6 +233,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
|
|||
}
|
||||
// 更新主表数据
|
||||
getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", searchParam.getId());
|
||||
new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, params)).start();
|
||||
// 更新主表拓展表
|
||||
getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, params, groupId, searchParam.getId());
|
||||
//更新明细表
|
||||
|
|
@ -236,6 +246,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
|
|||
public int deleteByIds(Collection<Long> ids) {
|
||||
HasRightUtil.hasRight(user, RIGHT_NAME, false);
|
||||
OrganizationAssert.notEmpty(ids, "请选择要删除的数据");
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", StringUtils.join(ids, ","));
|
||||
new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map)).start();
|
||||
return getDepartmentMapper().deleteByIds(ids);
|
||||
}
|
||||
|
||||
|
|
@ -392,6 +405,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
|
|||
// 显示顺序字段
|
||||
deptById.setShowOrder(maxShowOrder + i + 1);
|
||||
insertCount += getDepartmentMapper().insertIgnoreNull(deptById);
|
||||
// 更新EC表部门
|
||||
updateEcDepartment(deptById);
|
||||
// TODO 新增岗位信息
|
||||
if ("1".equals(copyParam.getCopyJob())) {
|
||||
List<JobPO> jobPOS = MapperProxyFactory.getProxy(JobMapper.class).listJobsByDepartmentId(idList.get(i));
|
||||
Integer maxJobOrder = MapperProxyFactory.getProxy(JobMapper.class).getMaxShowOrder();
|
||||
|
|
@ -441,6 +457,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
|
|||
// 禁用
|
||||
mergeDepartment.setForbiddenTag(1);
|
||||
updateCount += getDepartmentMapper().updateBaseDept(mergeDepartment);
|
||||
// 更新EC表部门
|
||||
updateEcDepartment(mergeDepartment);
|
||||
// 封存EC表部门
|
||||
cancelEcDepartment(mergeDepartment.getId());
|
||||
// 合并后部门及子部门禁用
|
||||
List<DepartmentPO> deptList = getDepartmentMapper().getDeptListByPId(mergeParam.getId());
|
||||
forbiddenChildTag(parentComp, deptList);
|
||||
|
|
@ -486,9 +506,13 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
|
|||
Long department = moveParam.getDepartment();
|
||||
OrganizationAssert.notNull(department, "请选择要转移到的部门");
|
||||
deptById.setParentDept(department);
|
||||
deptById.setParentComp(null);
|
||||
DepartmentPO parentDepartment = getDepartmentMapper().getDeptById(department);
|
||||
deptById.setParentComp(parentDepartment.getParentComp());
|
||||
}
|
||||
return getDepartmentMapper().updateBaseDept(deptById);
|
||||
int updateBaseDept = getDepartmentMapper().updateBaseDept(deptById);
|
||||
// 更新EC部门
|
||||
updateEcDepartment(deptById);
|
||||
return updateBaseDept;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -503,6 +527,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
|
|||
departmentPO.setParentComp(parentComp);
|
||||
departmentPO.setForbiddenTag(1);
|
||||
getDepartmentMapper().updateBaseDept(departmentPO);
|
||||
// 更新EC表部门
|
||||
updateEcDepartment(departmentPO);
|
||||
// 封存EC表部门
|
||||
cancelEcDepartment(departmentPO.getId());
|
||||
List<DepartmentPO> childList = getDepartmentMapper().getDeptListByPId(departmentPO.getId());
|
||||
forbiddenChildTag(parentComp, childList);
|
||||
}
|
||||
|
|
@ -619,4 +647,33 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新EC表部门
|
||||
*
|
||||
* @param departmentPO
|
||||
*/
|
||||
private void updateEcDepartment(DepartmentPO departmentPO) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("dept_name_short", departmentPO.getDeptNameShort());
|
||||
map.put("dept_name", departmentPO.getDeptName());
|
||||
map.put("parent_comp", departmentPO.getParentComp());
|
||||
map.put("parent_dept", departmentPO.getParentDept());
|
||||
map.put("show_order", departmentPO.getShowOrder());
|
||||
map.put("dept_no", departmentPO.getDeptNo());
|
||||
map.put("dept_principal", departmentPO.getDeptPrincipal());
|
||||
map.put("id", departmentPO.getId());
|
||||
new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, map)).start();
|
||||
}
|
||||
|
||||
/**
|
||||
* 封存EC表部门
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
private void cancelEcDepartment(Long id) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("id", id);
|
||||
new Thread(new OrganizationRunable(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map)).start();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue