You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
weaver-hrm-organization/src/com/engine/organization/thread/HrmResourceTriggerRunnable....

91 lines
4.0 KiB
Java

package com.engine.organization.thread;
import com.engine.organization.entity.cusfielddata.po.CusFieldData;
import com.engine.organization.entity.map.JclOrgMap;
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 org.apache.commons.lang.StringUtils;
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);
}
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);
// 查询当前人员信息数据
HrmResource hrmResource = getHrmResourceTriggerMapper().getHrmResource(userId);
if (null != hrmResource) {
jclMap.setFObjId(hrmResource.getId());
jclMap.setId(hrmResource.getId() + sk);
jclMap.setFNumber(hrmResource.getWorkcode());
jclMap.setFName(hrmResource.getLastname());
delete = hrmResource.getStatus() <= 3 ? 0 : 1;
jclMap.setFLeaderImg(hrmResource.getMessagerurl());
jclMap.setFLeaderName(hrmResource.getLastname());
jclMap.setFLeaderJobId(hrmResource.getJobtitle());
CusFieldData cusFieldDataById = getHrmResourceTriggerMapper().getCusFieldDataById(jclMap.getFObjId());
if (null != cusFieldDataById) {
String field100002 = cusFieldDataById.getField100002();
if (StringUtils.isNotBlank(field100002)) {
int index = field100002.indexOf('_');
jclMap.setFObjParentId(Integer.parseInt(field100002.substring(index + 1)));
jclMap.setFParentId(jclMap.getFObjParentId() + sj);
}
jclMap.setFLeaderSt(cusFieldDataById.getField100008());
jclMap.setFLeaderLv(cusFieldDataById.getField100007());
}
jclMap.setFClass(0);
jclMap.setFClassName("行政维度");
jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId()));
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
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());
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);
getHrmResourceTriggerMapper().updateLeaders(currentDate,hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt());
}
}
}
}