Merge pull request '组织架构图相关BUG修复' (#26) from feature/dxf into develop

Reviewed-on: #26
pull/30/head
dxfeng 3 years ago
commit 946a0006b4

@ -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, '名称', '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, '描述方案', '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, '等级方案', '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_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(), ''); INSERT INTO datasearchparam (MAINID, FIELDNAME, SEARCHNAME, FIELDTYPE, WOKFLOWFIELDNAME, dsporder, uuid, isshowfield) VALUES(datashowset_id, '名称', 'grade_name', '2', '', 2, SYS_GUID(), '');

@ -1216,3 +1216,5 @@ 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(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) 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)
/ /
INSERT INTO JCL_INFO (id, fname, fvalue) VALUES (1, '董事长人员id', '36')

@ -41,6 +41,31 @@ public class ExtendInfoParams {
private String sequenceName; private String sequenceName;
public String getSequenceName() { 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;
} }
} }

@ -89,8 +89,8 @@ public class JobBO {
.deptName(e.getDeptName()) .deptName(e.getDeptName())
.sequenceName(e.getSequenceName()) .sequenceName(e.getSequenceName())
.schemeName(e.getSchemeName()) .schemeName(e.getSchemeName())
.parentJob(e.getParentJob()) //.parentJob(e.getParentJob())
.parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobName()) //.parentJobName(null == poMaps.get(e.getParentJob()) ? "" : poMaps.get(e.getParentJob()).getJobName())
.isKey(JobTransMethod.getIsKeySpan(e.getIsKey())) .isKey(JobTransMethod.getIsKeySpan(e.getIsKey()))
.showOrder(e.getShowOrder()) .showOrder(e.getShowOrder())
.forbiddenTag(e.getForbiddenTag()) .forbiddenTag(e.getForbiddenTag())

