人员调整,在岗数关联优化

pull/6/head
dxfeng 3 years ago
parent c6fb0d129b
commit acee0bad51

@ -16,7 +16,7 @@
<update id="updateMap">
update jcl_org_map
<set>
fdateend=#{currentDate},
fdateend=#{yesterday},
</set>
where ftype=#{ftype} and fobjid=#{fobjid} and fdateend &gt; #{currentDate}
</update>

@ -115,6 +115,8 @@ public class StaffServiceImpl extends Service implements StaffService {
HasRightUtil.hasRight(user, RIGHT_NAME, false);
StaffPO staffByID = getStaffMapper().getStaffByID(param.getId());
StaffPO staffPO = StaffBO.convertParamToPO(param, (long) user.getUID());
staffPO.setPermanentNum(staffByID.getPermanentNum());
staffPO.setFreezeNum(staffByID.getFreezeNum());
checkRequired(staffPO);
// 赋值
CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(Util.null2String(staffPO.getEcCompany()));

@ -30,6 +30,10 @@ public class HrmResourceTriggerRunnable implements Runnable {
return MapperProxyFactory.getProxy(HrmResourceTriggerMapper.class);
}
private JclOrgMapper getJclOrgMapper() {
return MapperProxyFactory.getProxy(JclOrgMapper.class);
}
public HrmResourceTriggerRunnable(Long id) {
this.userId = id;
}
@ -75,15 +79,23 @@ public class HrmResourceTriggerRunnable implements Runnable {
cal.setTime(jclMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime());
// 更新前的数据
JclOrgMap jclOrgMapByObjID = getJclOrgMapper().getJclOrgMapByObjID(currentDate, "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(currentDate,hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt());
// 更新当前架构图负责人的卡片信息
getHrmResourceTriggerMapper().updateLeaders(currentDate, hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt());
// 更新组织架构图在岗数
if (!jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) {
new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
}
} else if (null != jclOrgMapByObjID) {
new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
}
}
}
}

@ -28,6 +28,7 @@ import java.sql.Date;
*/
public class StaffTriggerRunnable implements Runnable {
StaffPO staffPO;
StaffPlanPO staffPlanByID;
private StaffPlanMapper getStaffPlanMapper() {
return MapperProxyFactory.getProxy(StaffPlanMapper.class);
@ -58,6 +59,20 @@ public class StaffTriggerRunnable implements Runnable {
public StaffTriggerRunnable(StaffPO staffPO) {
this.staffPO = staffPO;
this.staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId());
currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
yesterday = DateUtil.addDate(currentDate, -1);
}
public StaffTriggerRunnable(Integer jclJobId) {
if (null != jclJobId) {
JobPO jobById = getJobMapper().getJobById((long) jclJobId);
if (null != jobById) {
this.staffPO = StaffPO.builder().compId(jobById.getParentComp()).deptId(jobById.getParentDept()).jobId(jobById.getId()).build();
this.staffPlanByID = StaffPlanPO.builder().controlDimension("3").build();
}
}
currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
yesterday = DateUtil.addDate(currentDate, -1);
}
@ -65,7 +80,6 @@ public class StaffTriggerRunnable implements Runnable {
@Override
public void run() {
if (null != staffPO) {
StaffPlanPO staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId());
if (null != staffPlanByID && StringUtils.isNotBlank(staffPlanByID.getControlDimension())) {
String fType = staffPlanByID.getControlDimension();
switch (fType) {

@ -94,7 +94,7 @@ public class StaffChangeAction implements Action {
switch (changeType) {
case "3":// 冻结,比如招聘中,面试中,入职办理中等
if (staffPO.getFreezeNum() + changeNum > staffNum) {
return "冻结数不能于编制数";
return "冻结数不能于编制数";
}
// 设置冻结数
staffPO.setFreezeNum(staffPO.getFreezeNum() + changeNum);

Loading…
Cancel
Save