package com.engine.organization.thread; import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.entity.staff.po.StaffPlanPO; import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.mapper.trigger.StaffTriggerMapper; import com.engine.organization.util.OrganizationDateUtil; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.lang3.StringUtils; import weaver.general.Util; /** * @author:dxfeng * @createTime: 2022/09/21 * @version: 1.0 */ public class StaffTriggerRunnable implements Runnable { StaffPO staffPO; private StaffMapper getStaffMapper() { return MapperProxyFactory.getProxy(StaffMapper.class); } private StaffPlanMapper getStaffPlanMapper() { return MapperProxyFactory.getProxy(StaffPlanMapper.class); } private StaffTriggerMapper getStaffTriggerMapper() { return MapperProxyFactory.getProxy(StaffTriggerMapper.class); } public StaffTriggerRunnable(StaffPO staffPO) { this.staffPO = staffPO; } @Override public void run() { String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); if (null != staffPO) { StaffPlanPO staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId()); if (null != staffPlanByID && StringUtils.isNotBlank(staffPlanByID.getControlDimension())) { String fType = staffPlanByID.getControlDimension(); int fPlan = 0; int fOnJob = 0; String fObjId = ""; switch (fType) { case "1": // 更新分部编制 fObjId = Util.null2String(staffPO.getCompId()); fOnJob = getStaffTriggerMapper().countCompanyUsers(staffPO.getEcCompany()); fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); break; case "2": // 更新部门编制 fObjId = Util.null2String(staffPO.getDeptId()); fOnJob = getStaffTriggerMapper().countDepartmentUsers(staffPO.getEcDepartment()); fPlan = getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); break; case "3": // 更新岗位编制 fObjId = Util.null2String(staffPO.getJobId()); fOnJob = 10; fPlan = getStaffTriggerMapper().countJobStaffNum(currentDate, staffPO.getJobId()); break; default: break; } // 更新对应的编制数 getStaffTriggerMapper().updateOrgStaffs(currentDate, fType, fObjId, fPlan, fOnJob); } } } }