2022-09-01 16:57:06 +08:00
|
|
|
package com.engine.organization.thread;
|
|
|
|
|
|
2022-10-20 09:07:32 +08:00
|
|
|
import com.engine.organization.entity.hrmresource.po.HrmResourcePO;
|
2022-09-01 16:57:06 +08:00
|
|
|
import com.engine.organization.entity.map.JclOrgMap;
|
2022-10-21 09:28:33 +08:00
|
|
|
import com.engine.organization.mapper.hrmresource.HrmResourceMapper;
|
2022-09-01 16:57:06 +08:00
|
|
|
import com.engine.organization.mapper.jclorgmap.JclOrgMapper;
|
|
|
|
|
import com.engine.organization.mapper.trigger.CompTriggerMapper;
|
|
|
|
|
import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper;
|
|
|
|
|
import com.engine.organization.util.OrganizationDateUtil;
|
|
|
|
|
import com.engine.organization.util.db.MapperProxyFactory;
|
|
|
|
|
import weaver.common.DateUtil;
|
|
|
|
|
import weaver.hrm.passwordprotection.domain.HrmResource;
|
|
|
|
|
|
|
|
|
|
import java.sql.Date;
|
|
|
|
|
import java.util.Calendar;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author:dxfeng
|
|
|
|
|
* @createTime: 2022/09/01
|
|
|
|
|
* @version: 1.0
|
|
|
|
|
*/
|
|
|
|
|
public class HrmResourceTriggerRunnable implements Runnable {
|
|
|
|
|
Long userId;
|
|
|
|
|
|
|
|
|
|
private CompTriggerMapper getCompTriggerMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(CompTriggerMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private HrmResourceTriggerMapper getHrmResourceTriggerMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(HrmResourceTriggerMapper.class);
|
|
|
|
|
}
|
2022-10-21 09:28:33 +08:00
|
|
|
private HrmResourceMapper getHrmResourceMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(HrmResourceMapper.class);
|
|
|
|
|
}
|
2022-09-30 11:05:42 +08:00
|
|
|
private JclOrgMapper getJclOrgMapper() {
|
|
|
|
|
return MapperProxyFactory.getProxy(JclOrgMapper.class);
|
|
|
|
|
}
|
|
|
|
|
|
2022-09-01 16:57:06 +08:00
|
|
|
public HrmResourceTriggerRunnable(Long id) {
|
|
|
|
|
this.userId = id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
|
int st = 100000000;
|
|
|
|
|
int sj = 200000000;
|
|
|
|
|
int sk = 300000000;
|
|
|
|
|
Integer delete = null;
|
|
|
|
|
JclOrgMap jclMap = new JclOrgMap();
|
|
|
|
|
jclMap.setFType(4);
|
|
|
|
|
// 查询当前人员信息数据
|
2022-10-21 09:28:33 +08:00
|
|
|
String ecResourceId = getHrmResourceMapper().getEcResourceId(userId.toString());
|
|
|
|
|
HrmResource ecHrmResource = getHrmResourceTriggerMapper().getHrmResource(Long.parseLong(ecResourceId));
|
|
|
|
|
HrmResourcePO hrmResource = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId));
|
|
|
|
|
if (null != hrmResource && null!=ecHrmResource) {
|
|
|
|
|
jclMap.setFObjId(hrmResource.getId().intValue());
|
|
|
|
|
jclMap.setId(hrmResource.getId().intValue() + sk);
|
2022-10-21 15:57:55 +08:00
|
|
|
jclMap.setFEcId(ecHrmResource.getId());
|
2022-10-21 09:28:33 +08:00
|
|
|
jclMap.setFNumber(hrmResource.getWorkCode());
|
|
|
|
|
jclMap.setFName(hrmResource.getLastName());
|
|
|
|
|
jclMap.setUuid(hrmResource.getUuid());
|
|
|
|
|
delete = hrmResource.getStatus() < 4 ? 0 : 1;
|
|
|
|
|
jclMap.setFLeaderImg(ecHrmResource.getMessagerurl());
|
|
|
|
|
jclMap.setFLeaderName(hrmResource.getLastName());
|
|
|
|
|
jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue());
|
|
|
|
|
HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId));
|
2022-10-20 09:07:32 +08:00
|
|
|
if (null != resourceByEcId) {
|
|
|
|
|
Long jobTitle = resourceByEcId.getJobTitle();
|
|
|
|
|
if (null!=jobTitle) {
|
|
|
|
|
jclMap.setFObjParentId(jobTitle.intValue());
|
2022-09-01 16:57:06 +08:00
|
|
|
jclMap.setFParentId(jclMap.getFObjParentId() + sj);
|
|
|
|
|
}
|
2022-10-20 09:07:32 +08:00
|
|
|
jclMap.setFLeaderSt(resourceByEcId.getJobGrade());
|
|
|
|
|
jclMap.setFLeaderLv(resourceByEcId.getJobLevel());
|
2022-09-01 16:57:06 +08:00
|
|
|
}
|
|
|
|
|
jclMap.setFClass(0);
|
|
|
|
|
jclMap.setFClassName("行政维度");
|
|
|
|
|
jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId()));
|
2022-09-20 14:19:46 +08:00
|
|
|
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
|
|
|
|
|
jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
|
2022-09-01 16:57:06 +08:00
|
|
|
jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime()));
|
|
|
|
|
jclMap.setFIsVitual(0);
|
|
|
|
|
|
|
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
|
|
cal.setTime(jclMap.getFDateBegin());
|
|
|
|
|
Calendar calendar = DateUtil.addDay(cal, -1);
|
|
|
|
|
Date time = new Date(calendar.getTime().getTime());
|
2022-09-30 11:05:42 +08:00
|
|
|
// 更新前的数据
|
|
|
|
|
JclOrgMap jclOrgMapByObjID = getJclOrgMapper().getJclOrgMapByObjID(currentDate, "4", hrmResource.getId().toString());
|
2022-09-01 16:57:06 +08:00
|
|
|
|
|
|
|
|
getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin());
|
|
|
|
|
getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time);
|
|
|
|
|
if (0 == delete) {
|
|
|
|
|
MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap);
|
2022-09-30 11:05:42 +08:00
|
|
|
// 更新当前架构图负责人的卡片信息
|
|
|
|
|
getHrmResourceTriggerMapper().updateLeaders(currentDate, hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt());
|
|
|
|
|
// 更新组织架构图在岗数
|
2022-09-30 15:19:22 +08:00
|
|
|
if (null == jclOrgMapByObjID) {
|
|
|
|
|
new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
|
|
|
|
|
} else if (!jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) {
|
2022-09-30 11:05:42 +08:00
|
|
|
new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
|
|
|
|
|
new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
|
|
|
|
|
}
|
|
|
|
|
} else if (null != jclOrgMapByObjID) {
|
|
|
|
|
new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
|
2022-09-01 16:57:06 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|