From 92d9a17d8c26906cf02d58fd20b9557a4c70f43b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 23 Sep 2022 09:19:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84=E5=9B=BE?= =?UTF-8?q?=E7=BC=96=E5=88=B6=E6=98=BE=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/trigger/StaffTriggerMapper.java | 12 ++++++------ .../mapper/trigger/StaffTriggerMapper.xml | 6 +++--- .../organization/service/impl/ExtServiceImpl.java | 8 ++++++-- .../organization/thread/OrganizationSyncEc.java | 5 +++-- .../organization/thread/StaffTriggerRunnable.java | 15 ++++++++++----- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java index f03e7cc0..a20dfef2 100644 --- a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java @@ -8,15 +8,15 @@ import org.apache.ibatis.annotations.Param; * @version: 1.0 */ public interface StaffTriggerMapper { - int countCompanyUsers(@Param("ecCompanyId") Long ecCompanyId); + Integer countCompanyUsers(@Param("ecCompanyId") Long ecCompanyId); - int countDepartmentUsers(@Param("ecDepartmentId") Long ecDepartmentId); + Integer countDepartmentUsers(@Param("ecDepartmentId") Long ecDepartmentId); - int countCompanyStaffNum(@Param("currentDate") String currentDate, @Param("companyId") Long companyId); + Integer countCompanyStaffNum(@Param("currentDate") String currentDate, @Param("companyId") Long companyId); - int countDepartmentStaffNum(@Param("currentDate") String currentDate, @Param("departmentId") Long departmentId); + Integer countDepartmentStaffNum(@Param("currentDate") String currentDate, @Param("departmentId") Long departmentId); - int countJobStaffNum(@Param("currentDate") String currentDate, @Param("jobId") Long jobId); + Integer countJobStaffNum(@Param("currentDate") String currentDate, @Param("jobId") Long jobId); - int updateOrgStaffs(@Param("currentDate") String currentDate, @Param("fType") String fType, @Param("fObjId") String fObjId, @Param("fPlan") Integer fPlan, @Param("fOnJob") Integer fOnJob); + Integer updateOrgStaffs(@Param("currentDate") String currentDate, @Param("fType") String fType, @Param("fObjId") String fObjId, @Param("fPlan") Integer fPlan, @Param("fOnJob") Integer fOnJob); } diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml index 2573f258..e60e0791 100644 --- a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml @@ -31,7 +31,7 @@ where plan_id in (select id from JCL_ORG_STAFFPLAN where time_start <= #{currentDate} - and time_end >= #{currentDate}) + and time_end >= #{currentDate} and delete_type = 0 ) and comp_id = #{companyId} and delete_type = 0 \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 53b13a45..fb9c4833 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -262,11 +262,15 @@ public class ExtServiceImpl extends Service implements ExtService { List dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, "", ""); List groupIds = dtInfoPOList.stream().map(ExtendInfoPO::getExtendGroupId).distinct().collect(Collectors.toList()); Map> poMaps = dtInfoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); - // 删除原有明细表数据 - getExtDTMapper().deleteByMainID(tableName, id); + boolean deleteFlag = true; for (Long groupId : groupIds) { int rowNum = Util.getIntValue((String) params.get("rownum" + groupId)); + if (deleteFlag && rowNum > 0) { + // 删除原有明细表数据 + getExtDTMapper().deleteByMainID(tableName, id); + deleteFlag = false; + } List filterS = poMaps.get(groupId); for (int i = 0; i < rowNum; i++) { Map map = new HashMap<>(); diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index a3cddfb4..22478ff7 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -67,6 +67,7 @@ public class OrganizationSyncEc { this.user = user; this.oldJobPO = oldJobPO; } + public OrganizationSyncEc(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map params, JobPO oldJobPO, boolean throwException) { this.moduleName = moduleName; this.operateType = operateType; @@ -204,7 +205,7 @@ public class OrganizationSyncEc { // 修改后不存在共用、直接修改EC岗位表数据 if (EcHrmRelationUtil.isNotExistJob(newName, jclJobId)) { // 查询ec表ID - RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(oldName); + RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(newName); if (null != hrmJobTitle) { map.put("id", Util.null2String(hrmJobTitle.getId())); map.put("operateIp", Util.null2String(user.getLoginip())); @@ -235,7 +236,7 @@ public class OrganizationSyncEc { RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(newName); // 查询原分部、原岗位下的人员,并更新岗位ID List hrmResourceIds = getSystemDataMapper().getHrmResourceIds(oldJobPO.getParentDept(), oldHrmJobTitle.getId()); - if(CollectionUtils.isNotEmpty(hrmResourceIds)) { + if (CollectionUtils.isNotEmpty(hrmResourceIds)) { getSystemDataMapper().updateResourceJobTitleByIds(Util.null2String(hrmJobTitle.getId()), hrmResourceIds); } // 封存原名称岗位 diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index c23ab1ea..79fc836b 100644 --- a/src/com/engine/organization/thread/StaffTriggerRunnable.java +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -30,18 +30,20 @@ public class StaffTriggerRunnable implements Runnable { return MapperProxyFactory.getProxy(StaffTriggerMapper.class); } + private final String currentDate; + public StaffTriggerRunnable(StaffPO staffPO) { this.staffPO = staffPO; + currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); } @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; + Integer fPlan = 0; int fOnJob = 0; String fObjId = ""; switch (fType) { @@ -55,19 +57,22 @@ public class StaffTriggerRunnable implements Runnable { // 更新部门编制 fObjId = Util.null2String(staffPO.getDeptId()); fOnJob = getStaffTriggerMapper().countDepartmentUsers(staffPO.getEcDepartment()); - fPlan = getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); + fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); + fPlan += getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); break; case "3": // 更新岗位编制 fObjId = Util.null2String(staffPO.getJobId()); fOnJob = 10; - fPlan = getStaffTriggerMapper().countJobStaffNum(currentDate, staffPO.getJobId()); + fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); + fPlan += getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); + fPlan += getStaffTriggerMapper().countJobStaffNum(currentDate, staffPO.getJobId()); break; default: break; } // 更新对应的编制数 - getStaffTriggerMapper().updateOrgStaffs(currentDate, fType, fObjId, fPlan, fOnJob); + getStaffTriggerMapper().updateOrgStaffs(currentDate, fType, fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); } } }