@ -64,7 +64,8 @@ public class JobListDTO {
/** /**
* *
*/ */
@TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName") // 上级岗位,暂不使用
//@TableTitle(title = "上级岗位", dataIndex = "parentJobName", key = "parentJobName")
private String parentJobName; private String parentJobName;
private Long parentJob; private Long parentJob;
/** /**

@ -12,7 +12,7 @@ import java.sql.Date;
**/ **/
public interface GroupTriggerMapper { public interface GroupTriggerMapper {
int getInfoValue(@Param("id") Integer id); Integer getInfoValue(@Param("id") Integer id);
Integer sumStaffNum(@Param("fdatebegin") Date fdatebegin); Integer sumStaffNum(@Param("fdatebegin") Date fdatebegin);

@ -282,9 +282,9 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
groupId = GROUP_ID.toString(); groupId = GROUP_ID.toString();
} }
String oldDeptNo = getDepartmentMapper().getDeptById(searchParam.getId()).getDeptNo(); DepartmentPO oldDept = getDepartmentMapper().getDeptById(searchParam.getId());
String deptNo = searchParam.getDeptNo(); String deptNo = searchParam.getDeptNo();
if (!deptNo.equals(oldDeptNo)) { if (!deptNo.equals(oldDept.getDeptNo())) {
deptNo = repeatDetermine(deptNo); deptNo = repeatDetermine(deptNo);
params.put("dept_no", 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()); 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; 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()); deptById.setUuid(recordInfo.getUuid());
getDepartmentMapper().insertIgnoreNull(deptById); getDepartmentMapper().insertIgnoreNull(deptById);
// 更新组织架构图 // 更新组织架构图
new Thread(new DepartmentTriggerRunnable(deptById.getId())).start(); new DepartmentTriggerRunnable(deptById.getId()).run();
// 复制当前部门岗位信息 // 复制当前部门岗位信息
if ("1".equals(copyJob)) { if ("1".equals(copyJob)) {
@ -637,7 +639,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
updateEcDepartment(departmentPO); updateEcDepartment(departmentPO);
getDepartmentMapper().updateBaseDept(departmentPO); getDepartmentMapper().updateBaseDept(departmentPO);
// 更新组织架构图 // 更新组织架构图
new Thread(new DepartmentTriggerRunnable(departmentPO.getId())).start(); new DepartmentTriggerRunnable(departmentPO.getId()).run();
} }
// 查询该部门一级岗位、更新岗位所属分部、所属部门 // 查询该部门一级岗位、更新岗位所属分部、所属部门
List<JobPO> firstChildJobList = getJobMapper().listJobsByDepartmentId(mergeParam.getId()); List<JobPO> firstChildJobList = getJobMapper().listJobsByDepartmentId(mergeParam.getId());
@ -650,7 +652,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
// 更新岗位组织架构图 // 更新岗位组织架构图
for (JobPO jobPO : firstChildJobList) { for (JobPO jobPO : firstChildJobList) {
// 刷新组织架构图 // 刷新组织架构图
new Thread(new JobTriggerRunnable(jobPO.getId())).start(); new JobTriggerRunnable(jobPO.getId()).run();
} }
// 更新当前部门下的人员 // 更新当前部门下的人员
List<Long> hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(mergeParam.getId().toString()); List<Long> 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()); 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) { for (Long hrmResourceId : hrmResourceIds) {
new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); new HrmResourceTriggerRunnable(hrmResourceId).run();
} }
// 更新子部门下岗位的所属分部 // 更新子部门下岗位的所属分部
for (DepartmentPO departmentPO : firstChildDeptList) { 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()); MapperProxyFactory.getProxy(ExtDTMapper.class).deleteByMainID("jcl_org_deptext_dt1", mergeParam.getId());
getDepartmentMapper().deleteByIds(DeleteParam.builder().ids(mergeParam.getId().toString()).build().getIds()); 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.setDeptName(mergeParam.getMergeName());
targetDepartment.setDeptNameShort(mergeParam.getMergeName()); targetDepartment.setDeptNameShort(mergeParam.getMergeName());
updateEcDepartment(targetDepartment); updateEcDepartment(targetDepartment);
getDepartmentMapper().updateBaseDept(targetDepartment); getDepartmentMapper().updateBaseDept(targetDepartment);
// 更新组织架构图 // 更新组织架构图
new Thread(new DepartmentTriggerRunnable(oldFParentId,targetDepartment.getId())).run(); new DepartmentTriggerRunnable(oldFParentId,targetDepartment.getId()).run();
return 0; return 0;
} }
@ -725,7 +727,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
deptById.setEcDepartment(null); deptById.setEcDepartment(null);
// 更新组织架构图 // 更新组织架构图
new Thread(new DepartmentTriggerRunnable(company.toString(),deptById)).run(); new DepartmentTriggerRunnable(company.toString(),deptById).run();
} else if ("1".equals(moveParam.getMoveType())) { } else if ("1".equals(moveParam.getMoveType())) {
Long department = moveParam.getDepartment(); Long department = moveParam.getDepartment();
Long departmentId = Objects.requireNonNull(EcHrmRelationUtil.getJclDepartmentId(Util.null2String(department))).getId(); 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()); 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部门 // 更新EC部门
updateEcDepartment(deptById); 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()); new RecordSet().executeUpdate("update jcl_org_hrmresource set company_id =? ,ec_company = ? where department_id =?", deptById.getParentComp(), ecCompanyId, deptById.getId());
// 更新人员组织架构图 // 更新人员组织架构图
for (Long hrmResourceId : hrmResourceIds) { for (Long hrmResourceId : hrmResourceIds) {
new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); new HrmResourceTriggerRunnable(hrmResourceId).run();
} }
forbiddenChildTag(deptById.getParentComp(), ecCompanyId, deptList); forbiddenChildTag(deptById.getParentComp(), ecCompanyId, deptList);
// 递归更新下级部门、岗位 // 递归更新下级部门、岗位
@ -784,7 +786,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
getDepartmentMapper().updateBaseDept(departmentPO); getDepartmentMapper().updateBaseDept(departmentPO);
// 更新组织架构图 // 更新组织架构图
new Thread(new DepartmentTriggerRunnable(departmentPO.getId())).start(); new DepartmentTriggerRunnable(departmentPO.getId()).run();
// 刷新岗位所属分部 // 刷新岗位所属分部
refreshJobComp(departmentPO.getId(), parentComp); 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()); new RecordSet().executeUpdate("update jcl_org_hrmresource set company_id =? ,ec_company = ? where department_id =?", parentComp, ecCompanyId, departmentPO.getId());
// 更新人员组织架构图 // 更新人员组织架构图
for (Long hrmResourceId : hrmResourceIds) { for (Long hrmResourceId : hrmResourceIds) {
new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); new HrmResourceTriggerRunnable(hrmResourceId).run();
} }
List<DepartmentPO> childList = getDepartmentMapper().getDeptListByPId(departmentPO.getId()); List<DepartmentPO> childList = getDepartmentMapper().getDeptListByPId(departmentPO.getId());
forbiddenChildTag(parentComp, ecCompanyId, childList); forbiddenChildTag(parentComp, ecCompanyId, childList);
@ -930,7 +932,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
jobPO.setShowOrder(orderNum); jobPO.setShowOrder(orderNum);
MapperProxyFactory.getProxy(JobMapper.class).insertIgnoreNull(jobPO); MapperProxyFactory.getProxy(JobMapper.class).insertIgnoreNull(jobPO);
// 更新组织架构图 // 更新组织架构图
new Thread(new JobTriggerRunnable(jobPO.getId())).start(); new JobTriggerRunnable(jobPO.getId()).run();
// 处理子级元素 // 处理子级元素
if (CollectionUtils.isNotEmpty(jobsByPid)) { 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); getJobMapper().updateJobCompany(jobPOS.stream().map(JobPO::getId).collect(Collectors.toList()), parentComp, ecCompanyId);
for (JobPO jobPO : jobPOS) { for (JobPO jobPO : jobPOS) {
// 刷新组织架构图 // 刷新组织架构图
new Thread(new JobTriggerRunnable(jobPO.getId())).start(); new JobTriggerRunnable(jobPO.getId()).run();
} }
} }
} }

