From eb007f5b2329dde9e5a9b00e0816d0ac686c83f3 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 18 Oct 2022 16:35:08 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BA=BA=E4=BA=8B=E5=8D=A1=E7=89=87BUG?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/entity/personnelcard/User.java | 3 +++ .../mapper/personnelcard/PersonnelCardMapper.xml | 4 ++-- .../engine/organization/util/relation/ResourceSyncUtil.java | 6 ++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/com/engine/organization/entity/personnelcard/User.java b/src/com/engine/organization/entity/personnelcard/User.java index aa95cf90..78afd4c9 100644 --- a/src/com/engine/organization/entity/personnelcard/User.java +++ b/src/com/engine/organization/entity/personnelcard/User.java @@ -42,6 +42,9 @@ public class User { public String getImage() { weaver.hrm.User user = new weaver.hrm.User(); user.setLanguage(LanguageService.getDefaultLang()); + if(StringUtils.isNotBlank(image)&& image.contains("/")){ + return image; + } return FieldDefinedValueUtil.getFieldValue(user, ExtendInfoPO.builder().controlType(6).browserType("1").build(), image); } } diff --git a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml index e6f990a3..535c9bd6 100644 --- a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml +++ b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml @@ -3,7 +3,7 @@ - + @@ -28,7 +28,7 @@ select subcompanyname from hrmsubcompany @@ -187,14 +136,6 @@ order by groupid ,fieldorder - - SELECT t.last_name as lastName,d.dept_name as departmentName, @@ -17,7 +60,7 @@ left join jcl_org_comp c on t.company_id = c.id left join jcl_org_hrmresource t1 on t.manager_id = t1.id where 1 = 1 - + AND t.id IN #{id} @@ -26,28 +69,39 @@ - + - + - + - + - + - + - + order by t.id asc; + + @@ -56,7 +110,7 @@ - AND t.last_name like '%'||#{param.lastName}||'%' + AND t.last_name like '%'||#{param.lastName}||'%' @@ -66,5 +120,4 @@ - \ No newline at end of file diff --git a/src/com/engine/organization/mapper/trigger/CompTriggerMapper.java b/src/com/engine/organization/mapper/trigger/CompTriggerMapper.java index 2d0e9832..4ad23e77 100644 --- a/src/com/engine/organization/mapper/trigger/CompTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/CompTriggerMapper.java @@ -1,7 +1,7 @@ package com.engine.organization.mapper.trigger; -import com.engine.organization.entity.cusfielddata.po.CusFieldData; +import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import org.apache.ibatis.annotations.Param; import weaver.hrm.passwordprotection.domain.HrmResource; @@ -20,13 +20,11 @@ public interface CompTriggerMapper { String getJobTitleMarkById(@Param("id") Integer id); - CusFieldData getCusFieldDataById(@Param("id") Integer id); - Integer sumStaffNum(@Param("fdatebegin") Date fdatebegin, @Param("compId") Integer compId); - Integer countHrmResource(@Param("subcompanyid1") Integer subcompanyid1); - int deleteMap(@Param("ftype") Integer ftype, @Param("fobjid") Integer fobjid, @Param("fdatebegin") Date fdatebegin); int updateMap(@Param("ftype") Integer ftype, @Param("fobjid") Integer fobjid, @Param("fdatebegin") Date fdatebegin, @Param("fdate") Date fdate); + + HrmResourcePO getResourceByEcId(@Param("ecId") Integer ecId); } diff --git a/src/com/engine/organization/mapper/trigger/CompTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/CompTriggerMapper.xml index cc3cd314..7204e3cb 100644 --- a/src/com/engine/organization/mapper/trigger/CompTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/CompTriggerMapper.xml @@ -31,13 +31,6 @@ from hrmjobtitles where id = #{id} - - + select + + from jcl_org_hrmresource t + inner join hrmresource a on t.uuid = a.uuid + where t.delete_type = 0 and a.id = #{ecId} \ No newline at end of file diff --git a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java index c47d0b38..2d4d3011 100644 --- a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java @@ -1,6 +1,5 @@ package com.engine.organization.mapper.trigger; -import com.engine.organization.entity.cusfielddata.po.CusFieldData; import org.apache.ibatis.annotations.Param; import weaver.hrm.passwordprotection.domain.HrmResource; @@ -14,8 +13,6 @@ import java.util.List; public interface HrmResourceTriggerMapper { HrmResource getHrmResource(@Param("id") Long id); - CusFieldData getCusFieldDataById(@Param("fObjId") Integer fObjId); - List getFidsByFleader(@Param("fLeader") String fLeader, @Param("currentDate") String currentDate); int updateLeaders(@Param("currentDate") String currentDate,@Param("fLeader") String fLeader, @Param("fLeaderImg") String fLeaderImg, @Param("fLeaderName") String fLeaderName, @Param("fLeaderJobId") Integer fLeaderJobId, @Param("fLeaderJob") String fLeaderJob, @Param("fLeaderLv") String fLeaderLv, @Param("fLeaderSt") String fLeaderSt); diff --git a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml index 5650f4a2..cd09e5ac 100644 --- a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml @@ -20,13 +20,7 @@ from hrmresource where id = #{id} - + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index 082f336d..70724bd4 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -294,22 +294,20 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic List addGroups = new ArrayList<>(); List conditionItems = new ArrayList<>(); SearchConditionItem lastNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "姓名", "lastName"); - SearchConditionItem managerIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "直接上级", "1", "managerId", ""); - SearchConditionItem companyIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "161", "companyId", "compBrowser"); - SearchConditionItem departmentIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "161", "departmentId", "deptBrowser"); + SearchConditionItem jobTitleItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "666", "jobTitle", ""); + SearchConditionItem companyIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "164", "ecCompany", ""); + SearchConditionItem departmentIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "4", "ecDepartment", ""); SearchConditionItem telephoneItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "办公电话", "telephone"); SearchConditionItem mobileItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "移动电话", "mobile"); SearchConditionItem mobileCallItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "其他电话", "mobileCall"); - SearchConditionItem jobTitleItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "161", "jobTitle", "jobBrowser"); conditionItems.add(lastNameItem); - conditionItems.add(managerIdItem); + conditionItems.add(jobTitleItem); conditionItems.add(companyIdItem); conditionItems.add(departmentIdItem); conditionItems.add(telephoneItem); conditionItems.add(mobileItem); conditionItems.add(mobileCallItem); - conditionItems.add(jobTitleItem); addGroups.add(new SearchConditionGroup("高级搜索条件", true, conditionItems)); apiDatas.put("conditions", addGroups); @@ -468,19 +466,23 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic String sqlWhere = " where 1=1 "; String lastName = params.getLastName(); if (StringUtils.isNotBlank(lastName)) { - sqlWhere += " AND t.lastname " + dbType.like(lastName); - } - Long managerId = params.getManagerId(); - if (null != managerId) { - sqlWhere += " AND t.managerid = '" + managerId + "'"; + sqlWhere += " AND t.last_name " + dbType.like(lastName); } Long companyId = params.getCompanyId(); if (null != companyId) { - sqlWhere += " AND t.subcompanyid1 = '" + companyId + "'"; + sqlWhere += " AND t.company_id = '" + companyId + "'"; } Long departmentId = params.getDepartmentId(); if (null != departmentId) { - sqlWhere += " AND t.departmentid = '" + departmentId + "'"; + sqlWhere += " AND t.department_id = '" + departmentId + "'"; + } + Long ecCompany = params.getEcCompany(); + if (null != ecCompany) { + sqlWhere += " AND t.ec_company = '" + ecCompany + "'"; + } + Long ecDepartment = params.getEcDepartment(); + if (null != ecDepartment) { + sqlWhere += " AND t.ec_department = '" + ecDepartment + "'"; } String telephone = params.getTelephone(); if (StringUtils.isNotBlank(telephone)) { @@ -490,13 +492,9 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic if (StringUtils.isNotBlank(mobile)) { sqlWhere += " AND t.mobile " + dbType.like(mobile); } - String mobileCall = params.getMobileCall(); - if (StringUtils.isNotBlank(mobileCall)) { - sqlWhere += " AND t.mobilecall " + dbType.like(mobileCall); - } Long jobTitle = params.getJobTitle(); if (null != jobTitle) { - sqlWhere += " AND t.jobtitle = '" + jobTitle + "'"; + sqlWhere += " AND t.job_title = '" + jobTitle + "'"; } return sqlWhere; diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index d727b342..63c6a35b 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -21,6 +21,7 @@ import com.engine.organization.entity.department.bo.DepartmentBO; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.employee.vo.EmployeeTableVO; import com.engine.organization.entity.extend.po.ExtendTitlePO; +import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.param.JobMergeParam; @@ -39,12 +40,12 @@ import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.mapper.job.JobMapper; +import com.engine.organization.mapper.resource.ResourceMapper; import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.service.ExtService; import com.engine.organization.service.JobService; import com.engine.organization.thread.JobTriggerRunnable; import com.engine.organization.thread.OrganizationSyncEc; -import com.engine.organization.trigger.cusfielddata.CusFieldDataTrigger; import com.engine.organization.util.*; import com.engine.organization.util.coderule.CodeRuleUtil; import com.engine.organization.util.db.MapperProxyFactory; @@ -126,6 +127,10 @@ public class JobServiceImpl extends Service implements JobService { return MapperProxyFactory.getProxy(ExtendTitleMapper.class); } + private ResourceMapper getResourceMapper() { + return MapperProxyFactory.getProxy(ResourceMapper.class); + } + private ExtService getExtService(User user) { return ServiceUtil.getService(ExtServiceImpl.class, user); } @@ -414,6 +419,8 @@ 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()); + // 更新人员关联字段 + updateResourceJob(getJobMapper().getJobById(searchParam.getId())); return searchParam.getId(); } @@ -493,16 +500,7 @@ public class JobServiceImpl extends Service implements JobService { @Override public Map getHrmListByJobId(Long jobId) { OrganizationWeaTable table = new OrganizationWeaTable<>(user, EmployeeTableVO.class); - RecordSet rs = new RecordSet(); - List ids = new ArrayList<>(); - rs.executeQuery("select id from cus_fielddata where field100002 = ?", jobId); - while (rs.next()) { - ids.add(Util.null2String(rs.getString("id"))); - } - if (CollectionUtils.isEmpty(ids)) { - ids.add("-1"); - } - table.setSqlwhere(" where id in (" + StringUtils.join(ids, ",") + ") and status<4"); + table.setSqlwhere(" where job_title = '" + jobId + "' and status<4"); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); @@ -562,15 +560,8 @@ public class JobServiceImpl extends Service implements JobService { recursionMergeJob(jobs, targetJob.getParentComp(), targetJob.getEcCompany(), targetJob.getParentDept(), targetJob.getEcDepartment(), targetJob.getId()); // 人员信息变动,更新分部、部门、岗位 - RecordSet rs = new RecordSet(); - rs.execute("SELECT ID FROM CUS_FIELDDATA WHERE SCOPE = 'HrmCustomFieldByInfoType' AND SCOPEID =-1 AND FIELD100002 = '" + jobById.getId() + "'"); - while (rs.next()) { - long userId = Long.parseLong(Util.null2String(rs.getString("ID"))); - // 更新岗位 、岗位更新触发器 - rs.executeUpdate("update CUS_FIELDDATA set FIELD100002 = ? where SCOPE = 'HrmCustomFieldByInfoType' AND SCOPEID =-1 and id = ?", targetJob.getId(), userId); - CusFieldDataTrigger.run(userId); - // 更新人员组织架构图 - } + updateResourceJob(jobById, targetJob); + // 更新合并后的岗位,更新组织架构图 updateEcJob(targetJob, mergeParam.getMergeName()); @@ -595,15 +586,7 @@ public class JobServiceImpl extends Service implements JobService { job.setParentJob(parentJob); getJobMapper().updateBaseJob(job); // 更新人员信息 - RecordSet rs = new RecordSet(); - rs.execute("SELECT ID FROM CUS_FIELDDATA WHERE SCOPE = 'HrmCustomFieldByInfoType' AND SCOPEID =-1 AND FIELD100002 = '" + job.getId() + "'"); - while (rs.next()) { - long userId = Long.parseLong(Util.null2String(rs.getString("ID"))); - // 更新人员分部、部门 - // rs.executeUpdate("UPDATE HRMRESOURCE SET SUBCOMPANYID1 = ? , DEPARTMENTID = ? WHERE ID =? ", ecCompany, ecDepartment, userId); - // 更新人员组织架构图 - CusFieldDataTrigger.run(userId); - } + updateResourceJob(job); // 更新组织架构图 new Thread(new JobTriggerRunnable(job.getId())).start(); @@ -860,4 +843,38 @@ public class JobServiceImpl extends Service implements JobService { } return count == 0; } + + + /** + * 更新人员岗位信息 + * + * @param originalJob + * @param targetJob + */ + private void updateResourceJob(JobPO originalJob, JobPO targetJob) { + // 更新岗位下的人员 + Long originalJobId = originalJob.getId(); + Long targetJobId = targetJob.getId(); + Long parentComp = targetJob.getParentComp(); + Long parentDept = targetJob.getParentDept(); + Long ecCompany = targetJob.getEcCompany(); + Long ecDepartment = targetJob.getEcDepartment(); + List resourceList = getResourceMapper().getResourceListByJobId(originalJobId); + getResourceMapper().updateResourceJob(originalJobId, targetJobId, parentComp, parentDept, ecCompany, ecDepartment); + + // 更新Ec人员分部、部门、岗位 + for (HrmResourcePO hrmResourcePO : resourceList) { + new RecordSet().executeUpdate("UPDATE HRMRESOURCE SET SUBCOMPANYID1 = ? , DEPARTMENTID = ? WHERE UUID =? ", ecCompany, ecDepartment, hrmResourcePO.getUuid()); + } + } + + + /** + * 更新人员岗位信息 + * + * @param job + */ + private void updateResourceJob(JobPO job) { + updateResourceJob(job, job); + } } diff --git a/src/com/engine/organization/thread/CompanyTriggerRunnable.java b/src/com/engine/organization/thread/CompanyTriggerRunnable.java index 955acf13..9e8d369f 100644 --- a/src/com/engine/organization/thread/CompanyTriggerRunnable.java +++ b/src/com/engine/organization/thread/CompanyTriggerRunnable.java @@ -1,7 +1,7 @@ package com.engine.organization.thread; import com.engine.organization.entity.company.po.CompPO; -import com.engine.organization.entity.cusfielddata.po.CusFieldData; +import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.logview.bo.FieldBaseEquator; import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.enums.ModuleTypeEnum; @@ -85,10 +85,10 @@ public class CompanyTriggerRunnable implements Runnable { jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); - CusFieldData cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclMap.getFLeader()); - if (null != cusFieldDataById) { - jclMap.setFLeaderSt(cusFieldDataById.getField100008()); - jclMap.setFLeaderLv(cusFieldDataById.getField100007()); + HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(jclMap.getFLeader()); + if (null != resourceByEcId) { + jclMap.setFLeaderSt(resourceByEcId.getJobGrade()); + jclMap.setFLeaderLv(resourceByEcId.getJobLevel()); } String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); diff --git a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java index 81afb89d..4842e1d4 100644 --- a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java +++ b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java @@ -1,7 +1,7 @@ package com.engine.organization.thread; -import com.engine.organization.entity.cusfielddata.po.CusFieldData; import com.engine.organization.entity.department.po.DepartmentPO; +import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.logview.bo.FieldBaseEquator; import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.enums.ModuleTypeEnum; @@ -13,7 +13,6 @@ import com.engine.organization.util.OrganizationDateUtil; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import weaver.common.DateUtil; -import weaver.general.Util; import weaver.hrm.passwordprotection.domain.HrmResource; import java.sql.Date; @@ -103,10 +102,11 @@ public class DepartmentTriggerRunnable implements Runnable { jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); - CusFieldData cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclMap.getFLeader()); - if (null != cusFieldDataById) { - jclMap.setFLeaderSt(cusFieldDataById.getField100008()); - jclMap.setFLeaderLv(cusFieldDataById.getField100007()); + + HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(jclMap.getFLeader()); + if (null != resourceByEcId) { + jclMap.setFLeaderSt(resourceByEcId.getJobGrade()); + jclMap.setFLeaderLv(resourceByEcId.getJobLevel()); } String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); diff --git a/src/com/engine/organization/thread/GroupTriggerRunnable.java b/src/com/engine/organization/thread/GroupTriggerRunnable.java index 38ac3087..e866d381 100644 --- a/src/com/engine/organization/thread/GroupTriggerRunnable.java +++ b/src/com/engine/organization/thread/GroupTriggerRunnable.java @@ -1,6 +1,6 @@ package com.engine.organization.thread; -import com.engine.organization.entity.cusfielddata.po.CusFieldData; +import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; @@ -59,10 +59,10 @@ public class GroupTriggerRunnable implements Runnable { jclOrgMap.setFLeaderJobId(hrmResourceById.getJobtitle()); } jclOrgMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclOrgMap.getFLeaderJobId())); - CusFieldData cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclOrgMap.getFLeader()); - if (null != cusFieldDataById) { - jclOrgMap.setFLeaderSt(cusFieldDataById.getField100008()); - jclOrgMap.setFLeaderLv(cusFieldDataById.getField100007()); + HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(jclOrgMap.getFLeader()); + if (null != resourceByEcId) { + jclOrgMap.setFLeaderSt(resourceByEcId.getJobGrade()); + jclOrgMap.setFLeaderLv(resourceByEcId.getJobLevel()); } jclOrgMap.setFParentId(-1); jclOrgMap.setFObjParentId(0); diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index a555ba7d..cfd8dd18 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -1,13 +1,12 @@ package com.engine.organization.thread; -import com.engine.organization.entity.cusfielddata.po.CusFieldData; +import com.engine.organization.entity.hrmresource.po.HrmResourcePO; import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; import com.engine.organization.mapper.trigger.HrmResourceTriggerMapper; import com.engine.organization.util.OrganizationDateUtil; import com.engine.organization.util.db.MapperProxyFactory; -import org.apache.commons.lang.StringUtils; import weaver.common.DateUtil; import weaver.hrm.passwordprotection.domain.HrmResource; @@ -57,15 +56,15 @@ public class HrmResourceTriggerRunnable implements Runnable { jclMap.setFLeaderImg(hrmResource.getMessagerurl()); jclMap.setFLeaderName(hrmResource.getLastname()); jclMap.setFLeaderJobId(hrmResource.getJobtitle()); - CusFieldData cusFieldDataById = getHrmResourceTriggerMapper().getCusFieldDataById(jclMap.getFObjId()); - if (null != cusFieldDataById) { - String field100002 = cusFieldDataById.getField100002(); - if (StringUtils.isNotBlank(field100002)) { - jclMap.setFObjParentId(Integer.parseInt(field100002)); + HrmResourcePO resourceByEcId = getCompTriggerMapper().getResourceByEcId(jclMap.getFLeader()); + if (null != resourceByEcId) { + Long jobTitle = resourceByEcId.getJobTitle(); + if (null!=jobTitle) { + jclMap.setFObjParentId(jobTitle.intValue()); jclMap.setFParentId(jclMap.getFObjParentId() + sj); } - jclMap.setFLeaderSt(cusFieldDataById.getField100008()); - jclMap.setFLeaderLv(cusFieldDataById.getField100007()); + jclMap.setFLeaderSt(resourceByEcId.getJobGrade()); + jclMap.setFLeaderLv(resourceByEcId.getJobLevel()); } jclMap.setFClass(0); jclMap.setFClassName("行政维度"); diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index 8767637f..16d97e93 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -455,11 +455,6 @@ public class OrganizationSyncEc { map.put("subcompanydesc", params.get("comp_name").toString()); map.put("showorder", Util.null2String(params.get("show_order"))); this.resultMap = ServiceUtil.getService(OrganizationServiceImpl.class, user).addSubCompany(map, user); - // - //// 更新jcl_org_comp表 uuid字段 - //if ("1".equals(Util.null2String(resultMap.get("status"))) && null != resultMap.get("id")) { - // updateJclUUID(Util.null2String(resultMap.get("id")), HRM_COMPANY, JCL_COMPANY); - //} } /** diff --git a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java deleted file mode 100644 index 2be19205..00000000 --- a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.engine.organization.trigger.cusfielddata; - -import com.engine.organization.entity.commom.RecordInfo; -import com.engine.organization.entity.cusfielddata.po.CusFieldData; -import com.engine.organization.entity.extend.param.ExtendInfoParams; -import com.engine.organization.entity.job.po.JobPO; -import com.engine.organization.entity.postion.po.PostInfoPO; -import com.engine.organization.entity.postion.po.PostPO; -import com.engine.organization.entity.scheme.po.GradePO; -import com.engine.organization.entity.scheme.po.LevelPO; -import com.engine.organization.entity.scheme.po.SchemePO; -import com.engine.organization.entity.sequence.po.SequencePO; -import com.engine.organization.mapper.extend.ExtMapper; -import com.engine.organization.mapper.hrmresource.SystemDataMapper; -import com.engine.organization.mapper.job.JobMapper; -import com.engine.organization.mapper.post.PostInfoMapper; -import com.engine.organization.mapper.post.PostMapper; -import com.engine.organization.mapper.scheme.GradeMapper; -import com.engine.organization.mapper.scheme.LevelMapper; -import com.engine.organization.mapper.scheme.SchemeMapper; -import com.engine.organization.mapper.sequence.SequenceMapper; -import com.engine.organization.thread.HrmResourceTriggerRunnable; -import com.engine.organization.util.db.MapperProxyFactory; -import com.wbi.util.Util; -import org.apache.commons.lang3.StringUtils; - -import java.util.HashMap; -import java.util.Map; - -/** - * @author:dxfeng - * @createTime: 2022/08/01 - * @version: 1.0 - */ -public class CusFieldDataTrigger { - - - public static void run(Long id) { - if (null == id) { - // 查询人员表最新插入的ID - id = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmResourceMaxId(); - if (null == id) { - return; - } - } - boolean updateFlag = false; - // 查询当前操作的数据 - CusFieldData sourceData = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmCusFieldDataByIdAndScopeId(id, -1L); - String sourceField100001 = sourceData.getField100001(); - String sourceField100002 = sourceData.getField100002(); - String sourceField100003 = sourceData.getField100003(); - - // 查询需要更新的数据,没有则创建数据 - CusFieldData directionData = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmCusFieldDataByIdAndScopeId(id, 3L); - if (null == directionData) { - directionData = new CusFieldData(); - directionData.setScope("HrmCustomFieldByInfoType"); - directionData.setScopeId(3L); - directionData.setId(id); - MapperProxyFactory.getProxy(SystemDataMapper.class).insertCusFieldData(directionData); - } - - // field100002更新 - if (StringUtils.isNotBlank(sourceField100002)) { - directionData.setField100002(sourceField100002); - Long gwId = Long.parseLong(sourceField100002); - JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(gwId); - if (null != jobById) { - RecordInfo hrmJobTitleByName = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmJobTitleByName(jobById.getJobName()); - Long ecGwId = StringUtils.isNotBlank(hrmJobTitleByName.getId()) ? Long.parseLong(hrmJobTitleByName.getId()) : null; - Long ecBmId = jobById.getEcDepartment(); - Long ecGsId = jobById.getEcCompany(); - Map hrmResourceMap = new HashMap<>(); - // 岗位 - hrmResourceMap.put("jobtitle", ecGwId); - // 部门 - hrmResourceMap.put("departmentid", ecBmId); - // 公司 - hrmResourceMap.put("subcompanyid1", ecGsId); - MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(id).tableName("hrmresource").params(hrmResourceMap).build()); - updateFlag = true; - - // 职等职级为空,从岗位取值、更新 - if (StringUtils.isBlank(sourceField100001)) { - if (StringUtils.isNotBlank(jobById.getLevelId())) { - // 通过岗位关联,如有多个职等,选取第一个 - String[] levelArray = jobById.getLevelId().split(","); - LevelPO levelByID = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByID(Long.parseLong(levelArray[0])); - directionData.setField100008(levelByID.getLevelName()); - } else { - directionData.setField100008(null); - } - // 职等职级方案 - if (StringUtils.isNotBlank(Util.null2String(jobById.getSchemeId()))) { - SchemePO schemeByID = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByID(jobById.getSchemeId()); - directionData.setField100006(schemeByID.getSchemeName()); - } else { - directionData.setField100006(null); - } - // 职级 - if (StringUtils.isNotBlank(jobById.getGradeId())) { - GradePO gradeByLevelId = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(Long.parseLong(jobById.getGradeId())); - directionData.setField100007(gradeByLevelId.getGradeName()); - } else { - directionData.setField100007(null); - } - // 岗位序列 - if (StringUtils.isNotBlank(Util.null2String(jobById.getSequenceId()))) { - SequencePO sequenceBySchemeId = MapperProxyFactory.getProxy(SequenceMapper.class).getSequenceByID(jobById.getSequenceId()); - directionData.setField100005(sequenceBySchemeId.getSequenceName()); - } else { - directionData.setField100005(null); - } - } - } - } else { - directionData.setField100002(null); - directionData.setField100008(null); - directionData.setField100006(null); - directionData.setField100007(null); - directionData.setField100005(null); - } - - // field100001更新,职等职级 - if (null != sourceField100001 && sourceField100001.split("A").length == 3) { - directionData.setField100001(sourceField100001); - String[] field100001Array = sourceField100001.split("A"); - // 职等 - long zdId = Long.parseLong(field100001Array[2]); - long zjId = Long.parseLong(field100001Array[1]); - long xlId = Long.parseLong(field100001Array[0].split("_")[1]); - - LevelPO levelByID = MapperProxyFactory.getProxy(LevelMapper.class).getLevelByID(zdId); - directionData.setField100008(levelByID.getLevelName()); - // 职等职级方案 - SchemePO schemeByID = MapperProxyFactory.getProxy(SchemeMapper.class).getSchemeByID(levelByID.getSchemeId()); - directionData.setField100006(schemeByID.getSchemeName()); - // 职级 - GradePO gradeByLevelId = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(zjId); - directionData.setField100007(gradeByLevelId.getGradeName()); - // 岗位序列 - SequencePO sequenceBySchemeId = MapperProxyFactory.getProxy(SequenceMapper.class).getSequenceByID(xlId); - directionData.setField100005(sequenceBySchemeId.getSequenceName()); - updateFlag = true; - } - - - if (null != sourceField100003 && sourceField100003.split("_").length == 2) { - directionData.setField100003(sourceField100003); - String[] field100003Array = sourceField100003.split("_"); - long zwId = Long.parseLong(field100003Array[1]); - // 职务 - PostInfoPO postInfoByID = MapperProxyFactory.getProxy(PostInfoMapper.class).getPostInfoByID(zwId); - directionData.setField100010(postInfoByID.getPostInfoName()); - // 职务分类 - PostPO postByID = MapperProxyFactory.getProxy(PostMapper.class).getPostByID(postInfoByID.getPostId()); - directionData.setField100009(postByID.getPostName()); - updateFlag = true; - } - - // 更新数据 - if (updateFlag) { - MapperProxyFactory.getProxy(SystemDataMapper.class).updateCusFieldData(directionData); - } - // 刷新组织结构图 - new Thread(new HrmResourceTriggerRunnable(id)).start(); - } -} diff --git a/src/com/engine/organization/util/relation/ResourceSyncUtil.java b/src/com/engine/organization/util/relation/ResourceSyncUtil.java index dc269a01..3fc90c2d 100644 --- a/src/com/engine/organization/util/relation/ResourceSyncUtil.java +++ b/src/com/engine/organization/util/relation/ResourceSyncUtil.java @@ -992,7 +992,52 @@ public class ResourceSyncUtil { if(StringUtils.isNotBlank(jclResourceId)){ ecResourceId = MapperProxyFactory.getProxy(HrmResourceMapper.class).getEcResourceId(jclResourceId); } - convertParams.put("id",ecResourceId); + // 更新人员时,初始化人员参数 + if(StringUtils.isNotBlank(ecResourceId)){ + RecordSet rs = new RecordSet(); + rs.execute("select * from hrmresource where id = '" + ecResourceId + "'"); + if(rs.next()){ + convertParams.put("id",rs.getString("id")); + convertParams.put("loginid",rs.getString("loginid")); + convertParams.put("accounttype",rs.getString("accounttype")); + convertParams.put("password",rs.getString("password")); + convertParams.put("seclevel",rs.getString("seclevel")); + convertParams.put("workstartdate",rs.getString("workstartdate")); + convertParams.put("companystartdate",rs.getString("companystartdate")); + convertParams.put("dsporder",rs.getString("dsporder")); + convertParams.put("workcode",rs.getString("workcode")); + convertParams.put("lastname",rs.getString("lastname")); + convertParams.put("sex",rs.getString("sex")); + convertParams.put("resourceimageid",rs.getString("resourceimageid")); + convertParams.put("joblevel",rs.getString("joblevel")); + convertParams.put("jobactivitydesc",rs.getString("jobactivitydesc")); + convertParams.put("managerid",rs.getString("managerid")); + convertParams.put("assistantid",rs.getString("assistantid")); + convertParams.put("status",rs.getString("status")); + convertParams.put("locationid",rs.getString("locationid")); + convertParams.put("workroom",rs.getString("workroom")); + convertParams.put("telephone",rs.getString("telephone")); + convertParams.put("mobile",rs.getString("mobile")); + convertParams.put("mobilecall",rs.getString("mobilecall")); + convertParams.put("fax",rs.getString("fax")); + convertParams.put("jobcall",rs.getString("jobcall")); + convertParams.put("email",rs.getString("email")); + convertParams.put("systemlanguage",rs.getString("systemlanguage")); + convertParams.put("belongto",rs.getString("belongto")); + + convertParams.put("mobileshowtype",rs.getString("mobileshowtype")); + convertParams.put("costcenterid",rs.getString("costcenterid")); + convertParams.put("cmd",rs.getString("cmd")); + convertParams.put("rcId",rs.getString("rcId")); + convertParams.put("departmentvirtualids",rs.getString("departmentvirtualids")); + // 更新EC人员用到参数 + convertParams.put("editcontact",rs.getString("editcontact")); + convertParams.put("resourceimageBase64",rs.getString("resourceimageBase64")); + convertParams.put("oldresourceimage",rs.getString("oldresourceimage")); + } + } + + // 部门ID convertParams.put("departmentid",params.get("ec_department")); // EC岗位 @@ -1003,44 +1048,24 @@ public class ResourceSyncUtil { } convertParams.put("jobtitle",ecJobId); - - convertParams.put("loginid",params.get("login_id")); - convertParams.put("accounttype",params.get("account_type")); - // convertParams.put("password",params.get("pass_word")); - convertParams.put("seclevel",params.get("sec_level")); - convertParams.put("workstartdate",params.get("work_start_date")); - convertParams.put("companystartdate",params.get("company_start_date")); - convertParams.put("dsporder",params.get("show_order")); convertParams.put("workcode",params.get("work_code")); convertParams.put("lastname",params.get("last_name")); convertParams.put("sex",params.get("sex")); - convertParams.put("resourceimageid",params.get("resource_image_id")); - // 职级 - //convertParams.put("joblevel",params.get("job_level")); - convertParams.put("jobactivitydesc",params.get("job_activity_desc")); - convertParams.put("managerid",params.get("manager_id")); - convertParams.put("assistantid",params.get("assistant_id")); convertParams.put("status",params.get("status")); + convertParams.put("accounttype",params.get("account_type")); + convertParams.put("belongto",params.get("belong_to")); convertParams.put("locationid",params.get("location_id")); - convertParams.put("workroom",params.get("workroom")); - convertParams.put("telephone",params.get("telephone")); + convertParams.put("dsporder",params.get("show_order")); + convertParams.put("companystartdate",params.get("company_start_date")); + convertParams.put("workstartdate",params.get("work_start_date")); + convertParams.put("resourceimageid",params.get("resource_image_id")); + convertParams.put("jobactivitydesc",params.get("job_activity_desc")); + convertParams.put("mobile",params.get("mobile")); - convertParams.put("mobilecall",params.get("mobile_call")); - convertParams.put("fax",params.get("fax")); - convertParams.put("jobcall",params.get("job_call")); + convertParams.put("telephone",params.get("telephone")); convertParams.put("email",params.get("email")); - convertParams.put("systemlanguage",params.get("system_language")); - convertParams.put("belongto",params.get("belong_to")); - convertParams.put("mobileshowtype",""); - convertParams.put("costcenterid",""); - convertParams.put("cmd",""); - convertParams.put("rcId",""); - convertParams.put("departmentvirtualids",""); - // 更新EC人员用到参数 - convertParams.put("editcontact",""); - convertParams.put("resourceimageBase64",""); - convertParams.put("oldresourceimage",""); + return convertParams; } } diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index c0c62e57..e2467e79 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java @@ -15,7 +15,6 @@ import com.engine.organization.mapper.jclimport.JclImportHistoryDetailMapper; import com.engine.organization.mapper.jclimport.JclImportHistoryMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.thread.HrmResourceTriggerRunnable; -import com.engine.organization.trigger.cusfielddata.CusFieldDataTrigger; import com.engine.organization.util.db.MapperProxyFactory; import com.weaver.integration.ldap.sync.oa.OaSync; import com.weaver.integration.ldap.util.AuthenticUtil; @@ -781,8 +780,8 @@ public class HrmImportProcessE9 extends BaseBean { flag = false; if (updateWorkData(vo.getWorkFields(), vo.getWorkFieldsValue(), id)) //添加工作字段信息 flag = false; - // 更新聚才林相关字段 - CusFieldDataTrigger.run((long) id); + // TODO 更新聚才林相关字段 + // CusFieldDataTrigger.run((long) id); } /*添加人员缓存,人员默认按id显示顺序,HrmResource_Trigger_Insert 人员共享 入职维护项目状态*/ @@ -1395,8 +1394,8 @@ public class HrmImportProcessE9 extends BaseBean { if (updateWorkData(vo.getWorkFields().trim(), vo.getWorkFieldsValue(), keyMap.get(key))) flag = false; - // 更新聚才林相关字段 - CusFieldDataTrigger.run((long) keyMap.get(key)); + //TODO 更新聚才林相关字段 + //CusFieldDataTrigger.run((long) keyMap.get(key)); /*update HrmResource_Trigger */ if (flag) { diff --git a/src/com/engine/organization/wrapper/JclOrgWrapper.java b/src/com/engine/organization/wrapper/JclOrgWrapper.java index d82e7ba2..393729f2 100644 --- a/src/com/engine/organization/wrapper/JclOrgWrapper.java +++ b/src/com/engine/organization/wrapper/JclOrgWrapper.java @@ -2,7 +2,6 @@ package com.engine.organization.wrapper; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.po.DepartmentPO; -import com.engine.organization.trigger.cusfielddata.CusFieldDataTrigger; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.relation.EcHrmRelationUtil; import org.apache.commons.lang3.StringUtils; @@ -55,6 +54,6 @@ public class JclOrgWrapper extends OrganizationWrapper { } public void syncCusFieldData(String id) { - CusFieldDataTrigger.run(StringUtils.isNotBlank(id) ? Long.parseLong(id) : null); + // CusFieldDataTrigger.run(StringUtils.isNotBlank(id) ? Long.parseLong(id) : null); } } -- 2.40.0.windows.1