From acee0bad51d1d70f7b2eae22d62a439ee3193997 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 30 Sep 2022 11:05:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BA=BA=E5=91=98=E8=B0=83=E6=95=B4,?= =?UTF-8?q?=E5=9C=A8=E5=B2=97=E6=95=B0=E5=85=B3=E8=81=94=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/jclorgmap/JclOrgMapper.xml | 2 +- .../service/impl/StaffServiceImpl.java | 2 ++ .../thread/HrmResourceTriggerRunnable.java | 18 +++++++++++++++--- .../thread/StaffTriggerRunnable.java | 16 +++++++++++++++- .../organization/action/StaffChangeAction.java | 2 +- 5 files changed, 34 insertions(+), 6 deletions(-) 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/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..f6ac0fd0 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,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(); } } - - } } diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index 6bbf2be1..f7e75585 100644 --- a/src/com/engine/organization/thread/StaffTriggerRunnable.java +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -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) { 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); From 284f77896327fb1b4849cb6e11e7d4f0804ec3a6 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 30 Sep 2022 15:19:22 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BA=BA=E5=91=98=E8=B0=83=E6=95=B4,?= =?UTF-8?q?=E5=9C=A8=E5=B2=97=E6=95=B0=E5=85=B3=E8=81=94=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/mapper/scheme/SchemeMapper.xml | 2 +- .../organization/mapper/trigger/StaffTriggerMapper.java | 4 +++- .../organization/mapper/trigger/StaffTriggerMapper.xml | 9 +++++++++ .../organization/thread/HrmResourceTriggerRunnable.java | 4 +++- .../engine/organization/thread/StaffTriggerRunnable.java | 4 +--- 5 files changed, 17 insertions(+), 6 deletions(-) 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/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index f6ac0fd0..a555ba7d 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -89,7 +89,9 @@ public class HrmResourceTriggerRunnable implements Runnable { // 更新当前架构图负责人的卡片信息 getHrmResourceTriggerMapper().updateLeaders(currentDate, hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt()); // 更新组织架构图在岗数 - if (!jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) { + 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(); } diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index f7e75585..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; @@ -164,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; }