@ -16,6 +16,7 @@ import com.engine.organization.mapper.hrmresource.HrmResourceMapper;
import com.engine.organization.mapper.personnelcard.PersonnelCardMapper; import com.engine.organization.mapper.personnelcard.PersonnelCardMapper;
import com.engine.organization.service.HrmPersonnelCardService; import com.engine.organization.service.HrmPersonnelCardService;
import com.engine.organization.util.OrganizationAssert; 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.db.MapperProxyFactory;
import com.engine.organization.util.field.FieldDefinedValueUtil; import com.engine.organization.util.field.FieldDefinedValueUtil;
import com.engine.portal.biz.constants.ModuleConstants; import com.engine.portal.biz.constants.ModuleConstants;
@ -190,7 +191,12 @@ public class HrmPersonnelCardServiceImpl extends Service implements HrmPersonnel
for (ExtendInfoPO extendInfoPO : extendInfoList) { for (ExtendInfoPO extendInfoPO : extendInfoList) {
String fieldShowName = ""; String fieldShowName = "";
if (null != fieldValueMap) { 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)); fieldShowName = FieldDefinedValueUtil.getFieldValue(user, extendInfoPO, Util.null2String(fieldValue));
} }
itemList.add(Item.builder().fieldId(extendInfoPO.getFieldNameDesc()).fieldValue(fieldShowName).build()); itemList.add(Item.builder().fieldId(extendInfoPO.getFieldNameDesc()).fieldValue(fieldShowName).build());

@ -1259,7 +1259,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ
saveImportDetailLog(historyDetailPO); saveImportDetailLog(historyDetailPO);
continue nextRow; 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.setOperateDetail(infoPO.getFieldNameDesc() + "数据转换失败,未找到对应数据");
historyDetailPO.setStatus("0"); historyDetailPO.setStatus("0");
saveImportDetailLog(historyDetailPO); saveImportDetailLog(historyDetailPO);

@ -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).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, searchParam.getId());
// 更新明细表 // 更新明细表
getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, 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(); return searchParam.getId();
} }

