diff --git a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml
index 0543cefb..428e7595 100644
--- a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml
+++ b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml
@@ -16,7 +16,7 @@
update jcl_org_map
- fdateend=#{currentDate},
+ fdateend=#{yesterday},
where ftype=#{ftype} and fobjid=#{fobjid} and fdateend > #{currentDate}
diff --git a/src/com/engine/organization/mapper/scheme/SchemeMapper.xml b/src/com/engine/organization/mapper/scheme/SchemeMapper.xml
index b47f9615..55ca3517 100644
--- a/src/com/engine/organization/mapper/scheme/SchemeMapper.xml
+++ b/src/com/engine/organization/mapper/scheme/SchemeMapper.xml
@@ -77,7 +77,7 @@
+
\ No newline at end of file
diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java
index ae276303..f940c80d 100644
--- a/src/com/engine/organization/service/impl/StaffServiceImpl.java
+++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java
@@ -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()));
diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java
index 97de746c..a555ba7d 100644
--- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java
+++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java
@@ -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,25 @@ 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 (null == jclOrgMapByObjID) {
+ new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
+ } else 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();
}
}
-
-
}
}
diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java
index 6bbf2be1..4e95e6be 100644
--- a/src/com/engine/organization/thread/StaffTriggerRunnable.java
+++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java
@@ -15,7 +15,6 @@ 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 com.engine.organization.util.relation.EcHrmRelationUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.common.DateUtil;
@@ -28,6 +27,7 @@ import java.sql.Date;
*/
public class StaffTriggerRunnable implements Runnable {
StaffPO staffPO;
+ StaffPlanPO staffPlanByID;
private StaffPlanMapper getStaffPlanMapper() {
return MapperProxyFactory.getProxy(StaffPlanMapper.class);
@@ -58,6 +58,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 +79,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) {
@@ -150,8 +163,7 @@ public class StaffTriggerRunnable implements Runnable {
break;
case "3":
planSum = getStaffTriggerMapper().countJobStaffNum(currentDate, objId);
- String ecJobId = EcHrmRelationUtil.getEcJobId(Long.parseLong(objId));
- onJobSum = getStaffTriggerMapper().countJobUsers(ecJobId);
+ onJobSum = getStaffTriggerMapper().countOnJobByJObId(objId);
default:
break;
}
diff --git a/src/weaver/interfaces/organization/action/StaffChangeAction.java b/src/weaver/interfaces/organization/action/StaffChangeAction.java
index ff324f69..aa2c91c9 100644
--- a/src/weaver/interfaces/organization/action/StaffChangeAction.java
+++ b/src/weaver/interfaces/organization/action/StaffChangeAction.java
@@ -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);