diff --git a/docs/脚本/Oracle/浏览按钮Oracle.sql b/docs/脚本/Oracle/浏览按钮Oracle.sql index 7baaea16..4afe458b 100644 --- a/docs/脚本/Oracle/浏览按钮Oracle.sql +++ b/docs/脚本/Oracle/浏览按钮Oracle.sql @@ -73,7 +73,7 @@ INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, d INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(datashowset_id, '名称', 'grade_name', '', 1, 2, SYS_GUID(), NULL); INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(datashowset_id, '描述方案', 'description', '', 0, 3, SYS_GUID(), NULL); INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(datashowset_id, '等级方案', 'scheme_id', 'select scheme_name from jcl_org_scheme where id={?currentvalue}', 0, 4, SYS_GUID(), NULL); -INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(datashowset_id, '职等', 'level_id', 'select group_concat(level_name) from jcl_org_level where id in ( {?currentvalue})', 0, 5, SYS_GUID(), NULL); +INSERT INTO datashowparam (MAINID, FIELDNAME, SEARCHNAME, TRANSQL, ISSHOWNAME, dsporder, uuid, width) VALUES(datashowset_id, '职等', 'level_id', 'select wm_concat(to_char(level_name)) from jcl_org_level where id in ( {?currentvalue})', 0, 5, SYS_GUID(), NULL); INSERT INTO datasearchparam (MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES(datashowset_id, '编号', 'grade_no', '2', '', 1, SYS_GUID(), ''); INSERT INTO datasearchparam (MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES(datashowset_id, '名称', 'grade_name', '2', '', 2, SYS_GUID(), ''); diff --git a/docs/脚本/Oracle/表结构、初始化数据Oracle.sql b/docs/脚本/Oracle/表结构、初始化数据Oracle.sql index b055d617..6423a78c 100644 --- a/docs/脚本/Oracle/表结构、初始化数据Oracle.sql +++ b/docs/脚本/Oracle/表结构、初始化数据Oracle.sql @@ -1215,4 +1215,6 @@ INSERT INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field INSERT INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field_name_desc, field_type, control_type, extend_group_id, isenable, isrequired, list_show, search_show, edit_show, add_show, browser_show, show_order, creator, delete_type, create_time, update_time, browser_type, custom_value, is_system_default) VALUES(102, 2, 'JCL_ORG_DEPT', 'ec_company', '所属分部', 'int', 3, 2, 1, 1, 1, 1, 1, 1, 1, 4, 1, 0, SYSDATE, NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0) / INSERT INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field_name_desc, field_type, control_type, extend_group_id, isenable, isrequired, list_show, search_show, edit_show, add_show, browser_show, show_order, creator, delete_type, create_time, update_time, browser_type, custom_value, is_system_default) VALUES(103, 2, 'JCL_ORG_DEPT', 'ec_department', '上级部门', 'int', 3, 2, 1, 0, 1, 1, 1, 1, 1, 5, 1, 0, SYSDATE, NULL, '4', '["browser",{"valueSpan":"部门","replaceDatas":[{"name":"部门","id":"4"}],"value":"4"}]', 0) -/ \ No newline at end of file +/ + +INSERT INTO JCL_INFO (id, fname, fvalue) VALUES (1, '董事长人员id', '36') diff --git a/src/com/engine/organization/entity/extend/param/ExtendInfoParams.java b/src/com/engine/organization/entity/extend/param/ExtendInfoParams.java index 8951002d..70fe1c0a 100644 --- a/src/com/engine/organization/entity/extend/param/ExtendInfoParams.java +++ b/src/com/engine/organization/entity/extend/param/ExtendInfoParams.java @@ -41,6 +41,31 @@ public class ExtendInfoParams { private String sequenceName; public String getSequenceName() { - return this.tableName + "_ID"; + // 处理ORACLE表名过长,未与序列对应情况 + String sequenceName; + switch (this.tableName) { + case "JCL_ORG_HRMRESOURCE": + sequenceName = "JCL_ORG_HRM_ID"; + break; + case "JCL_ORG_HRMRESOURCEEXT_DT1": + sequenceName = "JCL_ORG_HRMEXT_DT1_ID"; + break; + case "JCL_FIELD_EXTENDGROUP": + sequenceName = "JCL_FIELD_GROUP_ID"; + break; + case "JCL_FIELD_EXTENDTITLE": + sequenceName = "JCL_FIELD_TITLE_ID"; + break; + case "JCL_FIELD_EXTENDINFO": + sequenceName = "JCL_FIELD_INFO_ID"; + break; + case "JCL_IMPORT_HISTORY_DETAIL": + sequenceName = "JCL_IMPORT_DETAIL_ID"; + break; + default: + sequenceName = this.tableName + "_ID"; + break; + } + return sequenceName; } } diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 907a348a..8447b659 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -89,8 +89,8 @@ public class JobBO { .deptName(e.getDeptName()) .sequenceName(e.getSequenceName()) .schemeName(e.getSchemeName()) - .parentJob(e.getParentJob()) - .parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobName()) + //.parentJob(e.getParentJob()) + //.parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobName()) .isKey(JobTransMethod.getIsKeySpan(e.getIsKey())) .showOrder(e.getShowOrder()) .forbiddenTag(e.getForbiddenTag()) diff --git a/src/com/engine/organization/entity/job/dto/JobListDTO.java b/src/com/engine/organization/entity/job/dto/JobListDTO.java index a8f2b965..63582224 100644 --- a/src/com/engine/organization/entity/job/dto/JobListDTO.java +++ b/src/com/engine/organization/entity/job/dto/JobListDTO.java @@ -64,7 +64,8 @@ public class JobListDTO { /** * 上级岗位 */ - @TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName") + // 上级岗位,暂不使用 + //@TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName") private String parentJobName; private Long parentJob; /** diff --git a/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.java b/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.java index 1ddde191..ef14a4ce 100644 --- a/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.java @@ -12,7 +12,7 @@ import java.sql.Date; **/ public interface GroupTriggerMapper { - int getInfoValue(@Param("id") Integer id); + Integer getInfoValue(@Param("id") Integer id); Integer sumStaffNum(@Param("fdatebegin") Date fdatebegin); diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index b4a4bf26..ef4c824c 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -282,9 +282,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService groupId = GROUP_ID.toString(); } - String oldDeptNo = getDepartmentMapper().getDeptById(searchParam.getId()).getDeptNo(); + DepartmentPO oldDept = getDepartmentMapper().getDeptById(searchParam.getId()); String deptNo = searchParam.getDeptNo(); - if (!deptNo.equals(oldDeptNo)) { + if (!deptNo.equals(oldDept.getDeptNo())) { deptNo = repeatDetermine(deptNo); params.put("dept_no", deptNo); } @@ -320,6 +320,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService //更新明细表 getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, params, searchParam.getId()); + DepartmentPO newDeptById = getDepartmentMapper().getDeptById(searchParam.getId()); + new DepartmentTriggerRunnable(oldDept, newDeptById).run(); Long parentComp = StringUtils.isNotEmpty(Util.null2String(params.get("parent_comp"))) ? Long.parseLong(Util.null2String(params.get("parent_comp"))) : null; // 刷新岗位所属分部 @@ -553,7 +555,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setUuid(recordInfo.getUuid()); getDepartmentMapper().insertIgnoreNull(deptById); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(deptById.getId())).start(); + new DepartmentTriggerRunnable(deptById.getId()).run(); // 复制当前部门岗位信息 if ("1".equals(copyJob)) { @@ -637,7 +639,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService updateEcDepartment(departmentPO); getDepartmentMapper().updateBaseDept(departmentPO); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(departmentPO.getId())).start(); + new DepartmentTriggerRunnable(departmentPO.getId()).run(); } // 查询该部门一级岗位、更新岗位所属分部、所属部门 List firstChildJobList = getJobMapper().listJobsByDepartmentId(mergeParam.getId()); @@ -650,7 +652,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 更新岗位组织架构图 for (JobPO jobPO : firstChildJobList) { // 刷新组织架构图 - new Thread(new JobTriggerRunnable(jobPO.getId())).start(); + new JobTriggerRunnable(jobPO.getId()).run(); } // 更新当前部门下的人员 List hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(mergeParam.getId().toString()); @@ -658,7 +660,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService new RecordSet().executeUpdate("update jcl_org_hrmresource set company_id =? ,ec_company = ? ,department_id = ?, ec_department = ?where department_id =?", targetDepartment.getParentComp(), targetDepartment.getEcCompany(), targetDepartment.getId(), targetEcDeptId, mergeParam.getId()); // 更新人员组织架构图 for (Long hrmResourceId : hrmResourceIds) { - new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); + new HrmResourceTriggerRunnable(hrmResourceId).run(); } // 更新子部门下岗位的所属分部 for (DepartmentPO departmentPO : firstChildDeptList) { @@ -675,14 +677,14 @@ public class DepartmentServiceImpl extends Service implements DepartmentService MapperProxyFactory.getProxy(ExtDTMapper.class).deleteByMainID("jcl_org_deptext_dt1", mergeParam.getId()); getDepartmentMapper().deleteByIds(DeleteParam.builder().ids(mergeParam.getId().toString()).build().getIds()); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(mergeDepartment)).run(); + new DepartmentTriggerRunnable(mergeDepartment).run(); // 更新部门合并后名称 targetDepartment.setDeptName(mergeParam.getMergeName()); targetDepartment.setDeptNameShort(mergeParam.getMergeName()); updateEcDepartment(targetDepartment); getDepartmentMapper().updateBaseDept(targetDepartment); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(oldFParentId,targetDepartment.getId())).run(); + new DepartmentTriggerRunnable(oldFParentId,targetDepartment.getId()).run(); return 0; } @@ -725,7 +727,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setEcDepartment(null); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(company.toString(),deptById)).run(); + new DepartmentTriggerRunnable(company.toString(),deptById).run(); } else if ("1".equals(moveParam.getMoveType())) { Long department = moveParam.getDepartment(); Long departmentId = Objects.requireNonNull(EcHrmRelationUtil.getJclDepartmentId(Util.null2String(department))).getId(); @@ -744,7 +746,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setEcCompany(parentDepartment.getEcCompany()); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(Integer.toString(100000000+department.intValue()),deptById)).run(); + new DepartmentTriggerRunnable(Integer.toString(100000000+department.intValue()),deptById).run(); } // 更新EC部门 updateEcDepartment(deptById); @@ -761,7 +763,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService new RecordSet().executeUpdate("update jcl_org_hrmresource set company_id =? ,ec_company = ? where department_id =?", deptById.getParentComp(), ecCompanyId, deptById.getId()); // 更新人员组织架构图 for (Long hrmResourceId : hrmResourceIds) { - new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); + new HrmResourceTriggerRunnable(hrmResourceId).run(); } forbiddenChildTag(deptById.getParentComp(), ecCompanyId, deptList); // 递归更新下级部门、岗位 @@ -784,7 +786,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService getDepartmentMapper().updateBaseDept(departmentPO); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(departmentPO.getId())).start(); + new DepartmentTriggerRunnable(departmentPO.getId()).run(); // 刷新岗位所属分部 refreshJobComp(departmentPO.getId(), parentComp); // 更新当前部门下的人员 @@ -794,7 +796,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService new RecordSet().executeUpdate("update jcl_org_hrmresource set company_id =? ,ec_company = ? where department_id =?", parentComp, ecCompanyId, departmentPO.getId()); // 更新人员组织架构图 for (Long hrmResourceId : hrmResourceIds) { - new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); + new HrmResourceTriggerRunnable(hrmResourceId).run(); } List childList = getDepartmentMapper().getDeptListByPId(departmentPO.getId()); forbiddenChildTag(parentComp, ecCompanyId, childList); @@ -930,7 +932,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService jobPO.setShowOrder(orderNum); MapperProxyFactory.getProxy(JobMapper.class).insertIgnoreNull(jobPO); // 更新组织架构图 - new Thread(new JobTriggerRunnable(jobPO.getId())).start(); + new JobTriggerRunnable(jobPO.getId()).run(); // 处理子级元素 if (CollectionUtils.isNotEmpty(jobsByPid)) { @@ -1010,7 +1012,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService getJobMapper().updateJobCompany(jobPOS.stream().map(JobPO::getId).collect(Collectors.toList()), parentComp, ecCompanyId); for (JobPO jobPO : jobPOS) { // 刷新组织架构图 - new Thread(new JobTriggerRunnable(jobPO.getId())).start(); + new JobTriggerRunnable(jobPO.getId()).run(); } } } diff --git a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java index d138f5a7..45d93e4b 100644 --- a/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java @@ -16,6 +16,7 @@ import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.mapper.personnelcard.PersonnelCardMapper; import com.engine.organization.service.HrmPersonnelCardService; import com.engine.organization.util.OrganizationAssert; +import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.field.FieldDefinedValueUtil; import com.engine.portal.biz.constants.ModuleConstants; @@ -190,7 +191,12 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel for (ExtendInfoPO extendInfoPO : extendInfoList) { String fieldShowName = ""; if (null != fieldValueMap) { - Object fieldValue = fieldValueMap.get(extendInfoPO.getFieldName()); + Object fieldValue; + if (DBType.isOracle()) { + fieldValue = fieldValueMap.get(extendInfoPO.getFieldName().toUpperCase()); + } else { + fieldValue = fieldValueMap.get(extendInfoPO.getFieldName()); + } fieldShowName = FieldDefinedValueUtil.getFieldValue(user, extendInfoPO, Util.null2String(fieldValue)); } itemList.add(Item.builder().fieldId(extendInfoPO.getFieldNameDesc()).fieldValue(fieldShowName).build()); diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 41f6aff8..1aca837d 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -1259,7 +1259,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ saveImportDetailLog(historyDetailPO); continue nextRow; } - if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"ec_company".equals(infoPO.getFieldName()) && !"ec_department".equals(infoPO.getFieldName())) { + if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"ec_company".equals(infoPO.getFieldName()) && !"ec_department".equals(infoPO.getFieldName()) && !"job_title".equals(infoPO.getFieldName())) { historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "数据转换失败,未找到对应数据"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index e7fe8307..26fb4b34 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -436,8 +436,11 @@ public class JobServiceImpl extends Service implements JobService { getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, searchParam.getId()); // 更新明细表 getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, searchParam.getId()); + JobPO jobById = getJobMapper().getJobById(searchParam.getId()); + new JobTriggerRunnable(oldJobPO, jobById).run(); // 更新人员关联字段 - updateResourceJob(getJobMapper().getJobById(searchParam.getId())); + updateResourceJob(jobById); + return searchParam.getId(); } diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index 470983b6..8c17ffd4 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -419,7 +419,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private String convertLevel(String fLeaderLv) { String jobLevelName = ""; - if (StringUtils.isBlank(fLeaderLv)) { + if (StringUtils.isNotBlank(fLeaderLv)) { try { long parseLong = Long.parseLong(fLeaderLv); LevelPO levelByID = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByID(parseLong); @@ -435,7 +435,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private String convertGrade(String fLeaderSt) { String jobGradeName = ""; - if (StringUtils.isBlank(fLeaderSt)) { + if (StringUtils.isNotBlank(fLeaderSt)) { try { long parseLong = Long.parseLong(fLeaderSt); GradePO gradeByID = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(parseLong); diff --git a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java index a7b63026..a610a42b 100644 --- a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java +++ b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java @@ -146,7 +146,7 @@ public class DepartmentTriggerRunnable implements Runnable { if (null != jclOrgMapByObjID) { if (null != jclOrgMap) { jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan()); - jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob() + jclOrgMap.getFOnJob()); + jclMap.setFOnJob(jclOrgMap.getFOnJob()); } else { jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0); jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob()); @@ -192,11 +192,11 @@ public class DepartmentTriggerRunnable implements Runnable { StaffPO staffPO = new StaffPO(); switch (parentJclOrgMap.getFType()) { case 1: - staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(1,parentId, null, null); + staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(1,Util.null2String(parentJclOrgMap.getFObjId()), null, null); break; // 部门 case 2: - staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2,null, parentId, null); + staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2, null, Util.null2String(parentJclOrgMap.getFObjId()), null); break; } // 编制表jcl_org_staff中的编制数+下级编制数,工具类判断 diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index 6b4287b0..4efebe36 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -1,9 +1,12 @@ package com.engine.organization.thread; import com.engine.organization.entity.hrmresource.po.HrmResourcePO; +import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.entity.personnelcard.User; import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; +import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper; import com.engine.organization.util.OrganizationDateUtil; @@ -50,7 +53,9 @@ public class HrmResourceTriggerRunnable implements Runnable { jclMap.setFType(4); // 查询当前人员信息数据 String ecResourceId = getHrmResourceMapper().getEcResourceId(userId.toString()); + // EC人员 HrmResource ecHrmResource = getHrmResourceTriggerMapper().getHrmResource(Long.parseLong(ecResourceId)); + // 聚才林人员 HrmResourcePO hrmResource = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId)); if (null != hrmResource && null!=ecHrmResource) { jclMap.setFObjId(hrmResource.getId().intValue()); @@ -60,22 +65,24 @@ public class HrmResourceTriggerRunnable implements Runnable { jclMap.setFName(hrmResource.getLastName()); jclMap.setUuid(hrmResource.getUuid()); delete = hrmResource.getStatus() < 4 ? 0 : 1; - jclMap.setFLeaderImg(ecHrmResource.getMessagerurl()); + // 展示为花名册上传的照片 + String image = User.builder().image(hrmResource.getResourceImageId()).build().getImage(); + jclMap.setFLeaderImg(image); + // TODO 是否刷新架构图本人所有的图像 jclMap.setFLeaderName(hrmResource.getLastName()); jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue()); - HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId)); - if (null != resourceByEcId) { - Long jobTitle = resourceByEcId.getJobTitle(); - if (null!=jobTitle) { - jclMap.setFObjParentId(jobTitle.intValue()); - jclMap.setFParentId(jclMap.getFObjParentId() + sj); + if (null != hrmResource.getJobTitle()) { + JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(hrmResource.getJobTitle()); + if (null != jobById) { + jclMap.setFLeaderJob(jobById.getJobName()); } - jclMap.setFLeaderSt(resourceByEcId.getJobGrade()); - jclMap.setFLeaderLv(resourceByEcId.getJobLevel()); + jclMap.setFObjParentId(hrmResource.getJobTitle().intValue()); + jclMap.setFParentId(jclMap.getFObjParentId() + sj); } + jclMap.setFLeaderSt(hrmResource.getJobGrade()); + jclMap.setFLeaderLv(hrmResource.getJobLevel()); jclMap.setFClass(0); jclMap.setFClassName("行政维度"); - jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); @@ -95,12 +102,19 @@ public class HrmResourceTriggerRunnable implements Runnable { // 更新当前架构图负责人的卡片信息 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())) { + //if (null != jclOrgMapByObjID && !jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) { + // new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); + // new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); + //} else { + // new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); + //} + + + if (null != jclOrgMapByObjID) { new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); - new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); } + new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); + } else if (null != jclOrgMapByObjID) { new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); } diff --git a/src/com/engine/organization/thread/JobTriggerRunnable.java b/src/com/engine/organization/thread/JobTriggerRunnable.java index e2d40f3f..5be8d6e6 100644 --- a/src/com/engine/organization/thread/JobTriggerRunnable.java +++ b/src/com/engine/organization/thread/JobTriggerRunnable.java @@ -42,7 +42,8 @@ public class JobTriggerRunnable implements Runnable { this.oldJob = oldJob; this.newJob = newJob; } - public JobTriggerRunnable(Boolean forbiddenTag,JobPO oldJob, JobPO newJob) { + + public JobTriggerRunnable(Boolean forbiddenTag, JobPO oldJob, JobPO newJob) { this.oldJob = oldJob; this.newJob = newJob; this.forbiddenTag = forbiddenTag; @@ -52,7 +53,8 @@ public class JobTriggerRunnable implements Runnable { this.oldJob = new JobPO(); this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(jobId); } - public JobTriggerRunnable(Long oldJobId,Long newJobId) { + + public JobTriggerRunnable(Long oldJobId, Long newJobId) { this.oldJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(oldJobId); this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(newJobId); } @@ -71,84 +73,83 @@ public class JobTriggerRunnable implements Runnable { return; } // 判断 - if (diffFields.contains("jobName") || diffFields.contains("parentDept") || diffFields.contains("parentJob") || diffFields.contains("forbiddenTag") || diffFields.contains("deleteType")) { - JclOrgMap jclMap = new JclOrgMap(); - int st = 100000000; - int sj = 200000000; - jclMap.setFType(3); - // 更新逻辑 - jclMap.setFObjId(newJob.getId().intValue()); - jclMap.setId(newJob.getId().intValue() + sj); - jclMap.setFNumber(newJob.getJobNo()); - jclMap.setFName(newJob.getJobName()); - jclMap.setFParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj); - jclMap.setFObjParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue()); - Integer parentdept = newJob.getParentDept().intValue(); - - jclMap.setFClass(0); - jclMap.setFClassName("行政维度"); - - String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); - jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); - jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); - - JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID( jclMap.getFDateBegin(), ModuleTypeEnum.jobfielddefined.getValue().toString(), jclMap.getFObjId().toString()); - - // 该岗位有下级岗位时,查询 - JclOrgMap jclOrgMap = MapperProxyFactory.getProxy(JclOrgMapper.class).getSumPlanAndJobByFParentId(jclMap.getFDateBegin(), jclMap.getId().toString()); - - StaffPO staffPO = new StaffPO(); - switch (jclMap.getFType()) { - // 部门 - case 2: - staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2,null, jclMap.getFObjId().toString(), null); - break; - // 岗位 - case 3: - staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(3,null, null, jclMap.getFObjId().toString()); - break; - default: - break; - } - if (null != jclOrgMapByObjID) { - if (null != jclOrgMap) { - jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan()); - jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob() + jclOrgMap.getFOnJob()); - } else { - jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0); - jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob()); - } + JclOrgMap jclMap = new JclOrgMap(); + int st = 100000000; + int sj = 200000000; + jclMap.setFType(3); + // 更新逻辑 + jclMap.setFObjId(newJob.getId().intValue()); + jclMap.setId(newJob.getId().intValue() + sj); + jclMap.setFNumber(newJob.getJobNo()); + jclMap.setFName(newJob.getJobName()); + jclMap.setFParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj); + jclMap.setFObjParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue()); + Integer parentdept = newJob.getParentDept().intValue(); + + jclMap.setFClass(0); + jclMap.setFClassName("行政维度"); + + String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); + jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); + + JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(jclMap.getFDateBegin(), ModuleTypeEnum.jobfielddefined.getValue().toString(), jclMap.getFObjId().toString()); + + // 该岗位有下级岗位时,查询 + JclOrgMap jclOrgMap = MapperProxyFactory.getProxy(JclOrgMapper.class).getSumPlanAndJobByFParentId(jclMap.getFDateBegin(), jclMap.getId().toString()); + + StaffPO staffPO = new StaffPO(); + switch (jclMap.getFType()) { + // 部门 + case 2: + staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2, null, jclMap.getFObjId().toString(), null); + break; + // 岗位 + case 3: + staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(3, null, null, jclMap.getFObjId().toString()); + break; + default: + break; + } + if (null != jclOrgMapByObjID) { + if (null != jclOrgMap) { + jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan()); + jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob() + jclOrgMap.getFOnJob()); } else { jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0); - jclMap.setFOnJob(0); + jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob()); } - jclMap.setFIsVitual(0); + } else { + jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0); + jclMap.setFOnJob(0); + } + jclMap.setFIsVitual(0); - Calendar cal = Calendar.getInstance(); - cal.setTime(jclMap.getFDateBegin()); - Calendar calendar = DateUtil.addDay(cal, -1); - Date time = new Date(calendar.getTime().getTime()); - getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin()); - getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); + Calendar cal = Calendar.getInstance(); + cal.setTime(jclMap.getFDateBegin()); + Calendar calendar = DateUtil.addDay(cal, -1); + Date time = new Date(calendar.getTime().getTime()); + getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin()); + getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); - if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) { - MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); - } - if (null != jclOrgMapByObjID) { - if(null != jclOrgMapByObjID.getFParentId()){ - updateParentPlanAndJob(jclMap.getFDateBegin(), jclOrgMapByObjID.getFParentId().toString()); - } - } - // 部门启用,刷新上级数据 - if(forbiddenTag){ - updateParentPlanAndJob(jclMap.getFDateBegin(), jclMap.getFParentId().toString()); + if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) { + MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); + } + if (null != jclOrgMapByObjID) { + if (null != jclOrgMapByObjID.getFParentId()) { + updateParentPlanAndJob(jclMap.getFDateBegin(), jclOrgMapByObjID.getFParentId().toString()); } - if (null != oldJob) { - if (null != oldJob.getId()){ - updateParentPlanAndJob(jclMap.getFDateBegin(), oldJob.getId().toString()); - } + } + // 部门启用,刷新上级数据 + if (forbiddenTag) { + updateParentPlanAndJob(jclMap.getFDateBegin(), jclMap.getFParentId().toString()); + } + if (null != oldJob) { + if (null != oldJob.getId()) { + updateParentPlanAndJob(jclMap.getFDateBegin(), oldJob.getId().toString()); } } + } /** diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index fa3ec7d9..39e5affa 100644 --- a/src/com/engine/organization/thread/StaffTriggerRunnable.java +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -176,7 +176,7 @@ public class StaffTriggerRunnable implements Runnable { getJclOrgMapper().updateMap(type, objId, currentDate, yesterday); jclOrgMapByObjID.setFPlan(addInteger(planSum, childPlanSum)); jclOrgMapByObjID.setFOnJob(addInteger(onJobSum, childOnJobSum)); - jclOrgMapByObjID.setFDateBegin(new Date(System.currentTimeMillis())); + jclOrgMapByObjID.setFDateBegin(currentDate); getJclOrgMapper().insertMap(jclOrgMapByObjID); } diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index 43156670..5f380713 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -133,7 +133,6 @@ public class DepartmentWrapper extends OrganizationWrapper { DepartmentPO newDeptById = getDepartmentMapper().getDeptById(id); writeOperateLog(new Object() { }.getClass(), deptById.getDeptName(), JSON.toJSONString(params), deptById, newDeptById); - new Thread(new DepartmentTriggerRunnable(deptById, newDeptById)).start(); return departmentId; } diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index a97ba593..2e447fe1 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -11,11 +11,9 @@ import com.engine.organization.entity.job.param.JobMergeParam; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.searchtree.SearchTreeParams; -import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.job.JobMapper; -import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.service.JobService; import com.engine.organization.service.impl.JobServiceImpl; import com.engine.organization.thread.JobTriggerRunnable; @@ -135,7 +133,7 @@ public class JobWrapper extends OrganizationWrapper { writeOperateLog(new Object() { }.getClass(), jobById.getJobName(), JSON.toJSONString(params), jobById, newJobById); // 更新组织架构图 - new Thread(new JobTriggerRunnable(jobById, newJobById)).start(); + return jobId; }