@ -419,7 +419,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
private String convertLevel(String fLeaderLv) { private String convertLevel(String fLeaderLv) {
String jobLevelName = ""; String jobLevelName = "";
if (StringUtils.isBlank(fLeaderLv)) { if (StringUtils.isNotBlank(fLeaderLv)) {
try { try {
long parseLong = Long.parseLong(fLeaderLv); long parseLong = Long.parseLong(fLeaderLv);
LevelPO levelByID = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByID(parseLong); LevelPO levelByID = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByID(parseLong);
@ -435,7 +435,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService {
private String convertGrade(String fLeaderSt) { private String convertGrade(String fLeaderSt) {
String jobGradeName = ""; String jobGradeName = "";
if (StringUtils.isBlank(fLeaderSt)) { if (StringUtils.isNotBlank(fLeaderSt)) {
try { try {
long parseLong = Long.parseLong(fLeaderSt); long parseLong = Long.parseLong(fLeaderSt);
GradePO gradeByID = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(parseLong); GradePO gradeByID = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(parseLong);

@ -146,7 +146,7 @@ public class DepartmentTriggerRunnable implements Runnable {
if (null != jclOrgMapByObjID) { if (null != jclOrgMapByObjID) {
if (null != jclOrgMap) { if (null != jclOrgMap) {
jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan()); jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan());
jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob() + jclOrgMap.getFOnJob()); jclMap.setFOnJob(jclOrgMap.getFOnJob());
} else { } else {
jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0); jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0);
jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob()); jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob());
@ -192,11 +192,11 @@ public class DepartmentTriggerRunnable implements Runnable {
StaffPO staffPO = new StaffPO(); StaffPO staffPO = new StaffPO();
switch (parentJclOrgMap.getFType()) { switch (parentJclOrgMap.getFType()) {
case 1: 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; break;
// 部门 // 部门
case 2: 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; break;
} }
// 编制表jcl_org_staff中的编制数+下级编制数,工具类判断 // 编制表jcl_org_staff中的编制数+下级编制数,工具类判断

@ -1,9 +1,12 @@
package com.engine.organization.thread; package com.engine.organization.thread;
import com.engine.organization.entity.hrmresource.po.HrmResourcePO; 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.map.JclOrgMap;
import com.engine.organization.entity.personnelcard.User;
import com.engine.organization.mapper.hrmresource.HrmResourceMapper; import com.engine.organization.mapper.hrmresource.HrmResourceMapper;
import com.engine.organization.mapper.jclorgmap.JclOrgMapper; 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.CompTriggerMapper;
import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper; import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper;
import com.engine.organization.util.OrganizationDateUtil; import com.engine.organization.util.OrganizationDateUtil;
@ -50,7 +53,9 @@ public class HrmResourceTriggerRunnable implements Runnable {
jclMap.setFType(4); jclMap.setFType(4);
// 查询当前人员信息数据 // 查询当前人员信息数据
String ecResourceId = getHrmResourceMapper().getEcResourceId(userId.toString()); String ecResourceId = getHrmResourceMapper().getEcResourceId(userId.toString());
// EC人员
HrmResource ecHrmResource = getHrmResourceTriggerMapper().getHrmResource(Long.parseLong(ecResourceId)); HrmResource ecHrmResource = getHrmResourceTriggerMapper().getHrmResource(Long.parseLong(ecResourceId));
// 聚才林人员
HrmResourcePO hrmResource = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId)); HrmResourcePO hrmResource = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId));
if (null != hrmResource && null!=ecHrmResource) { if (null != hrmResource && null!=ecHrmResource) {
jclMap.setFObjId(hrmResource.getId().intValue()); jclMap.setFObjId(hrmResource.getId().intValue());
@ -60,22 +65,24 @@ public class HrmResourceTriggerRunnable implements Runnable {
jclMap.setFName(hrmResource.getLastName()); jclMap.setFName(hrmResource.getLastName());
jclMap.setUuid(hrmResource.getUuid()); jclMap.setUuid(hrmResource.getUuid());
delete = hrmResource.getStatus() < 4 ? 0 : 1; 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.setFLeaderName(hrmResource.getLastName());
jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue()); jclMap.setFLeaderJobId(hrmResource.getJobTitle().intValue());
HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(Integer.parseInt(ecResourceId)); if (null != hrmResource.getJobTitle()) {
if (null != resourceByEcId) { JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(hrmResource.getJobTitle());
Long jobTitle = resourceByEcId.getJobTitle(); if (null != jobById) {
if (null!=jobTitle) { jclMap.setFLeaderJob(jobById.getJobName());
jclMap.setFObjParentId(jobTitle.intValue());
jclMap.setFParentId(jclMap.getFObjParentId() + sj);
} }
jclMap.setFLeaderSt(resourceByEcId.getJobGrade()); jclMap.setFObjParentId(hrmResource.getJobTitle().intValue());
jclMap.setFLeaderLv(resourceByEcId.getJobLevel()); jclMap.setFParentId(jclMap.getFObjParentId() + sj);
} }
jclMap.setFLeaderSt(hrmResource.getJobGrade());
jclMap.setFLeaderLv(hrmResource.getJobLevel());
jclMap.setFClass(0); jclMap.setFClass(0);
jclMap.setFClassName("行政维度"); jclMap.setFClassName("行政维度");
jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId()));
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").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()); getHrmResourceTriggerMapper().updateLeaders(currentDate, hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt());
// 更新组织架构图在岗数 // 更新组织架构图在岗数
if (null == jclOrgMapByObjID) { //if (null != jclOrgMapByObjID && !jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) {
new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); // new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
} else if (!jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) { // new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
//} else {
// new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
//}
if (null != jclOrgMapByObjID) {
new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
} }
new StaffTriggerRunnable(jclMap.getFObjParentId()).run();
} else if (null != jclOrgMapByObjID) { } else if (null != jclOrgMapByObjID) {
new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run();
} }

@ -42,7 +42,8 @@ public class JobTriggerRunnable implements Runnable {
this.oldJob = oldJob; this.oldJob = oldJob;
this.newJob = newJob; this.newJob = newJob;
} }
public JobTriggerRunnable(Boolean forbiddenTag,JobPO oldJob, JobPO newJob) {
public JobTriggerRunnable(Boolean forbiddenTag, JobPO oldJob, JobPO newJob) {
this.oldJob = oldJob; this.oldJob = oldJob;
this.newJob = newJob; this.newJob = newJob;
this.forbiddenTag = forbiddenTag; this.forbiddenTag = forbiddenTag;
@ -52,7 +53,8 @@ public class JobTriggerRunnable implements Runnable {
this.oldJob = new JobPO(); this.oldJob = new JobPO();
this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(jobId); 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.oldJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(oldJobId);
this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(newJobId); this.newJob = MapperProxyFactory.getProxy(JobMapper.class).getJobById(newJobId);
} }
@ -71,84 +73,83 @@ public class JobTriggerRunnable implements Runnable {
return; return;
} }
// 判断 // 判断
if (diffFields.contains("jobName") || diffFields.contains("parentDept") || diffFields.contains("parentJob") || diffFields.contains("forbiddenTag") || diffFields.contains("deleteType")) { JclOrgMap jclMap = new JclOrgMap();
JclOrgMap jclMap = new JclOrgMap(); int st = 100000000;
int st = 100000000; int sj = 200000000;
int sj = 200000000; jclMap.setFType(3);
jclMap.setFType(3); // 更新逻辑
// 更新逻辑 jclMap.setFObjId(newJob.getId().intValue());
jclMap.setFObjId(newJob.getId().intValue()); jclMap.setId(newJob.getId().intValue() + sj);
jclMap.setId(newJob.getId().intValue() + sj); jclMap.setFNumber(newJob.getJobNo());
jclMap.setFNumber(newJob.getJobNo()); jclMap.setFName(newJob.getJobName());
jclMap.setFName(newJob.getJobName()); jclMap.setFParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj);
jclMap.setFParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() + st : newJob.getParentJob().intValue() + sj); jclMap.setFObjParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue());
jclMap.setFObjParentId(null == newJob.getParentJob() ? newJob.getParentDept().intValue() : newJob.getParentJob().intValue()); Integer parentdept = newJob.getParentDept().intValue();
Integer parentdept = newJob.getParentDept().intValue();
jclMap.setFClass(0);
jclMap.setFClass(0); jclMap.setFClassName("行政维度");
jclMap.setFClassName("行政维度");
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date());
String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime()));
jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").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 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());
JclOrgMap jclOrgMap = MapperProxyFactory.getProxy(JclOrgMapper.class).getSumPlanAndJobByFParentId(jclMap.getFDateBegin(), jclMap.getId().toString());
StaffPO staffPO = new StaffPO();
StaffPO staffPO = new StaffPO(); switch (jclMap.getFType()) {
switch (jclMap.getFType()) { // 部门
// 部门 case 2:
case 2: staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2, null, jclMap.getFObjId().toString(), null);
staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(2,null, jclMap.getFObjId().toString(), null); break;
break; // 岗位
// 岗位 case 3:
case 3: staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(3, null, null, jclMap.getFObjId().toString());
staffPO = MapperProxyFactory.getProxy(StaffMapper.class).getStaffsByParamId(3,null, null, jclMap.getFObjId().toString()); break;
break; default:
default: break;
break; }
} if (null != jclOrgMapByObjID) {
if (null != jclOrgMapByObjID) { if (null != jclOrgMap) {
if (null != jclOrgMap) { jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan());
jclMap.setFPlan((null != staffPO ? staffPO.getStaffNum() : 0) + jclOrgMap.getFPlan()); jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob() + jclOrgMap.getFOnJob());
jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob() + jclOrgMap.getFOnJob());
} else {
jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0);
jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob());
}
} else { } else {
jclMap.setFPlan(null != staffPO ? staffPO.getStaffNum() : 0); 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(); Calendar cal = Calendar.getInstance();
cal.setTime(jclMap.getFDateBegin()); cal.setTime(jclMap.getFDateBegin());
Calendar calendar = DateUtil.addDay(cal, -1); Calendar calendar = DateUtil.addDay(cal, -1);
Date time = new Date(calendar.getTime().getTime()); Date time = new Date(calendar.getTime().getTime());
getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin()); getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin());
getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time);
if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) { if (1 != newJob.getDeleteType() && 1 != newJob.getForbiddenTag()) {
MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap);
} }
if (null != jclOrgMapByObjID) { if (null != jclOrgMapByObjID) {
if(null != jclOrgMapByObjID.getFParentId()){ if (null != jclOrgMapByObjID.getFParentId()) {
updateParentPlanAndJob(jclMap.getFDateBegin(), jclOrgMapByObjID.getFParentId().toString()); updateParentPlanAndJob(jclMap.getFDateBegin(), jclOrgMapByObjID.getFParentId().toString());
}
}
// 部门启用,刷新上级数据
if(forbiddenTag){
updateParentPlanAndJob(jclMap.getFDateBegin(), jclMap.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());
} }
} }
} }
/** /**

@ -176,7 +176,7 @@ public class StaffTriggerRunnable implements Runnable {
getJclOrgMapper().updateMap(type, objId, currentDate, yesterday); getJclOrgMapper().updateMap(type, objId, currentDate, yesterday);
jclOrgMapByObjID.setFPlan(addInteger(planSum, childPlanSum)); jclOrgMapByObjID.setFPlan(addInteger(planSum, childPlanSum));
jclOrgMapByObjID.setFOnJob(addInteger(onJobSum, childOnJobSum)); jclOrgMapByObjID.setFOnJob(addInteger(onJobSum, childOnJobSum));
jclOrgMapByObjID.setFDateBegin(new Date(System.currentTimeMillis())); jclOrgMapByObjID.setFDateBegin(currentDate);
getJclOrgMapper().insertMap(jclOrgMapByObjID); getJclOrgMapper().insertMap(jclOrgMapByObjID);
} }

@ -133,7 +133,6 @@ public class DepartmentWrapper extends OrganizationWrapper {
DepartmentPO newDeptById = getDepartmentMapper().getDeptById(id); DepartmentPO newDeptById = getDepartmentMapper().getDeptById(id);
writeOperateLog(new Object() { writeOperateLog(new Object() {
}.getClass(), deptById.getDeptName(), JSON.toJSONString(params), deptById, newDeptById); }.getClass(), deptById.getDeptName(), JSON.toJSONString(params), deptById, newDeptById);
new Thread(new DepartmentTriggerRunnable(deptById, newDeptById)).start();
return departmentId; return departmentId;
} }

@ -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.param.JobSearchParam;
import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.job.po.JobPO;
import com.engine.organization.entity.searchtree.SearchTreeParams; 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.LogModuleNameEnum;
import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.enums.OperateTypeEnum;
import com.engine.organization.mapper.job.JobMapper; 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.JobService;
import com.engine.organization.service.impl.JobServiceImpl; import com.engine.organization.service.impl.JobServiceImpl;
import com.engine.organization.thread.JobTriggerRunnable; import com.engine.organization.thread.JobTriggerRunnable;
@ -135,7 +133,7 @@ public class JobWrapper extends OrganizationWrapper {
writeOperateLog(new Object() { writeOperateLog(new Object() {
}.getClass(), jobById.getJobName(), JSON.toJSONString(params), jobById, newJobById); }.getClass(), jobById.getJobName(), JSON.toJSONString(params), jobById, newJobById);
// 更新组织架构图 // 更新组织架构图
new Thread(new JobTriggerRunnable(jobById, newJobById)).start();
return jobId; return jobId;
} }

Loading…
Cancel
Save