package com.engine.organization.thread; import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.entity.personnelcard.UserCard; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.resource.ResourceMapper; 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); } private ResourceMapper getResourceMapper() { return MapperProxyFactory.getProxy(ResourceMapper.class); } private JclOrgMapper getJclOrgMapper() { return MapperProxyFactory.getProxy(JclOrgMapper.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); // 查询当前人员信息数据 String ecResourceId = getResourceMapper().getEcResourceId(userId.toString()); // EC人员 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); jclMap.setFEcId(ecHrmResource.getId()); jclMap.setFNumber(hrmResource.getWorkCode()); jclMap.setFName(hrmResource.getLastName()); jclMap.setUuid(hrmResource.getUuid()); delete = hrmResource.getStatus() < 4 ? 0 : 1; // 展示为花名册上传的照片 String image = UserCard.builder().image(hrmResource.getResourceImageId()).build().getImage(); jclMap.setFLeaderImg(image); jclMap.setFLeaderName(hrmResource.getLastName()); jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue()); if (null != hrmResource.getJobTitle()) { JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(hrmResource.getJobTitle()); if (null != jobById) { jclMap.setFLeaderJob(jobById.getJobName()); } jclMap.setFObjParentId(hrmResource.getJobTitle().intValue()); jclMap.setFParentId(jclMap.getFObjParentId() + sj); } jclMap.setFLeaderSt(hrmResource.getJobGrade()); jclMap.setFLeaderLv(hrmResource.getJobLevel()); jclMap.setFClass(0); jclMap.setFClassName("行政维度"); 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()); // 更新前的数据 JclOrgMap jclOrgMapByObjID = getJclOrgMapper().getJclOrgMapByObjID(jclMap.getFDateBegin(), "4", hrmResource.getId().toString()); 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(jclMap.getFDateBegin(), hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt()); // 更新组织架构图在岗数 if (null != jclOrgMapByObjID) { new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); } new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); } else if (null != jclOrgMapByObjID) { new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); } } } }