weaver-hrm-organization/src/com/engine/organization/thread/StaffTriggerRunnable.java

80 lines
3.4 KiB
Java
Raw Normal View History

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);
}
2022-09-23 09:19:42 +08:00
private final String currentDate;
public StaffTriggerRunnable(StaffPO staffPO) {
this.staffPO = staffPO;
2022-09-23 09:19:42 +08:00
currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
}
@Override
public void run() {
if (null != staffPO) {
StaffPlanPO staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId());
if (null != staffPlanByID && StringUtils.isNotBlank(staffPlanByID.getControlDimension())) {
String fType = staffPlanByID.getControlDimension();
2022-09-23 09:19:42 +08:00
Integer 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());
2022-09-23 09:19:42 +08:00
fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId());
fPlan += getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId());
break;
case "3":
// 更新岗位编制
fObjId = Util.null2String(staffPO.getJobId());
fOnJob = 10;
2022-09-23 09:19:42 +08:00
fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId());
fPlan += getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId());
fPlan += getStaffTriggerMapper().countJobStaffNum(currentDate, staffPO.getJobId());
break;
default:
break;
}
// 更新对应的编制数
2022-09-23 09:19:42 +08:00
getStaffTriggerMapper().updateOrgStaffs(currentDate, fType, fObjId, fPlan < 0 ? 0 : fPlan, fOnJob);
}
}
}
}