diff --git a/docs/表结构SQL/MySQL.sql b/docs/表结构SQL/MySQL.sql index 9002ff05..b3cbd6e6 100644 --- a/docs/表结构SQL/MySQL.sql +++ b/docs/表结构SQL/MySQL.sql @@ -243,7 +243,9 @@ CREATE TABLE JCL_ORG_JOB ( job_no varchar(100) NULL, job_name varchar(100) NULL, parent_comp int null, + ec_company int null, parent_dept int null, + ec_department int null, sequence_id int null, scheme_id int null, parent_job int null, diff --git a/docs/表结构SQL/Oracle.sql b/docs/表结构SQL/Oracle.sql index 4819f736..ee97c0d0 100644 --- a/docs/表结构SQL/Oracle.sql +++ b/docs/表结构SQL/Oracle.sql @@ -245,7 +245,9 @@ CREATE TABLE JCL_ORG_JOB ( JOB_NO NVARCHAR2(100) NULL, JOB_NAME NVARCHAR2(100) NULL, PARENT_COMP NUMBER NULL, + EC_COMPANY NUMBER NULL, PARENT_DEPT NUMBER NULL, + EC_DEPARTMENT NUMBER NULL, SEQUENCE_ID NUMBER NULL, SCHEME_ID NUMBER NULL, PARENT_JOB NUMBER NULL, diff --git a/docs/表结构SQL/SqlServer.sql b/docs/表结构SQL/SqlServer.sql index bbfcf1a3..0fbe147c 100644 --- a/docs/表结构SQL/SqlServer.sql +++ b/docs/表结构SQL/SqlServer.sql @@ -243,7 +243,9 @@ CREATE TABLE JCL_ORG_JOB ( job_no varchar(100) COLLATE Chinese_PRC_CI_AS NULL, job_name varchar(100) COLLATE Chinese_PRC_CI_AS NULL, parent_comp int null, + ec_company int null, parent_dept int null, + ec_department int null, sequence_id int null, scheme_id int null, parent_job int null, diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 9e9d294c..ee51624a 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -1,5 +1,7 @@ package com.engine.organization.entity.job.bo; +import com.engine.organization.entity.company.po.CompPO; +import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.job.dto.JobListDTO; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.job.po.JobPO; @@ -8,7 +10,9 @@ import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.transmethod.JobTransMethod; import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.relation.EcHrmRelationUtil; import org.apache.commons.collections.CollectionUtils; +import weaver.general.Util; import java.util.*; import java.util.stream.Collectors; @@ -25,13 +29,17 @@ public class JobBO { if (null == param) { return null; } + CompPO jclCompany = EcHrmRelationUtil.getJclCompanyId(null == param.getEcCompany() ? Util.null2String(param.getSubcompanyid1()) : param.getEcCompany().toString()); + DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(null == param.getEcDepartment() ? Util.null2String(param.getDepartmentid()): param.getEcDepartment().toString()); return JobPO .builder() .id(param.getId() == null ? 0 : param.getId()) .jobNo(param.getJobNo()) .jobName(param.getJobName()) - .parentComp(null == param.getParentComp() ? param.getSubcompanyid1() : param.getParentComp()) - .parentDept(null == param.getParentDept() ? param.getDepartmentid() : param.getParentDept()) + .ecCompany(null == param.getEcCompany() ? param.getSubcompanyid1() : param.getEcCompany()) + .ecDepartment(null == param.getEcDepartment() ? param.getDepartmentid() : param.getEcDepartment()) + .parentComp(null == jclCompany ? null : jclCompany.getId()) + .parentDept(null == jclDepartment ? null : jclDepartment.getId()) .sequenceId(param.getSequenceId()) .schemeId(param.getSchemeId()) .parentJob(param.getParentJob()) diff --git a/src/com/engine/organization/entity/job/param/JobSearchParam.java b/src/com/engine/organization/entity/job/param/JobSearchParam.java index 2d7cc07a..9989867d 100644 --- a/src/com/engine/organization/entity/job/param/JobSearchParam.java +++ b/src/com/engine/organization/entity/job/param/JobSearchParam.java @@ -30,13 +30,13 @@ public class JobSearchParam extends BaseQueryParam { */ private String jobName; /** - * 所属分部 + * ec分部 */ - private Long parentComp; + private Long ecCompany; /** - * 所属部门 + * ec部门 */ - private Long parentDept; + private Long ecDepartment; /** * 岗位序列 */ diff --git a/src/com/engine/organization/entity/job/po/JobPO.java b/src/com/engine/organization/entity/job/po/JobPO.java index 79be008f..d635e321 100644 --- a/src/com/engine/organization/entity/job/po/JobPO.java +++ b/src/com/engine/organization/entity/job/po/JobPO.java @@ -34,10 +34,20 @@ public class JobPO { * 所属分部 */ private Long parentComp; + + /** + * ec分部 + */ + private Long ecCompany; /** * 所属部门 */ private Long parentDept; + /** + * ec部门 + */ + private Long ecDepartment; + /** * 岗位序列 */ diff --git a/src/com/engine/organization/mapper/comp/CompMapper.java b/src/com/engine/organization/mapper/comp/CompMapper.java index ff119d78..755dd9df 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.java +++ b/src/com/engine/organization/mapper/comp/CompMapper.java @@ -77,6 +77,14 @@ public interface CompMapper { */ CompPO listById(@Param("id") long id); + /** + * 根据UUID查询数据 + * + * @param uuid + * @return + */ + CompPO getCompanyByUUID(@Param("uuid") String uuid); + /** * 根据No查询数据 diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index 77a1aad8..9bf6e072 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -292,6 +292,14 @@ from JCL_ORG_STAFFPLAN where delete_type = 0 + update jcl_org_comp diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.java b/src/com/engine/organization/mapper/department/DepartmentMapper.java index 6b4c470c..f30e2787 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.java +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.java @@ -62,6 +62,14 @@ public interface DepartmentMapper { */ DepartmentPO getDeptById(@Param("id") long id); + /** + * 根据UUID查询数据 + * + * @param uuid + * @return + */ + DepartmentPO getDepartmentByUUID(@Param("uuid") String uuid); + /** * 根据ID查询名称 * @@ -117,6 +125,7 @@ public interface DepartmentMapper { /** * 根据名称、上级 查询部门元素 + * * @param departmentName * @param parentCompany * @param parentDepartment diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index fe32a135..126ef797 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -150,6 +150,13 @@ and parent_comp = #{parentCompany} + and ifnull(parent_dept,0) = #{parentDepartment} diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 05f583d0..1610df23 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -29,7 +29,6 @@ import com.engine.organization.mapper.codesetting.CodeRuleMapper; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtendTitleMapper; -import com.engine.organization.mapper.job.JobDTMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.service.ExtService; import com.engine.organization.service.JobService; @@ -39,6 +38,7 @@ import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.page.Column; import com.engine.organization.util.page.PageInfo; import com.engine.organization.util.page.PageUtil; +import com.engine.organization.util.relation.EcHrmRelationUtil; import com.engine.organization.util.tree.SearchTreeUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; @@ -98,10 +98,6 @@ public class JobServiceImpl extends Service implements JobService { return MapperProxyFactory.getProxy(JobMapper.class); } - private JobDTMapper getJobDTMapper() { - return MapperProxyFactory.getProxy(JobDTMapper.class); - } - private CompMapper getCompMapper() { return MapperProxyFactory.getProxy(CompMapper.class); } @@ -191,9 +187,9 @@ public class JobServiceImpl extends Service implements JobService { // 名称 SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "名称", "jobName"); // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); + SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "164", "ecCompany", ""); // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); + SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "4", "ecDepartment", ""); // 岗位序列 SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); // 等级方案 @@ -306,8 +302,14 @@ public class JobServiceImpl extends Service implements JobService { params.put("is_key", null == searchParam.getIsKey() ? 0 : searchParam.getIsKey()); // TODO 处理ec表关联关系 - //DepartmentPO departmentPO = MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptById(searchParam.getParentDept()); - //params.put("parent_comp", departmentPO.getParentComp()); + Long ecDepartment = searchParam.getEcDepartment(); + DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(ecDepartment + ""); + params.put("parent_dept", jclDepartment.getId()); + params.put("parent_comp", jclDepartment.getParentComp()); + if (null != jclDepartment.getParentComp()) { + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(jclDepartment.getParentComp() + "")); + } + if (StringUtils.isBlank(params.get("show_order").toString())) { int maxShowOrder = getJobMapper().getMaxShowOrder(); params.put("show_order", maxShowOrder + 1); @@ -334,8 +336,13 @@ public class JobServiceImpl extends Service implements JobService { // 更新主表数据 params.put("is_key", searchParam.getIsKey()); // TODO 处理ec表关联关系 - //DepartmentPO departmentPO = MapperProxyFactory.getProxy(DepartmentMapper.class).getDeptById(searchParam.getParentDept()); - //params.put("parent_comp", departmentPO.getParentComp()); + Long ecDepartment = searchParam.getEcDepartment(); + DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(ecDepartment + ""); + params.put("parent_dept", jclDepartment.getId()); + params.put("parent_comp", jclDepartment.getParentComp()); + if (null != jclDepartment.getParentComp()) { + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(jclDepartment.getParentComp() + "")); + } getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOB, params, "", searchParam.getId()); // 更新主表拓展表 getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, searchParam.getId()); diff --git a/src/com/engine/organization/thread/OrganizationRunable.java b/src/com/engine/organization/thread/OrganizationRunable.java index de196d81..53fe5f5e 100644 --- a/src/com/engine/organization/thread/OrganizationRunable.java +++ b/src/com/engine/organization/thread/OrganizationRunable.java @@ -3,16 +3,13 @@ package com.engine.organization.thread; import com.alibaba.fastjson.JSONObject; import com.engine.common.util.ServiceUtil; import com.engine.hrm.service.impl.OrganizationServiceImpl; -import com.engine.organization.entity.company.po.CompPO; -import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.enums.LogModuleNameEnum; import com.engine.organization.enums.OperateTypeEnum; -import com.engine.organization.mapper.comp.CompMapper; -import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.hrmresource.SystemDataMapper; import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.relation.EcHrmRelationUtil; import org.apache.commons.lang.StringUtils; import weaver.general.Util; import weaver.hrm.User; @@ -47,15 +44,6 @@ public class OrganizationRunable implements Runnable { return MapperProxyFactory.getProxy(ExtMapper.class); } - private CompMapper getCompMapper() { - return MapperProxyFactory.getProxy(CompMapper.class); - } - - private DepartmentMapper getDepartmentMapper() { - return MapperProxyFactory.getProxy(DepartmentMapper.class); - } - - public OrganizationRunable(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map params) { this.moduleName = moduleName; this.operateType = operateType; @@ -142,13 +130,13 @@ public class OrganizationRunable implements Runnable { // 上级分部通过UUID联查ec表ID String parentCompany = Util.null2String(params.get("parent_comp")); if (StringUtils.isNotBlank(parentCompany)) { - map.put("subcompanyid1", getEcCompanyId(parentCompany)); + map.put("subcompanyid1", EcHrmRelationUtil.getEcCompanyId(parentCompany)); } // 上级部门通过UUID联查ec表ID String parentDepartment = Util.null2String(params.get("parent_dept")); if (StringUtils.isNotBlank(parentDepartment)) { - map.put("supdepid", getEcDepartmentId(parentDepartment)); + map.put("supdepid", EcHrmRelationUtil.getEcDepartmentId(parentDepartment)); } map.put("showorder", Util.null2String(params.get("show_order"))); @@ -170,7 +158,7 @@ public class OrganizationRunable implements Runnable { List idList = new ArrayList<>(); String[] split = departmentIds.split(","); for (String s : split) { - idList.add(getEcDepartmentId(s)); + idList.add(EcHrmRelationUtil.getEcDepartmentId(s)); } Map map = new HashMap<>(); map.put("id", StringUtils.join(idList, ",")); @@ -189,20 +177,20 @@ public class OrganizationRunable implements Runnable { private void updateDepartment() { Map map = new HashMap<>(); // 获取ec表ID - map.put("id", getEcDepartmentId(Util.null2String(params.get("id")))); + map.put("id", EcHrmRelationUtil.getEcDepartmentId(Util.null2String(params.get("id")))); map.put("departmentmark", Util.null2String(params.get("dept_name_short"))); map.put("departmentname", Util.null2String(params.get("dept_name"))); // 上级分部通过UUID联查ec表ID String parentCompany = Util.null2String(params.get("parent_comp")); if (StringUtils.isNotBlank(parentCompany)) { - map.put("subcompanyid1", getEcCompanyId(parentCompany)); + map.put("subcompanyid1", EcHrmRelationUtil.getEcCompanyId(parentCompany)); } // 上级部门通过UUID联查ec表ID String parentDepartment = Util.null2String(params.get("parent_dept")); if (StringUtils.isNotBlank(parentDepartment)) { - map.put("supdepid", getEcDepartmentId(parentDepartment)); + map.put("supdepid", EcHrmRelationUtil.getEcDepartmentId(parentDepartment)); } map.put("showorder", Util.null2String(params.get("show_order"))); @@ -221,7 +209,7 @@ public class OrganizationRunable implements Runnable { // 上级分部通过UUID联查ec表ID String parentCompany = Util.null2String(params.get("parent_company")); if (StringUtils.isNotBlank(parentCompany)) { - map.put("supsubcomid", getEcCompanyId(parentCompany)); + map.put("supsubcomid", EcHrmRelationUtil.getEcCompanyId(parentCompany)); } map.put("subcompanycode", params.get("comp_no").toString()); @@ -241,12 +229,12 @@ public class OrganizationRunable implements Runnable { private void updateCompany() { Map map = new HashMap<>(); // 获取ec表ID - map.put("id", getEcCompanyId(Util.null2String(params.get("id")))); + map.put("id", EcHrmRelationUtil.getEcCompanyId(Util.null2String(params.get("id")))); // 上级分部通过UUID联查ec表ID String parentCompany = Util.null2String(params.get("parent_company")); if (StringUtils.isNotBlank(parentCompany)) { - map.put("supsubcomid", getEcCompanyId(parentCompany)); + map.put("supsubcomid", EcHrmRelationUtil.getEcCompanyId(parentCompany)); } map.put("subcompanycode", Util.null2String(params.get("comp_no"))); map.put("subcompanyname", Util.null2String(params.get("comp_name_short"))); @@ -264,7 +252,7 @@ public class OrganizationRunable implements Runnable { List idList = new ArrayList<>(); String[] split = companyIds.split(","); for (String s : split) { - idList.add(getEcCompanyId(s)); + idList.add(EcHrmRelationUtil.getEcCompanyId(s)); } Map map = new HashMap<>(); map.put("id", StringUtils.join(idList, ",")); @@ -295,27 +283,4 @@ public class OrganizationRunable implements Runnable { getExtMapper().updateExt(infoParams); } - /** - * 根据jcl_org_comp.id获取HrmSubCompany.id - * - * @param companyId - * @return - */ - private String getEcCompanyId(String companyId) { - CompPO compPO = getCompMapper().listById(Long.parseLong(companyId)); - JSONObject supSubCompany = getSystemDataMapper().getHrmObjectByUUID(HRM_COMPANY, compPO.getUuid()); - return supSubCompany.getString("id"); - } - - /** - * 根据jcl_org_dept.id获取HrmDepartment.id - * - * @param departmentId - * @return - */ - private String getEcDepartmentId(String departmentId) { - DepartmentPO departmentPO = getDepartmentMapper().getDeptById(Long.parseLong(departmentId)); - JSONObject supDepartment = getSystemDataMapper().getHrmObjectByUUID(HRM_DEPARTMENT, departmentPO.getUuid()); - return supDepartment.getString("id"); - } } diff --git a/src/com/engine/organization/util/relation/EcHrmRelationUtil.java b/src/com/engine/organization/util/relation/EcHrmRelationUtil.java new file mode 100644 index 00000000..c8b1c02d --- /dev/null +++ b/src/com/engine/organization/util/relation/EcHrmRelationUtil.java @@ -0,0 +1,84 @@ +package com.engine.organization.util.relation; + +import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.company.po.CompPO; +import com.engine.organization.entity.department.po.DepartmentPO; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.department.DepartmentMapper; +import com.engine.organization.mapper.hrmresource.SystemDataMapper; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang.StringUtils; + +/** + * @author:dxfeng + * @createTime: 2022/07/13 + * @version: 1.0 + */ +public class EcHrmRelationUtil { + + private static final String HRM_COMPANY = "hrmsubcompany"; + private static final String HRM_DEPARTMENT = "hrmdepartment"; + + + private static SystemDataMapper getSystemDataMapper() { + return MapperProxyFactory.getProxy(SystemDataMapper.class); + } + + private static CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + private static DepartmentMapper getDepartmentMapper() { + return MapperProxyFactory.getProxy(DepartmentMapper.class); + } + + /** + * 根据jcl_org_comp.id获取HrmSubCompany.id + * + * @param companyId + * @return + */ + public static String getEcCompanyId(String companyId) { + CompPO compPO = getCompMapper().listById(Long.parseLong(companyId)); + JSONObject supSubCompany = getSystemDataMapper().getHrmObjectByUUID(HRM_COMPANY, compPO.getUuid()); + return supSubCompany.getString("id"); + } + + /** + * 根据jcl_org_dept.id获取HrmDepartment.id + * + * @param departmentId + * @return + */ + public static String getEcDepartmentId(String departmentId) { + DepartmentPO departmentPO = getDepartmentMapper().getDeptById(Long.parseLong(departmentId)); + JSONObject supDepartment = getSystemDataMapper().getHrmObjectByUUID(HRM_DEPARTMENT, departmentPO.getUuid()); + return supDepartment.getString("id"); + } + + public static CompPO getJclCompanyId(String ecCompanyId) { + if (StringUtils.isBlank(ecCompanyId)) { + return null; + } + JSONObject ecCompany = getSystemDataMapper().getHrmObjectByID(HRM_COMPANY, ecCompanyId); + if (null == ecCompany) { + return null; + } + String uuid = ecCompany.getString("uuid"); + return getCompMapper().getCompanyByUUID(uuid); + } + + + public static DepartmentPO getJclDepartmentId(String ecDepartmentId) { + if (StringUtils.isBlank(ecDepartmentId)) { + return null; + } + JSONObject ecDepartment = getSystemDataMapper().getHrmObjectByID(HRM_DEPARTMENT, ecDepartmentId); + if (null == ecDepartment) { + return null; + } + String uuid = ecDepartment.getString("uuid"); + return getDepartmentMapper().getDepartmentByUUID(uuid); + } + +}