From f05cf6da8fbc308c78ab81b406a2e80d38eee096 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 5 Sep 2022 10:51:08 +0800 Subject: [PATCH 01/68] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/0829/Mysql.sql | 2 ++ docs/0829/Oracle.sql | 3 ++ docs/0829/SqlServer.sql | 29 ++----------------- .../service/impl/GradeServiceImpl.java | 2 +- .../service/impl/LevelServiceImpl.java | 2 +- .../impl/NonStandardOptServiceImpl.java | 3 +- 6 files changed, 11 insertions(+), 30 deletions(-) diff --git a/docs/0829/Mysql.sql b/docs/0829/Mysql.sql index a859b7b6..2d975372 100644 --- a/docs/0829/Mysql.sql +++ b/docs/0829/Mysql.sql @@ -35,3 +35,5 @@ DROP TRIGGER IF EXISTS JCL_ORG_job_ed; DROP TRIGGER IF EXISTS JCL_ORG_job_del; DROP TRIGGER IF EXISTS hrmresource_ed; DROP TRIGGER IF EXISTS cus_fielddata_jclgw; + +update WORKFLOW_BROWSERURL set TYPEID = 2 where id ='666'; \ No newline at end of file diff --git a/docs/0829/Oracle.sql b/docs/0829/Oracle.sql index 7a13b4fd..adc3ca26 100644 --- a/docs/0829/Oracle.sql +++ b/docs/0829/Oracle.sql @@ -122,4 +122,7 @@ if V_NUM > 0 then execute immediate 'DROP TRIGGER cus_fielddata_jclgw'; end if; END; +/ + +update WORKFLOW_BROWSERURL set TYPEID = 2 where id ='666' / \ No newline at end of file diff --git a/docs/0829/SqlServer.sql b/docs/0829/SqlServer.sql index 7b161090..e10e587a 100644 --- a/docs/0829/SqlServer.sql +++ b/docs/0829/SqlServer.sql @@ -1,5 +1,7 @@ alter table JCL_ORG_STAFFS add description varchar(200) GO +update WORKFLOW_BROWSERURL set TYPEID = 2 where id ='666' +GO IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[JCL_ORG_ITEMCLASS]') AND type IN ('U')) DROP TABLE [dbo].[JCL_ORG_ITEMCLASS] @@ -50,30 +52,3 @@ ALTER TABLE [dbo].[JCL_ORG_ITEM] ADD CONSTRAINT [JCL_ORG_ITEM_PK] PRIMARY KEY CL GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[HrmCompany_ed]') AND type IN ('TR')) -DROP TRIGGER [dbo].[HrmCompany_ed] -GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[JCL_ORG_COMP_ed]') AND type IN ('TR')) -DROP TRIGGER [dbo].[JCL_ORG_COMP_ed] -GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[JCL_ORG_COMP_del]') AND type IN ('TR')) -DROP TRIGGER [dbo].[JCL_ORG_COMP_del] -GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[JCL_ORG_dept_ed]') AND type IN ('TR')) -DROP TRIGGER [dbo].[JCL_ORG_dept_ed] -GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[JCL_ORG_dept_del]') AND type IN ('TR')) -DROP TRIGGER [dbo].[JCL_ORG_dept_del] -GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[JCL_ORG_job_ed]') AND type IN ('TR')) -DROP TRIGGER [dbo].[JCL_ORG_job_ed] -GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[JCL_ORG_job_del]') AND type IN ('TR')) -DROP TRIGGER [dbo].[JCL_ORG_job_del] -GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[hrmresource_ed]') AND type IN ('TR')) -DROP TRIGGER [dbo].[hrmresource_ed] -GO -IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[cus_fielddata_jclgw]') AND type IN ('TR')) -DROP TRIGGER [dbo].[cus_fielddata_jclgw] -GO \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index 6919317c..7c851cd1 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -137,7 +137,7 @@ public class GradeServiceImpl extends Service implements GradeService { SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "等级方案", "161", "schemeId", "schemeBrowser"); schemeBrowserItem.setRules("required|string"); BrowserBean schemeBrowserBean = schemeBrowserItem.getBrowserConditionParam(); - if (!"-1".equals(schemeId) && StringUtil.isEmpty(id)) { + if (StringUtils.isNotBlank(schemeId) && !"-1".equals(schemeId) && StringUtil.isEmpty(id)) { schemeBrowserBean.setValue(schemeId); List> maps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(schemeId).build().getIds()); schemeBrowserBean.setReplaceDatas(maps); diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 2302007e..01cfd72f 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -133,7 +133,7 @@ public class LevelServiceImpl extends Service implements LevelService { SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description"); SearchConditionItem browserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "等级方案", "161", "schemeId", "schemeBrowser"); BrowserBean browserBean = browserItem.getBrowserConditionParam(); - if (!"-1".equals(schemeId) && StringUtil.isEmpty(id)) { + if (StringUtils.isNotBlank(schemeId) && !"-1".equals(schemeId) && StringUtil.isEmpty(id)) { browserItem.setValue(schemeId); List> maps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(schemeId).build().getIds()); browserBean.setReplaceDatas(maps); diff --git a/src/com/engine/organization/service/impl/NonStandardOptServiceImpl.java b/src/com/engine/organization/service/impl/NonStandardOptServiceImpl.java index 6b952291..4e923556 100644 --- a/src/com/engine/organization/service/impl/NonStandardOptServiceImpl.java +++ b/src/com/engine/organization/service/impl/NonStandardOptServiceImpl.java @@ -43,7 +43,8 @@ public class NonStandardOptServiceImpl extends Service implements NonStandardOpt // 更新人员表系统字段 rs.executeUpdate("update hrm_formfield set isuse=1,ismand=1,allowhide=-1 where fieldname='sex'"); rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=-1 where fieldname='departmentid'"); - rs.executeUpdate("update hrm_formfield set isuse=1,ismand=0,allowhide=-1 where fieldname='jobtitle'"); + // 非标启用,停用EC岗位字段 + rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='jobtitle'"); rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='jobactivity'"); rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='joblevel'"); rs.executeUpdate("update hrm_formfield set isuse=0,ismand=0,allowhide=-1 where fieldname='jobcall'"); From 4fa38f704cebf9bf95aafbf3ee89b75aa329ccab Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 5 Sep 2022 15:58:46 +0800 Subject: [PATCH 02/68] =?UTF-8?q?=E5=88=86=E9=83=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=B8=BAEC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/company/bo/CompBO.java | 1 + .../entity/company/param/CompSearchParam.java | 1 + .../entity/company/po/CompPO.java | 2 ++ .../organization/mapper/comp/CompMapper.xml | 22 ++++++++++++++----- .../service/impl/CompServiceImpl.java | 15 +++++++++++-- .../service/impl/ExtServiceImpl.java | 2 +- .../thread/OrganizationSyncEc.java | 6 ++--- 7 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/com/engine/organization/entity/company/bo/CompBO.java b/src/com/engine/organization/entity/company/bo/CompBO.java index f0c62966..e1e04f5d 100644 --- a/src/com/engine/organization/entity/company/bo/CompBO.java +++ b/src/com/engine/organization/entity/company/bo/CompBO.java @@ -88,6 +88,7 @@ public class CompBO { .compName(param.getCompName()) .compNameShort(param.getCompNameShort()) .parentCompany(param.getParentCompany()) + .ecCompany(param.getEcCompany()) .orgCode(param.getOrgCode()) .industry(param.getIndustry()) .compPrincipal(param.getCompPrincipal()) diff --git a/src/com/engine/organization/entity/company/param/CompSearchParam.java b/src/com/engine/organization/entity/company/param/CompSearchParam.java index 1134b99c..425bb5a5 100644 --- a/src/com/engine/organization/entity/company/param/CompSearchParam.java +++ b/src/com/engine/organization/entity/company/param/CompSearchParam.java @@ -42,6 +42,7 @@ public class CompSearchParam extends BaseQueryParam { * 上级公司 */ private Long parentCompany; + private Long ecCompany; /** * 组织机构代码 diff --git a/src/com/engine/organization/entity/company/po/CompPO.java b/src/com/engine/organization/entity/company/po/CompPO.java index 1ab9fd96..98bfc5c5 100644 --- a/src/com/engine/organization/entity/company/po/CompPO.java +++ b/src/com/engine/organization/entity/company/po/CompPO.java @@ -44,6 +44,8 @@ public class CompPO { */ private Long parentCompany; + private Long ecCompany; + /** * 组织机构代码 */ diff --git a/src/com/engine/organization/mapper/comp/CompMapper.xml b/src/com/engine/organization/mapper/comp/CompMapper.xml index 96ca0365..2acd1494 100644 --- a/src/com/engine/organization/mapper/comp/CompMapper.xml +++ b/src/com/engine/organization/mapper/comp/CompMapper.xml @@ -7,6 +7,7 @@ + @@ -30,6 +31,7 @@ , t.comp_name , t.comp_name_short , t.parent_company + , t.ec_company , t.org_code , t.industry , t.comp_principal @@ -98,6 +100,9 @@ parent_company, + + ec_company, + org_code, @@ -140,6 +145,9 @@ #{parentCompany}, + + #{ecCompany}, + #{orgCode}, @@ -160,7 +168,7 @@ - + select JCL_ORG_COMP_ID.currval from dual INSERT INTO jcl_org_comp @@ -189,6 +197,9 @@ parent_company, + + ec_company, + org_code, @@ -228,8 +239,8 @@ #{compNameShort}, - - #{parentCompany}, + + #{ecCompany}, #{orgCode}, @@ -300,8 +311,8 @@ jcl_org_comp t WHERE t.delete_type = 0 - - and t.parent_company = #{compPO.parentCompany} + + and t.ec_company = #{compPO.ecCompany} and t.industry = #{compPO.industry} @@ -434,6 +445,7 @@ comp_name=#{compName}, comp_name_short=#{compNameShort}, parent_company=#{parentCompany}, + ec_company=#{ecCompany}, org_code=#{orgCode}, industry=#{industry}, comp_principal=#{compPrincipal}, diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 1143da41..36d3ff71 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -37,6 +37,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 org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import weaver.general.StringUtil; @@ -161,6 +162,11 @@ public class CompServiceImpl extends Service implements CompService { } params.put("show_order", maxShowOrder + 1); } + // 赋值上级分部 + String ecCompany = Util.null2String(params.get("ec_company")); + if (StringUtils.isNotBlank(ecCompany)) { + params.put("parent_company", EcHrmRelationUtil.getJclCompanyId(ecCompany).getId()); + } Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, params).sync(); String ecCompanyID = Util.null2String(syncMap.get("id")); OrganizationAssert.isTrue(StringUtils.isNotBlank(ecCompanyID), syncMap.get("message").toString()); @@ -196,6 +202,11 @@ public class CompServiceImpl extends Service implements CompService { compNo = repeatDetermine(compNo); params.put("comp_no", compNo); } + // 上级分部 + String ecCompany = Util.null2String(params.get("ec_company")); + if (StringUtils.isNotBlank(ecCompany)) { + params.put("parent_company", EcHrmRelationUtil.getJclCompanyId(ecCompany).getId()); + } new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); // 更新主表数据 getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", searchParam.getId()); @@ -234,7 +245,7 @@ public class CompServiceImpl extends Service implements CompService { // 简称 SearchConditionItem compNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "简称", "compNameShort"); // 上级公司 - SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "161", "parentCompany", "compBrowser"); + SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级公司", "164", "ecCompany", ""); // 组织机构代码 SearchConditionItem orgCodeItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "组织机构代码", "orgCode"); // 行业 @@ -379,7 +390,7 @@ public class CompServiceImpl extends Service implements CompService { && StringUtil.isEmpty(compPO.getCompNo()) && StringUtil.isEmpty(compPO.getCompNameShort()) && StringUtil.isEmpty(compPO.getOrgCode()) - && null == compPO.getParentCompany() + && null == compPO.getEcCompany() && null == compPO.getIndustry() && null == compPO.getCompPrincipal() && null == compPO.getForbiddenTag()); diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index ab1f7ff1..429452ca 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -62,7 +62,7 @@ public class ExtServiceImpl extends Service implements ExtService { // 2编辑 1查看 OrganizationAssert.notNull(groupId, "请选择对应的拓展页"); - List infoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ExtendInfoOperateType.EDIT.getValue(), "1"); + List infoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, 1 == viewAttr ? ExtendInfoOperateType.LIST.getValue() : ExtendInfoOperateType.EDIT.getValue(), "1"); String fields = infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(",")); if (StringUtils.isEmpty(fields)) { return conditionItems; diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index c182e6ec..57afff97 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -385,9 +385,9 @@ public class OrganizationSyncEc { map.put("subcompanyname", Util.null2String(params.get("comp_name_short"))); // 上级分部通过UUID联查ec表ID - String parentCompany = Util.null2String(params.get("parent_company")); - if (StringUtils.isNotBlank(parentCompany)) { - map.put("supsubcomid", EcHrmRelationUtil.getEcCompanyId(parentCompany)); + String ecCompany = Util.null2String(params.get("ec_company")); + if (StringUtils.isNotBlank(ecCompany)) { + map.put("supsubcomid", ecCompany); } map.put("subcompanycode", params.get("comp_no").toString()); From b1b2a9a88aaf7238d9485ad705abe18006ba4d67 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 5 Sep 2022 17:25:11 +0800 Subject: [PATCH 03/68] =?UTF-8?q?=E9=83=A8=E9=97=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E6=9B=B4=E6=96=B0=E4=B8=BAEC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/department/bo/DepartmentBO.java | 2 + .../department/param/DeptSearchParam.java | 2 + .../entity/department/po/DepartmentPO.java | 2 + .../mapper/department/DepartmentMapper.xml | 48 ++++++-- .../service/impl/CompServiceImpl.java | 2 + .../service/impl/DepartmentServiceImpl.java | 110 ++++++++++++++---- 6 files changed, 134 insertions(+), 32 deletions(-) diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index 4973e807..438e6305 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -84,7 +84,9 @@ public class DepartmentBO { .deptName(param.getDepartmentName()) .deptNameShort(param.getDeptNameShort()) .parentComp(null == param.getParentComp() ? param.getSubcompanyid1() : param.getParentComp()) + .ecCompany(param.getEcCompany()) .parentDept(null == param.getParentDept() ? param.getDepartmentid() : param.getParentDept()) + .ecDepartment(param.getEcDepartment()) .deptPrincipal(param.getDeptPrincipal()) .showOrder(param.getShowOrder()) .forbiddenTag(param.getForbiddenTag() == null ? null : param.getForbiddenTag() ? 0 : 1) diff --git a/src/com/engine/organization/entity/department/param/DeptSearchParam.java b/src/com/engine/organization/entity/department/param/DeptSearchParam.java index 1eaff53c..ed70fcfe 100644 --- a/src/com/engine/organization/entity/department/param/DeptSearchParam.java +++ b/src/com/engine/organization/entity/department/param/DeptSearchParam.java @@ -26,8 +26,10 @@ public class DeptSearchParam extends BaseQueryParam { private String deptNameShort; private Long parentComp; + private Long ecCompany; private Long parentDept; + private Long ecDepartment; private Long deptPrincipal; diff --git a/src/com/engine/organization/entity/department/po/DepartmentPO.java b/src/com/engine/organization/entity/department/po/DepartmentPO.java index d4f5528f..ab4fcbf2 100644 --- a/src/com/engine/organization/entity/department/po/DepartmentPO.java +++ b/src/com/engine/organization/entity/department/po/DepartmentPO.java @@ -28,8 +28,10 @@ public class DepartmentPO { private String deptNameShort; private Long parentComp; + private Long ecCompany; private Long parentDept; + private Long ecDepartment; private Long deptPrincipal; //部门负责人 diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index 4221b0fe..b73b2b51 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -7,7 +7,9 @@ + + @@ -30,7 +32,9 @@ t.dept_name, t.dept_name_short, t.parent_comp, + t.ec_company, t.parent_dept, + t.ec_department, t.dept_principal, t.show_order, t.description, @@ -39,17 +43,19 @@ select id, scheme_name,forbidden_tag from jcl_org_scheme - where delete_type = '0' + where delete_type = '0' and forbidden_tag = 0 select - from jcl_org_grade t where + from jcl_org_grade t where delete_type = 0 + concat(',', level_id, ',') like concat('%,', cast(#{levelId} as CHAR), ',%') diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.java b/src/com/engine/organization/mapper/scheme/LevelMapper.java index eaa33e9b..11b5f460 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.java +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.java @@ -98,4 +98,6 @@ public interface LevelMapper { ArrayList getTreeData(); List getLevelsByIds(@Param("ids")Collection ids); + + int checkRepeatNo(@Param("schemeId") Long schemeId, @Param("no") String no, @Param("id") Long id); } diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.xml b/src/com/engine/organization/mapper/scheme/LevelMapper.xml index bde2f5f0..116e2e90 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.xml +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.xml @@ -89,6 +89,17 @@ #{id} + update jcl_org_level diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index 7c851cd1..ab65d10c 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -73,8 +73,7 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public int saveGrade(GradeSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); - List list = getGradeMapper().listByNo(Util.null2String(param.getGradeNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); + OrganizationAssert.isTrue(checkRepeatNo(param.getSchemeId(), param.getGradeNo(), null), "同一等级方案下编号不能重复"); GradePO gradePO = GradeDTO.convertParamToPO(param, (long) user.getUID()); return getGradeMapper().insertIgnoreNull(gradePO); } @@ -83,11 +82,7 @@ public class GradeServiceImpl extends Service implements GradeService { public int updateGrade(GradeSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); GradePO gradePO = GradeDTO.convertParamToPO(param, (long) user.getUID()); - String oldGradeNo = getGradeMapper().getGradeByID(gradePO.getId()).getGradeNo(); - if (!oldGradeNo.equals(gradePO.getGradeNo())) { - List list = getGradeMapper().listByNo(Util.null2String(param.getGradeNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); - } + OrganizationAssert.isTrue(checkRepeatNo(gradePO.getSchemeId(), gradePO.getGradeNo(), gradePO.getId()), "同一等级方案下编号不能重复"); return getGradeMapper().updateGrade(gradePO); } @@ -167,20 +162,20 @@ public class GradeServiceImpl extends Service implements GradeService { long l = System.currentTimeMillis(); Map completeParams = levelBrowserBean.getCompleteParams(); completeParams.put("currenttime", l); - completeParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - completeParams.put("level_id_"+ l,"''"); + completeParams.put("scheme_id_" + l, gradePO.getSchemeId()); + completeParams.put("level_id_" + l, "''"); Map conditionDataParams = levelBrowserBean.getConditionDataParams(); conditionDataParams.put("currenttime", l); - conditionDataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - conditionDataParams.put("level_id_"+ l,"''"); + conditionDataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + conditionDataParams.put("level_id_" + l, "''"); Map dataParams = levelBrowserBean.getDataParams(); dataParams.put("currenttime", l); - dataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - dataParams.put("level_id_"+ l,"''"); + dataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + dataParams.put("level_id_" + l, "''"); Map destDataParams = levelBrowserBean.getDestDataParams(); destDataParams.put("currenttime", l); - destDataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - destDataParams.put("level_id_"+ l,"''"); + destDataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + destDataParams.put("level_id_" + l, "''"); levelBrowserItem.setBrowserConditionParam(levelBrowserBean); @@ -253,4 +248,11 @@ public class GradeServiceImpl extends Service implements GradeService { return sqlWhere; } + /** + * 校验重复编号 + */ + private boolean checkRepeatNo(Long schemeId, String no, Long id) { + return 0 == getGradeMapper().checkRepeatNo(schemeId, no, id); + } + } diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 01cfd72f..d385441a 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -70,7 +70,7 @@ public class LevelServiceImpl extends Service implements LevelService { public int saveLevel(LevelSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getLevelMapper().listByNo(Util.null2String(param.getLevelNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); + OrganizationAssert.isTrue(checkRepeatNo(param.getSchemeId(), param.getLevelNo(), null), "同一等级方案下编号不能重复"); LevelPO levelPO = LevelDTO.convertParamToPO(param, (long) user.getUID()); return getLevelMapper().insertIgnoreNull(levelPO); } @@ -79,12 +79,7 @@ public class LevelServiceImpl extends Service implements LevelService { public int updateLevel(LevelSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); LevelPO levelPO = LevelDTO.convertParamToPO(param, (long) user.getUID()); - // 更新前先查询下旧编号, - String oldLevelNo = getLevelMapper().getLevelByID(levelPO.getId()).getLevelNo(); - if (!oldLevelNo.equals(levelPO.getLevelNo())) { - List list = getLevelMapper().listByNo(Util.null2String(levelPO.getLevelNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); - } + OrganizationAssert.isTrue(checkRepeatNo(levelPO.getSchemeId(), levelPO.getLevelNo(), levelPO.getId()), "同一等级方案下编号不能重复"); return getLevelMapper().updateLevel(levelPO); } @@ -220,4 +215,11 @@ public class LevelServiceImpl extends Service implements LevelService { } return sqlWhere; } + + /** + * 校验重复编号 + */ + private boolean checkRepeatNo(Long schemeId, String no, Long id) { + return 0 == getLevelMapper().checkRepeatNo(schemeId, no, id); + } } From 79c5f948624274cb3981b28006b0ce12c14f9da2 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 6 Sep 2022 17:23:44 +0800 Subject: [PATCH 13/68] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/hrmresource/SystemDataMapper.xml | 2 +- .../service/impl/ImportCommonServiceImpl.java | 28 +++++++++++++++++-- .../hrmimport/HrmImportAdaptExcelE9.java | 3 +- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml index a93e0d34..f6d35f6e 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml @@ -162,7 +162,7 @@ 'hrmresource' as tablename from hrm_formfield a inner join htmllabelinfo b on a.fieldlabel = b.indexid and b.languageid = 7 - where a.fielddbtype != '6' + where a.fielddbtype != '6' and a.isuse = '1' and a.fieldname in #{field} diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index c595b426..5c48f59b 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -153,8 +153,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ mergeList.addAll(hrmFieldBeanList); mergeList.addAll(customFieldList); + // TODO 分部、部门 List fieldDatas = mergeList.stream().map(item -> FieldTypeTreeParam.builder().id(item.getFieldId()).name(item.getFieldLabel()).build()).collect(Collectors.toList()); - List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "hrmresource".equals(item.getTableName()))).map(CusFormFieldPO::getFieldId).collect(Collectors.toList()); + List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "subcompanyid1".equals(item.getFieldName()) || "departmentid".equals(item.getFieldName()))).map(CusFormFieldPO::getFieldId).collect(Collectors.toList()); returnMaps.put("data", fieldDatas); returnMaps.put("selectedKeys", selectedKeys); @@ -657,6 +658,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (StringUtils.isBlank(Util.null2String(map.get("forbidden_tag")))) { map.put("forbidden_tag", 0); } + String showOrder = Util.null2String(map.get("show_order")); + if (StringUtils.isBlank(showOrder)) { + Integer maxShowOrder = MapperProxyFactory.getProxy(CompMapper.class).getMaxShowOrder(); + if (null == maxShowOrder) { + maxShowOrder = 0; + } + map.put("show_order", maxShowOrder + 1); + } Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, map, false).sync(); if (isThrowError(syncMap)) { @@ -861,7 +870,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (StringUtils.isBlank(Util.null2String(map.get("forbidden_tag")))) { map.put("forbidden_tag", 0); } - + String showOrder = Util.null2String(map.get("show_order")); + if (StringUtils.isBlank(showOrder)) { + Integer maxShowOrder = MapperProxyFactory.getProxy(DepartmentMapper.class).getMaxShowOrder(); + if (null == maxShowOrder) { + maxShowOrder = 0; + } + map.put("show_order", maxShowOrder + 1); + } Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, map, false).sync(); if (isThrowError(syncMap)) { // 查询UUID @@ -1093,6 +1109,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (StringUtils.isBlank(Util.null2String(map.get("forbidden_tag")))) { map.put("forbidden_tag", 0); } + String showOrder = Util.null2String(map.get("show_order")); + if (StringUtils.isBlank(showOrder)) { + Integer maxShowOrder = MapperProxyFactory.getProxy(JobMapper.class).getMaxShowOrder(); + if (null == maxShowOrder) { + maxShowOrder = 0; + } + map.put("show_order", maxShowOrder + 1); + } ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_JOB").params(map).build(); map.put("jobactivityid", JobServiceImpl.JOB_ACTIVITY_ID); diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java index 57204249..dae9bcbe 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java @@ -282,8 +282,9 @@ public class HrmImportAdaptExcelE9 extends BaseBean implements IHrmImportAdapt { cellValue = getCellValue(cell).trim(); for (int k = 0; k < temFields.length; k++) { if (cellValue.equals(temFields[k])) { - // 初始化必填字段下标 + // TODO 初始化必填字段下标 String requiredFields = "所属分部,部门,姓名,岗位,职务,职务类别,办公地点"; + requiredFields = "所属分部,部门,登录名,姓名,性别,状态,办公地点,入职日期,参加工作日期,担任岗位,职等职级,担任职务"; List requiredFieldList = Arrays.asList(requiredFields.split(",")); if (requiredFieldList.contains(cellValue)) { From 59f76c012cc2d0c7a9df2094090de6d501d94d1b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 7 Sep 2022 15:40:19 +0800 Subject: [PATCH 14/68] =?UTF-8?q?=E8=A7=A6=E5=8F=91=E5=99=A8=EF=BC=8C?= =?UTF-8?q?=E5=88=86=E9=83=A8=E3=80=81=E9=83=A8=E9=97=A8=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=EF=BC=8CSQL=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/脚本/Mysql/表结构、初始化数据.sql | 2 +- docs/脚本/Oracle/表结构、初始化数据Oracle.sql | 2 +- docs/脚本/SqlServer/表结构、基础数据.sql | 2 +- .../service/DepartmentService.java | 2 +- .../organization/service/ExtService.java | 4 +- .../organization/service/JobService.java | 2 +- .../service/impl/CompServiceImpl.java | 2 +- .../service/impl/DepartmentServiceImpl.java | 24 ++++++++++-- .../service/impl/ExtServiceImpl.java | 8 ++-- .../service/impl/HrmResourceServiceImpl.java | 6 +-- .../service/impl/JobServiceImpl.java | 32 ++++++++++++++-- .../cusfielddata/CusFieldDataTrigger.java | 20 +++++----- .../web/DepartmentController.java | 38 ++++++++++--------- .../organization/web/JobController.java | 4 +- .../wrapper/DepartmentWrapper.java | 4 +- .../organization/wrapper/JobWrapper.java | 4 +- 16 files changed, 102 insertions(+), 54 deletions(-) diff --git a/docs/脚本/Mysql/表结构、初始化数据.sql b/docs/脚本/Mysql/表结构、初始化数据.sql index 41c827fa..871ff19e 100644 --- a/docs/脚本/Mysql/表结构、初始化数据.sql +++ b/docs/脚本/Mysql/表结构、初始化数据.sql @@ -609,7 +609,7 @@ 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 (26, 3, 'JCL_ORG_JOB', 'ec_department', '所属部门', 'int', 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 0, now(), 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 (27, 3, 'JCL_ORG_JOB', 'work_authority', '工作权限', 'text', 2, 6, 1, 0, 1, 1, 1, 0, 1, 3, 1, 0, now(), NULL, NULL, NULL, 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 (28, 3, 'JCL_ORG_JOB', 'level_id', '职等', 'text', 3, 5, 1, 0, 1, NULL, 1, 1, 1, 4, 1, 0, now(), NULL, '162', '["browser",{"valueSpan":"自定义多选","replaceDatas":[{"itemorderid":"162","name":"自定义多选","id":"162","parenttitle":"集成","title":"集成-自定义多选"}],"value":"162"},{"valueSpan":"职等浏览按钮","replaceDatas":[{"showname":"LevelBrowser","name":"职等浏览按钮","id":"LevelBrowser"}],"value":"LevelBrowser"}]', 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 (29, 3, 'JCL_ORG_JOB', 'ec_company', '所属分部', 'int', 3, 3, 1, 0, 1, 1, 1, 1, 1, 4, 1, 0, now(), NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0); +insert INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field_name_desc, field_type, control_type, extend_group_id, isenable, isrequired, list_show, search_show, edit_show, add_show, browser_show, show_order, creator, delete_type, create_time, update_time, browser_type, custom_value, is_system_default) VALUES (29, 3, 'JCL_ORG_JOB', 'ec_company', '所属分部', 'int', 3, 3, 1, 0, 1, 0, 0, 0, 1, 4, 1, 0, now(), NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0); insert INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field_name_desc, field_type, control_type, extend_group_id, isenable, isrequired, list_show, search_show, edit_show, add_show, browser_show, show_order, creator, delete_type, create_time, update_time, browser_type, custom_value, is_system_default) VALUES (30, 3, 'JCL_ORG_JOB', 'grade_id', '职级', 'text', 3, 5, 1, 0, 1, NULL, 1, 1, 1, 3, 1, 0, now(), NULL, '161', '["browser",{"valueSpan":"自定义单选","replaceDatas":[{"itemorderid":"161","name":"自定义单选","id":"161","parenttitle":"集成","title":"集成-自定义单选"}],"value":"161"},{"valueSpan":"职级浏览按钮","replaceDatas":[{"showname":"gradeBrowser","name":"职级浏览按钮","id":"gradeBrowser"}],"value":"gradeBrowser"}]', 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 (31, 3, 'JCL_ORG_JOB', 'parent_job', '上级岗位', 'int', 3, 3, 1, 0, 1, 1, 1, 1, 1, 5, 1, 0, now(), NULL, '161', '["browser",{"value":"161","valueSpan":"自定义单选","replaceDatas":[{"id":"161","name":"自定义单选"}]},{"value":"jobBrowser","valueSpan":"岗位浏览按钮","replaceDatas":[{"showname":"jobBrowser","shownamespan":"jobBrowser","namespan":"岗位浏览按钮","name":"岗位浏览按钮","showtypespan":"树形","randomFieldIdspan":"","showtype":"2","randomFieldId":"jobBrowser","id":"jobBrowser"}]}]', 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 (32, 3, 'JCL_ORG_JOB', 'is_key', '是否关键岗', 'int', 5, 3, 1, 0, 1, 1, 1, 1, 1, 6, 1, 0, now(), NULL, NULL, '["select","select",{"datas":[{"default":"","unuse":"0","id":"0","key":"0","option":"否"},{"default":"","unuse":"0","id":"1","key":"1","option":"是"}],"sort":"horizontal"}]', 0); diff --git a/docs/脚本/Oracle/表结构、初始化数据Oracle.sql b/docs/脚本/Oracle/表结构、初始化数据Oracle.sql index 6b375e15..d9c0fda2 100644 --- a/docs/脚本/Oracle/表结构、初始化数据Oracle.sql +++ b/docs/脚本/Oracle/表结构、初始化数据Oracle.sql @@ -1067,7 +1067,7 @@ insert INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, fiel / 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 (28, 3, 'JCL_ORG_JOB', 'level_id', '职等', 'text', 3, 5, 1, 0, 1, NULL, 1, 1, 1, 4, 1, 0, SYSDATE, NULL, '162', '["browser",{"valueSpan":"自定义多选","replaceDatas":[{"itemorderid":"162","name":"自定义多选","id":"162","parenttitle":"集成","title":"集成-自定义多选"}],"value":"162"},{"valueSpan":"职等浏览按钮","replaceDatas":[{"showname":"LevelBrowser","name":"职等浏览按钮","id":"LevelBrowser"}],"value":"LevelBrowser"}]', 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 (29, 3, 'JCL_ORG_JOB', 'ec_company', '所属分部', 'int', 3, 3, 1, 0, 1, 1, 1, 1, 1, 4, 1, 0, SYSDATE, NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0) +insert INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field_name_desc, field_type, control_type, extend_group_id, isenable, isrequired, list_show, search_show, edit_show, add_show, browser_show, show_order, creator, delete_type, create_time, update_time, browser_type, custom_value, is_system_default) VALUES (29, 3, 'JCL_ORG_JOB', 'ec_company', '所属分部', 'int', 3, 3, 1, 0, 1, 0, 0, 0, 1, 4, 1, 0, SYSDATE, NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0) / insert INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field_name_desc, field_type, control_type, extend_group_id, isenable, isrequired, list_show, search_show, edit_show, add_show, browser_show, show_order, creator, delete_type, create_time, update_time, browser_type, custom_value, is_system_default) VALUES (30, 3, 'JCL_ORG_JOB', 'grade_id', '职级', 'text', 3, 5, 1, 0, 1, NULL, 1, 1, 1, 3, 1, 0, SYSDATE, NULL, '161', '["browser",{"valueSpan":"自定义单选","replaceDatas":[{"itemorderid":"161","name":"自定义单选","id":"161","parenttitle":"集成","title":"集成-自定义单选"}],"value":"161"},{"valueSpan":"职级浏览按钮","replaceDatas":[{"showname":"gradeBrowser","name":"职级浏览按钮","id":"gradeBrowser"}],"value":"gradeBrowser"}]', 0) / diff --git a/docs/脚本/SqlServer/表结构、基础数据.sql b/docs/脚本/SqlServer/表结构、基础数据.sql index 0fd74720..920c85e1 100644 --- a/docs/脚本/SqlServer/表结构、基础数据.sql +++ b/docs/脚本/SqlServer/表结构、基础数据.sql @@ -989,7 +989,7 @@ GO 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 (26, 3, 'JCL_ORG_JOB', 'ec_department', '所属部门', 'int', 3, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 0, GETDATE(), 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 (27, 3, 'JCL_ORG_JOB', 'work_authority', '工作权限', 'text', 2, 6, 1, 0, 1, 1, 1, 0, 1, 3, 1, 0, GETDATE(), NULL, NULL, NULL, 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 (28, 3, 'JCL_ORG_JOB', 'level_id', '职等', 'text', 3, 5, 1, 0, 1, NULL, 1, 1, 1, 4, 1, 0, GETDATE(), NULL, '162', '["browser",{"valueSpan":"自定义多选","replaceDatas":[{"itemorderid":"162","name":"自定义多选","id":"162","parenttitle":"集成","title":"集成-自定义多选"}],"value":"162"},{"valueSpan":"职等浏览按钮","replaceDatas":[{"showname":"LevelBrowser","name":"职等浏览按钮","id":"LevelBrowser"}],"value":"LevelBrowser"}]', 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 (29, 3, 'JCL_ORG_JOB', 'ec_company', '所属分部', 'int', 3, 3, 1, 0, 1, 1, 1, 1, 1, 4, 1, 0, GETDATE(), NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0) + insert INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field_name_desc, field_type, control_type, extend_group_id, isenable, isrequired, list_show, search_show, edit_show, add_show, browser_show, show_order, creator, delete_type, create_time, update_time, browser_type, custom_value, is_system_default) VALUES (29, 3, 'JCL_ORG_JOB', 'ec_company', '所属分部', 'int', 3, 3, 1, 0, 1, 0, 0, 0, 1, 4, 1, 0, GETDATE(), NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0) insert INTO jcl_field_extendinfo (id, extend_type, table_name, field_name, field_name_desc, field_type, control_type, extend_group_id, isenable, isrequired, list_show, search_show, edit_show, add_show, browser_show, show_order, creator, delete_type, create_time, update_time, browser_type, custom_value, is_system_default) VALUES (30, 3, 'JCL_ORG_JOB', 'grade_id', '职级', 'text', 3, 5, 1, 0, 1, NULL, 1, 1, 1, 3, 1, 0, GETDATE(), NULL, '161', '["browser",{"valueSpan":"自定义单选","replaceDatas":[{"itemorderid":"161","name":"自定义单选","id":"161","parenttitle":"集成","title":"集成-自定义单选"}],"value":"161"},{"valueSpan":"职级浏览按钮","replaceDatas":[{"showname":"gradeBrowser","name":"职级浏览按钮","id":"gradeBrowser"}],"value":"gradeBrowser"}]', 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 (31, 3, 'JCL_ORG_JOB', 'parent_job', '上级岗位', 'int', 3, 3, 1, 0, 1, 1, 1, 1, 1, 5, 1, 0, GETDATE(), NULL, '161', '["browser",{"value":"161","valueSpan":"自定义单选","replaceDatas":[{"id":"161","name":"自定义单选"}]},{"value":"jobBrowser","valueSpan":"岗位浏览按钮","replaceDatas":[{"showname":"jobBrowser","shownamespan":"jobBrowser","namespan":"岗位浏览按钮","name":"岗位浏览按钮","showtypespan":"树形","randomFieldIdspan":"","showtype":"2","randomFieldId":"jobBrowser","id":"jobBrowser"}]}]', 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 (32, 3, 'JCL_ORG_JOB', 'is_key', '是否关键岗', 'int', 5, 3, 1, 0, 1, 1, 1, 1, 1, 6, 1, 0, GETDATE(), NULL, NULL, '["select","select",{"datas":[{"default":"","unuse":"0","id":"0","key":"0","option":"否"},{"default":"","unuse":"0","id":"1","key":"1","option":"是"}],"sort":"horizontal"}]', 0) diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index a3d382e0..0433a164 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -113,7 +113,7 @@ public interface DepartmentService { * * @return */ - Map getSaveForm(); + Map getSaveForm(DeptSearchParam param); /** * 复制表单 diff --git a/src/com/engine/organization/service/ExtService.java b/src/com/engine/organization/service/ExtService.java index 2b848726..2f53be80 100644 --- a/src/com/engine/organization/service/ExtService.java +++ b/src/com/engine/organization/service/ExtService.java @@ -38,7 +38,7 @@ public interface ExtService { * @param groupId * @return */ - List getExtSaveForm(User user, String extendType, String tableName, int viewAttr, String groupId, String autoNoField, String serialType, String... readOnlyFields); + List getExtSaveForm(User user, String extendType, String tableName, int viewAttr, String groupId, String autoNoField, String serialType, Map params, String... readOnlyFields); /** * 组装明细表表单 @@ -51,7 +51,7 @@ public interface ExtService { * @param showLabel * @return */ - List> getExtendTables(User user, String extendType, Long groupId,String tableName, long id, int viewAttr, boolean showLabel); + List> getExtendTables(User user, String extendType, Long groupId, String tableName, long id, int viewAttr, boolean showLabel); /** * 拓展页面分组 * diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java index 95cfb27e..dab71f97 100644 --- a/src/com/engine/organization/service/JobService.java +++ b/src/com/engine/organization/service/JobService.java @@ -50,7 +50,7 @@ public interface JobService { * * @return */ - Map getSaveForm(); + Map getSaveForm(JobSearchParam param); /** * 获取详细表单 diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 035de964..c446ad19 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -331,7 +331,7 @@ public class CompServiceImpl extends Service implements CompService { List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID, "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { - List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_COMP, 2, extendTitle.getId() + "", "comp_no", RuleCodeType.SUBCOMPANY.getValue()); + List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_COMP, 2, extendTitle.getId() + "", "comp_no", RuleCodeType.SUBCOMPANY.getValue(), null); if (CollectionUtils.isNotEmpty(items)) { addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, items)); } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index c8abead8..d75e238d 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -420,15 +420,33 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } @Override - public Map getSaveForm() { + public Map getSaveForm(DeptSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID, "1"); - if (CollectionUtils.isNotEmpty(extendTitles)) { + Map params = new HashMap<>(); + // 分部 + if (StringUtils.isNotBlank(Util.null2String(param.getSubcompanyid1()))) { + CompPO compPO = getCompMapper().listById(param.getSubcompanyid1()); + if (null != compPO) { + params.put("parent_comp", compPO.getId()); + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(compPO.getId().toString())); + } + } + // 部门 + if (StringUtils.isNotBlank(Util.null2String(param.getDepartmentid()))) { + DepartmentPO deptById = getDepartmentMapper().getDeptById(param.getDepartmentid()); + if (null != deptById) { + params.put("parent_dept", deptById.getId()); + params.put("ec_department", EcHrmRelationUtil.getEcDepartmentId(deptById.getId().toString())); + params.put("parent_comp", deptById.getParentComp()); + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(deptById.getParentComp().toString())); + } + } for (ExtendTitlePO extendTitle : extendTitles) { - List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_DEPT, 2, extendTitle.getId().toString(), "dept_no", RuleCodeType.DEPARTMENT.getValue()); + List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_DEPT, 2, extendTitle.getId().toString(), "dept_no", RuleCodeType.DEPARTMENT.getValue(), params); if (CollectionUtils.isNotEmpty(items)) { addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, items)); } diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 429452ca..ac276c00 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -92,16 +92,18 @@ public class ExtServiceImpl extends Service implements ExtService { } @Override - public List getExtSaveForm(User user, String extendType, String tableName, int viewAttr, String groupId, String autoNoField, String serialType, String... readOnlyFields) { + public List getExtSaveForm(User user, String extendType, String tableName, int viewAttr, String groupId, String autoNoField, String serialType, Map params, String... readOnlyFields) { List conditionItems = new ArrayList<>(); - + if (null == params) { + params = new HashMap<>(); + } // 2编辑 1查看 OrganizationAssert.notNull(groupId, "请选择对应的拓展页"); List infoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ExtendInfoOperateType.ADD.getValue(), "1"); // 组装拓展页内容 List readOnlyFieldList = Arrays.asList(readOnlyFields); for (ExtendInfoPO extendInfoPO : infoPOList) { - SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, null); + SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, params.get(extendInfoPO.getFieldName())); item.setFieldcol(16); if (CollectionUtils.isNotEmpty(readOnlyFieldList) && readOnlyFieldList.contains(extendInfoPO.getFieldName())) { item.setViewAttr(1); diff --git a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java index d4cd3cd4..0add18a3 100644 --- a/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java +++ b/src/com/engine/organization/service/impl/HrmResourceServiceImpl.java @@ -172,10 +172,10 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic public Map getSaveForm() { Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID,"1"); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID, "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { - addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_HRM, 2, extendTitle.getId() + "", null, null))); + addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_HRM, 2, extendTitle.getId() + "", null, null, null))); } } apiDatas.put("condition", addGroups); @@ -203,7 +203,7 @@ public class HrmResourceServiceImpl extends Service implements HrmResourceServic if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } - List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId),"1"); + List extendTitles = getExtendTitleMapper().getTitlesByGroupID(Long.parseLong(groupId), "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { for (ExtendTitlePO extendTitle : extendTitles) { diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index b047b16b..23add417 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -212,7 +212,7 @@ public class JobServiceImpl extends Service implements JobService { // 等级方案 SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); // 上级岗位 - SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); + SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "666", "parentJob", ""); // 是否关键岗 List isKeyOptions = new ArrayList<>(); SearchConditionOption yesOption = new SearchConditionOption("0", "否"); @@ -247,14 +247,33 @@ public class JobServiceImpl extends Service implements JobService { } @Override - public Map getSaveForm() { + public Map getSaveForm(JobSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); List extendTitles = getExtendTitleMapper().getTitlesByGroupID(GROUP_ID, "1"); if (CollectionUtils.isNotEmpty(extendTitles)) { + Map params = new HashMap<>(); + // 分部 + if (StringUtils.isNotBlank(Util.null2String(param.getSubcompanyid1()))) { + CompPO compPO = getCompMapper().listById(param.getSubcompanyid1()); + if (null != compPO) { + params.put("parent_comp", compPO.getId()); + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(compPO.getId().toString())); + } + } + // 部门 + if (StringUtils.isNotBlank(Util.null2String(param.getDepartmentid()))) { + DepartmentPO deptById = getDepartmentMapper().getDeptById(param.getDepartmentid()); + if (null != deptById) { + params.put("parent_dept", deptById.getId()); + params.put("ec_department", EcHrmRelationUtil.getEcDepartmentId(deptById.getId().toString())); + params.put("parent_comp", deptById.getParentComp()); + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(deptById.getParentComp().toString())); + } + } for (ExtendTitlePO extendTitle : extendTitles) { - List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_JOB, 2, extendTitle.getId().toString(), "job_no", RuleCodeType.JOBTITLES.getValue(), "scheme_id", "parent_comp"); + List items = getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_JOB, 2, extendTitle.getId().toString(), "job_no", RuleCodeType.JOBTITLES.getValue(), params, "scheme_id", "parent_comp"); if (CollectionUtils.isNotEmpty(items)) { addGroups.add(new SearchConditionGroup(extendTitle.getTitle(), true, items)); } @@ -395,7 +414,12 @@ public class JobServiceImpl extends Service implements JobService { JobPO jobById = getJobMapper().getJobById(id); // 处理自动编号 jobById.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, jobById.getJobNo(), System.currentTimeMillis())); - jobById.setParentDept(Long.parseLong(department)); + // 部门赋值 + jobById.setEcDepartment(Long.parseLong(department)); + DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(department); + if (null != jclDepartmentId) { + jobById.setParentDept(jclDepartmentId.getId()); + } jobById.setShowOrder(orderNum); insertCount += getJobMapper().insertIgnoreNull(jobById); // 更新组织架构图 diff --git a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java index 18a34cd9..85b7b3ea 100644 --- a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java +++ b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java @@ -59,25 +59,25 @@ public class CusFieldDataTrigger { MapperProxyFactory.getProxy(SystemDataMapper.class).insertCusFieldData(directionData); } - // field100001更新 - if (null != sourceField100001 && sourceField100001.split("_").length == 2 && !sourceField100001.equals(directionData.getField100001())) { + // field100001更新,职等职级 + if (null != sourceField100001 && sourceField100001.split("A").length == 3 && !sourceField100001.equals(directionData.getField100001())) { directionData.setField100001(sourceField100001); - String[] field100001Array = sourceField100001.split("_"); + String[] field100001Array = sourceField100001.split("A"); // 职等 - long zdId = Long.parseLong(field100001Array[1]); - if (zdId > 1000) { - zdId = zdId - 1000; - } + 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).getGradeByLevelId(zdId); + GradePO gradeByLevelId = MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(zjId); directionData.setField100007(gradeByLevelId.getGradeName()); - MapperProxyFactory.getProxy(SequenceMapper.class).getSequenceBySchemeId(schemeByID.getId()); - SequencePO sequenceBySchemeId = MapperProxyFactory.getProxy(SequenceMapper.class).getSequenceBySchemeId(levelByID.getSchemeId()); + // 岗位序列 + SequencePO sequenceBySchemeId = MapperProxyFactory.getProxy(SequenceMapper.class).getSequenceByID(xlId); directionData.setField100005(sequenceBySchemeId.getSequenceName()); updateFlag = true; } diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index 7f208e57..edd39910 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -44,7 +44,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return getDepartmentWrapper(user).getDeptListByPid(querySingleDeptListParam); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -58,7 +58,7 @@ public class DepartmentController { String parentDept = (String) map.get("parentDept"); return ReturnResult.successed(getDepartmentWrapper(user).getJobListByPid(QuerySingleDeptListParam.builder().parentDept(Long.parseLong(parentDept)).build())); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -96,7 +96,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).listPage(params)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -116,7 +116,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).saveBaseForm(params)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -136,7 +136,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).updateForbiddenTagById(param)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -156,7 +156,7 @@ public class DepartmentController { Map map = ParamUtil.request2Map(request); return ReturnResult.successed(getDepartmentWrapper(user).updateForm(map)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -177,7 +177,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).deleteByIds(param.getIds())); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -197,7 +197,7 @@ public class DepartmentController { Map map = ParamUtil.request2Map(request); return ReturnResult.successed(getDepartmentWrapper(user).getSearchCondition(map)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -216,7 +216,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).getHasRight()); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -236,7 +236,7 @@ public class DepartmentController { Map map = ParamUtil.request2Map(request); return ReturnResult.successed(getDepartmentWrapper(user).getDeptBaseForm(map)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -253,9 +253,11 @@ public class DepartmentController { public ReturnResult getSaveForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { try { User user = HrmUserVarify.getUser(request, response); - return ReturnResult.successed(getDepartmentWrapper(user).getSaveForm()); + Map map = ParamUtil.request2Map(request); + DeptSearchParam param = JSONObject.toJavaObject((JSON) JSONObject.toJSON(map), DeptSearchParam.class); + return ReturnResult.successed(getDepartmentWrapper(user).getSaveForm(param)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -268,7 +270,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).getCopyForm()); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -280,7 +282,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).copyDepartment(copyParam)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -294,7 +296,7 @@ public class DepartmentController { String id = (String) map.get("id"); return ReturnResult.successed(getDepartmentWrapper(user).getMergeForm(Long.parseLong(id))); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -306,7 +308,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).mergeDepartment(mergeParam)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -318,7 +320,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).getMoveForm()); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } @@ -330,7 +332,7 @@ public class DepartmentController { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).moveDepartment(moveParam)); } catch (Exception e) { - return ReturnResult.exceptionHandle(e); + return ReturnResult.exceptionHandle(e); } } diff --git a/src/com/engine/organization/web/JobController.java b/src/com/engine/organization/web/JobController.java index 9e93de61..c191a1dd 100644 --- a/src/com/engine/organization/web/JobController.java +++ b/src/com/engine/organization/web/JobController.java @@ -84,7 +84,9 @@ public class JobController { public ReturnResult getSaveForm(@Context HttpServletRequest request, @Context HttpServletResponse response) { try { User user = HrmUserVarify.getUser(request, response); - return ReturnResult.successed(getJobWrapper(user).getSaveForm()); + Map map = ParamUtil.request2Map(request); + JobSearchParam param = JSONObject.toJavaObject((JSON) JSONObject.toJSON(map), JobSearchParam.class); + return ReturnResult.successed(getJobWrapper(user).getSaveForm(param)); } catch (Exception e) { return ReturnResult.exceptionHandle(e); } diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index b0903d5f..d81f1564 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -82,8 +82,8 @@ public class DepartmentWrapper extends OrganizationWrapper { * * @return */ - public Map getSaveForm() { - return getDepartmentService(user).getSaveForm(); + public Map getSaveForm(DeptSearchParam param) { + return getDepartmentService(user).getSaveForm(param); } /** diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index e25794fb..1e81a956 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -86,8 +86,8 @@ public class JobWrapper extends OrganizationWrapper { * * @return */ - public Map getSaveForm() { - return getJobService(user).getSaveForm(); + public Map getSaveForm(JobSearchParam param) { + return getJobService(user).getSaveForm(param); } /** From c280c5f9082ebd30e8a012d55d14436d481c28b0 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 7 Sep 2022 19:12:42 +0800 Subject: [PATCH 15/68] fixed --- .../entity/employee/vo/EmployeeTableVO.java | 2 +- .../organization/service/SequenceService.java | 6 ++++++ .../service/impl/CompServiceImpl.java | 3 ++- .../service/impl/GradeServiceImpl.java | 2 +- .../service/impl/JobServiceImpl.java | 11 +++++++++++ .../service/impl/SequenceServiceImpl.java | 8 ++++++++ .../organization/web/SequenceController.java | 16 ++++++++++++++++ .../engine/organization/wrapper/JobWrapper.java | 2 +- .../organization/wrapper/SequenceWrapper.java | 5 +++++ 9 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java index 7e3c7e6c..a9220e4c 100644 --- a/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java +++ b/src/com/engine/organization/entity/employee/vo/EmployeeTableVO.java @@ -23,7 +23,7 @@ import lombok.NoArgsConstructor; fields = "t.id," + "t.lastname," + "t.mobile," + - "t.," + + "t.companystartdate," + "t.sex", fromSql = "FROM HrmResource t ", orderby = "id desc", diff --git a/src/com/engine/organization/service/SequenceService.java b/src/com/engine/organization/service/SequenceService.java index 90d03775..3cbfb7a3 100644 --- a/src/com/engine/organization/service/SequenceService.java +++ b/src/com/engine/organization/service/SequenceService.java @@ -78,4 +78,10 @@ public interface SequenceService { */ Map getTabInfo(); + /** + * 获取岗位序列下方案信息 + * @param params + * @return + */ + Map getSchemeInfo(Map params); } diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 035de964..e633b28b 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -347,6 +347,7 @@ public class CompServiceImpl extends Service implements CompService { List addGroups = new ArrayList<>(); List condition = new ArrayList<>(); SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "转移到", "164", "company", "compBrowser"); + compBrowserItem.setHelpfulTip("在不选择分部情况下,默认转移到集团下一级分部!!!"); condition.add(compBrowserItem); addGroups.add(new SearchConditionGroup("", true, condition)); return addGroups; @@ -355,7 +356,7 @@ public class CompServiceImpl extends Service implements CompService { @Override public int moveCompany(DepartmentMoveParam moveParam) { Long targetCompanyId = moveParam.getCompany(); - OrganizationAssert.notNull(targetCompanyId, "请选择要转移到的分部"); + //OrganizationAssert.notNull(targetCompanyId, "请选择要转移到的分部"); Long companyId = moveParam.getId(); // 判断目标分部是否为它本身以及子元素 Set disableIds = new HashSet<>(); diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index ab65d10c..dde702cb 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -220,7 +220,7 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public String getLevelId(Long id) { - return MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(id).getLevelId(); + return id != null ? MapperProxyFactory.getProxy(GradeMapper.class).getGradeByID(id).getLevelId() : ""; } /** diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index b047b16b..a354a65e 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -52,6 +52,7 @@ 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; +import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; import weaver.hrm.User; @@ -431,6 +432,16 @@ 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"); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); diff --git a/src/com/engine/organization/service/impl/SequenceServiceImpl.java b/src/com/engine/organization/service/impl/SequenceServiceImpl.java index fefd3d20..9038c523 100644 --- a/src/com/engine/organization/service/impl/SequenceServiceImpl.java +++ b/src/com/engine/organization/service/impl/SequenceServiceImpl.java @@ -182,6 +182,14 @@ public class SequenceServiceImpl extends Service implements SequenceService { return apiDatas; } + @Override + public Map getSchemeInfo(Map params) { + String sequenceId = Util.null2String(params.get("sequenceId")); + SequencePO sequencePO = getSequenceMapper().getSequenceByID(Long.parseLong(sequenceId)); + List> maps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(sequencePO.getSchemeId().toString()).build().getIds()); + return maps.get(0); + } + /** * 查询条件 * diff --git a/src/com/engine/organization/web/SequenceController.java b/src/com/engine/organization/web/SequenceController.java index b432611f..0552c5ab 100644 --- a/src/com/engine/organization/web/SequenceController.java +++ b/src/com/engine/organization/web/SequenceController.java @@ -202,4 +202,20 @@ public class SequenceController { return ReturnResult.exceptionHandle(e); } } + + @GET + @Path("/getSchemeInfo") + @Produces(MediaType.APPLICATION_JSON) + public ReturnResult getSchemeInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { + try { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + return ReturnResult.successed(getSequenceWrapper(user).getSchemeInfo(map)); + } catch (Exception e) { + return ReturnResult.exceptionHandle(e); + } + } + + + } diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index e25794fb..0c9f4249 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -199,7 +199,7 @@ public class JobWrapper extends OrganizationWrapper { public ReturnResult getCopyForm() { List addGroups = new ArrayList<>(); List condition = new ArrayList<>(); - SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "复制到", "161", "department", "deptBrowser"); + SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "复制到", "4", "department", "deptBrowser"); deptBrowserItem.setRules("required|string"); condition.add(deptBrowserItem); addGroups.add(new SearchConditionGroup("", true, condition)); diff --git a/src/com/engine/organization/wrapper/SequenceWrapper.java b/src/com/engine/organization/wrapper/SequenceWrapper.java index fdfe22ff..6baf9d1f 100644 --- a/src/com/engine/organization/wrapper/SequenceWrapper.java +++ b/src/com/engine/organization/wrapper/SequenceWrapper.java @@ -140,4 +140,9 @@ public class SequenceWrapper extends OrganizationWrapper { public Map getTabInfo() { return getSequenceService(user).getTabInfo(); } + + + public Map getSchemeInfo(Map map) { + return getSequenceService(user).getSchemeInfo(map); + } } From 91a8ad0bd3839f4a9a0d4ec44bfd3d9b742a4724 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 7 Sep 2022 19:12:47 +0800 Subject: [PATCH 16/68] =?UTF-8?q?=E5=AF=BC=E5=85=A5BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DepartmentServiceImpl.java | 3 +- .../service/impl/ImportCommonServiceImpl.java | 2 +- .../service/impl/JobServiceImpl.java | 3 +- .../hrmimport/HrmImportProcessE9.java | 119 +++++++++--------- 4 files changed, 66 insertions(+), 61 deletions(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index d75e238d..7be24c46 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -549,6 +549,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public int mergeDepartment(DepartmentMergeParam mergeParam) { + //TODO 逻辑重写,被合并部门,子元素全部转移。被合并部门删除、封存 HasRightUtil.hasRight(user, RIGHT_NAME, false); int updateCount; Long ecParamDepartment = mergeParam.getDepartment(); @@ -568,7 +569,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } OrganizationAssert.isFalse(disableIds.contains(targetDepartment.getId()), "请勿选择当前部门本身及其子部门"); - // 所选部门 + //TODO 被合并部门 DepartmentPO mergeDepartment = getDepartmentMapper().getDeptById(mergeParam.getId()); mergeDepartment.setDeptName(mergeParam.getMergeName()); mergeDepartment.setDeptNameShort(mergeParam.getMergeName()); diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 5c48f59b..cc633554 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -155,7 +155,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ // TODO 分部、部门 List fieldDatas = mergeList.stream().map(item -> FieldTypeTreeParam.builder().id(item.getFieldId()).name(item.getFieldLabel()).build()).collect(Collectors.toList()); - List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "subcompanyid1".equals(item.getFieldName()) || "departmentid".equals(item.getFieldName()))).map(CusFormFieldPO::getFieldId).collect(Collectors.toList()); + List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "workcode".equals(item.getFieldName()) || "subcompanyid1".equals(item.getFieldName()) || "departmentid".equals(item.getFieldName()))).map(CusFormFieldPO::getFieldId).collect(Collectors.toList()); returnMaps.put("data", fieldDatas); returnMaps.put("selectedKeys", selectedKeys); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 23add417..0008f508 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -474,9 +474,10 @@ public class JobServiceImpl extends Service implements JobService { @Override public int mergeJob(JobMergeParam mergeParam) { + //TODO 人员合并 HasRightUtil.hasRight(user, RIGHT_NAME, false); int updateCount; - OrganizationAssert.notNull(mergeParam.getTargetJob(), "请选择需要合并的部门"); + OrganizationAssert.notNull(mergeParam.getTargetJob(), "请选择需要合并的岗位"); Set disableIds = new HashSet<>(); disableIds.add(mergeParam.getId()); List jobs = getJobMapper().getJobsByPid(mergeParam.getId()); diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index e9b0b219..63148f32 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java @@ -426,26 +426,29 @@ public class HrmImportProcessE9 extends BaseBean { hrm.setAccounttype(0); } - // 岗位id - if (vo.getJobtitle() != null && vo.getJobactivityid() != null && vo.getJobgroupid() != null) { - int jobtitle = getJobTitles(vo.getJobtitle(), vo - .getJobactivityid(), vo.getJobgroupid()); - /// -1:职务类别不存在,-2:职务不存在,-3:职务类别不存在 - if (jobtitle == -1) { - resultList.add(createLog(vo, "创建", "失败", "职务类别不存在")); - continue; - } else if (jobtitle == -2) { - resultList.add(createLog(vo, "创建", "失败", "职务不存在")); - continue; - } else if (jobtitle == -3) { - resultList.add(createLog(vo, "创建", "失败", "岗位名称不存在")); - continue; - } - hrm.setJobtitle(jobtitle); - } else { - resultList.add(createLog(vo, "创建", "失败", SystemEnv.getHtmlLabelName(83531, userlanguage))); - continue; - } + //// 岗位id + //if (vo.getJobtitle() != null && vo.getJobactivityid() != null && vo.getJobgroupid() != null) { + // int jobtitle = getJobTitles(vo.getJobtitle(), vo + // .getJobactivityid(), vo.getJobgroupid()); + // /// -1:职务类别不存在,-2:职务不存在,-3:职务类别不存在 + // if (jobtitle == -1) { + // resultList.add(createLog(vo, "创建", "失败", "职务类别不存在")); + // continue; + // } else if (jobtitle == -2) { + // resultList.add(createLog(vo, "创建", "失败", "职务不存在")); + // continue; + // } else if (jobtitle == -3) { + // resultList.add(createLog(vo, "创建", "失败", "岗位名称不存在")); + // continue; + // } + // hrm.setJobtitle(jobtitle); + //} else { + // resultList.add(createLog(vo, "创建", "失败", SystemEnv.getHtmlLabelName(83531, userlanguage))); + // continue; + //} + + // 担任岗位字段校验 + //上级id if (vo.getManagerid() != null) { @@ -963,44 +966,44 @@ public class HrmImportProcessE9 extends BaseBean { } } - // 岗位id - if ("".equals(Util.null2String(vo.getJobtitle())) && (!"".equals(Util.null2String(vo.getJobactivityid())) || !"".equals(Util.null2String(vo.getJobgroupid())))) { - resultList.add(createLog(vo, "更新", "失败", SystemEnv.getHtmlLabelName(83544, userlanguage))); - continue; - } - if (!"".equals(Util.null2String(vo.getJobtitle()))) { - String jobtitle; - String jobactivityid; - String jobactivityname; - String jobgroupid; - String jobgroupname; - if (vo.getJobactivityid() == null) { - jobtitle = resourcecominfo.getJobTitle(hrmId); - jobactivityid = jobTitlesComInfo.getJobactivityid(jobtitle); - jobactivityname = jobActivitiesComInfo.getJobActivitiesname(jobactivityid); - } else - jobactivityname = vo.getJobactivityid(); - if (vo.getJobgroupid() == null) { - jobtitle = resourcecominfo.getJobTitle(hrmId); - jobactivityid = jobTitlesComInfo.getJobactivityid(jobtitle); - jobgroupid = jobActivitiesComInfo.getJobgroupid(jobactivityid); - jobgroupname = jobGroupsComInfo.getJobGroupsname(jobgroupid); - } else { - jobgroupname = vo.getJobgroupid(); - } - int jobtitleid = getJobTitles(vo.getJobtitle(), jobactivityname, jobgroupname); - if (jobtitleid == -1) { - resultList.add(createLog(vo, "创建", "失败", "职务类别不存在")); - continue; - } else if (jobtitleid == -2) { - resultList.add(createLog(vo, "创建", "失败", "职务不存在")); - continue; - } else if (jobtitleid == -3) { - resultList.add(createLog(vo, "创建", "失败", "岗位名称不存在")); - continue; - } - hrm.setJobtitle(jobtitleid); - } + //// 岗位id + //if ("".equals(Util.null2String(vo.getJobtitle())) && (!"".equals(Util.null2String(vo.getJobactivityid())) || !"".equals(Util.null2String(vo.getJobgroupid())))) { + // resultList.add(createLog(vo, "更新", "失败", SystemEnv.getHtmlLabelName(83544, userlanguage))); + // continue; + //} + //if (!"".equals(Util.null2String(vo.getJobtitle()))) { + // String jobtitle; + // String jobactivityid; + // String jobactivityname; + // String jobgroupid; + // String jobgroupname; + // if (vo.getJobactivityid() == null) { + // jobtitle = resourcecominfo.getJobTitle(hrmId); + // jobactivityid = jobTitlesComInfo.getJobactivityid(jobtitle); + // jobactivityname = jobActivitiesComInfo.getJobActivitiesname(jobactivityid); + // } else + // jobactivityname = vo.getJobactivityid(); + // if (vo.getJobgroupid() == null) { + // jobtitle = resourcecominfo.getJobTitle(hrmId); + // jobactivityid = jobTitlesComInfo.getJobactivityid(jobtitle); + // jobgroupid = jobActivitiesComInfo.getJobgroupid(jobactivityid); + // jobgroupname = jobGroupsComInfo.getJobGroupsname(jobgroupid); + // } else { + // jobgroupname = vo.getJobgroupid(); + // } + // int jobtitleid = getJobTitles(vo.getJobtitle(), jobactivityname, jobgroupname); + // if (jobtitleid == -1) { + // resultList.add(createLog(vo, "创建", "失败", "职务类别不存在")); + // continue; + // } else if (jobtitleid == -2) { + // resultList.add(createLog(vo, "创建", "失败", "职务不存在")); + // continue; + // } else if (jobtitleid == -3) { + // resultList.add(createLog(vo, "创建", "失败", "岗位名称不存在")); + // continue; + // } + // hrm.setJobtitle(jobtitleid); + //} if (Util.getIntValue(hrmId) < 0) continue; From 6de1b0746f71acbe634775f6b56264a3ecb64054 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Thu, 8 Sep 2022 10:41:04 +0800 Subject: [PATCH 17/68] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=8C=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/service/impl/GradeServiceImpl.java | 2 +- src/com/engine/organization/service/impl/LevelServiceImpl.java | 2 +- .../engine/organization/service/impl/PostInfoServiceImpl.java | 2 +- src/com/engine/organization/service/impl/PostServiceImpl.java | 2 +- src/com/engine/organization/service/impl/SchemeServiceImpl.java | 2 +- .../engine/organization/service/impl/SequenceServiceImpl.java | 2 +- src/com/engine/organization/service/impl/StaffServiceImpl.java | 1 + 7 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index dde702cb..c6d5adbe 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -128,7 +128,7 @@ public class GradeServiceImpl extends Service implements GradeService { gradeNameCondition.setRules("required|string"); SearchConditionItem gradeNoCondition = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "编号", "gradeNo"); gradeNoCondition.setRules("required|string"); - SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description"); + SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 200, "描述说明", "description"); SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "等级方案", "161", "schemeId", "schemeBrowser"); schemeBrowserItem.setRules("required|string"); BrowserBean schemeBrowserBean = schemeBrowserItem.getBrowserConditionParam(); diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index d385441a..0d302b15 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -125,7 +125,7 @@ public class LevelServiceImpl extends Service implements LevelService { levelNameCondition.setRules("required|string"); SearchConditionItem levelNoCondition = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "编号", "levelNo"); levelNoCondition.setRules("required|string"); - SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description"); + SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 200, "描述说明", "description"); SearchConditionItem browserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "等级方案", "161", "schemeId", "schemeBrowser"); BrowserBean browserBean = browserItem.getBrowserConditionParam(); if (StringUtils.isNotBlank(schemeId) && !"-1".equals(schemeId) && StringUtil.isEmpty(id)) { diff --git a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java index 26dc96f0..ac8d9817 100644 --- a/src/com/engine/organization/service/impl/PostInfoServiceImpl.java +++ b/src/com/engine/organization/service/impl/PostInfoServiceImpl.java @@ -137,7 +137,7 @@ public class PostInfoServiceImpl extends Service implements PostInfoService { SearchConditionItem postIdBrowser = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "职务分类", "161", "postId", "postBrowser"); postIdBrowser.setRules("required|string"); // 说明 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description"); + SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 200, "描述说明", "description"); // 编辑状态下赋值操作 String id = Util.null2String(params.get("id")); diff --git a/src/com/engine/organization/service/impl/PostServiceImpl.java b/src/com/engine/organization/service/impl/PostServiceImpl.java index 4aa59117..96671931 100644 --- a/src/com/engine/organization/service/impl/PostServiceImpl.java +++ b/src/com/engine/organization/service/impl/PostServiceImpl.java @@ -60,7 +60,7 @@ public class PostServiceImpl extends Service implements PostService { List addGroups = new ArrayList<>(); SearchConditionItem postNameItem = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "名称", "postName"); postNameItem.setRules("required|string"); - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description"); + SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 200, "描述说明", "description"); // 编辑状态下赋值操作 String id = Util.null2String(params.get("id")); diff --git a/src/com/engine/organization/service/impl/SchemeServiceImpl.java b/src/com/engine/organization/service/impl/SchemeServiceImpl.java index f3ebecf2..4cb8f04a 100644 --- a/src/com/engine/organization/service/impl/SchemeServiceImpl.java +++ b/src/com/engine/organization/service/impl/SchemeServiceImpl.java @@ -122,7 +122,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { schemeNameCondition.setRules("required|string"); SearchConditionItem schemeNoCondition = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "方案编号", "schemeNo"); schemeNoCondition.setRules("required|string"); - SearchConditionItem textareaItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "方案说明", "schemeDescription"); + SearchConditionItem textareaItem = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 200, "方案说明", "schemeDescription"); // 编辑状态下赋值操作 String id = Util.null2String(params.get("id")); diff --git a/src/com/engine/organization/service/impl/SequenceServiceImpl.java b/src/com/engine/organization/service/impl/SequenceServiceImpl.java index 9038c523..eb83799a 100644 --- a/src/com/engine/organization/service/impl/SequenceServiceImpl.java +++ b/src/com/engine/organization/service/impl/SequenceServiceImpl.java @@ -126,7 +126,7 @@ public class SequenceServiceImpl extends Service implements SequenceService { sequenceNameCondition.setRules("required|string"); SearchConditionItem sequenceNoCondition = OrganizationFormItemUtil.inputItem(user, 2, 17, 3, 50, "编号", "sequenceNo"); sequenceNoCondition.setRules("required|string"); - SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 60, "描述说明", "description"); + SearchConditionItem descriptionCondition = OrganizationFormItemUtil.textareaItem(user, 2, 17, true, 2, 200, "描述说明", "description"); SearchConditionItem browserItem = OrganizationFormItemUtil.browserItem(user, 2, 17, 3, false, "等级方案", "161", "schemeId", "schemeBrowser"); browserItem.setRules("required|string"); diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index dfec4a6e..34c19290 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -281,6 +281,7 @@ public class StaffServiceImpl extends Service implements StaffService { item.setRules(null); }); SearchConditionItem changeNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 3, "调整数量", "changeNum"); + changeNumItem.setHelpfulTip("提示:正数为增加,负数为减少编制数"); staffNumItem.setRules("required"); selectItems.add(changeNumItem); SearchConditionItem changeDescriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "变更说明", "changeDescription"); From f6c41a3467d8f715e22c91b8c54a37a0e1a1ed29 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 8 Sep 2022 15:36:47 +0800 Subject: [PATCH 18/68] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E9=87=8D=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fieldset/param/FieldTransferParam.java | 20 +++ .../mapper/hrmresource/SystemDataMapper.java | 2 + .../mapper/hrmresource/SystemDataMapper.xml | 5 + .../service/impl/CompServiceImpl.java | 4 + .../service/impl/DepartmentServiceImpl.java | 121 +++++++++++------- .../service/impl/ImportCommonServiceImpl.java | 9 +- .../util/relation/EcHrmRelationUtil.java | 3 + 7 files changed, 115 insertions(+), 49 deletions(-) create mode 100644 src/com/engine/organization/entity/fieldset/param/FieldTransferParam.java diff --git a/src/com/engine/organization/entity/fieldset/param/FieldTransferParam.java b/src/com/engine/organization/entity/fieldset/param/FieldTransferParam.java new file mode 100644 index 00000000..f6419cfc --- /dev/null +++ b/src/com/engine/organization/entity/fieldset/param/FieldTransferParam.java @@ -0,0 +1,20 @@ +package com.engine.organization.entity.fieldset.param; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2022/09/08 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class FieldTransferParam { + private String id; + private String name; +} diff --git a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java index bcef9501..c544a538 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.java @@ -43,6 +43,8 @@ public interface SystemDataMapper { List getHrmResourceIds(@Param("departmentId") Long departmentId, @Param("jobTitle") String jobTitle); + List getHrmResourceIdsByDept(@Param("departmentId") String departmentId); + /** * 更新人员岗位 * diff --git a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml index f6d35f6e..2869f0ef 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml @@ -181,6 +181,11 @@ select max(id) from hrmresource + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 66ad696d..1593e546 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -206,6 +206,8 @@ public class CompServiceImpl extends Service implements CompService { String ecCompany = Util.null2String(params.get("ec_company")); if (StringUtils.isNotBlank(ecCompany)) { params.put("parent_company", EcHrmRelationUtil.getJclCompanyId(ecCompany).getId()); + }else{ + params.put("parent_company", ""); } new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.UPDATE, params).sync(); // 更新主表数据 @@ -371,6 +373,8 @@ public class CompServiceImpl extends Service implements CompService { CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(targetCompanyId + ""); if (null != jclCompanyId) { compPO.setParentCompany(jclCompanyId.getId()); + } else { + compPO.setParentCompany(null); } Map map = new HashMap<>(); map.put("id", compPO.getId()); diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 7be24c46..c21be478 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -10,6 +10,7 @@ import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrm.entity.RuleCodeType; import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.codesetting.po.CodeRulePO; import com.engine.organization.entity.commom.RecordInfo; import com.engine.organization.entity.company.bo.CompBO; @@ -38,6 +39,7 @@ import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.ExtService; import com.engine.organization.thread.DepartmentTriggerRunnable; +import com.engine.organization.thread.HrmResourceTriggerRunnable; import com.engine.organization.thread.JobTriggerRunnable; import com.engine.organization.thread.OrganizationSyncEc; import com.engine.organization.util.*; @@ -50,6 +52,7 @@ 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; +import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; import weaver.hrm.User; @@ -293,6 +296,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(jclDepartmentId.getParentComp() + "")); } + } else { + params.put("parent_dept", ""); } new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.UPDATE, params).sync(); // 更新主表数据 @@ -307,7 +312,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 刷新岗位所属分部 refreshJobComp(searchParam.getId(), parentComp); List childList = getDepartmentMapper().getDeptListByPId(searchParam.getId()); - forbiddenChildTag(parentComp, childList, false); + String ecCompanyId = EcHrmRelationUtil.getEcCompanyId(Util.null2String(parentComp)); + forbiddenChildTag(parentComp, ecCompanyId, childList); return searchParam.getId(); } @@ -549,19 +555,20 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public int mergeDepartment(DepartmentMergeParam mergeParam) { - //TODO 逻辑重写,被合并部门,子元素全部转移。被合并部门删除、封存 HasRightUtil.hasRight(user, RIGHT_NAME, false); - int updateCount; + // 被合并部门 Long ecParamDepartment = mergeParam.getDepartment(); - DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(ecParamDepartment + ""); - Long jclParamDepartment = jclDepartmentId.getId(); - OrganizationAssert.isFalse(mergeParam.getId().equals(jclParamDepartment), "所选部门与待合并部门一致,无需操作"); + DepartmentPO targetDepartment = EcHrmRelationUtil.getJclDepartmentId(ecParamDepartment + ""); + + // 断言判断 + OrganizationAssert.isFalse(null == targetDepartment, "被合并部门数据有误,暂时无法合并"); + OrganizationAssert.isFalse(mergeParam.getId().equals(targetDepartment.getId()), "所选部门与待合并部门一致,无需操作"); OrganizationAssert.notNull(mergeParam.getDepartment(), "请选择需要合并的部门"); OrganizationAssert.notBlank(mergeParam.getMergeName(), "请输入合并后的名称"); - // 合并到的部门 - DepartmentPO targetDepartment = getDepartmentMapper().getDeptById(jclParamDepartment); + // 不可选择合并的数据,本身及子部门 Set disableIds = new HashSet<>(); + // 添加选择部门本身 disableIds.add(mergeParam.getId()); List deptListByPId = getDepartmentMapper().getDeptListByPId(mergeParam.getId()); if (CollectionUtils.isNotEmpty(deptListByPId)) { @@ -569,31 +576,56 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } OrganizationAssert.isFalse(disableIds.contains(targetDepartment.getId()), "请勿选择当前部门本身及其子部门"); - //TODO 被合并部门 - DepartmentPO mergeDepartment = getDepartmentMapper().getDeptById(mergeParam.getId()); - mergeDepartment.setDeptName(mergeParam.getMergeName()); - mergeDepartment.setDeptNameShort(mergeParam.getMergeName()); - - mergeDepartment.setParentDept(jclParamDepartment); - mergeDepartment.setEcDepartment(ecParamDepartment); - mergeDepartment.setParentComp(targetDepartment.getParentComp()); - mergeDepartment.setEcCompany(targetDepartment.getEcCompany()); - // 禁用 - mergeDepartment.setForbiddenTag(1); - // 更新EC表部门 - updateEcDepartment(mergeDepartment); - // 封存EC表部门 - cancelEcDepartment(mergeDepartment.getId()); - - updateCount = getDepartmentMapper().updateBaseDept(mergeDepartment); + // 查询该部门下一级部门 + List firstChildDeptList = getDepartmentMapper().getDeptListByPId(mergeParam.getId()); + // 更新所属部门、所属分部 + for (DepartmentPO departmentPO : firstChildDeptList) { + departmentPO.setParentDept(targetDepartment.getId()); + departmentPO.setEcDepartment(ecParamDepartment); + departmentPO.setParentComp(targetDepartment.getParentComp()); + departmentPO.setEcCompany(targetDepartment.getEcCompany()); + updateEcDepartment(departmentPO); + getDepartmentMapper().updateBaseDept(departmentPO); + // 更新组织架构图 + new Thread(new DepartmentTriggerRunnable(departmentPO.getId())).start(); + } + // 查询该部门一级岗位、更新岗位所属分部、所属部门 + //List firstChildJobList = getJobMapper().listJobsByDepartmentId(mergeParam.getId()); + // 批量更新部门、所属分部 + RecordSet rs = new RecordSet(); + String targetEcDeptId = EcHrmRelationUtil.getEcDepartmentId(targetDepartment.getId().toString()); + String mergeEcDeptId = EcHrmRelationUtil.getEcDepartmentId(mergeParam.getId().toString()); + rs.executeUpdate("update jcl_org_job set parent_comp =?,ec_company =?,parent_dept =?,ec_department =? where parent_dept =?", targetDepartment.getParentComp(), targetDepartment.getEcCompany(), targetDepartment.getId(), targetEcDeptId, mergeParam.getId()); + // 更新当前部门下的人员 + List hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(mergeEcDeptId); + rs.executeUpdate("update hrmresource set SUBCOMPANYID1 =?,DEPARTMENTID =? where DEPARTMENTID =?", targetDepartment.getEcCompany(), targetEcDeptId, mergeEcDeptId); + // 更新人员组织架构图 + for (Long hrmResourceId : hrmResourceIds) { + new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); + } + // 更新子部门下岗位的所属分部 + for (DepartmentPO departmentPO : firstChildDeptList) { + List deptList = getDepartmentMapper().getDeptListByPId(departmentPO.getId()); + forbiddenChildTag(targetDepartment.getParentComp(), Util.null2String(targetDepartment.getEcCompany()), deptList); + } + // 原部门删除 + Map map = new HashMap<>(); + map.put("id", mergeParam.getId()); + new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map).sync(); + // 删除拓展表、明细表 + MapperProxyFactory.getProxy(ExtMapper.class).deleteByID("jcl_org_deptext", mergeParam.getId()); + MapperProxyFactory.getProxy(ExtDTMapper.class).deleteByMainID("jcl_org_deptext_dt1", mergeParam.getId()); + getDepartmentMapper().deleteByIds(DeleteParam.builder().ids(mergeParam.getId().toString()).build().getIds()); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(mergeDepartment.getId())).start(); - // 刷新岗位分部 - refreshJobComp(mergeDepartment.getId(), mergeDepartment.getParentComp()); - // 合并后部门及子部门禁用 - List deptList = getDepartmentMapper().getDeptListByPId(mergeParam.getId()); - forbiddenChildTag(targetDepartment.getParentComp(), deptList, true); - return updateCount; + new Thread(new DepartmentTriggerRunnable(getDepartmentMapper().getDeptById(mergeParam.getId()))).start(); + // 更新部门合并后名称 + targetDepartment.setDeptName(mergeParam.getMergeName()); + targetDepartment.setDeptNameShort(mergeParam.getMergeName()); + updateEcDepartment(targetDepartment); + getDepartmentMapper().updateBaseDept(targetDepartment); + // 更新组织架构图 + new Thread(new DepartmentTriggerRunnable(targetDepartment.getId())).start(); + return 0; } @Override @@ -656,7 +688,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService // 刷新岗位分部 refreshJobComp(deptById.getId(), deptById.getParentComp()); List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); - forbiddenChildTag(deptById.getParentComp(), deptList, false); + String ecCompanyId = EcHrmRelationUtil.getEcCompanyId(Util.null2String(deptById.getParentComp())); + forbiddenChildTag(deptById.getParentComp(), ecCompanyId, deptList); // 递归更新下级部门、岗位 return updateBaseDept; } @@ -667,19 +700,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService * @param parentComp * @param deptList */ - void forbiddenChildTag(Long parentComp, List deptList, boolean isForbidden) { + void forbiddenChildTag(Long parentComp, String ecCompanyId, List deptList) { if (CollectionUtils.isNotEmpty(deptList)) { for (DepartmentPO departmentPO : deptList) { departmentPO.setParentComp(parentComp); - String ecCompanyId = EcHrmRelationUtil.getEcCompanyId(parentComp + ""); - if (StringUtils.isNotBlank(ecCompanyId)) { - departmentPO.setEcCompany(Long.parseLong(ecCompanyId)); - } - if (isForbidden) { - departmentPO.setForbiddenTag(1); - // 封存EC表部门 - cancelEcDepartment(departmentPO.getId()); - } + departmentPO.setEcCompany(Long.parseLong(ecCompanyId)); // 更新EC表部门 updateEcDepartment(departmentPO); @@ -688,8 +713,16 @@ public class DepartmentServiceImpl extends Service implements DepartmentService new Thread(new DepartmentTriggerRunnable(departmentPO.getId())).start(); // 刷新岗位所属分部 refreshJobComp(departmentPO.getId(), parentComp); + // 更新当前部门下的人员 + List hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(departmentPO.getId().toString()); + String ecDepartmentId = EcHrmRelationUtil.getEcDepartmentId(departmentPO.getId().toString()); + new RecordSet().executeUpdate("update hrmresource set SUBCOMPANYID1 =? where DEPARTMENTID =?", ecCompanyId, ecDepartmentId); + // 更新人员组织架构图 + for (Long hrmResourceId : hrmResourceIds) { + new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); + } List childList = getDepartmentMapper().getDeptListByPId(departmentPO.getId()); - forbiddenChildTag(parentComp, childList, isForbidden); + forbiddenChildTag(parentComp, ecCompanyId, childList); } } } diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index cc633554..298de2d2 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -14,7 +14,7 @@ import com.engine.organization.entity.SelectOptionParam; import com.engine.organization.entity.commom.RecordInfo; import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.extend.po.ExtendInfoPO; -import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam; +import com.engine.organization.entity.fieldset.param.FieldTransferParam; import com.engine.organization.entity.jclimport.po.CusFormFieldPO; import com.engine.organization.entity.jclimport.po.JclImportHistoryDetailPO; import com.engine.organization.entity.jclimport.po.JclImportHistoryPO; @@ -153,16 +153,15 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ mergeList.addAll(hrmFieldBeanList); mergeList.addAll(customFieldList); - // TODO 分部、部门 - List fieldDatas = mergeList.stream().map(item -> FieldTypeTreeParam.builder().id(item.getFieldId()).name(item.getFieldLabel()).build()).collect(Collectors.toList()); - List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "workcode".equals(item.getFieldName()) || "subcompanyid1".equals(item.getFieldName()) || "departmentid".equals(item.getFieldName()))).map(CusFormFieldPO::getFieldId).collect(Collectors.toList()); + List fieldDatas = mergeList.stream().map(item -> FieldTransferParam.builder().id(item.getTableName() + +item.getFieldId()).name(item.getFieldLabel()).build()).collect(Collectors.toList()); + List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "workcode".equals(item.getFieldName()) || "subcompanyid1".equals(item.getFieldName()) || "departmentid".equals(item.getFieldName()))).map(item->item.getTableName()+item.getFieldId()).collect(Collectors.toList()); returnMaps.put("data", fieldDatas); returnMaps.put("selectedKeys", selectedKeys); } else { List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, "", "1"); List filterList = infoPOList.stream().filter(item -> !excludeFields.contains(item.getFieldName()) && 6 != item.getControlType()).collect(Collectors.toList()); - List fieldDatas = filterList.stream().map(item -> FieldTypeTreeParam.builder().id(item.getId()).name(item.getFieldNameDesc()).build()).collect(Collectors.toList()); + List fieldDatas = filterList.stream().map(item -> FieldTransferParam.builder().id(item.getId().toString()).name(item.getFieldNameDesc()).build()).collect(Collectors.toList()); List selectedKeys = filterList.stream().filter(item -> (0 == item.getIsSystemDefault()) && 1 == item.getIsrequired()).map(ExtendInfoPO::getId).collect(Collectors.toList()); returnMaps.put("data", fieldDatas); returnMaps.put("selectedKeys", selectedKeys); diff --git a/src/com/engine/organization/util/relation/EcHrmRelationUtil.java b/src/com/engine/organization/util/relation/EcHrmRelationUtil.java index 593d6058..53ab7152 100644 --- a/src/com/engine/organization/util/relation/EcHrmRelationUtil.java +++ b/src/com/engine/organization/util/relation/EcHrmRelationUtil.java @@ -50,6 +50,9 @@ public class EcHrmRelationUtil { public static String getEcCompanyId(String companyId) { CompPO compPO = getCompMapper().listById(Long.parseLong(companyId)); RecordInfo supSubCompany = getSystemDataMapper().getHrmObjectByUUID(HRM_COMPANY, compPO.getUuid()); + if (null == supSubCompany) { + return "0"; + } return supSubCompany.getId(); } From 5c6674446857c67f2eb2b4e5b8a79f2e101ad933 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 8 Sep 2022 17:54:46 +0800 Subject: [PATCH 19/68] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E3=80=81=E7=BB=84=E7=BB=87=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/extend/ExtendInfoMapper.xml | 2 +- .../service/impl/DepartmentServiceImpl.java | 14 ++++++++++-- .../service/impl/ImportCommonServiceImpl.java | 22 ++++++++++++++----- .../service/impl/JobServiceImpl.java | 5 +++++ .../hrmimport/HrmImportAdaptExcelE9.java | 4 ++-- .../hrmimport/HrmImportProcessE9.java | 22 +++++++++---------- 6 files changed, 47 insertions(+), 22 deletions(-) diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index 1eee5d53..bdda6483 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -437,7 +437,7 @@ select from jcl_field_extendinfo t - where t.delete_type = 0 and t.isenable = 1 and t.extend_type = #{extendType} + where t.delete_type = 0 and list_show = 1 and t.isenable = 1 and t.extend_type = #{extendType} and t.field_name_desc = #{labelName} diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index c21be478..e0faaffd 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -590,12 +590,17 @@ public class DepartmentServiceImpl extends Service implements DepartmentService new Thread(new DepartmentTriggerRunnable(departmentPO.getId())).start(); } // 查询该部门一级岗位、更新岗位所属分部、所属部门 - //List firstChildJobList = getJobMapper().listJobsByDepartmentId(mergeParam.getId()); + List firstChildJobList = getJobMapper().listJobsByDepartmentId(mergeParam.getId()); // 批量更新部门、所属分部 RecordSet rs = new RecordSet(); String targetEcDeptId = EcHrmRelationUtil.getEcDepartmentId(targetDepartment.getId().toString()); String mergeEcDeptId = EcHrmRelationUtil.getEcDepartmentId(mergeParam.getId().toString()); rs.executeUpdate("update jcl_org_job set parent_comp =?,ec_company =?,parent_dept =?,ec_department =? where parent_dept =?", targetDepartment.getParentComp(), targetDepartment.getEcCompany(), targetDepartment.getId(), targetEcDeptId, mergeParam.getId()); + // 更新岗位组织架构图 + for (JobPO jobPO : firstChildJobList) { + // 刷新组织架构图 + new Thread(new JobTriggerRunnable(jobPO.getId())).start(); + } // 更新当前部门下的人员 List hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(mergeEcDeptId); rs.executeUpdate("update hrmresource set SUBCOMPANYID1 =?,DEPARTMENTID =? where DEPARTMENTID =?", targetDepartment.getEcCompany(), targetEcDeptId, mergeEcDeptId); @@ -609,6 +614,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService forbiddenChildTag(targetDepartment.getParentComp(), Util.null2String(targetDepartment.getEcCompany()), deptList); } // 原部门删除 + DepartmentPO mergeDepartment = getDepartmentMapper().getDeptById(mergeParam.getId()); Map map = new HashMap<>(); map.put("id", mergeParam.getId()); new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.CANCELED, map).sync(); @@ -617,7 +623,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService MapperProxyFactory.getProxy(ExtDTMapper.class).deleteByMainID("jcl_org_deptext_dt1", mergeParam.getId()); getDepartmentMapper().deleteByIds(DeleteParam.builder().ids(mergeParam.getId().toString()).build().getIds()); // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(getDepartmentMapper().getDeptById(mergeParam.getId()))).start(); + new Thread(new DepartmentTriggerRunnable(mergeDepartment)).start(); // 更新部门合并后名称 targetDepartment.setDeptName(mergeParam.getMergeName()); targetDepartment.setDeptNameShort(mergeParam.getMergeName()); @@ -916,6 +922,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService if (CollectionUtils.isNotEmpty(jobPOS)) { String ecCompanyId = EcHrmRelationUtil.getEcCompanyId(parentComp.toString()); getJobMapper().updateJobCompany(jobPOS.stream().map(JobPO::getId).collect(Collectors.toList()), parentComp, ecCompanyId); + for (JobPO jobPO : jobPOS) { + // 刷新组织架构图 + new Thread(new JobTriggerRunnable(jobPO.getId())).start(); + } } } diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 298de2d2..263f5737 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -12,6 +12,7 @@ import com.engine.hrm.entity.FieldSelectOptionBean; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.SelectOptionParam; import com.engine.organization.entity.commom.RecordInfo; +import com.engine.organization.entity.extend.ExtendInfoOperateType; import com.engine.organization.entity.extend.param.ExtendInfoParams; import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.fieldset.param.FieldTransferParam; @@ -104,11 +105,13 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ extendType = "1"; tableName = "JCL_ORG_COMP"; excludeFields.add("parent_company"); + excludeFields.add("ec_company"); break; case "department": extendType = "2"; tableName = "JCL_ORG_DEPT"; excludeFields.add("parent_dept"); + excludeFields.add("ec_department"); break; case "jobtitle": extendType = "3"; @@ -154,15 +157,15 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ mergeList.addAll(customFieldList); List fieldDatas = mergeList.stream().map(item -> FieldTransferParam.builder().id(item.getTableName() + +item.getFieldId()).name(item.getFieldLabel()).build()).collect(Collectors.toList()); - List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "workcode".equals(item.getFieldName()) || "subcompanyid1".equals(item.getFieldName()) || "departmentid".equals(item.getFieldName()))).map(item->item.getTableName()+item.getFieldId()).collect(Collectors.toList()); + List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "workcode".equals(item.getFieldName()) || "subcompanyid1".equals(item.getFieldName()) || "departmentid".equals(item.getFieldName()))).map(item -> item.getTableName() + item.getFieldId()).collect(Collectors.toList()); returnMaps.put("data", fieldDatas); returnMaps.put("selectedKeys", selectedKeys); } else { - List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, "", "1"); + List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, ExtendInfoOperateType.LIST.getValue(), "1"); List filterList = infoPOList.stream().filter(item -> !excludeFields.contains(item.getFieldName()) && 6 != item.getControlType()).collect(Collectors.toList()); List fieldDatas = filterList.stream().map(item -> FieldTransferParam.builder().id(item.getId().toString()).name(item.getFieldNameDesc()).build()).collect(Collectors.toList()); - List selectedKeys = filterList.stream().filter(item -> (0 == item.getIsSystemDefault()) && 1 == item.getIsrequired()).map(ExtendInfoPO::getId).collect(Collectors.toList()); + List selectedKeys = filterList.stream().filter(item -> (0 == item.getIsSystemDefault()) && 1 == item.getIsrequired()).map(item -> item.getId().toString()).collect(Collectors.toList()); returnMaps.put("data", fieldDatas); returnMaps.put("selectedKeys", selectedKeys); } @@ -332,7 +335,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ lsPromptLabel.add(522355); lsPromptLabel.add(522356); lsPromptLabel.add(522357); - lsPromptLabel.add(530411); + //lsPromptLabel.add(530411); for (int i = 0; i < lsPromptLabel.size(); i++) { Map item = new HashMap<>(); @@ -394,7 +397,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ lsPromptLabel.add(522355); lsPromptLabel.add(522356); lsPromptLabel.add(522357); - lsPromptLabel.add(530411); + //lsPromptLabel.add(530411); for (int i = 0; i < lsPromptLabel.size(); i++) { Map item = new HashMap<>(); @@ -629,6 +632,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } } map.put("parent_company", parentCompanyId); + if (null != parentCompanyId) { + map.put("ec_company", EcHrmRelationUtil.getEcCompanyId(parentCompanyId.toString())); + } companyName = split[split.length - 1]; map.put("comp_name", companyName); } @@ -792,7 +798,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } map.put(infoPO.getFieldName(), reallyValue); // 上级分部 - if ("parent_comp".equals(infoPO.getFieldName())) { + if ("ec_company".equals(infoPO.getFieldName())) { String[] split = cellValue.split(">"); if (split.length > 0) { if (split.length > 8) { @@ -840,7 +846,11 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } } map.put("parent_comp", parentCompanyId); + map.put("ec_company", EcHrmRelationUtil.getEcCompanyId(parentCompanyId.toString())); map.put("parent_dept", parentDepartmentId); + if(null!=parentDepartmentId){ + map.put("ec_department", EcHrmRelationUtil.getEcDepartmentId(parentCompanyId.toString())); + } departmentName = split[split.length - 1]; map.put("dept_name", departmentName); } diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 1afd4c2f..6152746f 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -420,7 +420,12 @@ public class JobServiceImpl extends Service implements JobService { DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(department); if (null != jclDepartmentId) { jobById.setParentDept(jclDepartmentId.getId()); + //分部赋值 + jobById.setEcCompany(jclDepartmentId.getEcCompany()); + jobById.setParentComp(jclDepartmentId.getParentComp()); } + // 清空上级岗位 + jobById.setParentJob(null); jobById.setShowOrder(orderNum); insertCount += getJobMapper().insertIgnoreNull(jobById); // 更新组织架构图 diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java index dae9bcbe..b4bd753e 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java @@ -56,7 +56,7 @@ public class HrmImportAdaptExcelE9 extends BaseBean implements IHrmImportAdapt { //标准模板字段 private String tempField = "所属分部,部门," + "编号,姓名,登录名,密码,安全级别,性别," + - "岗位,职务,职务类别,职称,职级," + + "岗位,职务,职务类别,职称," + "职责描述,直接上级,助理,状态," + "办公室,办公地点,办公电话,移动电话,其他电话," + "传真,电子邮件,系统语言,出生日期,民族," + @@ -82,7 +82,7 @@ public class HrmImportAdaptExcelE9 extends BaseBean implements IHrmImportAdapt { //标准导入字段 private String voField = "subcompanyid1,departmentid," + "workcode,lastname,loginid,password,seclevel,sex," + - "jobtitle,jobactivityid,jobgroupid,jobcall,joblevel," + + "jobtitle,jobactivityid,jobgroupid,jobcall," + "jobactivitydesc,managerid,assistantid,status," + "workroom,locationid,telephone,mobile,mobilecall," + "fax,email,systemlanguage,birthday,folk," + diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index 63148f32..537d35b2 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java @@ -232,7 +232,7 @@ public class HrmImportProcessE9 extends BaseBean { Class voClass = HrmResourceVo.class; String field = "id,subcompanyid1,departmentid,workcode,lastname," - + "loginid,password,seclevel,sex,jobtitle,jobcall,joblevel," + + "loginid,password,seclevel,sex,jobtitle,jobcall," + "jobactivitydesc,managerid,assistantid,status,locationid,workroom," + "telephone,mobile,mobilecall,fax,email," + "systemlanguage,birthday,folk,nativeplace,regresidentplace," @@ -634,12 +634,12 @@ public class HrmImportProcessE9 extends BaseBean { } //职级 - if (isInteger(vo.getJoblevel())) { - int joblevel = vo.getJoblevel().equals("") ? 0 : Integer.parseInt(vo.getJoblevel()); - hrm.setJoblevel((short) joblevel); - } else { - hrm.setJoblevel((short) 0); - } + //if (isInteger(vo.getJoblevel())) { + // int joblevel = vo.getJoblevel().equals("") ? 0 : Integer.parseInt(vo.getJoblevel()); + // hrm.setJoblevel((short) joblevel); + //} else { + // hrm.setJoblevel((short) 0); + //} //用工性质 if (vo.getUsekind() != null) { int usekind = getUseKind(vo.getUsekind()); @@ -1203,10 +1203,10 @@ public class HrmImportProcessE9 extends BaseBean { } //职级 - if (isInteger(vo.getJoblevel())) { - int joblevel = vo.getJoblevel().equals("") ? 0 : Integer.parseInt(vo.getJoblevel()); - hrm.setJoblevel((short) joblevel); - } + //if (isInteger(vo.getJoblevel())) { + // int joblevel = vo.getJoblevel().equals("") ? 0 : Integer.parseInt(vo.getJoblevel()); + // hrm.setJoblevel((short) joblevel); + //} //用工性质 if (vo.getUsekind() != null) { From 8e385537da89549b6f9f17de5f92f4d897a3fb72 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 9 Sep 2022 10:25:57 +0800 Subject: [PATCH 20/68] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/entity/company/bo/CompBO.java | 7 ++++--- .../entity/department/bo/DepartmentBO.java | 3 ++- .../organization/entity/extend/bo/ExtendInfoBO.java | 6 +++--- src/com/engine/organization/entity/job/bo/JobBO.java | 2 +- .../engine/organization/entity/staff/bo/StaffBO.java | 3 ++- .../organization/service/impl/CompServiceImpl.java | 2 +- .../service/impl/DepartmentServiceImpl.java | 10 +++++----- .../organization/service/impl/ExtServiceImpl.java | 2 +- .../service/impl/FieldDefinedServiceImpl.java | 6 +++--- .../service/impl/ImportCommonServiceImpl.java | 4 ++-- .../organization/service/impl/JobServiceImpl.java | 8 ++++---- .../service/impl/StaffPlanServiceImpl.java | 2 +- .../organization/service/impl/StaffServiceImpl.java | 6 +++--- 13 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/com/engine/organization/entity/company/bo/CompBO.java b/src/com/engine/organization/entity/company/bo/CompBO.java index 098ecc84..53ad65c1 100644 --- a/src/com/engine/organization/entity/company/bo/CompBO.java +++ b/src/com/engine/organization/entity/company/bo/CompBO.java @@ -9,6 +9,7 @@ import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import weaver.crm.Maint.SectorInfoComInfo; import weaver.general.StringUtil; +import weaver.general.Util; import weaver.hrm.resource.ResourceComInfo; import java.util.*; @@ -36,8 +37,8 @@ public class CompBO { .parentCompany(e.getParentCompany()) .parentCompName(null == poMaps.get(e.getParentCompany()) ? "" : poMaps.get(e.getParentCompany()).getCompName()) .orgCode(e.getOrgCode()) - .industry(new SectorInfoComInfo().getSectorInfoname(e.getIndustry() + "")) - .compPrincipal(getUserNameById(e.getCompPrincipal() + "")) + .industry(new SectorInfoComInfo().getSectorInfoname(Util.null2String(e.getIndustry()))) + .compPrincipal(getUserNameById( Util.null2String(e.getCompPrincipal()))) .showOrder(e.getShowOrder()) .forbiddenTag(e.getForbiddenTag()) .build()).collect(Collectors.toList()); @@ -53,7 +54,7 @@ public class CompBO { e.setChildren(childList); e.setIsUsed(1); } else { - if (collect.contains(e.getId() + "")) { + if (collect.contains(Util.null2String(e.getId()))) { e.setIsUsed(1); } else { e.setIsUsed(0); diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index 2eefd980..40024d09 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -10,6 +10,7 @@ import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.employee.EmployeeMapper; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; +import weaver.general.Util; import java.util.*; import java.util.stream.Collectors; @@ -50,7 +51,7 @@ public class DepartmentBO { e.setChildren(childList); e.setIsUsed(1); } else { - if (collect.contains(e.getId() + "")) { + if (collect.contains(Util.null2String(e.getId()))) { e.setIsUsed(1); } else { e.setIsUsed(0); diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index a1e7073f..20baf30a 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -188,7 +188,7 @@ public class ExtendInfoBO { fieldItem.setLabel(""); } - fieldItem.setType(getFieldHtmlType(extendInfoPO.getControlType() + "")); + fieldItem.setType(getFieldHtmlType(Util.null2String(extendInfoPO.getControlType()))); fieldItem.setKey(extendInfoPO.getFieldName()); // 查看操作 全部设置为只读 if (1 == viewAttr) { @@ -320,7 +320,7 @@ public class ExtendInfoBO { } default: if (detailtype.equals("161") || detailtype.equals("162") || detailtype.equals("256") || detailtype.equals("257")) { - BrowserBean browserbean = new BrowserBean(detailtype + ""); + BrowserBean browserbean = new BrowserBean( Util.null2String(detailtype)); BrowserInitUtil browserInitUtil = new BrowserInitUtil(); String fielddbtype = customValue; if (!customValue.startsWith("browser.")) { @@ -435,7 +435,7 @@ public class ExtendInfoBO { detailtype = "1"; } searchConditionItem.setKey(Util.null2String(fieldvalue)); - searchConditionItem.setValue(fieldvalue + ""); + searchConditionItem.setValue(Util.null2String(fieldvalue)); searchConditionItem.setDetailtype(Util.getIntValue(detailtype, 3)); break; case "6": //附件 diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 93bf2ff6..74b6ab5a 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -110,7 +110,7 @@ public class JobBO { e.setChildren(childList); e.setIsUsed(1); } else { - if (collect.contains(e.getId() + "")) { + if (collect.contains(Util.null2String(e.getId()))) { e.setIsUsed(1); } else { e.setIsUsed(0); diff --git a/src/com/engine/organization/entity/staff/bo/StaffBO.java b/src/com/engine/organization/entity/staff/bo/StaffBO.java index 929699c9..5efced65 100644 --- a/src/com/engine/organization/entity/staff/bo/StaffBO.java +++ b/src/com/engine/organization/entity/staff/bo/StaffBO.java @@ -3,6 +3,7 @@ package com.engine.organization.entity.staff.bo; import com.engine.organization.entity.staff.param.StaffSearchParam; import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.transmethod.StaffTransMethod; +import weaver.general.Util; import java.util.Date; @@ -45,7 +46,7 @@ public class StaffBO { String sb = "编制数:" + parseNull(staffPO.getStaffNum()) + ",在编数:" + parseNull(staffPO.getPermanentNum()) + ",冻结数:" + parseNull(staffPO.getFreezeNum()) + - ",缺编状态:" + StaffTransMethod.getLackSpan(staffPO.getLackStatus() + ""); + ",缺编状态:" + StaffTransMethod.getLackSpan(Util.null2String(staffPO.getLackStatus())); staffPO.setStaffDesc(sb); } diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 1593e546..62d4d58c 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -370,7 +370,7 @@ public class CompServiceImpl extends Service implements CompService { OrganizationAssert.isFalse(disableIds.contains(targetCompanyId), "请勿选择当前分部本身及其子分部"); CompPO compPO = getCompMapper().listById(companyId); compPO.setEcCompany(targetCompanyId); - CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(targetCompanyId + ""); + CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(Util.null2String(targetCompanyId)); if (null != jclCompanyId) { compPO.setParentCompany(jclCompanyId.getId()); } else { diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index e0faaffd..66e879d4 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -238,7 +238,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService params.put("parent_dept", jclDepartmentId.getId()); // 部门不为空,自动指定所属分部 params.put("parent_comp", jclDepartmentId.getParentComp()); - params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(jclDepartmentId.getParentComp() + "")); + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(Util.null2String(jclDepartmentId.getParentComp()))); } } @@ -293,7 +293,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService params.put("parent_dept", jclDepartmentId.getId()); // 部门不为空,自动指定所属分部 params.put("parent_comp", jclDepartmentId.getParentComp()); - params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(jclDepartmentId.getParentComp() + "")); + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(Util.null2String(jclDepartmentId.getParentComp()))); } } else { @@ -558,7 +558,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService HasRightUtil.hasRight(user, RIGHT_NAME, false); // 被合并部门 Long ecParamDepartment = mergeParam.getDepartment(); - DepartmentPO targetDepartment = EcHrmRelationUtil.getJclDepartmentId(ecParamDepartment + ""); + DepartmentPO targetDepartment = EcHrmRelationUtil.getJclDepartmentId( Util.null2String(ecParamDepartment)); // 断言判断 OrganizationAssert.isFalse(null == targetDepartment, "被合并部门数据有误,暂时无法合并"); @@ -668,11 +668,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService Long company = moveParam.getCompany(); OrganizationAssert.notNull(company, "请选择要转移到的分部"); deptById.setEcCompany(company); - deptById.setParentComp(Objects.requireNonNull(EcHrmRelationUtil.getJclCompanyId(company + "")).getId()); + deptById.setParentComp(Objects.requireNonNull(EcHrmRelationUtil.getJclCompanyId( Util.null2String(company))).getId()); deptById.setParentDept(null); } else if ("1".equals(moveParam.getMoveType())) { Long department = moveParam.getDepartment(); - Long departmentId = Objects.requireNonNull(EcHrmRelationUtil.getJclDepartmentId(department + "")).getId(); + Long departmentId = Objects.requireNonNull(EcHrmRelationUtil.getJclDepartmentId( Util.null2String(department))).getId(); OrganizationAssert.notNull(departmentId, "请选择要转移到的部门"); List deptListByPId = getDepartmentMapper().getDeptListByPId(moveParam.getId()); Set disableIds = new HashSet<>(); diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index ac276c00..53b13a45 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -144,7 +144,7 @@ public class ExtServiceImpl extends Service implements ExtService { for (Map.Entry> entry : groupMap.entrySet()) { Map tableMap = new HashMap<>(); tableMap.put("hide", false); - tableMap.put("tabname", getExtendGroupMapper().getGroupNameById(entry.getKey() + "")); + tableMap.put("tabname", getExtendGroupMapper().getGroupNameById(Util.null2String(entry.getKey()))); Map tabinfoMap = new HashMap<>(); tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, entry.getValue(), viewAttr, showLabel)); tabinfoMap.put("rownum", "rownum" + entry.getKey()); diff --git a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java index f93333be..e66a5f0d 100644 --- a/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java +++ b/src/com/engine/organization/service/impl/FieldDefinedServiceImpl.java @@ -367,9 +367,9 @@ public class FieldDefinedServiceImpl extends Service implements FieldDefinedServ recordInfo.put("fieldname", fieldName); recordInfo.put("fieldType", fieldType); recordInfo.put("fieldTypeObj", fieldTypeObj); - recordInfo.put("enable", extendInfoPO.getIsenable() + ""); - recordInfo.put("required", extendInfoPO.getIsrequired() + ""); - recordInfo.put("isModify", extendInfoPO.getEditShow() + ""); + recordInfo.put("enable", Util.null2String(extendInfoPO.getIsenable())); + recordInfo.put("required", Util.null2String(extendInfoPO.getIsrequired())); + recordInfo.put("isModify", Util.null2String(extendInfoPO.getEditShow())); recordInfo.put("viewAttr", isUsed || isSysField ? 1 : 2); recordInfo.put("key", "" + showOrder); recordInfo.put("fieldidrowKey", fieldIdRowKey); diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 263f5737..4d9ad7fe 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -1085,9 +1085,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ } map.put("parent_comp", parentCompanyId); map.put("parent_dept", parentDepartmentId); - map.put("ec_company", EcHrmRelationUtil.getEcCompanyId(parentCompanyId + "")); + map.put("ec_company", EcHrmRelationUtil.getEcCompanyId( Util.null2String(parentCompanyId))); if (null != parentDepartmentId) { - map.put("ec_department", EcHrmRelationUtil.getEcDepartmentId(parentDepartmentId + "")); + map.put("ec_department", EcHrmRelationUtil.getEcDepartmentId(Util.null2String(parentDepartmentId))); } map.put("parent_job", parentJobId); jobName = split[split.length - 1]; diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 6152746f..8426c3e5 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -347,11 +347,11 @@ public class JobServiceImpl extends Service implements JobService { params.put("is_key", null == searchParam.getIsKey() ? 0 : searchParam.getIsKey()); Long ecDepartment = searchParam.getEcDepartment(); - DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(ecDepartment + ""); + DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(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() + "")); + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(Util.null2String(jclDepartment.getParentComp()))); } if (StringUtils.isBlank(params.get("show_order").toString())) { @@ -386,11 +386,11 @@ public class JobServiceImpl extends Service implements JobService { // 更新主表数据 params.put("is_key", searchParam.getIsKey()); Long ecDepartment = searchParam.getEcDepartment(); - DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(ecDepartment + ""); + DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(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() + "")); + params.put("ec_company", EcHrmRelationUtil.getEcCompanyId(Util.null2String(jclDepartment.getParentComp()))); } params.put("jobactivityid", JOB_ACTIVITY_ID); new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, params, oldJobPO).sync(); diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index f8242c93..e9c0ff5b 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -206,7 +206,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { OrganizationAssert.notNull(staffPlanPO, "选择的数据不存在,或数据已删除"); planNoItem.setValue(staffPlanPO.getPlanNo()); planNameItem.setValue(staffPlanPO.getPlanName()); - planYearItem.setValue(staffPlanPO.getPlanYear() + ""); + planYearItem.setValue(Util.null2String(staffPlanPO.getPlanYear())); timeStartItem.setValue(DateUtil.getDate(staffPlanPO.getTimeStart(), "yyyy-MM-dd")); timeEndItem.setValue(DateUtil.getDate(staffPlanPO.getTimeEnd(), "yyyy-MM-dd")); diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 34c19290..e7e4343b 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -113,11 +113,11 @@ public class StaffServiceImpl extends Service implements StaffService { StaffPO staffPO = StaffBO.convertParamToPO(param, (long) user.getUID()); checkRequired(staffPO); // 赋值 - CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(staffPO.getEcCompany() + ""); + CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(Util.null2String(staffPO.getEcCompany())); if (null != jclCompanyId) { staffPO.setCompId(jclCompanyId.getId()); } - DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(staffPO.getEcDepartment() + ""); + DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(staffPO.getEcDepartment())); if (null != jclDepartmentId) { staffPO.setDeptId(jclDepartmentId.getId()); } @@ -264,7 +264,7 @@ public class StaffServiceImpl extends Service implements StaffService { } staffNumItem.setValue(staffPO.getStaffNum()); - controlPolicyItem.setValue(staffPO.getControlPolicy() + ""); + controlPolicyItem.setValue(Util.null2String(staffPO.getControlPolicy())); descriptionItem.setValue(staffPO.getDescription()); } selectItems.add(planIdItem); From 34d44b6c91f0e9aee182f304eb1590ea0b5256a8 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 9 Sep 2022 14:41:04 +0800 Subject: [PATCH 21/68] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../department/param/DeptCopyParam.java | 9 ++ .../service/impl/DepartmentServiceImpl.java | 139 ++++++++++++------ 2 files changed, 100 insertions(+), 48 deletions(-) diff --git a/src/com/engine/organization/entity/department/param/DeptCopyParam.java b/src/com/engine/organization/entity/department/param/DeptCopyParam.java index 057cf0fb..eb4bfd86 100644 --- a/src/com/engine/organization/entity/department/param/DeptCopyParam.java +++ b/src/com/engine/organization/entity/department/param/DeptCopyParam.java @@ -23,4 +23,13 @@ public class DeptCopyParam { * 是否复制岗位 */ private String copyJob; + /** + * 是否复制子部门信息 + */ + private String copySubDept; + /** + * 是否复制子部门岗位信息 + */ + private String copySubJob; + } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 66e879d4..b6756f85 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -50,6 +50,7 @@ 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 com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import weaver.conn.RecordSet; @@ -473,13 +474,16 @@ public class DepartmentServiceImpl extends Service implements DepartmentService List condition = new ArrayList<>(); SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "复制到", "164", "company", ""); compBrowserItem.setRules("required|string"); - List selectOptions = new ArrayList<>(); - SearchConditionOption Option = new SearchConditionOption("1", ""); - selectOptions.add(Option); - SearchConditionItem isCheckItem = OrganizationFormItemUtil.selectItem(user, selectOptions, 2, 5, 10, false, "是否复制岗位信息", "copyJob"); + SearchConditionItem isCheckItem = OrganizationFormItemUtil.selectItem(user, Lists.newArrayList(new SearchConditionOption("1", "")), 2, 5, 10, false, "是否复制岗位信息", "copyJob"); isCheckItem.setDetailtype(2); + SearchConditionItem copySubDeptItem = OrganizationFormItemUtil.selectItem(user, Lists.newArrayList(new SearchConditionOption("1", "")), 2, 5, 10, false, "是否复制子部门信息", "copySubDept"); + copySubDeptItem.setDetailtype(2); + SearchConditionItem copySubJob = OrganizationFormItemUtil.selectItem(user, Lists.newArrayList(new SearchConditionOption("1", "")), 2, 5, 10, false, "是否复制子部门岗位信息", "copySubJob"); + copySubJob.setDetailtype(2); condition.add(compBrowserItem); condition.add(isCheckItem); + condition.add(copySubDeptItem); + condition.add(copySubJob); addGroups.add(new SearchConditionGroup("", true, condition)); return addGroups; } @@ -492,50 +496,74 @@ public class DepartmentServiceImpl extends Service implements DepartmentService */ @Override public int copyDepartment(DeptCopyParam copyParam) { - // TODO 是否复制子部门信息,是否复制子部门岗位信息 + // 批量复制,后续优化 HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notBlank(copyParam.getCompany(), "请指定需要复制的公司/分部"); int insertCount = 0; + // 需复制的部门 List idList = Arrays.stream(copyParam.getIds().split(",")).map(Long::parseLong).collect(Collectors.toList()); Integer maxShowOrder = getDepartmentMapper().getMaxShowOrder(); maxShowOrder = null == maxShowOrder ? 0 : maxShowOrder; - for (int i = 0; i < idList.size(); i++) { - DepartmentPO deptById = getDepartmentMapper().getDeptById(idList.get(i)); - long timeMillis = System.currentTimeMillis(); - deptById.setDeptName(deptById.getDeptName() + "_" + timeMillis); - deptById.setDeptNameShort(deptById.getDeptNameShort()); - // 处理自动编号 - deptById.setDeptNo(CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, deptById.getDeptNo(), timeMillis)); - deptById.setParentComp(EcHrmRelationUtil.getJclCompanyId(copyParam.getCompany()).getId()); - deptById.setEcCompany(Long.parseLong(copyParam.getCompany())); - deptById.setParentDept(null); - // 显示顺序字段 - deptById.setShowOrder(maxShowOrder + i + 1); - deptById.setCreateTime(new Date()); - // 新增EC表部门 - Map syncMap = addEcDepartment(deptById); - String ecDepartmentID = Util.null2String(syncMap.get("id")); - OrganizationAssert.isTrue(StringUtils.isNotBlank(ecDepartmentID), syncMap.get("message").toString()); - // 查询UUID - RecordInfo recordInfo = getSystemDataMapper().getHrmObjectByID(HRM_DEPARTMENT, ecDepartmentID); - deptById.setUuid(recordInfo.getUuid()); - insertCount += getDepartmentMapper().insertIgnoreNull(deptById); - // 更新组织架构图 - new Thread(new DepartmentTriggerRunnable(deptById.getId())).start(); - - // 新增岗位信息 - if ("1".equals(copyParam.getCopyJob())) { - List jobPOS = MapperProxyFactory.getProxy(JobMapper.class).listJobsByDepartmentId(idList.get(i)); - Integer maxJobOrder = MapperProxyFactory.getProxy(JobMapper.class).getMaxShowOrder(); - if (maxJobOrder == null) { - maxJobOrder = 0; - } - recursionCopyJob((long) user.getUID(), jobPOS, deptById.getParentComp(), deptById.getId(), maxJobOrder, timeMillis); - } + for (Long departmentId : idList) { + // 复制当前部门 + recursionCopyDept(departmentId, null, Long.parseLong(copyParam.getCompany()), maxShowOrder, copyParam.getCopyJob(), copyParam.getCopySubDept(), copyParam.getCopySubJob()); } return insertCount; } + private void recursionCopyDept(Long originalDeptId, Long parentDepartmentId, Long companyId, Integer maxShowOrder, String copyJob, String copySubDept, String copySubJob) { + // 源部门 + DepartmentPO deptById = getDepartmentMapper().getDeptById(originalDeptId); + long timeMillis = System.currentTimeMillis(); + deptById.setDeptName(deptById.getDeptName() + "_" + timeMillis); + deptById.setDeptNameShort(deptById.getDeptNameShort() + "_" + timeMillis); + // 处理自动编号 + deptById.setDeptNo(CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, deptById.getDeptNo(), timeMillis)); + // 设置上级分部 + deptById.setParentComp(EcHrmRelationUtil.getJclCompanyId(Util.null2String(companyId)).getId()); + deptById.setEcCompany(companyId); + deptById.setParentDept(parentDepartmentId); + if (null != parentDepartmentId) { + deptById.setEcDepartment(Long.parseLong(EcHrmRelationUtil.getEcDepartmentId(Util.null2String(parentDepartmentId)))); + } + // 显示顺序字段 + deptById.setShowOrder(++maxShowOrder); + deptById.setCreator((long) user.getUID()); + deptById.setCreateTime(new Date()); + + // 新增EC表部门 + Map syncMap = addEcDepartment(deptById); + String ecDepartmentID = Util.null2String(syncMap.get("id")); + OrganizationAssert.isTrue(StringUtils.isNotBlank(ecDepartmentID), syncMap.get("message").toString()); + // 查询UUID + RecordInfo recordInfo = getSystemDataMapper().getHrmObjectByID(HRM_DEPARTMENT, ecDepartmentID); + deptById.setUuid(recordInfo.getUuid()); + getDepartmentMapper().insertIgnoreNull(deptById); + // 更新组织架构图 + new Thread(new DepartmentTriggerRunnable(deptById.getId())).start(); + + // 复制当前部门岗位信息 + if ("1".equals(copyJob)) { + List jobPOS = MapperProxyFactory.getProxy(JobMapper.class).listJobsByDepartmentId(originalDeptId); + jobPOS = jobPOS.stream().filter(item -> null == item.getParentJob() || 0 == item.getParentJob()).collect(Collectors.toList()); + Integer maxJobOrder = MapperProxyFactory.getProxy(JobMapper.class).getMaxShowOrder(); + if (maxJobOrder == null) { + maxJobOrder = 0; + } + recursionCopyJob(jobPOS, companyId, deptById.getId(), null, maxJobOrder, timeMillis); + } + + // 是否复制子部门信息 + if ("1".equals(copySubDept)) { + // 查询当前部门的子部门 + List deptListByPId = getDepartmentMapper().getDeptListByPId(originalDeptId); + for (DepartmentPO departmentPO : deptListByPId) { + // 复制子部门信息、子部门岗位信息 + recursionCopyDept(departmentPO.getId(), deptById.getId(), companyId, maxShowOrder, copySubJob, copySubDept, copySubJob); + } + } + } + @Override public List getMergeForm(Long id) { List addGroups = new ArrayList<>(); @@ -558,7 +586,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService HasRightUtil.hasRight(user, RIGHT_NAME, false); // 被合并部门 Long ecParamDepartment = mergeParam.getDepartment(); - DepartmentPO targetDepartment = EcHrmRelationUtil.getJclDepartmentId( Util.null2String(ecParamDepartment)); + DepartmentPO targetDepartment = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(ecParamDepartment)); // 断言判断 OrganizationAssert.isFalse(null == targetDepartment, "被合并部门数据有误,暂时无法合并"); @@ -591,6 +619,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } // 查询该部门一级岗位、更新岗位所属分部、所属部门 List firstChildJobList = getJobMapper().listJobsByDepartmentId(mergeParam.getId()); + firstChildJobList = firstChildJobList.stream().filter(item -> null == item.getParentJob() || 0 == item.getParentJob()).collect(Collectors.toList()); // 批量更新部门、所属分部 RecordSet rs = new RecordSet(); String targetEcDeptId = EcHrmRelationUtil.getEcDepartmentId(targetDepartment.getId().toString()); @@ -668,11 +697,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService Long company = moveParam.getCompany(); OrganizationAssert.notNull(company, "请选择要转移到的分部"); deptById.setEcCompany(company); - deptById.setParentComp(Objects.requireNonNull(EcHrmRelationUtil.getJclCompanyId( Util.null2String(company))).getId()); + deptById.setParentComp(Objects.requireNonNull(EcHrmRelationUtil.getJclCompanyId(Util.null2String(company))).getId()); deptById.setParentDept(null); } else if ("1".equals(moveParam.getMoveType())) { Long department = moveParam.getDepartment(); - Long departmentId = Objects.requireNonNull(EcHrmRelationUtil.getJclDepartmentId( Util.null2String(department))).getId(); + Long departmentId = Objects.requireNonNull(EcHrmRelationUtil.getJclDepartmentId(Util.null2String(department))).getId(); OrganizationAssert.notNull(departmentId, "请选择要转移到的部门"); List deptListByPId = getDepartmentMapper().getDeptListByPId(moveParam.getId()); Set disableIds = new HashSet<>(); @@ -827,29 +856,42 @@ public class DepartmentServiceImpl extends Service implements DepartmentService /** * 递归复制岗位信息 * - * @param creator * @param jobPOS * @param parentCompId * @param parentDeptId * @param orderNum */ - private void recursionCopyJob(Long creator, List jobPOS, Long parentCompId, Long parentDeptId, int orderNum, long timeMillis) { + private void recursionCopyJob(List jobPOS, Long parentCompId, Long parentDeptId, Long currentParentJobId, int orderNum, long timeMillis) { for (JobPO jobPO : jobPOS) { orderNum++; + + // 查询源岗位的下级岗位 + List jobsByPid = MapperProxyFactory.getProxy(JobMapper.class).getJobsByPid(jobPO.getId()); + // 处理自动编号 jobPO.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, jobPO.getJobNo(), timeMillis)); - jobPO.setParentDept(parentDeptId); - jobPO.setCreator(creator); + jobPO.setEcDepartment(parentDeptId); + DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(parentDeptId)); + if (null != jclDepartmentId) { + jobPO.setParentDept(jclDepartmentId.getId()); + } + jobPO.setEcCompany(parentCompId); + CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(Util.null2String(parentCompId)); + if (null != jclCompanyId) { + jobPO.setParentComp(parentCompId); + } + // 指定上级岗位 + jobPO.setParentJob(currentParentJobId); + jobPO.setCreator((long) user.getUID()); jobPO.setCreateTime(new Date()); - jobPO.setParentComp(parentCompId); jobPO.setShowOrder(orderNum); MapperProxyFactory.getProxy(JobMapper.class).insertIgnoreNull(jobPO); // 更新组织架构图 new Thread(new JobTriggerRunnable(jobPO.getId())).start(); // 处理子级元素 - List jobsByPid = MapperProxyFactory.getProxy(JobMapper.class).getJobsByPid(jobPO.getId()); + if (CollectionUtils.isNotEmpty(jobsByPid)) { - recursionCopyJob(creator, jobsByPid, parentCompId, parentDeptId, orderNum, timeMillis); + recursionCopyJob(jobsByPid, parentCompId, parentDeptId, jobPO.getId(), orderNum, timeMillis); } } } @@ -919,6 +961,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService */ private void refreshJobComp(Long parentDepartment, Long parentComp) { List jobPOS = getJobMapper().listJobsByDepartmentId(parentDepartment); + jobPOS = jobPOS.stream().filter(item -> null == item.getParentJob() || 0 == item.getParentJob()).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(jobPOS)) { String ecCompanyId = EcHrmRelationUtil.getEcCompanyId(parentComp.toString()); getJobMapper().updateJobCompany(jobPOS.stream().map(JobPO::getId).collect(Collectors.toList()), parentComp, ecCompanyId); From 76b9cd2a8952293c3bf12d17ff5795b87feb2f74 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 9 Sep 2022 15:29:21 +0800 Subject: [PATCH 22/68] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DepartmentServiceImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index b6756f85..b2750b9e 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -724,6 +724,14 @@ public class DepartmentServiceImpl extends Service implements DepartmentService refreshJobComp(deptById.getId(), deptById.getParentComp()); List deptList = getDepartmentMapper().getDeptListByPId(deptById.getId()); String ecCompanyId = EcHrmRelationUtil.getEcCompanyId(Util.null2String(deptById.getParentComp())); + // 更新当前部门下的人员 + List hrmResourceIds = getSystemDataMapper().getHrmResourceIdsByDept(deptById.getId().toString()); + String ecDepartmentId = EcHrmRelationUtil.getEcDepartmentId(deptById.getId().toString()); + new RecordSet().executeUpdate("update hrmresource set SUBCOMPANYID1 =? where DEPARTMENTID =?", ecCompanyId, ecDepartmentId); + // 更新人员组织架构图 + for (Long hrmResourceId : hrmResourceIds) { + new Thread(new HrmResourceTriggerRunnable(hrmResourceId)).start(); + } forbiddenChildTag(deptById.getParentComp(), ecCompanyId, deptList); // 递归更新下级部门、岗位 return updateBaseDept; @@ -878,7 +886,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService jobPO.setEcCompany(parentCompId); CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(Util.null2String(parentCompId)); if (null != jclCompanyId) { - jobPO.setParentComp(parentCompId); + jobPO.setParentComp(jclCompanyId.getId()); } // 指定上级岗位 jobPO.setParentJob(currentParentJobId); From fbd608a52a4bd159b66719d17b6befb1737356e2 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 14 Sep 2022 17:14:12 +0800 Subject: [PATCH 23/68] =?UTF-8?q?=E9=A1=B6=E9=83=A8=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/service/CompService.java | 3 ++- .../organization/service/DepartmentService.java | 3 ++- .../engine/organization/service/GradeService.java | 4 +++- src/com/engine/organization/service/JobService.java | 3 ++- .../engine/organization/service/LevelService.java | 4 +++- .../engine/organization/service/SchemeService.java | 3 ++- .../organization/service/SequenceService.java | 4 +++- .../organization/service/StaffPlanService.java | 4 +++- .../engine/organization/service/StaffService.java | 2 ++ .../organization/service/impl/CompServiceImpl.java | 2 +- .../service/impl/DepartmentServiceImpl.java | 2 +- .../organization/service/impl/GradeServiceImpl.java | 2 +- .../organization/service/impl/JobServiceImpl.java | 2 +- .../organization/service/impl/LevelServiceImpl.java | 2 +- .../service/impl/SchemeServiceImpl.java | 2 +- .../service/impl/SequenceServiceImpl.java | 2 +- .../service/impl/StaffPlanServiceImpl.java | 2 +- .../organization/service/impl/StaffServiceImpl.java | 10 +++++++--- src/com/engine/organization/util/MenuBtn.java | 13 +++++++------ .../engine/organization/wrapper/CompWrapper.java | 3 ++- .../organization/wrapper/DepartmentWrapper.java | 3 ++- .../engine/organization/wrapper/GradeWrapper.java | 3 ++- src/com/engine/organization/wrapper/JobWrapper.java | 3 ++- .../engine/organization/wrapper/LevelWrapper.java | 3 ++- .../engine/organization/wrapper/SchemeWrapper.java | 3 ++- .../organization/wrapper/SequenceWrapper.java | 3 ++- .../organization/wrapper/StaffPlanWrapper.java | 3 ++- .../engine/organization/wrapper/StaffWrapper.java | 1 + 28 files changed, 61 insertions(+), 33 deletions(-) diff --git a/src/com/engine/organization/service/CompService.java b/src/com/engine/organization/service/CompService.java index 7ac016f7..fede7178 100644 --- a/src/com/engine/organization/service/CompService.java +++ b/src/com/engine/organization/service/CompService.java @@ -3,6 +3,7 @@ package com.engine.organization.service; import com.api.browser.bean.SearchConditionGroup; import com.engine.organization.entity.company.param.CompSearchParam; import com.engine.organization.entity.department.param.DepartmentMoveParam; +import com.engine.organization.util.MenuBtn; import java.util.Collection; import java.util.List; @@ -69,7 +70,7 @@ public interface CompService { * * @return */ - Map getHasRight(); + Map> getHasRight(); /** * 获取基本信息表单 diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index 0433a164..d405d497 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -5,6 +5,7 @@ import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.page.PageInfo; import java.util.Collection; @@ -97,7 +98,7 @@ public interface DepartmentService { * * @return */ - Map getHasRight(); + Map> getHasRight(); /** * 获取基本信息表单 diff --git a/src/com/engine/organization/service/GradeService.java b/src/com/engine/organization/service/GradeService.java index 46a59c2c..77f1396b 100644 --- a/src/com/engine/organization/service/GradeService.java +++ b/src/com/engine/organization/service/GradeService.java @@ -1,8 +1,10 @@ package com.engine.organization.service; import com.engine.organization.entity.scheme.param.GradeSearchParam; +import com.engine.organization.util.MenuBtn; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -70,7 +72,7 @@ public interface GradeService { * 获取列表页面按钮信息 * @return */ - Map getHasRight(); + Map> getHasRight(); /** * 获取列表tabs diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java index dab71f97..0bef172f 100644 --- a/src/com/engine/organization/service/JobService.java +++ b/src/com/engine/organization/service/JobService.java @@ -4,6 +4,7 @@ import com.api.browser.bean.SearchConditionGroup; import com.engine.organization.entity.job.param.JobMergeParam; import com.engine.organization.entity.job.param.JobSearchParam; import com.engine.organization.entity.searchtree.SearchTreeParams; +import com.engine.organization.util.MenuBtn; import java.util.Collection; import java.util.List; @@ -36,7 +37,7 @@ public interface JobService { * * @return */ - Map getHasRight(); + Map> getHasRight(); /** * 获取搜索条件 diff --git a/src/com/engine/organization/service/LevelService.java b/src/com/engine/organization/service/LevelService.java index 4a8bffff..51613792 100644 --- a/src/com/engine/organization/service/LevelService.java +++ b/src/com/engine/organization/service/LevelService.java @@ -2,8 +2,10 @@ package com.engine.organization.service; import com.engine.organization.entity.TreeData; import com.engine.organization.entity.scheme.param.LevelSearchParam; +import com.engine.organization.util.MenuBtn; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -71,7 +73,7 @@ public interface LevelService { * 获取列表页面按钮信息 * @return */ - Map getTableBtn(); + Map> getTableBtn(); /** * 获取列表tabs diff --git a/src/com/engine/organization/service/SchemeService.java b/src/com/engine/organization/service/SchemeService.java index f1d6e387..f8e6307b 100644 --- a/src/com/engine/organization/service/SchemeService.java +++ b/src/com/engine/organization/service/SchemeService.java @@ -2,6 +2,7 @@ package com.engine.organization.service; import com.engine.organization.entity.fieldset.vo.TypeTreeVO; import com.engine.organization.entity.scheme.param.SchemeSearchParam; +import com.engine.organization.util.MenuBtn; import java.util.Collection; import java.util.List; @@ -77,7 +78,7 @@ public interface SchemeService { * * @return */ - Map getTableBtn(); + Map> getTableBtn(); /** * 获取左侧树 diff --git a/src/com/engine/organization/service/SequenceService.java b/src/com/engine/organization/service/SequenceService.java index 3cbfb7a3..e03ca0e7 100644 --- a/src/com/engine/organization/service/SequenceService.java +++ b/src/com/engine/organization/service/SequenceService.java @@ -1,8 +1,10 @@ package com.engine.organization.service; import com.engine.organization.entity.sequence.param.SequenceSearchParam; +import com.engine.organization.util.MenuBtn; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -70,7 +72,7 @@ public interface SequenceService { * 获取列表页面按钮信息 * @return */ - Map getHasRight(); + Map> getHasRight(); /** * 获取列表tabs diff --git a/src/com/engine/organization/service/StaffPlanService.java b/src/com/engine/organization/service/StaffPlanService.java index a5d1d45e..258d0fd9 100644 --- a/src/com/engine/organization/service/StaffPlanService.java +++ b/src/com/engine/organization/service/StaffPlanService.java @@ -1,8 +1,10 @@ package com.engine.organization.service; import com.engine.organization.entity.staff.param.StaffPlanSearchParam; +import com.engine.organization.util.MenuBtn; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -70,5 +72,5 @@ public interface StaffPlanService { * 获取列表页面按钮信息 * @return */ - Map getHasRight(); + Map> getHasRight(); } diff --git a/src/com/engine/organization/service/StaffService.java b/src/com/engine/organization/service/StaffService.java index 2090dbf1..10bc523d 100644 --- a/src/com/engine/organization/service/StaffService.java +++ b/src/com/engine/organization/service/StaffService.java @@ -1,8 +1,10 @@ package com.engine.organization.service; import com.engine.organization.entity.staff.param.StaffSearchParam; +import com.engine.organization.util.MenuBtn; import java.util.Collection; +import java.util.List; import java.util.Map; /** diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 62d4d58c..969229e1 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -277,7 +277,7 @@ public class CompServiceImpl extends Service implements CompService { } @Override - public Map getHasRight() { + public Map> getHasRight() { return MenuBtn.getDatasNoBtnColum(); } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index b2750b9e..1ff4f5d5 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -378,7 +378,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } @Override - public Map getHasRight() { + public Map> getHasRight() { return MenuBtn.getDatasHasCopy(); } diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index c6d5adbe..fdd2df61 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -196,7 +196,7 @@ public class GradeServiceImpl extends Service implements GradeService { } @Override - public Map getHasRight() { + public Map> getHasRight() { return MenuBtn.getCommonBtnDatas(); } diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 8426c3e5..a2092b13 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -191,7 +191,7 @@ public class JobServiceImpl extends Service implements JobService { } @Override - public Map getHasRight() { + public Map> getHasRight() { return MenuBtn.getDatasHasCopy(); } diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 0d302b15..92804165 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -163,7 +163,7 @@ public class LevelServiceImpl extends Service implements LevelService { } @Override - public Map getTableBtn() { + public Map> getTableBtn() { return MenuBtn.getCommonBtnDatas(); } diff --git a/src/com/engine/organization/service/impl/SchemeServiceImpl.java b/src/com/engine/organization/service/impl/SchemeServiceImpl.java index 4cb8f04a..c4abdcef 100644 --- a/src/com/engine/organization/service/impl/SchemeServiceImpl.java +++ b/src/com/engine/organization/service/impl/SchemeServiceImpl.java @@ -146,7 +146,7 @@ public class SchemeServiceImpl extends Service implements SchemeService { } @Override - public Map getTableBtn() { + public Map> getTableBtn() { return MenuBtn.getCommonBtnDatas(); } diff --git a/src/com/engine/organization/service/impl/SequenceServiceImpl.java b/src/com/engine/organization/service/impl/SequenceServiceImpl.java index eb83799a..402c14d6 100644 --- a/src/com/engine/organization/service/impl/SequenceServiceImpl.java +++ b/src/com/engine/organization/service/impl/SequenceServiceImpl.java @@ -160,7 +160,7 @@ public class SequenceServiceImpl extends Service implements SequenceService { } @Override - public Map getHasRight() { + public Map> getHasRight() { return MenuBtn.getCommonBtnDatas(); } diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index e9c0ff5b..2775b5fe 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -236,7 +236,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { } @Override - public Map getHasRight() { + public Map> getHasRight() { return MenuBtn.getCommonBtnDatas(); } diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index e7e4343b..46146de0 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -296,7 +296,10 @@ public class StaffServiceImpl extends Service implements StaffService { @Override public Map getHasRight() { - Map datas = MenuBtn.getCommonBtnDatas(); + Map> datas = MenuBtn.getCommonBtnDatas(); + datas.get("topMenu").add(MenuBtn.builder().isBatch("1").isTop("1").menuFun("import").menuIcon("icon-coms-leading-in").menuName("批量导入").type("BTN_BatchImport").build()); + datas.get("rightMenu").add(MenuBtn.builder().isBatch("1").isTop("0").menuFun("import").menuIcon("icon-coms-leading-in").menuName("批量导入").type("BTN_BatchImport").build()); + Map map = new HashMap<>(datas); List addGroups = new ArrayList<>(); List selectItems = new ArrayList<>(); // 方案 @@ -304,10 +307,11 @@ public class StaffServiceImpl extends Service implements StaffService { planIdItem.setRules("required|string"); planIdItem.setHelpfulTip("请选择编制方案后查看数据"); planIdItem.setLabelcol(2); + selectItems.add(planIdItem); addGroups.add(new SearchConditionGroup("基本信息", true, selectItems)); - datas.put("condition", addGroups); - return datas; + map.put("condition", addGroups); + return map; } /** diff --git a/src/com/engine/organization/util/MenuBtn.java b/src/com/engine/organization/util/MenuBtn.java index 3e2b74df..a7d3521f 100644 --- a/src/com/engine/organization/util/MenuBtn.java +++ b/src/com/engine/organization/util/MenuBtn.java @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -94,8 +95,8 @@ public class MenuBtn { * 获取常用按钮列表 * @return */ - public static Map getCommonBtnDatas() { - Map btnDatas = new HashMap<>(); + public static Map> getCommonBtnDatas() { + Map> btnDatas = new HashMap<>(); ArrayList topMenuList = new ArrayList<>(); ArrayList rightMenuList = new ArrayList<>(); // 新增 @@ -117,8 +118,8 @@ public class MenuBtn { * 获取常用按钮列表 * @return */ - public static Map getDatasNoBtnColum() { - Map btnDatas = new HashMap<>(); + public static Map> getDatasNoBtnColum() { + Map> btnDatas = new HashMap<>(); ArrayList topMenuList = new ArrayList<>(); ArrayList rightMenuList = new ArrayList<>(); // 新增 @@ -140,8 +141,8 @@ public class MenuBtn { * 获取常用按钮列表 * @return */ - public static Map getDatasHasCopy() { - Map btnDatas = new HashMap<>(); + public static Map> getDatasHasCopy() { + Map> btnDatas = new HashMap<>(); ArrayList topMenuList = new ArrayList<>(); ArrayList rightMenuList = new ArrayList<>(); // 新增 diff --git a/src/com/engine/organization/wrapper/CompWrapper.java b/src/com/engine/organization/wrapper/CompWrapper.java index b694a733..17aba1f2 100644 --- a/src/com/engine/organization/wrapper/CompWrapper.java +++ b/src/com/engine/organization/wrapper/CompWrapper.java @@ -13,6 +13,7 @@ import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.service.CompService; import com.engine.organization.service.impl.CompServiceImpl; import com.engine.organization.thread.CompanyTriggerRunnable; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; import weaver.hrm.User; @@ -145,7 +146,7 @@ public class CompWrapper extends OrganizationWrapper { * * @return */ - public Map getHasRight() { + public Map> getHasRight() { return getCompService(user).getHasRight(); } diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index d81f1564..35a6c36d 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -16,6 +16,7 @@ import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.service.DepartmentService; import com.engine.organization.service.impl.DepartmentServiceImpl; import com.engine.organization.thread.DepartmentTriggerRunnable; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.page.PageInfo; @@ -169,7 +170,7 @@ public class DepartmentWrapper extends OrganizationWrapper { * * @return */ - public Map getHasRight() { + public Map> getHasRight() { return getDepartmentService(user).getHasRight(); } diff --git a/src/com/engine/organization/wrapper/GradeWrapper.java b/src/com/engine/organization/wrapper/GradeWrapper.java index 2c0e5735..f92e6935 100644 --- a/src/com/engine/organization/wrapper/GradeWrapper.java +++ b/src/com/engine/organization/wrapper/GradeWrapper.java @@ -11,6 +11,7 @@ import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.scheme.GradeMapper; import com.engine.organization.service.GradeService; import com.engine.organization.service.impl.GradeServiceImpl; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; import weaver.hrm.User; @@ -132,7 +133,7 @@ public class GradeWrapper extends OrganizationWrapper { * * @return */ - public Map getHasRight() { + public Map> getHasRight() { return getGradeService(user).getHasRight(); } diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index 34719bf1..c575a3ad 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -17,6 +17,7 @@ import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.service.JobService; import com.engine.organization.service.impl.JobServiceImpl; import com.engine.organization.thread.JobTriggerRunnable; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationFormItemUtil; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; @@ -68,7 +69,7 @@ public class JobWrapper extends OrganizationWrapper { * * @return */ - public Map getHasRight() { + public Map> getHasRight() { return getJobService(user).getHasRight(); } diff --git a/src/com/engine/organization/wrapper/LevelWrapper.java b/src/com/engine/organization/wrapper/LevelWrapper.java index c3160208..c93047bd 100644 --- a/src/com/engine/organization/wrapper/LevelWrapper.java +++ b/src/com/engine/organization/wrapper/LevelWrapper.java @@ -11,6 +11,7 @@ import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.scheme.LevelMapper; import com.engine.organization.service.LevelService; import com.engine.organization.service.impl.LevelServiceImpl; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; import weaver.hrm.User; @@ -129,7 +130,7 @@ public class LevelWrapper extends OrganizationWrapper { * * @return */ - public Map getTableBtn() { + public Map> getTableBtn() { return getLevelService(user).getTableBtn(); } diff --git a/src/com/engine/organization/wrapper/SchemeWrapper.java b/src/com/engine/organization/wrapper/SchemeWrapper.java index dfe2d164..a5ccc1e3 100644 --- a/src/com/engine/organization/wrapper/SchemeWrapper.java +++ b/src/com/engine/organization/wrapper/SchemeWrapper.java @@ -11,6 +11,7 @@ import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.scheme.SchemeMapper; import com.engine.organization.service.SchemeService; import com.engine.organization.service.impl.SchemeServiceImpl; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; import weaver.hrm.User; @@ -132,7 +133,7 @@ public class SchemeWrapper extends OrganizationWrapper { * * @return */ - public Map getTableBtn() { + public Map> getTableBtn() { return getSchemeService(user).getTableBtn(); } diff --git a/src/com/engine/organization/wrapper/SequenceWrapper.java b/src/com/engine/organization/wrapper/SequenceWrapper.java index 6baf9d1f..0ea24495 100644 --- a/src/com/engine/organization/wrapper/SequenceWrapper.java +++ b/src/com/engine/organization/wrapper/SequenceWrapper.java @@ -10,6 +10,7 @@ import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.sequence.SequenceMapper; import com.engine.organization.service.SequenceService; import com.engine.organization.service.impl.SequenceServiceImpl; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; import weaver.hrm.User; @@ -128,7 +129,7 @@ public class SequenceWrapper extends OrganizationWrapper { * * @return */ - public Map getHasRight() { + public Map> getHasRight() { return getSequenceService(user).getHasRight(); } diff --git a/src/com/engine/organization/wrapper/StaffPlanWrapper.java b/src/com/engine/organization/wrapper/StaffPlanWrapper.java index bd9628fb..8e63a6db 100644 --- a/src/com/engine/organization/wrapper/StaffPlanWrapper.java +++ b/src/com/engine/organization/wrapper/StaffPlanWrapper.java @@ -10,6 +10,7 @@ import com.engine.organization.enums.OperateTypeEnum; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.service.StaffPlanService; import com.engine.organization.service.impl.StaffPlanServiceImpl; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.ibatis.annotations.Param; @@ -129,7 +130,7 @@ public class StaffPlanWrapper extends OrganizationWrapper { * * @return */ - public Map getHasRight() { + public Map> getHasRight() { return getStaffPlanService(user).getHasRight(); } } diff --git a/src/com/engine/organization/wrapper/StaffWrapper.java b/src/com/engine/organization/wrapper/StaffWrapper.java index 597f2b9c..3fc552ef 100644 --- a/src/com/engine/organization/wrapper/StaffWrapper.java +++ b/src/com/engine/organization/wrapper/StaffWrapper.java @@ -12,6 +12,7 @@ import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.service.StaffService; import com.engine.organization.service.impl.StaffServiceImpl; +import com.engine.organization.util.MenuBtn; import com.engine.organization.util.OrganizationWrapper; import com.engine.organization.util.db.MapperProxyFactory; import weaver.hrm.User; From 35439a442fbb299883253b4fb0c8f6823a9e5323 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 15 Sep 2022 10:41:04 +0800 Subject: [PATCH 24/68] =?UTF-8?q?BUG=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/jclimport/po/CusFormFieldPO.java | 1 + .../organization/entity/job/bo/JobBO.java | 9 +- .../entity/job/param/JobMergeParam.java | 4 +- .../mapper/hrmresource/SystemDataMapper.xml | 4 + .../organization/service/JobService.java | 2 +- .../service/impl/DepartmentServiceImpl.java | 17 +-- .../service/impl/ImportCommonServiceImpl.java | 6 +- .../service/impl/JobServiceImpl.java | 110 +++++++++++++---- .../hrmimport/HrmImportAdaptExcelE9.java | 48 ++++---- .../hrmimport/HrmImportProcessE9.java | 114 +++++++++--------- .../organization/web/JobController.java | 8 +- .../organization/wrapper/JobWrapper.java | 4 +- 12 files changed, 202 insertions(+), 125 deletions(-) diff --git a/src/com/engine/organization/entity/jclimport/po/CusFormFieldPO.java b/src/com/engine/organization/entity/jclimport/po/CusFormFieldPO.java index 691c02d0..5f7dd40a 100644 --- a/src/com/engine/organization/entity/jclimport/po/CusFormFieldPO.java +++ b/src/com/engine/organization/entity/jclimport/po/CusFormFieldPO.java @@ -32,4 +32,5 @@ public class CusFormFieldPO { */ private String dmlUrl; private String tableName; + private String scopeId; } diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 74b6ab5a..652f10e9 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -1,7 +1,5 @@ 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; @@ -10,7 +8,6 @@ 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; @@ -29,8 +26,6 @@ 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()) @@ -38,8 +33,8 @@ public class JobBO { .jobName(param.getJobName()) .ecCompany(param.getEcCompany()) .ecDepartment(param.getEcDepartment()) - .parentComp(null == jclCompany ? param.getSubcompanyid1() : jclCompany.getId()) - .parentDept(null == jclDepartment ? param.getDepartmentid() : jclDepartment.getId()) + .parentComp(param.getSubcompanyid1()) + .parentDept( param.getDepartmentid()) .sequenceId(param.getSequenceId()) .schemeId(param.getSchemeId()) .parentJob(param.getParentJob()) diff --git a/src/com/engine/organization/entity/job/param/JobMergeParam.java b/src/com/engine/organization/entity/job/param/JobMergeParam.java index b5629f38..09d29251 100644 --- a/src/com/engine/organization/entity/job/param/JobMergeParam.java +++ b/src/com/engine/organization/entity/job/param/JobMergeParam.java @@ -17,11 +17,11 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class JobMergeParam { /** - * 所选分部 + * 所选岗位 */ private Long id; /** - * 合并分部 + * 合并到的岗位 */ private Long targetJob; /** diff --git a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml index 2869f0ef..c73897e8 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml @@ -10,6 +10,7 @@ + @@ -123,6 +124,7 @@ + and ifnull(parent_job,0) = diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 50ed7392..83da6057 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -815,7 +815,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ saveImportDetailLog(historyDetailPO); continue nextRow; } - if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"parent_comp".equals(infoPO.getFieldName())) { + if (StringUtils.isNotBlank(cellValue) && StringUtils.isBlank(Util.null2String(reallyValue)) && !"ec_company".equals(infoPO.getFieldName())) { historyDetailPO.setOperateDetail(infoPO.getFieldNameDesc() + "数据转换失败,未找到对应数据"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 6d540d4c..71df6806 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -539,11 +539,11 @@ public class JobServiceImpl extends Service implements JobService { // 人员信息变动,更新分部、部门、岗位 RecordSet rs = new RecordSet(); - rs.executeUpdate("SELECT ID FROM CUS_FIELDDATA WHERE SCOPEID =-1 AND FIELD100002 = ?", jobById.getId()); + 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 SCOPEID =-1 and id = ", targetJob.getId(), userId); + rs.executeUpdate("update CUS_FIELDDATA set FIELD100002 = ? where SCOPE = 'HrmCustomFieldByInfoType' AND SCOPEID =-1 and id = ?", targetJob.getId(), userId); CusFieldDataTrigger.run(userId); // 更新人员组织架构图 } @@ -569,13 +569,14 @@ public class JobServiceImpl extends Service implements JobService { job.setParentDept(parentDepartment); job.setEcDepartment(ecDepartment); job.setParentJob(parentJob); + getJobMapper().updateBaseJob(job); // 更新人员信息 RecordSet rs = new RecordSet(); - rs.executeUpdate("SELECT ID FROM CUS_FIELDDATA WHERE SCOPEID =-1 AND FIELD100002 = ?", job.getId()); + 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); + // rs.executeUpdate("UPDATE HRMRESOURCE SET SUBCOMPANYID1 = ? , DEPARTMENTID = ? WHERE ID =? ", ecCompany, ecDepartment, userId); // 更新人员组织架构图 CusFieldDataTrigger.run(userId); } From b214ec85095eebb9dbf049753445facad2b8172c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 20 Sep 2022 09:18:24 +0800 Subject: [PATCH 34/68] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thread/OrganizationSyncEc.java | 36 +++++--- .../cusfielddata/CusFieldDataTrigger.java | 88 ++++++++++--------- .../hrmimport/HrmImportProcessE9.java | 25 +++--- 3 files changed, 84 insertions(+), 65 deletions(-) diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index bda5d171..0cfed56e 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -205,17 +205,31 @@ public class OrganizationSyncEc { if (EcHrmRelationUtil.isNotExistJob(newName, jclJobId)) { // 查询ec表ID RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(oldName); - map.put("id", Util.null2String(hrmJobTitle.getId())); - map.put("operateIp", Util.null2String(user.getLoginip())); - map.put("jobtitlemark", newName); - map.put("jobtitlename", newName); - map.put("jobactivityid", Util.null2String(params.get("jobactivityid"))); - map.put("jobresponsibility", Util.null2String(params.get("work_duty"))); - map.put("jobcompetency", Util.null2String(params.get("work_authority"))); - map.put("jobtitleremark", Util.null2String(params.get("description"))); - map.put("jobtitlecode", Util.null2String(params.get("job_no")) + "_" + System.currentTimeMillis()); - // 修改岗位表数据 - this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).editJobTitle(map, user); + if (null != hrmJobTitle) { + map.put("id", Util.null2String(hrmJobTitle.getId())); + map.put("operateIp", Util.null2String(user.getLoginip())); + map.put("jobtitlemark", newName); + map.put("jobtitlename", newName); + map.put("jobactivityid", Util.null2String(params.get("jobactivityid"))); + map.put("jobresponsibility", Util.null2String(params.get("work_duty"))); + map.put("jobcompetency", Util.null2String(params.get("work_authority"))); + map.put("jobtitleremark", Util.null2String(params.get("description"))); + map.put("jobtitlecode", Util.null2String(params.get("job_no")) + "_" + System.currentTimeMillis()); + // 修改岗位表数据 + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).editJobTitle(map, user); + } else { + // TODO 纠正错误数据 临时使用 + // 不存在则新建职务 + map.put("operateIp", Util.null2String(user.getLoginip())); + map.put("jobtitlemark", newName); + map.put("jobtitlename", newName); + map.put("jobactivityid", Util.null2String(params.get("jobactivityid"))); + map.put("jobresponsibility", Util.null2String(params.get("work_duty"))); + map.put("jobcompetency", Util.null2String(params.get("work_authority"))); + map.put("jobtitleremark", Util.null2String(params.get("description"))); + map.put("jobtitlecode", Util.null2String(params.get("job_no")) + "_" + System.currentTimeMillis()); + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).addJobTitle(map, user); + } } else { // 修改后存在共用、不修改岗位表数据,更新对应人员的岗位信息为当前岗位的ID RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(newName); diff --git a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java index 7d5edb25..e6ef04cc 100644 --- a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java +++ b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java @@ -65,50 +65,52 @@ public class CusFieldDataTrigger { directionData.setField100002(sourceField100002); Long gwId = Long.parseLong(sourceField100002); JobPO jobById = MapperProxyFactory.getProxy(JobMapper.class).getJobById(gwId); - 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 (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); + // 职等职级为空,从岗位取值、更新 + 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); + } } } } diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index a52ecf71..8b030137 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java @@ -846,6 +846,7 @@ public class HrmImportProcessE9 extends BaseBean { if (this.checkInfo(vo, resultList)) { continue; } + new BaseBean().writeLog("checkKeys校验通过"); if (vo.getAccounttype() == null || "".equalsIgnoreCase(Util.null2String(vo.getAccounttype()))) { if (StringUtil.isNotNull(vo.getCertificatenum()) && certificateNums.get(StringUtil.vString(vo.getCertificatenum())) != null) { @@ -1005,6 +1006,7 @@ public class HrmImportProcessE9 extends BaseBean { // hrm.setJobtitle(jobtitleid); //} + new BaseBean().writeLog("hrmId【" + hrmId + "】"); if (Util.getIntValue(hrmId) < 0) continue; //上级id @@ -1418,6 +1420,7 @@ public class HrmImportProcessE9 extends BaseBean { String nowmanagerstr = Util.null2String(recordSet.getString("managerstr")); String resourceid = recordSet.getString("id"); //指定上级为自身的情况,不更新自身上级 + new BaseBean().writeLog("resourceid【" + resourceid + "】"); if (hrmId.equals(resourceid)) continue; String nowmanagerstr2 = ""; @@ -1767,7 +1770,8 @@ public class HrmImportProcessE9 extends BaseBean { if (!recordSet.next()) { return !addPersonData(personFild, personValue, id); } - + new BaseBean().writeLog("personValue【" + personValue + "】"); + new BaseBean().writeLog("personFild【" + personFild + "】"); String[] personValues = personValue.split(";"); String[] personFields = personFild.split(","); String fielddbType; @@ -2077,14 +2081,14 @@ public class HrmImportProcessE9 extends BaseBean { return currentId; } - /** - * 获取岗位id - * - * @param jobtitlename 岗位名称 - * @param jobactivityname 职务 - * @param jobgroupname 职务类别 - * @return -1:职务类别不存在,-2:职务不存在,-3:岗位名称不存在 - */ + ///** + // * 获取岗位id + // * + // * @param jobtitlename 岗位名称 + // * @param jobactivityname 职务 + // * @param jobgroupname 职务类别 + // * @return -1:职务类别不存在,-2:职务不存在,-3:岗位名称不存在 + // */ //public int getJobTitles(String jobtitlename, String jobactivityname, // String jobgroupname) { // RecordSet rs = new RecordSet(); @@ -2139,8 +2143,6 @@ public class HrmImportProcessE9 extends BaseBean { // } // return jobtitle; //} - - public static boolean needCheckLicenseForUpdate(ResourceComInfo resourceComInfo, String hrmId, HrmResourceVo vo) { String statusOfHrmId = resourceComInfo.getStatus(hrmId); String loginidOfHrmId = resourceComInfo.getLoginID(hrmId); @@ -2604,6 +2606,7 @@ public class HrmImportProcessE9 extends BaseBean { private boolean checkInfo(HrmResourceVo hrmResourceVo, List resultList) { //新增账号、工号唯一性校验 + new BaseBean().writeLog("checkKeys【" + Arrays.toString(checkKeys) + "】"); for (String key : checkKeys) { Map checkInfo = checkInfos.get(key); if (checkInfo != null && !checkInfo.isEmpty()) { From 2632f6c857533f67828272f7de7f05ac9c244f5a Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 20 Sep 2022 10:25:13 +0800 Subject: [PATCH 35/68] =?UTF-8?q?BUG=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/mapper/job/JobMapper.xml | 2 ++ .../engine/organization/service/impl/DepartmentServiceImpl.java | 1 + 2 files changed, 3 insertions(+) diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 66ab906b..4a850d3b 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -317,6 +317,8 @@ job_name=#{jobName}, parent_comp=#{parentComp}, parent_dept=#{parentDept}, + ec_company=#{ecCompany}, + ec_department=#{ecDepartment}, sequence_id=#{sequenceId}, scheme_id=#{schemeId}, parent_job=#{parentJob}, diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 110db501..d5afb0eb 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -699,6 +699,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setEcCompany(company); deptById.setParentComp(Objects.requireNonNull(EcHrmRelationUtil.getJclCompanyId(Util.null2String(company))).getId()); deptById.setParentDept(null); + deptById.setEcDepartment(null); } else if ("1".equals(moveParam.getMoveType())) { Long department = moveParam.getDepartment(); Long departmentId = Objects.requireNonNull(EcHrmRelationUtil.getJclDepartmentId(Util.null2String(department))).getId(); From 38725f97b030b698749935f8c86bf8125640c111 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 20 Sep 2022 14:19:46 +0800 Subject: [PATCH 36/68] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thread/CompanyTriggerRunnable.java | 3 ++- .../thread/DepartmentTriggerRunnable.java | 3 ++- .../organization/thread/GroupTriggerRunnable.java | 3 ++- .../thread/HrmResourceTriggerRunnable.java | 3 ++- .../organization/thread/JobTriggerRunnable.java | 3 ++- .../saveimport/hrmimport/HrmImportProcessE9.java | 15 +++++++-------- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/com/engine/organization/thread/CompanyTriggerRunnable.java b/src/com/engine/organization/thread/CompanyTriggerRunnable.java index e1532df4..f9ae51bd 100644 --- a/src/com/engine/organization/thread/CompanyTriggerRunnable.java +++ b/src/com/engine/organization/thread/CompanyTriggerRunnable.java @@ -89,7 +89,8 @@ public class CompanyTriggerRunnable implements Runnable { jclMap.setFLeaderSt(cusFieldDataById.getString("field100008")); jclMap.setFLeaderLv(cusFieldDataById.getString("field100007")); } - jclMap.setFDateBegin(new Date(System.currentTimeMillis())); + String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); diff --git a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java index 293aefbf..c6501bee 100644 --- a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java +++ b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java @@ -95,7 +95,8 @@ public class DepartmentTriggerRunnable implements Runnable { jclMap.setFLeaderSt(cusFieldDataById.getString("field100008")); jclMap.setFLeaderLv(cusFieldDataById.getString("field100007")); } - jclMap.setFDateBegin(new Date(System.currentTimeMillis())); + String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); diff --git a/src/com/engine/organization/thread/GroupTriggerRunnable.java b/src/com/engine/organization/thread/GroupTriggerRunnable.java index 6c264d94..bc9a7c0b 100644 --- a/src/com/engine/organization/thread/GroupTriggerRunnable.java +++ b/src/com/engine/organization/thread/GroupTriggerRunnable.java @@ -66,7 +66,8 @@ public class GroupTriggerRunnable implements Runnable { } jclOrgMap.setFParentId(1); jclOrgMap.setFObjParentId(0); - jclOrgMap.setFDateBegin(new Date(System.currentTimeMillis())); + String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); jclOrgMap.setFPlan(getGroupTriggerMapper().sumStaffNum(jclOrgMap.getFDateBegin())); jclOrgMap.setFOnJob(getGroupTriggerMapper().countHrmResource()); diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index 6ea82ab4..df8e1780 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -67,7 +67,8 @@ public class HrmResourceTriggerRunnable implements Runnable { jclMap.setFClass(0); jclMap.setFClassName("行政维度"); jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); - jclMap.setFDateBegin(new Date(System.currentTimeMillis())); + String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); jclMap.setFIsVitual(0); diff --git a/src/com/engine/organization/thread/JobTriggerRunnable.java b/src/com/engine/organization/thread/JobTriggerRunnable.java index e2448159..685b4d31 100644 --- a/src/com/engine/organization/thread/JobTriggerRunnable.java +++ b/src/com/engine/organization/thread/JobTriggerRunnable.java @@ -75,7 +75,8 @@ public class JobTriggerRunnable implements Runnable { jclMap.setFClass(0); jclMap.setFClassName("行政维度"); - jclMap.setFDateBegin(new Date(System.currentTimeMillis())); + String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index 8b030137..e42ab128 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java @@ -780,6 +780,8 @@ public class HrmImportProcessE9 extends BaseBean { flag = false; if (updateWorkData(vo.getWorkFields(), vo.getWorkFieldsValue(), id)) //添加工作字段信息 flag = false; + // 更新聚才林相关字段 + CusFieldDataTrigger.run((long) id); } /*添加人员缓存,人员默认按id显示顺序,HrmResource_Trigger_Insert 人员共享 入职维护项目状态*/ @@ -1392,6 +1394,9 @@ public class HrmImportProcessE9 extends BaseBean { if (updateWorkData(vo.getWorkFields().trim(), vo.getWorkFieldsValue(), keyMap.get(key))) flag = false; + // 更新聚才林相关字段 + CusFieldDataTrigger.run((long) keyMap.get(key)); + /*update HrmResource_Trigger */ if (flag) { recordSet.executeSql("select id from HrmResource_Trigger where id=" + hrmId); @@ -1592,10 +1597,7 @@ public class HrmImportProcessE9 extends BaseBean { writeLog(e); } recordSet.setNoAutoEncrypt(true); - boolean execute = recordSet.execute(sql); - // 更新聚才林相关字段 - CusFieldDataTrigger.run((long) id); - return execute; + return recordSet.execute(sql); } @@ -1676,10 +1678,7 @@ public class HrmImportProcessE9 extends BaseBean { } recordSet.setNoAutoEncrypt(true); if (flag) { - boolean execute = recordSet.execute(sql); - // 更新聚才林相关字段 - CusFieldDataTrigger.run((long) id); - return !execute; + return !recordSet.execute(sql); } else { return false; } From 61aabb4ca118f22f8f5a2ca74443a8b04a2e866b Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Tue, 20 Sep 2022 14:24:26 +0800 Subject: [PATCH 37/68] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/organization/web/CodeSettingController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/organization/web/CodeSettingController.java b/src/com/engine/organization/web/CodeSettingController.java index 3f7c6ec0..f7ef67cd 100644 --- a/src/com/engine/organization/web/CodeSettingController.java +++ b/src/com/engine/organization/web/CodeSettingController.java @@ -18,7 +18,7 @@ import javax.ws.rs.core.MediaType; * @Author weaver_cl * @description: * @Date 2022/5/30 - * @Version V1.0 + * @Version V1.0 **/ public class CodeSettingController { From 8a9370ee9ea60a5808960029f9b5007b0778f37f Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 20 Sep 2022 18:46:05 +0800 Subject: [PATCH 38/68] =?UTF-8?q?BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/mapper/job/JobMapper.java | 2 ++ .../organization/mapper/job/JobMapper.xml | 8 ++++++ .../cusfielddata/CusFieldDataTrigger.java | 6 +++++ .../hrmimport/HrmImportProcessE9.java | 26 ++++++++++++++++++- 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/mapper/job/JobMapper.java b/src/com/engine/organization/mapper/job/JobMapper.java index f5dbbab8..2b7f7c0b 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.java +++ b/src/com/engine/organization/mapper/job/JobMapper.java @@ -162,6 +162,8 @@ public interface JobMapper { */ Long getIdByNameAndPid(@Param("jobName") String jobName, @Param("parentCompany") Long parentCompany, @Param("parentDepartment") Long parentDepartment, @Param("parentJob") Long parentJob); + Long getIdByNameAndEcId(@Param("jobName") String jobName, @Param("ecCompany") String ecCompany, @Param("ecDepartment") String ecDepartment); + int checkRepeatNo(@Param("jobNo") String jobNo, @Param("id") Long id); /** diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 4a850d3b..31d88509 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -548,6 +548,14 @@ WHERE SCOPE = 'HrmCustomFieldByInfoType' AND SCOPEID = -1 + and ifnull(parent_job,0) = diff --git a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java index e6ef04cc..58a27efb 100644 --- a/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java +++ b/src/com/engine/organization/trigger/cusfielddata/CusFieldDataTrigger.java @@ -113,6 +113,12 @@ public class CusFieldDataTrigger { } } } + } else { + directionData.setField100002(null); + directionData.setField100008(null); + directionData.setField100006(null); + directionData.setField100007(null); + directionData.setField100005(null); } // field100001更新,职等职级 diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java index e42ab128..c0c62e57 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportProcessE9.java @@ -13,6 +13,7 @@ import com.engine.hrm.util.face.bean.CheckItemBean; import com.engine.organization.entity.jclimport.po.JclImportHistoryDetailPO; 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; @@ -1579,6 +1580,17 @@ public class HrmImportProcessE9 extends BaseBean { fielddbType = jsonObject.getString("fielddbtype"); jsonObject.put("fieldvalue", baseValues[i]); String fieldvalue = HrmFieldManager.getReallyFieldvalue(jsonObject); + // 处理自动获取时,或取到已删除的数据 + if ("field100002".equalsIgnoreCase(fieldname)) { + // 根据分部、部门,获取对应的岗位ID + recordSet.execute("select subcompanyid1,departmentid from hrmresource where id = " + id); + while (recordSet.next()) { + String ecCompany = recordSet.getString("subcompanyid1"); + String ecDepartment = recordSet.getString("departmentid"); + Long jobId = MapperProxyFactory.getProxy(JobMapper.class).getIdByNameAndEcId(baseValues[i], ecCompany, ecDepartment); + fieldvalue = null == jobId ? "" : jobId.toString(); + } + } EncryptFieldEntity encryptFieldEntity = new EncryptFieldConfigComInfo().getFieldEncryptConfig("cus_fielddata", fieldname, "HrmCustomFieldByInfoType", scopeId); if (encryptFieldEntity != null && encryptFieldEntity.getIsEncrypt().equals("1")) { @@ -1657,6 +1669,18 @@ public class HrmImportProcessE9 extends BaseBean { fielddbType = jsonObject.getString("fielddbtype"); jsonObject.put("fieldvalue", baseValues[i]); String fieldvalue = HrmFieldManager.getReallyFieldvalue(jsonObject); + // 处理自动获取时,或取到已删除的数据 + if ("field100002".equalsIgnoreCase(fieldname)) { + // 根据分部、部门,获取对应的岗位ID + recordSet.execute("select subcompanyid1,departmentid from hrmresource where id = " + id); + while (recordSet.next()) { + String ecCompany = recordSet.getString("subcompanyid1"); + String ecDepartment = recordSet.getString("departmentid"); + Long jobId = MapperProxyFactory.getProxy(JobMapper.class).getIdByNameAndEcId(baseValues[i], ecCompany, ecDepartment); + fieldvalue = null == jobId ? "" : jobId.toString(); + new BaseBean().writeLog("岗位[" + baseValues[i] + "],jobId[" + Util.null2String(jobId) + "],ecCompany[" + ecCompany + "],ecDepartment[" + ecDepartment + "]"); + } + } EncryptFieldEntity encryptFieldEntity = new EncryptFieldConfigComInfo().getFieldEncryptConfig("cus_fielddata", fieldname, "HrmCustomFieldByInfoType", scopeId); if (encryptFieldEntity != null && encryptFieldEntity.getIsEncrypt().equals("1")) { //是否需要加密 @@ -1664,7 +1688,7 @@ public class HrmImportProcessE9 extends BaseBean { } if (fieldvalue.startsWith(",")) fieldvalue = fieldvalue.substring(1); if (fieldvalue.endsWith(",")) fieldvalue = fieldvalue.substring(0, fieldvalue.length() - 1); - if (!fieldvalue.equals("")) { + if (!fieldvalue.equals("") || "field100002".equalsIgnoreCase(fieldname)) { flag = true; if (fielddbType.toLowerCase().startsWith("char") || fielddbType.toLowerCase().startsWith("varchar") || fielddbType.toLowerCase().startsWith("text")) setStr.append(",").append(baseFields[i]).append("='").append(fieldvalue).append("'"); From a847a4efef992395ba92b3f2068e3f3a4dd8480e Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 21 Sep 2022 10:43:41 +0800 Subject: [PATCH 39/68] =?UTF-8?q?=E5=85=BC=E5=AE=B9Oracle,=E8=BE=BE?= =?UTF-8?q?=E6=A2=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/mapper/trigger/CompTriggerMapper.java | 4 ++-- .../organization/mapper/trigger/CompTriggerMapper.xml | 2 +- .../mapper/trigger/HrmResourceTriggerMapper.java | 4 ++-- .../mapper/trigger/HrmResourceTriggerMapper.xml | 2 +- .../organization/thread/CompanyTriggerRunnable.java | 8 ++++---- .../organization/thread/DepartmentTriggerRunnable.java | 8 ++++---- .../organization/thread/GroupTriggerRunnable.java | 8 ++++---- .../thread/HrmResourceTriggerRunnable.java | 10 +++++----- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/com/engine/organization/mapper/trigger/CompTriggerMapper.java b/src/com/engine/organization/mapper/trigger/CompTriggerMapper.java index 7cebc741..2d0e9832 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.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.cusfielddata.po.CusFieldData; import org.apache.ibatis.annotations.Param; import weaver.hrm.passwordprotection.domain.HrmResource; @@ -20,7 +20,7 @@ public interface CompTriggerMapper { String getJobTitleMarkById(@Param("id") Integer id); - JSONObject getCusFieldDataById(@Param("id") Integer id); + CusFieldData getCusFieldDataById(@Param("id") Integer id); Integer sumStaffNum(@Param("fdatebegin") Date fdatebegin, @Param("compId") Integer compId); diff --git a/src/com/engine/organization/mapper/trigger/CompTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/CompTriggerMapper.xml index 29ef9d02..cc3cd314 100644 --- a/src/com/engine/organization/mapper/trigger/CompTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/CompTriggerMapper.xml @@ -31,7 +31,7 @@ from hrmjobtitles where id = #{id} - select field100008, field100007 from cus_fielddata where scope = 'HrmCustomFieldByInfoType' diff --git a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java index 0125a2cd..7679459d 100644 --- a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java @@ -1,6 +1,6 @@ package com.engine.organization.mapper.trigger; -import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.cusfielddata.po.CusFieldData; import org.apache.ibatis.annotations.Param; import weaver.hrm.passwordprotection.domain.HrmResource; @@ -12,6 +12,6 @@ import weaver.hrm.passwordprotection.domain.HrmResource; public interface HrmResourceTriggerMapper { HrmResource getHrmResource(@Param("id") Long id); - JSONObject getCusFieldDataById(@Param("fObjId") Integer fObjId); + CusFieldData getCusFieldDataById(@Param("fObjId") Integer fObjId); } diff --git a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml index 37649663..6b7a5d0e 100644 --- a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml @@ -7,7 +7,7 @@ from hrmresource where id = #{id} - select field100002, field100008, field100007 from cus_fielddata where scope = 'HrmCustomFieldByInfoType' diff --git a/src/com/engine/organization/thread/CompanyTriggerRunnable.java b/src/com/engine/organization/thread/CompanyTriggerRunnable.java index f9ae51bd..c3a0941c 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.alibaba.fastjson.JSONObject; import com.engine.organization.entity.company.po.CompPO; +import com.engine.organization.entity.cusfielddata.po.CusFieldData; import com.engine.organization.entity.logview.bo.FieldBaseEquator; import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.mapper.comp.CompMapper; @@ -84,10 +84,10 @@ public class CompanyTriggerRunnable implements Runnable { jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); - JSONObject cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclMap.getFLeader()); + CusFieldData cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclMap.getFLeader()); if (null != cusFieldDataById) { - jclMap.setFLeaderSt(cusFieldDataById.getString("field100008")); - jclMap.setFLeaderLv(cusFieldDataById.getString("field100007")); + jclMap.setFLeaderSt(cusFieldDataById.getField100008()); + jclMap.setFLeaderLv(cusFieldDataById.getField100007()); } 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 c6501bee..af1fb673 100644 --- a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java +++ b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java @@ -1,6 +1,6 @@ package com.engine.organization.thread; -import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.cusfielddata.po.CusFieldData; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.logview.bo.FieldBaseEquator; import com.engine.organization.entity.map.JclOrgMap; @@ -90,10 +90,10 @@ public class DepartmentTriggerRunnable implements Runnable { jclMap.setFLeaderJob(getCompTriggerMapper().getJobTitleMarkById(jclMap.getFLeaderJobId())); - JSONObject cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclMap.getFLeader()); + CusFieldData cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclMap.getFLeader()); if (null != cusFieldDataById) { - jclMap.setFLeaderSt(cusFieldDataById.getString("field100008")); - jclMap.setFLeaderLv(cusFieldDataById.getString("field100007")); + jclMap.setFLeaderSt(cusFieldDataById.getField100008()); + jclMap.setFLeaderLv(cusFieldDataById.getField100007()); } 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 bc9a7c0b..c18a9b18 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.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.cusfielddata.po.CusFieldData; 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())); - JSONObject cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclOrgMap.getFLeader()); + CusFieldData cusFieldDataById = getCompTriggerMapper().getCusFieldDataById(jclOrgMap.getFLeader()); if (null != cusFieldDataById) { - jclOrgMap.setFLeaderSt(cusFieldDataById.getString("field100008")); - jclOrgMap.setFLeaderLv(cusFieldDataById.getString("field100007")); + jclOrgMap.setFLeaderSt(cusFieldDataById.getField100008()); + jclOrgMap.setFLeaderLv(cusFieldDataById.getField100007()); } 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 df8e1780..26de1bef 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -1,6 +1,6 @@ package com.engine.organization.thread; -import com.alibaba.fastjson.JSONObject; +import com.engine.organization.entity.cusfielddata.po.CusFieldData; import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; @@ -53,16 +53,16 @@ public class HrmResourceTriggerRunnable implements Runnable { jclMap.setFLeaderImg(hrmResource.getMessagerurl()); jclMap.setFLeaderName(hrmResource.getLastname()); jclMap.setFLeaderJobId(hrmResource.getJobtitle()); - JSONObject cusFieldDataById = getHrmResourceTriggerMapper().getCusFieldDataById(jclMap.getFObjId()); + CusFieldData cusFieldDataById = getHrmResourceTriggerMapper().getCusFieldDataById(jclMap.getFObjId()); if (null != cusFieldDataById) { - String field100002 = cusFieldDataById.getString("field100002"); + String field100002 = cusFieldDataById.getField100002(); if (StringUtils.isNotBlank(field100002)) { int index = field100002.indexOf('_'); jclMap.setFObjParentId(Integer.parseInt(field100002.substring(index + 1))); jclMap.setFParentId(jclMap.getFObjParentId() + sj); } - jclMap.setFLeaderSt(cusFieldDataById.getString("field100008")); - jclMap.setFLeaderLv(cusFieldDataById.getString("field100007")); + jclMap.setFLeaderSt(cusFieldDataById.getField100008()); + jclMap.setFLeaderLv(cusFieldDataById.getField100007()); } jclMap.setFClass(0); jclMap.setFClassName("行政维度"); From 106d7e8bb8cd1a775205d43e574a76a3e235e145 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Wed, 21 Sep 2022 16:23:09 +0800 Subject: [PATCH 40/68] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E3=80=81=E7=BC=96=E5=88=B6=20=E5=90=8C=E6=AD=A5=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E6=9E=B6=E6=9E=84=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/staff/po/StaffPlanPO.java | 3 + .../trigger/HrmResourceTriggerMapper.java | 6 ++ .../trigger/HrmResourceTriggerMapper.xml | 20 +++++ .../mapper/trigger/StaffTriggerMapper.java | 22 ++++++ .../mapper/trigger/StaffTriggerMapper.xml | 55 ++++++++++++++ .../service/impl/StaffServiceImpl.java | 18 ++++- .../thread/HrmResourceTriggerRunnable.java | 1 + .../thread/OrganizationSyncEc.java | 29 +++++--- .../thread/StaffTriggerRunnable.java | 74 +++++++++++++++++++ .../action/StaffChangeAction.java | 3 + 10 files changed, 218 insertions(+), 13 deletions(-) create mode 100644 src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java create mode 100644 src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml create mode 100644 src/com/engine/organization/thread/StaffTriggerRunnable.java diff --git a/src/com/engine/organization/entity/staff/po/StaffPlanPO.java b/src/com/engine/organization/entity/staff/po/StaffPlanPO.java index 99e05a2c..dc802d5f 100644 --- a/src/com/engine/organization/entity/staff/po/StaffPlanPO.java +++ b/src/com/engine/organization/entity/staff/po/StaffPlanPO.java @@ -49,6 +49,9 @@ public class StaffPlanPO { private String ecCompany; /** * 控制维度 + * 1:分部 + * 2:部门 + * 3:岗位 */ private String controlDimension; /** diff --git a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java index 7679459d..c47d0b38 100644 --- a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.java @@ -4,6 +4,8 @@ import com.engine.organization.entity.cusfielddata.po.CusFieldData; import org.apache.ibatis.annotations.Param; import weaver.hrm.passwordprotection.domain.HrmResource; +import java.util.List; + /** * @author:dxfeng * @createTime: 2022/09/01 @@ -14,4 +16,8 @@ public interface HrmResourceTriggerMapper { 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 6b7a5d0e..5650f4a2 100644 --- a/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/HrmResourceTriggerMapper.xml @@ -1,6 +1,19 @@ + + update jcl_org_map + + fleaderimg = #{fLeaderImg}, + fleadername = #{fLeaderName}, + fleaderjobid = #{fLeaderJobId}, + fleaderjob = #{fLeaderJob}, + fleaderlv = #{fLeaderLv}, + fleaderst = #{fLeaderSt}, + + where fleader = #{fLeader} AND fdatebegin <= #{currentDate} + AND fdateend >= #{currentDate} + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java new file mode 100644 index 00000000..f03e7cc0 --- /dev/null +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java @@ -0,0 +1,22 @@ +package com.engine.organization.mapper.trigger; + +import org.apache.ibatis.annotations.Param; + +/** + * @author:dxfeng + * @createTime: 2022/09/21 + * @version: 1.0 + */ +public interface StaffTriggerMapper { + int countCompanyUsers(@Param("ecCompanyId") Long ecCompanyId); + + int countDepartmentUsers(@Param("ecDepartmentId") Long ecDepartmentId); + + int countCompanyStaffNum(@Param("currentDate") String currentDate, @Param("companyId") Long companyId); + + int countDepartmentStaffNum(@Param("currentDate") String currentDate, @Param("departmentId") Long departmentId); + + int countJobStaffNum(@Param("currentDate") String currentDate, @Param("jobId") Long jobId); + + int updateOrgStaffs(@Param("currentDate") String currentDate, @Param("fType") String fType, @Param("fObjId") String fObjId, @Param("fPlan") Integer fPlan, @Param("fOnJob") Integer fOnJob); +} diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml new file mode 100644 index 00000000..2573f258 --- /dev/null +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml @@ -0,0 +1,55 @@ + + + + + update jcl_org_map + + FPLAN = #{fPlan}, + FONJOB = #{fOnJob}, + + where FTYPE =#{fType} and FOBJID=#{fObjId} + AND FDATEBEGIN <= #{currentDate} + AND FDATEEND >= #{currentDate} + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 98e3d8c7..99675106 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -25,6 +25,7 @@ import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.mapper.staff.StaffsMapper; import com.engine.organization.service.StaffService; +import com.engine.organization.thread.StaffTriggerRunnable; import com.engine.organization.util.*; import com.engine.organization.util.browser.OrganizationBrowserUtil; import com.engine.organization.util.db.DBType; @@ -103,7 +104,10 @@ public class StaffServiceImpl extends Service implements StaffService { if (null != jclDepartmentId) { staffPO.setDeptId(jclDepartmentId.getId()); } - return getStaffMapper().insertIgnoreNull(staffPO); + int ignoreNull = getStaffMapper().insertIgnoreNull(staffPO); + // 同步组织架构图编制信息 + new Thread(new StaffTriggerRunnable(staffPO)).start(); + return ignoreNull; } @Override @@ -137,7 +141,10 @@ public class StaffServiceImpl extends Service implements StaffService { OrganizationAssert.isFalse(staffPO.getStaffNum() < 0, "调整后编制数小于0,请更正"); StaffBO.buildStaffDesc(staffPO); // 更新主表 - return getStaffMapper().updateStaff(staffPO); + int updateStaff = getStaffMapper().updateStaff(staffPO); + // 同步组织架构图编制信息 + new Thread(new StaffTriggerRunnable(staffPO)).start(); + return updateStaff; } @@ -145,7 +152,12 @@ public class StaffServiceImpl extends Service implements StaffService { public int deleteByIds(Collection ids) { HasRightUtil.hasRight(user, RIGHT_NAME, false); OrganizationAssert.notEmpty(ids, "请选择要删除的数据"); - return getStaffMapper().deleteByIds(ids); + List staffsByIds = getStaffMapper().getStaffsByIds(ids); + int deleteByIds = getStaffMapper().deleteByIds(ids); + for (StaffPO staffsById : staffsByIds) { + new Thread(new StaffTriggerRunnable(staffsById)).start(); + } + return deleteByIds; } @Override diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index 26de1bef..9ae6ad7c 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -81,6 +81,7 @@ public class HrmResourceTriggerRunnable implements Runnable { getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); if (0 == delete) { MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); + getHrmResourceTriggerMapper().updateLeaders(currentDate,hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt()); } } diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index 0cfed56e..a3cddfb4 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -248,16 +248,25 @@ public class OrganizationSyncEc { // 修改后不存在共用、新建岗位,更新原有岗位下人员的岗位ID if (EcHrmRelationUtil.isNotExistJob(newName, jclJobId)) { - // 不存在则新建职务 - map.put("operateIp", Util.null2String(user.getLoginip())); - map.put("jobtitlemark", newName); - map.put("jobtitlename", newName); - map.put("jobactivityid", Util.null2String(params.get("jobactivityid"))); - map.put("jobresponsibility", Util.null2String(params.get("work_duty"))); - map.put("jobcompetency", Util.null2String(params.get("work_authority"))); - map.put("jobtitleremark", Util.null2String(params.get("description"))); - map.put("jobtitlecode", Util.null2String(params.get("job_no")) + "_" + System.currentTimeMillis()); - this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).addJobTitle(map, user); + RecordInfo hrmJobActivity = getSystemDataMapper().getHrmJobTitleByName(newName); + //存在且已封存,对岗位解封 + if (null != hrmJobActivity) { + map.put("ids", hrmJobActivity.getId()); + map.put("canceled", "docanceled"); + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).doCanceled(map, user); + } else { + // 不存在则新建职务 + map.put("operateIp", Util.null2String(user.getLoginip())); + map.put("jobtitlemark", newName); + map.put("jobtitlename", newName); + map.put("jobactivityid", Util.null2String(params.get("jobactivityid"))); + map.put("jobresponsibility", Util.null2String(params.get("work_duty"))); + map.put("jobcompetency", Util.null2String(params.get("work_authority"))); + map.put("jobtitleremark", Util.null2String(params.get("description"))); + map.put("jobtitlecode", Util.null2String(params.get("job_no"))); + + this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).addJobTitle(map, user); + } } else { this.resultMap = new HashMap<>(); this.resultMap.put("sign", "1"); diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java new file mode 100644 index 00000000..c23ab1ea --- /dev/null +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -0,0 +1,74 @@ +package com.engine.organization.thread; + +import com.engine.organization.entity.staff.po.StaffPO; +import com.engine.organization.entity.staff.po.StaffPlanPO; +import com.engine.organization.mapper.staff.StaffMapper; +import com.engine.organization.mapper.staff.StaffPlanMapper; +import com.engine.organization.mapper.trigger.StaffTriggerMapper; +import com.engine.organization.util.OrganizationDateUtil; +import com.engine.organization.util.db.MapperProxyFactory; +import org.apache.commons.lang3.StringUtils; +import weaver.general.Util; + +/** + * @author:dxfeng + * @createTime: 2022/09/21 + * @version: 1.0 + */ +public class StaffTriggerRunnable implements Runnable { + StaffPO staffPO; + + private StaffMapper getStaffMapper() { + return MapperProxyFactory.getProxy(StaffMapper.class); + } + + private StaffPlanMapper getStaffPlanMapper() { + return MapperProxyFactory.getProxy(StaffPlanMapper.class); + } + + private StaffTriggerMapper getStaffTriggerMapper() { + return MapperProxyFactory.getProxy(StaffTriggerMapper.class); + } + + public StaffTriggerRunnable(StaffPO staffPO) { + this.staffPO = staffPO; + } + + @Override + public void run() { + String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + if (null != staffPO) { + StaffPlanPO staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId()); + if (null != staffPlanByID && StringUtils.isNotBlank(staffPlanByID.getControlDimension())) { + String fType = staffPlanByID.getControlDimension(); + int fPlan = 0; + int fOnJob = 0; + String fObjId = ""; + switch (fType) { + case "1": + // 更新分部编制 + fObjId = Util.null2String(staffPO.getCompId()); + fOnJob = getStaffTriggerMapper().countCompanyUsers(staffPO.getEcCompany()); + fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); + break; + case "2": + // 更新部门编制 + fObjId = Util.null2String(staffPO.getDeptId()); + fOnJob = getStaffTriggerMapper().countDepartmentUsers(staffPO.getEcDepartment()); + fPlan = getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); + break; + case "3": + // 更新岗位编制 + fObjId = Util.null2String(staffPO.getJobId()); + fOnJob = 10; + fPlan = getStaffTriggerMapper().countJobStaffNum(currentDate, staffPO.getJobId()); + break; + default: + break; + } + // 更新对应的编制数 + getStaffTriggerMapper().updateOrgStaffs(currentDate, fType, fObjId, fPlan, fOnJob); + } + } + } +} diff --git a/src/weaver/interfaces/organization/action/StaffChangeAction.java b/src/weaver/interfaces/organization/action/StaffChangeAction.java index 3db8b6bc..4f8a01e6 100644 --- a/src/weaver/interfaces/organization/action/StaffChangeAction.java +++ b/src/weaver/interfaces/organization/action/StaffChangeAction.java @@ -5,6 +5,7 @@ import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.entity.staff.po.StaffsPO; import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.mapper.staff.StaffsMapper; +import com.engine.organization.thread.StaffTriggerRunnable; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -129,6 +130,8 @@ public class StaffChangeAction implements Action { // 编制描述 StaffBO.buildStaffDesc(staffPO); MapperProxyFactory.getProxy(StaffMapper.class).updateStaff(staffPO); + // 同步组织架构图编制信息 + new Thread(new StaffTriggerRunnable(staffPO)).start(); return SUCCESS; } From 92d9a17d8c26906cf02d58fd20b9557a4c70f43b Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 23 Sep 2022 09:19:42 +0800 Subject: [PATCH 41/68] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E7=BC=96=E5=88=B6=E6=98=BE=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/trigger/StaffTriggerMapper.java | 12 ++++++------ .../mapper/trigger/StaffTriggerMapper.xml | 6 +++--- .../organization/service/impl/ExtServiceImpl.java | 8 ++++++-- .../organization/thread/OrganizationSyncEc.java | 5 +++-- .../organization/thread/StaffTriggerRunnable.java | 15 ++++++++++----- 5 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java index f03e7cc0..a20dfef2 100644 --- a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java @@ -8,15 +8,15 @@ import org.apache.ibatis.annotations.Param; * @version: 1.0 */ public interface StaffTriggerMapper { - int countCompanyUsers(@Param("ecCompanyId") Long ecCompanyId); + Integer countCompanyUsers(@Param("ecCompanyId") Long ecCompanyId); - int countDepartmentUsers(@Param("ecDepartmentId") Long ecDepartmentId); + Integer countDepartmentUsers(@Param("ecDepartmentId") Long ecDepartmentId); - int countCompanyStaffNum(@Param("currentDate") String currentDate, @Param("companyId") Long companyId); + Integer countCompanyStaffNum(@Param("currentDate") String currentDate, @Param("companyId") Long companyId); - int countDepartmentStaffNum(@Param("currentDate") String currentDate, @Param("departmentId") Long departmentId); + Integer countDepartmentStaffNum(@Param("currentDate") String currentDate, @Param("departmentId") Long departmentId); - int countJobStaffNum(@Param("currentDate") String currentDate, @Param("jobId") Long jobId); + Integer countJobStaffNum(@Param("currentDate") String currentDate, @Param("jobId") Long jobId); - int updateOrgStaffs(@Param("currentDate") String currentDate, @Param("fType") String fType, @Param("fObjId") String fObjId, @Param("fPlan") Integer fPlan, @Param("fOnJob") Integer fOnJob); + Integer updateOrgStaffs(@Param("currentDate") String currentDate, @Param("fType") String fType, @Param("fObjId") String fObjId, @Param("fPlan") Integer fPlan, @Param("fOnJob") Integer fOnJob); } diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml index 2573f258..e60e0791 100644 --- a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml @@ -31,7 +31,7 @@ where plan_id in (select id from JCL_ORG_STAFFPLAN where time_start <= #{currentDate} - and time_end >= #{currentDate}) + and time_end >= #{currentDate} and delete_type = 0 ) and comp_id = #{companyId} and delete_type = 0 \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index 53b13a45..fb9c4833 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -262,11 +262,15 @@ public class ExtServiceImpl extends Service implements ExtService { List dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", tableName, "", ""); List groupIds = dtInfoPOList.stream().map(ExtendInfoPO::getExtendGroupId).distinct().collect(Collectors.toList()); Map> poMaps = dtInfoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); - // 删除原有明细表数据 - getExtDTMapper().deleteByMainID(tableName, id); + boolean deleteFlag = true; for (Long groupId : groupIds) { int rowNum = Util.getIntValue((String) params.get("rownum" + groupId)); + if (deleteFlag && rowNum > 0) { + // 删除原有明细表数据 + getExtDTMapper().deleteByMainID(tableName, id); + deleteFlag = false; + } List filterS = poMaps.get(groupId); for (int i = 0; i < rowNum; i++) { Map map = new HashMap<>(); diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index a3cddfb4..22478ff7 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -67,6 +67,7 @@ public class OrganizationSyncEc { this.user = user; this.oldJobPO = oldJobPO; } + public OrganizationSyncEc(User user, LogModuleNameEnum moduleName, OperateTypeEnum operateType, Map params, JobPO oldJobPO, boolean throwException) { this.moduleName = moduleName; this.operateType = operateType; @@ -204,7 +205,7 @@ public class OrganizationSyncEc { // 修改后不存在共用、直接修改EC岗位表数据 if (EcHrmRelationUtil.isNotExistJob(newName, jclJobId)) { // 查询ec表ID - RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(oldName); + RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(newName); if (null != hrmJobTitle) { map.put("id", Util.null2String(hrmJobTitle.getId())); map.put("operateIp", Util.null2String(user.getLoginip())); @@ -235,7 +236,7 @@ public class OrganizationSyncEc { RecordInfo hrmJobTitle = getSystemDataMapper().getHrmJobTitleByName(newName); // 查询原分部、原岗位下的人员,并更新岗位ID List hrmResourceIds = getSystemDataMapper().getHrmResourceIds(oldJobPO.getParentDept(), oldHrmJobTitle.getId()); - if(CollectionUtils.isNotEmpty(hrmResourceIds)) { + if (CollectionUtils.isNotEmpty(hrmResourceIds)) { getSystemDataMapper().updateResourceJobTitleByIds(Util.null2String(hrmJobTitle.getId()), hrmResourceIds); } // 封存原名称岗位 diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index c23ab1ea..79fc836b 100644 --- a/src/com/engine/organization/thread/StaffTriggerRunnable.java +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -30,18 +30,20 @@ public class StaffTriggerRunnable implements Runnable { return MapperProxyFactory.getProxy(StaffTriggerMapper.class); } + private final String currentDate; + public StaffTriggerRunnable(StaffPO staffPO) { this.staffPO = staffPO; + currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); } @Override public void run() { - String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); if (null != staffPO) { StaffPlanPO staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId()); if (null != staffPlanByID && StringUtils.isNotBlank(staffPlanByID.getControlDimension())) { String fType = staffPlanByID.getControlDimension(); - int fPlan = 0; + Integer fPlan = 0; int fOnJob = 0; String fObjId = ""; switch (fType) { @@ -55,19 +57,22 @@ public class StaffTriggerRunnable implements Runnable { // 更新部门编制 fObjId = Util.null2String(staffPO.getDeptId()); fOnJob = getStaffTriggerMapper().countDepartmentUsers(staffPO.getEcDepartment()); - fPlan = getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); + fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); + fPlan += getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); break; case "3": // 更新岗位编制 fObjId = Util.null2String(staffPO.getJobId()); fOnJob = 10; - fPlan = getStaffTriggerMapper().countJobStaffNum(currentDate, staffPO.getJobId()); + fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); + fPlan += getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); + fPlan += getStaffTriggerMapper().countJobStaffNum(currentDate, staffPO.getJobId()); break; default: break; } // 更新对应的编制数 - getStaffTriggerMapper().updateOrgStaffs(currentDate, fType, fObjId, fPlan, fOnJob); + getStaffTriggerMapper().updateOrgStaffs(currentDate, fType, fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); } } } From 02836ce37d4c091430e847e3cd8bb897d21b63b5 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 23 Sep 2022 15:53:37 +0800 Subject: [PATCH 42/68] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E3=80=81=E7=BC=96=E5=88=B6=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E3=80=81BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/JobBrowserService.java | 2 +- .../organization/mapper/job/JobMapper.java | 10 ++ .../organization/mapper/job/JobMapper.xml | 12 ++ .../mapper/trigger/StaffTriggerMapper.java | 8 +- .../mapper/trigger/StaffTriggerMapper.xml | 30 ++++- .../service/impl/CompServiceImpl.java | 5 +- .../service/impl/DepartmentServiceImpl.java | 2 + .../service/impl/ImportCommonServiceImpl.java | 40 ++++--- .../service/impl/JobServiceImpl.java | 62 ++++++++-- .../thread/StaffTriggerRunnable.java | 110 ++++++++++++++---- .../action/StaffChangeAction.java | 8 +- 11 files changed, 235 insertions(+), 54 deletions(-) diff --git a/src/com/api/browser/service/impl/JobBrowserService.java b/src/com/api/browser/service/impl/JobBrowserService.java index 4cb16406..5436dd0b 100644 --- a/src/com/api/browser/service/impl/JobBrowserService.java +++ b/src/com/api/browser/service/impl/JobBrowserService.java @@ -110,7 +110,7 @@ public class JobBrowserService extends BrowserService { */ private String buildSqlWhere(Map params) { DBType dbType = DBType.get(new RecordSet().getDBType()); - String sqlWhere = " where t.delete_type ='0' "; + String sqlWhere = " where t.delete_type ='0' and forbidden_tag ='0' "; String jobNo = Util.null2String(params.get("jobNo")); if (StringUtils.isNotBlank(jobNo)) { sqlWhere += " AND t.job_no " + dbType.like(jobNo); diff --git a/src/com/engine/organization/mapper/job/JobMapper.java b/src/com/engine/organization/mapper/job/JobMapper.java index 2b7f7c0b..23230187 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.java +++ b/src/com/engine/organization/mapper/job/JobMapper.java @@ -88,6 +88,16 @@ public interface JobMapper { */ List listByNameExceptId(@Param("jobName") String jobName, @Param("id") Long id); + /** + * 统计同一层级下是否有重名岗位 + * @param jobName + * @param id + * @param parentJob + * @param ecDepartment + * @return + */ + Integer countRepeatNameByPid(@Param("jobName") String jobName, @Param("id") Long id, @Param("parentJob") Long parentJob, @Param("ecDepartment") Long ecDepartment); + /** * 根据所属部门查询数据 * diff --git a/src/com/engine/organization/mapper/job/JobMapper.xml b/src/com/engine/organization/mapper/job/JobMapper.xml index 31d88509..fd366d18 100644 --- a/src/com/engine/organization/mapper/job/JobMapper.xml +++ b/src/com/engine/organization/mapper/job/JobMapper.xml @@ -556,6 +556,18 @@ and ec_company = #{ecCompany} and ec_department = #{ecDepartment} + and ifnull(parent_job,0) = diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java index a20dfef2..7c9dbb5e 100644 --- a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java @@ -8,9 +8,13 @@ import org.apache.ibatis.annotations.Param; * @version: 1.0 */ public interface StaffTriggerMapper { - Integer countCompanyUsers(@Param("ecCompanyId") Long ecCompanyId); + Integer countCompanyUsers(@Param("ecCompanyId") String ecCompanyId); - Integer countDepartmentUsers(@Param("ecDepartmentId") Long ecDepartmentId); + Integer countDepartmentUsers(@Param("ecDepartmentId") String ecDepartmentId); + + Integer countJobUsers(@Param("jobTitle") String jobTitle); + + Integer countAllusers(); Integer countCompanyStaffNum(@Param("currentDate") String currentDate, @Param("companyId") Long companyId); diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml index e60e0791..04a9aaaa 100644 --- a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml @@ -25,14 +25,28 @@ where status <= 3 and departmentid = #{ecDepartmentId} + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 969229e1..ca87a50e 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -205,7 +205,10 @@ public class CompServiceImpl extends Service implements CompService { // 上级分部 String ecCompany = Util.null2String(params.get("ec_company")); if (StringUtils.isNotBlank(ecCompany)) { - params.put("parent_company", EcHrmRelationUtil.getJclCompanyId(ecCompany).getId()); + Long parent_company = Objects.requireNonNull(EcHrmRelationUtil.getJclCompanyId(ecCompany)).getId(); + // 上级分部不能选择本身 + OrganizationAssert.isFalse(parent_company.equals(searchParam.getId()), "上级分部不能选择本身"); + params.put("parent_company", parent_company); }else{ params.put("parent_company", ""); } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index d5afb0eb..3c6c1e16 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -291,6 +291,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService if (StringUtils.isNotBlank(ecDepartment)) { DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(ecDepartment); if (null != jclDepartmentId) { + // 上级部门不能选择本身 + OrganizationAssert.isFalse(jclDepartmentId.getId().equals(searchParam.getId()), "上级部门不能选择本身"); params.put("parent_dept", jclDepartmentId.getId()); // 部门不为空,自动指定所属分部 params.put("parent_comp", jclDepartmentId.getParentComp()); diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 83da6057..3a54aa89 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -1157,13 +1157,19 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ map.put("id", infoParams.getId()); Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.ADD, map, false).sync(); if (isThrowError(syncMap)) { - map.remove("id"); - map.remove("jobactivityid"); - MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); - // 更新组织架构图 - new Thread(new JobTriggerRunnable(jobId)).start(); - historyDetailPO.setOperateDetail("添加成功"); - historyDetailPO.setStatus("1"); + boolean assertNameRepeat = JobServiceImpl.assertNameRepeat(null, Util.null2String(map.get("ec_department")), Util.null2String(map.get("parent_job")), Util.null2String(map.get("job_name"))); + if (assertNameRepeat) { + map.remove("id"); + map.remove("jobactivityid"); + MapperProxyFactory.getProxy(ExtMapper.class).insertTable(infoParams); + // 更新组织架构图 + new Thread(new JobTriggerRunnable(jobId)).start(); + historyDetailPO.setOperateDetail("添加成功"); + historyDetailPO.setStatus("1"); + } else { + historyDetailPO.setOperateDetail("岗位名称已存在"); + historyDetailPO.setStatus("0"); + } } else { historyDetailPO.setOperateDetail(Util.null2String(syncMap.get("message"))); historyDetailPO.setStatus("0"); @@ -1183,13 +1189,19 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ map.put("id", jobId); Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, map, MapperProxyFactory.getProxy(JobMapper.class).getJobById(jobId), false).sync(); if (isThrowError(syncMap)) { - map.remove("id"); - map.remove("jobactivityid"); - MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(jobId).tableName("JCL_ORG_JOB").params(map).build()); - // 更新组织架构图 - new Thread(new JobTriggerRunnable(jobId)).start(); - historyDetailPO.setOperateDetail("更新成功"); - historyDetailPO.setStatus("1"); + boolean assertNameRepeat = JobServiceImpl.assertNameRepeat(null, Util.null2String(map.get("ec_department")), Util.null2String(map.get("parent_job")), Util.null2String(map.get("job_name"))); + if (assertNameRepeat) { + map.remove("id"); + map.remove("jobactivityid"); + MapperProxyFactory.getProxy(ExtMapper.class).updateTable(ExtendInfoParams.builder().id(jobId).tableName("JCL_ORG_JOB").params(map).build()); + // 更新组织架构图 + new Thread(new JobTriggerRunnable(jobId)).start(); + historyDetailPO.setOperateDetail("更新成功"); + historyDetailPO.setStatus("1"); + } else { + historyDetailPO.setOperateDetail("岗位名称已存在"); + historyDetailPO.setStatus("0"); + } } else { historyDetailPO.setOperateDetail(Util.null2String(syncMap.get("message"))); historyDetailPO.setStatus("0"); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 71df6806..a4cfb8a8 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -348,12 +348,12 @@ public class JobServiceImpl extends Service implements JobService { @Override public Long saveBaseForm(Map params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); + JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); + assertNameRepeat(null, searchParam.getEcDepartment(), searchParam.getParentJob(), searchParam.getJobName()); String jobNo = (String) params.get("job_no"); // 判断是否开启自动编号 jobNo = repeatDetermine(jobNo); params.put("job_no", jobNo); - JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); - params.put("is_key", null == searchParam.getIsKey() ? 0 : searchParam.getIsKey()); Long ecDepartment = searchParam.getEcDepartment(); DepartmentPO jclDepartment = EcHrmRelationUtil.getJclDepartmentId(Util.null2String(ecDepartment)); @@ -379,8 +379,14 @@ public class JobServiceImpl extends Service implements JobService { public Long updateForm(Map params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); + assertNameRepeat(searchParam.getId(), searchParam.getEcDepartment(), searchParam.getParentJob(), searchParam.getJobName()); String groupId = (String) params.get("viewCondition"); searchParam.setIsKey(null == searchParam.getIsKey() ? 0 : searchParam.getIsKey()); + // 上级岗位不能选择本身 + String parent_job = Util.null2String(params.get("parent_job")); + if (StringUtils.isNotBlank(parent_job)) { + OrganizationAssert.isFalse(parent_job.equals(searchParam.getId().toString()), "上级岗位不能选择本身"); + } if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } @@ -436,6 +442,7 @@ public class JobServiceImpl extends Service implements JobService { // 清空上级岗位 jobById.setParentJob(null); jobById.setShowOrder(orderNum); + assertNameRepeat(null, jobById.getEcDepartment(), jobById.getParentJob(), jobById.getJobName()); insertCount += getJobMapper().insertIgnoreNull(jobById); // 更新组织架构图 new Thread(new JobTriggerRunnable(jobById.getId())).start(); @@ -472,14 +479,14 @@ public class JobServiceImpl extends Service implements JobService { 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); + rs.executeQuery("select id from cus_fielddata where field100002 = ?", jobId); while (rs.next()) { ids.add(Util.null2String(rs.getString("id"))); } - if (CollectionUtils.isEmpty(ids)){ + if (CollectionUtils.isEmpty(ids)) { ids.add("-1"); } - table.setSqlwhere(" where id in ("+StringUtils.join(ids,",")+") and status<4"); + table.setSqlwhere(" where id in (" + StringUtils.join(ids, ",") + ") and status<4"); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); @@ -533,6 +540,7 @@ public class JobServiceImpl extends Service implements JobService { // 待合并的部门 JobPO jobById = getJobMapper().getJobById(mergeParam.getId()); + assertNameRepeat(targetJob.getId(), targetJob.getEcDepartment(), targetJob.getParentJob(), mergeParam.getMergeName()); // 递归处理子岗位所属分部、所部部门、上级岗位 recursionMergeJob(jobs, targetJob.getParentComp(), targetJob.getEcCompany(), targetJob.getParentDept(), targetJob.getEcDepartment(), targetJob.getId()); @@ -548,7 +556,7 @@ public class JobServiceImpl extends Service implements JobService { // 更新人员组织架构图 } // 更新合并后的岗位,更新组织架构图 - updateEcJob(targetJob,mergeParam.getMergeName()); + updateEcJob(targetJob, mergeParam.getMergeName()); targetJob.setJobName(mergeParam.getMergeName()); getJobMapper().updateBaseJob(targetJob); @@ -782,9 +790,10 @@ public class JobServiceImpl extends Service implements JobService { /** * 更新EC岗位 + * * @param jobPO */ - private void updateEcJob(JobPO jobPO,String newName){ + private void updateEcJob(JobPO jobPO, String newName) { Map params = new HashMap<>(); params.put("job_name", newName); params.put("jobactivityid", JOB_ACTIVITY_ID); @@ -795,4 +804,43 @@ public class JobServiceImpl extends Service implements JobService { new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, params, jobPO).sync(); } + + /** + * 判断相同层级下有无同名岗位 + */ + public static void assertNameRepeat(Long jobId, Long departmentId, Long parentJobId, String jobName) { + assertNameRepeat(jobId, departmentId, parentJobId, jobName, true); + } + + /** + * 判断相同层级下有无同名岗位 + */ + public static boolean assertNameRepeat(String jobId, String departmentId, String parentJobId, String jobName) { + return assertNameRepeat(StringUtils.isBlank(jobId) ? null : Long.parseLong(jobId), StringUtils.isBlank(departmentId) ? null : Long.parseLong(departmentId), StringUtils.isBlank(parentJobId) ? null : Long.parseLong(parentJobId), jobName, false); + } + + /** + * 判断相同层级下有无同名岗位 + * + * @param jobId + * @param departmentId + * @param parentJobId + * @param jobName + * @param throwException + * @return + */ + public static boolean assertNameRepeat(Long jobId, Long departmentId, Long parentJobId, String jobName, boolean throwException) { + int count = 0; + // 有上级岗位、判断相同层级下有无相同名称岗位 + if (null != jobId) { + count = getJobMapper().countRepeatNameByPid(jobName, jobId, parentJobId, departmentId); + } else { + // 无上级岗位,判断当前部门下,有无同名岗位 + count = getJobMapper().countRepeatNameByPid(jobName, jobId, null, departmentId); + } + if (throwException) { + OrganizationAssert.isTrue(count == 0, "岗位名称已存在"); + } + return count == 0; + } } diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index 79fc836b..e263f818 100644 --- a/src/com/engine/organization/thread/StaffTriggerRunnable.java +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -1,12 +1,20 @@ package com.engine.organization.thread; +import com.engine.organization.entity.commom.RecordInfo; +import com.engine.organization.entity.company.po.CompPO; +import com.engine.organization.entity.department.po.DepartmentPO; +import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.entity.staff.po.StaffPlanPO; -import com.engine.organization.mapper.staff.StaffMapper; +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.mapper.job.JobMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.mapper.trigger.StaffTriggerMapper; import com.engine.organization.util.OrganizationDateUtil; import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.relation.EcHrmRelationUtil; import org.apache.commons.lang3.StringUtils; import weaver.general.Util; @@ -18,10 +26,6 @@ import weaver.general.Util; public class StaffTriggerRunnable implements Runnable { StaffPO staffPO; - private StaffMapper getStaffMapper() { - return MapperProxyFactory.getProxy(StaffMapper.class); - } - private StaffPlanMapper getStaffPlanMapper() { return MapperProxyFactory.getProxy(StaffPlanMapper.class); } @@ -30,6 +34,18 @@ public class StaffTriggerRunnable implements Runnable { return MapperProxyFactory.getProxy(StaffTriggerMapper.class); } + private CompMapper getCompMapper() { + return MapperProxyFactory.getProxy(CompMapper.class); + } + + private DepartmentMapper getDepartmentMapper() { + return MapperProxyFactory.getProxy(DepartmentMapper.class); + } + + private JobMapper getJobMapper() { + return MapperProxyFactory.getProxy(JobMapper.class); + } + private final String currentDate; public StaffTriggerRunnable(StaffPO staffPO) { @@ -43,37 +59,87 @@ public class StaffTriggerRunnable implements Runnable { StaffPlanPO staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId()); if (null != staffPlanByID && StringUtils.isNotBlank(staffPlanByID.getControlDimension())) { String fType = staffPlanByID.getControlDimension(); - Integer fPlan = 0; - int fOnJob = 0; - String fObjId = ""; switch (fType) { case "1": // 更新分部编制 - fObjId = Util.null2String(staffPO.getCompId()); - fOnJob = getStaffTriggerMapper().countCompanyUsers(staffPO.getEcCompany()); - fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); + refreshCompanyStaff(staffPO.getCompId(), 0); break; case "2": // 更新部门编制 - fObjId = Util.null2String(staffPO.getDeptId()); - fOnJob = getStaffTriggerMapper().countDepartmentUsers(staffPO.getEcDepartment()); - fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); - fPlan += getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); + refreshCompanyStaff(staffPO.getCompId(), 0); + refreshDepartmentStaff(staffPO.getDeptId(), 0); break; case "3": // 更新岗位编制 - fObjId = Util.null2String(staffPO.getJobId()); - fOnJob = 10; - fPlan = getStaffTriggerMapper().countCompanyStaffNum(currentDate, staffPO.getCompId()); - fPlan += getStaffTriggerMapper().countDepartmentStaffNum(currentDate, staffPO.getDeptId()); - fPlan += getStaffTriggerMapper().countJobStaffNum(currentDate, staffPO.getJobId()); + refreshCompanyStaff(staffPO.getCompId(), 0); + refreshDepartmentStaff(staffPO.getDeptId(), 0); + refreshJobStaff(staffPO.getJobId(), 0); break; default: break; } - // 更新对应的编制数 - getStaffTriggerMapper().updateOrgStaffs(currentDate, fType, fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); } } } + + private void refreshCompanyStaff(Long companyId, Integer fPlan) { + if (null == companyId) { + return; + } + CompPO compPO = getCompMapper().listById(companyId); + if (null != compPO) { + String ecCompanyId = EcHrmRelationUtil.getEcCompanyId(Util.null2String(companyId)); + String fObjId = Util.null2String(companyId); + int fOnJob = getStaffTriggerMapper().countCompanyUsers(ecCompanyId); + Integer staffSum = getStaffTriggerMapper().countCompanyStaffNum(currentDate, companyId); + fPlan += null == staffSum ? 0 : staffSum; + getStaffTriggerMapper().updateOrgStaffs(currentDate, "1", fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); + if (null != compPO.getParentCompany() && 0 != compPO.getParentCompany()) { + refreshCompanyStaff(compPO.getParentCompany(), fPlan); + } else { + refreshGroupStaff(fPlan); + } + } + } + + private void refreshDepartmentStaff(Long departmentId, Integer fPlan) { + if (null == departmentId) { + return; + } + DepartmentPO deptById = getDepartmentMapper().getDeptById(departmentId); + if (null != deptById) { + String ecDepartmentId = EcHrmRelationUtil.getEcDepartmentId(Util.null2String(departmentId)); + String fObjId = Util.null2String(departmentId); + int fOnJob = getStaffTriggerMapper().countDepartmentUsers(ecDepartmentId); + Integer staffSum = getStaffTriggerMapper().countDepartmentStaffNum(currentDate, departmentId); + fPlan += null == staffSum ? 0 : staffSum; + getStaffTriggerMapper().updateOrgStaffs(currentDate, "2", fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); + if (null != deptById.getParentDept() && 0 != deptById.getParentDept()) { + refreshDepartmentStaff(deptById.getParentDept(), fPlan); + } + } + } + + private void refreshJobStaff(Long jobId, Integer fPlan) { + if (null == jobId) { + return; + } + JobPO jobById = getJobMapper().getJobById(jobId); + if (null != jobById) { + String fObjId = Util.null2String(jobId); + RecordInfo hrmJobTitleByName = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmJobTitleByName(jobById.getJobName()); + int fOnJob = getStaffTriggerMapper().countJobUsers(hrmJobTitleByName.getId()); + Integer staffSum = getStaffTriggerMapper().countJobStaffNum(currentDate, jobId); + fPlan += null == staffSum ? 0 : staffSum; + getStaffTriggerMapper().updateOrgStaffs(currentDate, "3", fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); + //if (null != jobById.getParentJob() && 0 != jobById.getParentJob()) { + // refreshJobStaff(jobById.getParentJob(), fPlan); + //} + } + } + + private void refreshGroupStaff(Integer fPlan) { + Integer fOnJob = getStaffTriggerMapper().countAllusers(); + getStaffTriggerMapper().updateOrgStaffs(currentDate, "0", "0", fPlan < 0 ? 0 : fPlan, fOnJob); + } } diff --git a/src/weaver/interfaces/organization/action/StaffChangeAction.java b/src/weaver/interfaces/organization/action/StaffChangeAction.java index 4f8a01e6..0f50638c 100644 --- a/src/weaver/interfaces/organization/action/StaffChangeAction.java +++ b/src/weaver/interfaces/organization/action/StaffChangeAction.java @@ -98,15 +98,21 @@ public class StaffChangeAction implements Action { break; case "4":// 冻结释放,比如面试不通过,offer不接受等 if (changeNum > staffPO.getFreezeNum()) { - return "冻结释放不能大于冻结数"; + return "调整不能大于冻结数"; } staffPO.setFreezeNum(staffPO.getFreezeNum() - changeNum); break; case "5":// 扣减,比如正式入职,调入等 staffPO.setPermanentNum(staffPO.getPermanentNum() + changeNum); + if (staffPO.getPermanentNum() > staffPO.getStaffNum()) { + return "在编数不能大于编制数"; + } break; case "6":// 减员释放,比如离职、调出等 staffPO.setPermanentNum(staffPO.getPermanentNum() - changeNum); + if (staffPO.getPermanentNum() < 0) { + return "调整数量不可大于在编数"; + } break; case "1":// 编制 case "2":// 变更 From ca3a09335716a09906720c8732e37af173565108 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Thu, 29 Sep 2022 10:28:04 +0800 Subject: [PATCH 43/68] bug --- .../engine/organization/service/impl/OrgChartServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java index a75ed3b5..e02730eb 100644 --- a/src/com/engine/organization/service/impl/OrgChartServiceImpl.java +++ b/src/com/engine/organization/service/impl/OrgChartServiceImpl.java @@ -340,7 +340,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { private void findUserItemByParantId(String id, int currentLevel, String level, RecordSet rs, List> list, String whereSql, boolean expand) { - rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber,t.fobjid,fecid from jcl_org_map t " + whereSql + " and t.fparentid = " + id); + rs.executeQuery("select t.id, t.fname, t.ftype, t.fparentid,t.fleader, t.fleadername, t.fleaderimg, t.fleaderjob, t.fplan, t.fonjob, t.fnumber,t.fobjid,fecid from jcl_org_map t " + whereSql + " and t.fparentid = " + id); List> currentList = new ArrayList<>(); while (rs.next()) { Map item = new HashMap<>(); @@ -357,6 +357,7 @@ public class OrgChartServiceImpl extends Service implements OrgChartService { item.put("expand", expand ? "1" : "0"); item.put("fobjid", rs.getString("fobjid")); item.put("fecid", rs.getString("fecid")); + item.put("fleader", rs.getString("fleader")); item.put("hasChildren", hasChildren(rs.getString("id"), false)); currentList.add(item); } From c6fb0d129b926cd4d1efbb327d1f73d64a45fd79 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 29 Sep 2022 15:57:00 +0800 Subject: [PATCH 44/68] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E5=9B=BE=E7=BC=96=E5=88=B6=E3=80=81=E5=9C=A8=E5=B2=97,?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/非标从发SQL脚本/MySQL.sql | 68 +++++++++++ docs/非标从发SQL脚本/Oracle.sql | 67 +++++++++++ docs/非标从发SQL脚本/SqlServer.sql | 66 +++++++++++ .../department/dto/DepartmentListDTO.java | 2 +- .../mapper/jclorgmap/JclOrgMapper.java | 7 ++ .../mapper/jclorgmap/JclOrgMapper.xml | 22 ++++ .../mapper/trigger/GroupTriggerMapper.xml | 2 +- .../mapper/trigger/StaffTriggerMapper.java | 18 ++- .../mapper/trigger/StaffTriggerMapper.xml | 33 +++++- .../service/impl/DepartmentServiceImpl.java | 1 + .../service/impl/ImportCommonServiceImpl.java | 7 +- .../service/impl/StaffServiceImpl.java | 3 +- .../thread/CompanyTriggerRunnable.java | 11 +- .../thread/DepartmentTriggerRunnable.java | 12 +- .../thread/GroupTriggerRunnable.java | 12 +- .../thread/HrmResourceTriggerRunnable.java | 3 +- .../thread/JobTriggerRunnable.java | 12 +- .../thread/OrganizationSyncEc.java | 1 - .../thread/StaffTriggerRunnable.java | 109 +++++++++++------- .../util/relation/EcHrmRelationUtil.java | 12 ++ .../hrmimport/HrmImportAdaptExcelE9.java | 1 - .../action/StaffChangeAction.java | 8 +- 22 files changed, 406 insertions(+), 71 deletions(-) create mode 100644 docs/非标从发SQL脚本/MySQL.sql create mode 100644 docs/非标从发SQL脚本/Oracle.sql create mode 100644 docs/非标从发SQL脚本/SqlServer.sql diff --git a/docs/非标从发SQL脚本/MySQL.sql b/docs/非标从发SQL脚本/MySQL.sql new file mode 100644 index 00000000..da415326 --- /dev/null +++ b/docs/非标从发SQL脚本/MySQL.sql @@ -0,0 +1,68 @@ +-- 更新表结构 +alter table JCL_ORG_COMP add ec_company int; +alter table JCL_ORG_DEPT add ec_company int; +alter table JCL_ORG_DEPT add ec_department int; +alter table jcl_org_staffplan add ec_company varchar(100); +alter table jcl_org_staff add ec_company int; +alter table jcl_org_staff add ec_department int; +alter table JCL_ORG_STAFFS add description varchar(200); +-- 插入自定义信息 +insert INTO jcl_field_extendinfo (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 (1, 'JCL_ORG_COMP', 'ec_company', '上级公司', 'int', 3, 1, 1, 0, 1, 1, 1, 1, 1, 6, 1, 0, now(), NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0); +insert INTO jcl_field_extendinfo (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 (2, 'JCL_ORG_DEPT', 'ec_company', '所属分部', 'int', 3, 2, 1, 1, 1, 1, 1, 1, 1, 4, 1, 0, now(), NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0); +insert INTO jcl_field_extendinfo (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 (2, 'JCL_ORG_DEPT', 'ec_department', '上级部门', 'int', 3, 2, 1, 0, 1, 1, 1, 1, 1, 5, 1, 0, now(), NULL, '4', '["browser",{"valueSpan":"部门","replaceDatas":[{"name":"部门","id":"4"}],"value":"4"}]', 0); + +-- 更新自定义字段信息 +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_COMP' and field_name ='parent_company'; +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_DEPT' and field_name ='parent_comp'; +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_DEPT' and field_name ='parent_dept'; +update jcl_field_extendinfo set search_show=0,edit_show=0,add_show=0 where table_name ='JCL_ORG_JOB' and field_name='ec_company'; + +-- 更新浏览按钮 +update WORKFLOW_BROWSERURL set TYPEID ='2' where ID = '666'; +update datashowparam set ISSHOWNAME =0 where SEARCHNAME = 'post_info_no'; +update datashowparam set ISSHOWNAME =1 where SEARCHNAME = 'post_info_name'; + +-- 更新视图 +drop view v_jcl_zdzj; +drop view v_jcl_post; + +create view v_jcl_zdzj as +select concat('A',xl.id) fid,xl.sequence_name fname,'0' fparentid,xl.sequence_no fno,xl.id fobjid,'1' as ftype +from jcl_org_sequence xl + inner join JCL_ORG_GRADE zj on zj.scheme_id=xl.scheme_id and ifnull(zj.forbidden_tag,0)<>1 and ifnull(zj.delete_type,0)<>1 + inner join JCL_ORG_LEVEL zd on zd.scheme_id=zd.scheme_id and ifnull(zd.forbidden_tag,0)<>1 and ifnull(zd.delete_type,0)<>1 +where ifnull(xl.forbidden_tag,0)<>1 and ifnull(xl.delete_type,0)<>1 +union +select concat(xl.id,'A',zj.id),zj.grade_name,concat('A',xl.id),zj.grade_no,zj.id,'2' as ftype +from JCL_ORG_GRADE zj + inner join jcl_org_sequence xl on zj.scheme_id=xl.scheme_id + inner join JCL_ORG_LEVEL zd on concat(',',zj.level_id,',') like concat('%,',zd.id,',%') and ifnull(zd.forbidden_tag,0)<>1 and ifnull(zd.delete_type,0)<>1 +where ifnull(zj.forbidden_tag,0)<>1 and ifnull(zj.delete_type,0)<>1 +union +select concat(xl.id,'A',zj.id,'A',zd.id),zd.level_name,concat(xl.id,'A',zj.id),zd.level_no,zd.id,'3' as ftype +from JCL_ORG_LEVEL zd + inner join JCL_ORG_GRADE zj on concat(',',zj.level_id,',') like concat('%,',zd.id,',%') + inner join jcl_org_sequence xl on zj.scheme_id=xl.scheme_id +where ifnull(zd.forbidden_tag,0)<>1 and ifnull(zd.delete_type,0)<>1; + + +create view v_jcl_post as +select a.id*-1 fid,a.post_name fname,0 fparentid from JCL_ORG_POST a + inner join JCL_ORG_POST_INFO b on a.id =b.post_id and ifnull(b.forbidden_tag,0)<>1 and ifnull(b.delete_type,0)<>1 +where ifnull(a.delete_type,0)<>1 +union +select id,post_info_name,post_id*-1 from JCL_ORG_POST_INFO +where ifnull(forbidden_tag,0)<>1 and ifnull(delete_type,0)<>1; + + +--- MySQL +-- 更新分部ec_company +update jcl_org_comp d set ec_company = ( select eccompany from ( select b.id as parent_company, c.id as eccompany from jcl_org_comp a inner join jcl_org_comp b on a.parent_company = b.id inner join hrmsubcompany c on b.uuid = c.uuid group by b.id ) e where d.parent_company = e.parent_company ); +-- 更新部门ec_department、ec_company +update JCL_ORG_DEPT d set ec_department = ( select ecdepartment from ( select b.id as parent_dept, c.id as ecdepartment from JCL_ORG_DEPT a inner join JCL_ORG_DEPT b on a.parent_dept = b.id inner join hrmdepartment c on b.uuid = c.uuid group by b.id ) e where d.parent_dept = e.parent_dept ); +update JCL_ORG_DEPT d set ec_company = ( select eccompany from ( select a.id as id, c.id as eccompany from jcl_org_comp a inner join hrmsubcompany c on a.uuid = c.uuid) e where d.parent_comp = e.id ); +-- 更新人员jobtitle +update hrmresource set jobtitle = ( select id from HRMJOBTITLES where JOBTITLENAME = ( select JOB_NAME from jcl_org_job where id = ( select FIELD100002 from CUS_FIELDDATA where scope = 'HrmCustomFieldByInfoType' and SCOPEID = '-1' and CUS_FIELDDATA.ID = hrmresource.ID))); +-- 更新岗位ec_company、ec_department +update jcl_org_job d set ec_company = (select eccompany from ( select a.id as id, c.id as eccompany from jcl_org_comp a inner join hrmsubcompany c on a.uuid = c.uuid) e where d.parent_comp = e.id ); +update jcl_org_job d set ec_department = ( select ec_department from ( select a.id as id, c.id as ec_department from jcl_org_dept a inner join hrmdepartment c on a.uuid = c.uuid) e where d.parent_dept = e.id ); diff --git a/docs/非标从发SQL脚本/Oracle.sql b/docs/非标从发SQL脚本/Oracle.sql new file mode 100644 index 00000000..258e7b87 --- /dev/null +++ b/docs/非标从发SQL脚本/Oracle.sql @@ -0,0 +1,67 @@ +-- 更新表结构 +alter table JCL_ORG_COMP add ec_company int; +alter table JCL_ORG_DEPT add ec_company int; +alter table JCL_ORG_DEPT add ec_department int; +alter table jcl_org_staffplan add ec_company varchar(100); +alter table jcl_org_staff add ec_company int; +alter table jcl_org_staff add ec_department int; +alter table JCL_ORG_STAFFS add description varchar(200); +-- 插入自定义信息 +insert INTO jcl_field_extendinfo (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 (1, 'JCL_ORG_COMP', 'ec_company', '上级公司', 'int', 3, 1, 1, 0, 1, 1, 1, 1, 1, 6, 1, 0, SYSDATE, NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0); +insert INTO jcl_field_extendinfo (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 (2, 'JCL_ORG_DEPT', 'ec_company', '所属分部', 'int', 3, 2, 1, 1, 1, 1, 1, 1, 1, 4, 1, 0, SYSDATE, NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0); +insert INTO jcl_field_extendinfo (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 (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); + +-- 更新自定义字段信息 +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_COMP' and field_name ='parent_company'; +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_DEPT' and field_name ='parent_comp'; +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_DEPT' and field_name ='parent_dept'; +update jcl_field_extendinfo set search_show=0,edit_show=0,add_show=0 where table_name ='JCL_ORG_JOB' and field_name='ec_company'; + +-- 更新浏览按钮 +update WORKFLOW_BROWSERURL set TYPEID ='2' where ID = '666'; +update datashowparam set ISSHOWNAME =0 where SEARCHNAME = 'post_info_no'; +update datashowparam set ISSHOWNAME =1 where SEARCHNAME = 'post_info_name'; + +-- 更新视图 +drop view v_jcl_zdzj; +drop view v_jcl_post; + +create or replace view v_jcl_zdzj as +select 'A'||xl.id fid,xl.sequence_name fname,'0' fparentid,xl.sequence_no fno,xl.id fobjid,'1' as ftype +from jcl_org_sequence xl + INNER JOIN JCL_ORG_GRADE zj ON zj.scheme_id=xl.scheme_id AND nvl(zj.forbidden_tag,0)<>1 and nvl(zj.delete_type,0)<>1 + INNER JOIN JCL_ORG_LEVEL zd ON zd.scheme_id=xl.scheme_id AND nvl(zd.forbidden_tag,0)<>1 and nvl(zd.delete_type,0)<>1 +where nvl(xl.forbidden_tag,0)<>1 and nvl(xl.delete_type,0)<>1 +union +select xl.id ||'A'|| zj.id ,zj.grade_name,'A'|| xl.id ,zj.grade_no,zj.id,'2' as ftype +from JCL_ORG_GRADE zj + inner join jcl_org_sequence xl on zj.scheme_id=xl.scheme_id + INNER JOIN JCL_ORG_LEVEL zd on ','|| zj.level_id ||',' like '%,'|| zd.id ||',%' AND nvl(zd.forbidden_tag,0)<>1 and nvl(zd.delete_type,0)<>1 +where nvl(zj.forbidden_tag,0)<>1 and nvl(zj.delete_type,0)<>1 +union +select xl.id ||'A'|| zj.id ||'A'|| zd.id ,zd.level_name, xl.id ||'A'|| zj.id ,zd.level_no,zd.id,'3' as ftype +from JCL_ORG_LEVEL zd + inner join JCL_ORG_GRADE zj on ','|| zj.level_id ||',' like '%,'|| zd.id ||',%' + inner join jcl_org_sequence xl on zj.scheme_id=xl.scheme_id +where nvl(zd.forbidden_tag,0)<>1 and nvl(zd.delete_type,0)<>1; + +create or replace view v_jcl_post as +select a.id*-1 fid,a.post_name fname,0 fparentid from JCL_ORG_POST a + inner join JCL_ORG_POST_INFO b on a.id =b.post_id and nvl(b.forbidden_tag,0)<>1 and nvl(b.delete_type,0)<>1 +where nvl(a.delete_type,0)<>1 +union +select id,post_info_name,post_id*-1 from JCL_ORG_POST_INFO +where nvl(forbidden_tag,0)<>1 and nvl(delete_type,0)<>1; + + +-- SqlServer +-- 更新分部ec_company +update jcl_org_comp set ec_company = ( select eccompany from ( select DISTINCT b.id as parent_company, c.id as eccompany from jcl_org_comp a inner join jcl_org_comp b on a.parent_company = b.id inner join hrmsubcompany c on b.uuid = c.uuid ) e where jcl_org_comp.parent_company = e.parent_company ); +-- 更新部门ec_department、ec_company +update JCL_ORG_DEPT set ec_department = ( select ecdepartment from ( select DISTINCT b.id as parent_dept, c.id as ecdepartment from JCL_ORG_DEPT a inner join JCL_ORG_DEPT b on a.parent_dept = b.id inner join hrmdepartment c on b.uuid = c.uuid ) e where JCL_ORG_DEPT.parent_dept = e.parent_dept ); +update JCL_ORG_DEPT set ec_company = ( select eccompany from ( select a.id as id, c.id as eccompany from jcl_org_comp a inner join hrmsubcompany c on a.uuid = c.uuid) e where JCL_ORG_DEPT.parent_comp = e.id ); +-- 更新人员jobtitle +update hrmresource set jobtitle = ( select id from HRMJOBTITLES where JOBTITLENAME = ( select JOB_NAME from jcl_org_job where id = ( select FIELD100002 from CUS_FIELDDATA where scope = 'HrmCustomFieldByInfoType' and SCOPEID = '-1' and CUS_FIELDDATA.ID = hrmresource.ID))); +-- 更新岗位ec_company、ec_department +update jcl_org_job set ec_company = (select eccompany from ( select a.id as id, c.id as eccompany from jcl_org_comp a inner join hrmsubcompany c on a.uuid = c.uuid) e where jcl_org_job.parent_comp = e.id ); +update jcl_org_job set ec_department = ( select ec_department from ( select a.id as id, c.id as ec_department from jcl_org_dept a inner join hrmdepartment c on a.uuid = c.uuid) e where jcl_org_job.parent_dept = e.id ); diff --git a/docs/非标从发SQL脚本/SqlServer.sql b/docs/非标从发SQL脚本/SqlServer.sql new file mode 100644 index 00000000..680dad19 --- /dev/null +++ b/docs/非标从发SQL脚本/SqlServer.sql @@ -0,0 +1,66 @@ +-- 更新表结构 +alter table JCL_ORG_COMP add ec_company int; +alter table JCL_ORG_DEPT add ec_company int; +alter table JCL_ORG_DEPT add ec_department int; +alter table jcl_org_staffplan add ec_company varchar(100); +alter table jcl_org_staff add ec_company int; +alter table jcl_org_staff add ec_department int; +alter table JCL_ORG_STAFFS add description varchar(200); +-- 插入自定义信息 +insert INTO jcl_field_extendinfo (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 (1, 'JCL_ORG_COMP', 'ec_company', '上级公司', 'int', 3, 1, 1, 0, 1, 1, 1, 1, 1, 6, 1, 0, GETDATE(), NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0); +insert INTO jcl_field_extendinfo (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 (2, 'JCL_ORG_DEPT', 'ec_company', '所属分部', 'int', 3, 2, 1, 1, 1, 1, 1, 1, 1, 4, 1, 0, GETDATE(), NULL, '164', '["browser",{"valueSpan":"分部","replaceDatas":[{"name":"分部","id":"164"}],"value":"164"}]', 0); +insert INTO jcl_field_extendinfo (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 (2, 'JCL_ORG_DEPT', 'ec_department', '上级部门', 'int', 3, 2, 1, 0, 1, 1, 1, 1, 1, 5, 1, 0, GETDATE(), NULL, '4', '["browser",{"valueSpan":"部门","replaceDatas":[{"name":"部门","id":"4"}],"value":"4"}]', 0); + +-- 更新自定义字段信息 +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_COMP' and field_name ='parent_company'; +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_DEPT' and field_name ='parent_comp'; +update jcl_field_extendinfo set list_show =0,search_show =0,edit_show =0,add_show =0 where table_name ='JCL_ORG_DEPT' and field_name ='parent_dept'; +update jcl_field_extendinfo set search_show=0,edit_show=0,add_show=0 where table_name ='JCL_ORG_JOB' and field_name='ec_company'; + +-- 更新浏览按钮 +update WORKFLOW_BROWSERURL set TYPEID ='2' where ID = '666'; +update datashowparam set ISSHOWNAME =0 where SEARCHNAME = 'post_info_no'; +update datashowparam set ISSHOWNAME =1 where SEARCHNAME = 'post_info_name'; + +-- 更新视图 +drop view v_jcl_zdzj; +drop view v_jcl_post; + +create view v_jcl_zdzj as +select 'A'+cast(xl.id as varchar) fid,xl.sequence_name fname,'0' fparentid,xl.sequence_no fno,xl.id fobjid,'1' as ftype +from jcl_org_sequence xl + inner join JCL_ORG_GRADE zj on zj.scheme_id=xl.scheme_id and isnull(zj.forbidden_tag,0)<>1 and isnull(zj.delete_type,0)<>1 + inner join JCL_ORG_LEVEL zd on zd.scheme_id=xl.scheme_id and isnull(zd.forbidden_tag,0)<>1 and isnull(zd.delete_type,0)<>1 +where isnull(xl.forbidden_tag,0)<>1 and isnull(xl.delete_type,0)<>1 +union +select cast(xl.id as varchar)+'A'+cast(zj.id as varchar),zj.grade_name,'A'+cast(xl.id as varchar),zj.grade_no,zj.id,'2' as ftype +from JCL_ORG_GRADE zj + inner join jcl_org_sequence xl on zj.scheme_id=xl.scheme_id + inner join JCL_ORG_LEVEL zd on ','+cast(zj.level_id as varchar)+',' like '%,'+cast(zd.id as varchar)+',%' and isnull(zd.forbidden_tag,0)<>1 and isnull(zd.delete_type,0)<>1 +where isnull(zj.forbidden_tag,0)<>1 and isnull(zj.delete_type,0)<>1 +union +select cast(xl.id as varchar)+'A'+cast(zj.id as varchar)+'A'+cast(zd.id as varchar),zd.level_name,cast(xl.id as varchar)+'A'+cast(zj.id as varchar),zd.level_no,zd.id,'3' as ftype +from JCL_ORG_LEVEL zd + inner join JCL_ORG_GRADE zj on ','+cast(zj.level_id as varchar)+',' like '%,'+cast(zd.id as varchar)+',%' + inner join jcl_org_sequence xl on zj.scheme_id=xl.scheme_id +where isnull(zd.forbidden_tag,0)<>1 and isnull(zd.delete_type,0)<>1; + +create view v_jcl_post as +select a.id*-1 fid,a.post_name fname,0 fparentid from JCL_ORG_POST a + inner join JCL_ORG_POST_INFO b on a.id =b.post_id and isnull(b.forbidden_tag,0)<>1 and isnull(b.delete_type,0)<>1 +where isnull(a.delete_type,0)<>1 +union +select id,post_info_name,post_id*-1 from JCL_ORG_POST_INFO +where isnull(forbidden_tag,0)<>1 and isnull(delete_type,0)<>1; + +-- SqlServer +-- 更新分部ec_company +update jcl_org_comp set ec_company = ( select eccompany from ( select DISTINCT b.id as parent_company, c.id as eccompany from jcl_org_comp a inner join jcl_org_comp b on a.parent_company = b.id inner join hrmsubcompany c on b.uuid = c.uuid ) e where jcl_org_comp.parent_company = e.parent_company ); +-- 更新部门ec_department、ec_company +update JCL_ORG_DEPT set ec_department = ( select ecdepartment from ( select DISTINCT b.id as parent_dept, c.id as ecdepartment from JCL_ORG_DEPT a inner join JCL_ORG_DEPT b on a.parent_dept = b.id inner join hrmdepartment c on b.uuid = c.uuid ) e where JCL_ORG_DEPT.parent_dept = e.parent_dept ); +update JCL_ORG_DEPT set ec_company = ( select eccompany from ( select a.id as id, c.id as eccompany from jcl_org_comp a inner join hrmsubcompany c on a.uuid = c.uuid) e where JCL_ORG_DEPT.parent_comp = e.id ); +-- 更新人员jobtitle +update hrmresource set jobtitle = ( select id from HRMJOBTITLES where JOBTITLENAME = ( select JOB_NAME from jcl_org_job where id = ( select FIELD100002 from CUS_FIELDDATA where scope = 'HrmCustomFieldByInfoType' and SCOPEID = '-1' and CUS_FIELDDATA.ID = hrmresource.ID))); +-- 更新岗位ec_company、ec_department +update jcl_org_job set ec_company = (select eccompany from ( select a.id as id, c.id as eccompany from jcl_org_comp a inner join hrmsubcompany c on a.uuid = c.uuid) e where jcl_org_job.parent_comp = e.id ); +update jcl_org_job set ec_department = ( select ec_department from ( select a.id as id, c.id as ec_department from jcl_org_dept a inner join hrmdepartment c on a.uuid = c.uuid) e where jcl_org_job.parent_dept = e.id ); diff --git a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java index 94e401ba..4da3d4ea 100644 --- a/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java +++ b/src/com/engine/organization/entity/department/dto/DepartmentListDTO.java @@ -33,7 +33,7 @@ public class DepartmentListDTO { /** * 名称 */ - @TableTitle(title = "名称", dataIndex = "deptName", key = "deptName") + @TableTitle(title = "名称", dataIndex = "deptName", key = "deptName",width = "200") private String deptName; /** diff --git a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java index 0ff44758..d813aeba 100644 --- a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java +++ b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.java @@ -1,6 +1,7 @@ package com.engine.organization.mapper.jclorgmap; import com.engine.organization.entity.map.JclOrgMap; +import org.apache.ibatis.annotations.Param; /** * @author:dxfeng @@ -9,4 +10,10 @@ import com.engine.organization.entity.map.JclOrgMap; */ public interface JclOrgMapper { int insertMap(JclOrgMap jclOrgMap); + + JclOrgMap getJclOrgMapByObjID(@Param("currentDate") String currentDate, @Param("fType") String fType, @Param("objId") String objId); + + int deleteMap(@Param("ftype") String ftype, @Param("fobjid") String fobjid, @Param("currentDate") String currentDate); + + int updateMap(@Param("ftype") String ftype, @Param("fobjid") String fobjid, @Param("currentDate") String currentDate, @Param("yesterday") String yesterday); } diff --git a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml index df066023..0543cefb 100644 --- a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml +++ b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml @@ -13,4 +13,26 @@ #{fObjParentId}, #{fPlan}, #{fOnJob}, #{fIsVitual}, #{fDateBegin}, #{fDateEnd}) + + update jcl_org_map + + fdateend=#{currentDate}, + + where ftype=#{ftype} and fobjid=#{fobjid} and fdateend > #{currentDate} + + + delete + from jcl_org_map + where ftype = #{ftype} + and fobjid = #{fobjid} + and fdatebegin = #{currentDate} + + \ No newline at end of file diff --git a/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.xml index d204f765..41087495 100644 --- a/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/GroupTriggerMapper.xml @@ -3,7 +3,7 @@ update jcl_org_map - set fdateend=dateadd(day,-1, #{fdate}) + set fdateend=#{fdate} where fobjid = #{fobjid} and fdateend > #{fdatebegin} diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java index 7c9dbb5e..4f46e679 100644 --- a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.java @@ -8,19 +8,25 @@ import org.apache.ibatis.annotations.Param; * @version: 1.0 */ public interface StaffTriggerMapper { - Integer countCompanyUsers(@Param("ecCompanyId") String ecCompanyId); + //Integer countCompanyUsers(@Param("ecCompanyId") String ecCompanyId); - Integer countDepartmentUsers(@Param("ecDepartmentId") String ecDepartmentId); + //Integer countDepartmentUsers(@Param("ecDepartmentId") String ecDepartmentId); Integer countJobUsers(@Param("jobTitle") String jobTitle); - Integer countAllusers(); + //Integer countAllUsers(); - Integer countCompanyStaffNum(@Param("currentDate") String currentDate, @Param("companyId") Long companyId); + Integer countCompanyStaffNum(@Param("currentDate") String currentDate, @Param("companyId") String companyId); - Integer countDepartmentStaffNum(@Param("currentDate") String currentDate, @Param("departmentId") Long departmentId); + Integer countDepartmentStaffNum(@Param("currentDate") String currentDate, @Param("departmentId") String departmentId); - Integer countJobStaffNum(@Param("currentDate") String currentDate, @Param("jobId") Long jobId); + Integer countJobStaffNum(@Param("currentDate") String currentDate, @Param("jobId") String jobId); Integer updateOrgStaffs(@Param("currentDate") String currentDate, @Param("fType") String fType, @Param("fObjId") String fObjId, @Param("fPlan") Integer fPlan, @Param("fOnJob") Integer fOnJob); + + String getIdByObjIdAndType(@Param("currentDate") String currentDate, @Param("fObjId") String fObjId, @Param("fType") String fType); + + Integer sumPlanByParentId(@Param("currentDate") String currentDate, @Param("parentId") String parentId); + + Integer sumOnJobByParentId(@Param("currentDate") String currentDate, @Param("parentId") String parentId); } diff --git a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml index 04a9aaaa..5577bf99 100644 --- a/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml +++ b/src/com/engine/organization/mapper/trigger/StaffTriggerMapper.xml @@ -32,7 +32,7 @@ where status <= 3 and jobtitle = #{jobTitle} - select count(1) from hrmresource where status <= 3 @@ -44,7 +44,8 @@ from JCL_ORG_STAFFPLAN where time_start <= #{currentDate} and time_end >= #{currentDate} - and delete_type = 0) + and delete_type = 0 + and control_dimension = 1) and comp_id = #{companyId} and delete_type = 0 @@ -55,7 +56,8 @@ from JCL_ORG_STAFFPLAN where time_start <= #{currentDate} and time_end >= #{currentDate} - and delete_type = 0) + and delete_type = 0 + and control_dimension = 2) and dept_id = #{departmentId} and delete_type = 0 @@ -66,8 +68,31 @@ from JCL_ORG_STAFFPLAN where time_start <= #{currentDate} and time_end >= #{currentDate} - and delete_type = 0) + and delete_type = 0 + and control_dimension = 3) and job_id = #{jobId} and delete_type = 0 + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 3c6c1e16..8e9f1964 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -532,6 +532,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService deptById.setShowOrder(++maxShowOrder); deptById.setCreator((long) user.getUID()); deptById.setCreateTime(new Date()); + deptById.setDeptPrincipal(null); // 新增EC表部门 Map syncMap = addEcDepartment(deptById); diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index 3a54aa89..d5e703f9 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -721,6 +721,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ historyDetailPO.setOperateDetail("未找到对应数据"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); + continue; } if (checkRepeatNo(compNo, COMPANY_TYPE, companyId)) { map.put("update_time", new Date()); @@ -874,7 +875,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ map.put("ec_company", EcHrmRelationUtil.getEcCompanyId(parentCompanyId.toString())); map.put("parent_dept", parentDepartmentId); if(null!=parentDepartmentId){ - map.put("ec_department", EcHrmRelationUtil.getEcDepartmentId(parentCompanyId.toString())); + map.put("ec_department", EcHrmRelationUtil.getEcDepartmentId(parentDepartmentId.toString())); } departmentName = split[split.length - 1]; map.put("dept_name", departmentName); @@ -937,6 +938,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ historyDetailPO.setOperateDetail("未找到对应数据"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); + continue; } if (checkRepeatNo(deptNo, DEPARTMENT_TYPE, departmentId)) { map.put("update_time", new Date()); @@ -1182,6 +1184,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ historyDetailPO.setOperateDetail("未找到对应数据"); historyDetailPO.setStatus("0"); saveImportDetailLog(historyDetailPO); + continue; } if (checkRepeatNo(jobNo, JOB_TYPE, jobId)) { map.put("update_time", new Date()); @@ -1189,7 +1192,7 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ map.put("id", jobId); Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.JOB, OperateTypeEnum.UPDATE, map, MapperProxyFactory.getProxy(JobMapper.class).getJobById(jobId), false).sync(); if (isThrowError(syncMap)) { - boolean assertNameRepeat = JobServiceImpl.assertNameRepeat(null, Util.null2String(map.get("ec_department")), Util.null2String(map.get("parent_job")), Util.null2String(map.get("job_name"))); + boolean assertNameRepeat = JobServiceImpl.assertNameRepeat(jobId.toString(), Util.null2String(map.get("ec_department")), Util.null2String(map.get("parent_job")), Util.null2String(map.get("job_name"))); if (assertNameRepeat) { map.remove("id"); map.remove("jobactivityid"); diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 99675106..ae276303 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -234,6 +234,7 @@ public class StaffServiceImpl extends Service implements StaffService { // 编制数 SearchConditionItem staffNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 3, "编制数", "staffNum"); staffNumItem.setRules("required"); + staffNumItem.setMin("0"); // 控制策略 List selectOptions = new ArrayList<>(); SearchConditionOption option1 = new SearchConditionOption("1", "弱控"); @@ -340,7 +341,7 @@ public class StaffServiceImpl extends Service implements StaffService { if (null != planId) { sqlWhere += " AND t.plan_id = '" + planId + "'"; } else { - sqlWhere = " 1=2 "; + sqlWhere = " where 1 = 2 "; } Long compId = param.getCompId(); if (null != compId) { diff --git a/src/com/engine/organization/thread/CompanyTriggerRunnable.java b/src/com/engine/organization/thread/CompanyTriggerRunnable.java index c3a0941c..955acf13 100644 --- a/src/com/engine/organization/thread/CompanyTriggerRunnable.java +++ b/src/com/engine/organization/thread/CompanyTriggerRunnable.java @@ -4,6 +4,7 @@ import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.cusfielddata.po.CusFieldData; import com.engine.organization.entity.logview.bo.FieldBaseEquator; import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.enums.ModuleTypeEnum; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; @@ -94,8 +95,14 @@ public class CompanyTriggerRunnable implements Runnable { jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); - jclMap.setFPlan(getCompTriggerMapper().sumStaffNum(jclMap.getFDateBegin(), jclMap.getFObjId())); - jclMap.setFOnJob(getCompTriggerMapper().countHrmResource(jclMap.getFEcId())); + JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(currentDate, ModuleTypeEnum.subcompanyfielddefined.getValue().toString(), jclMap.getFObjId().toString()); + if (null != jclOrgMapByObjID) { + jclMap.setFPlan(jclOrgMapByObjID.getFPlan()); + jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob()); + } else { + jclMap.setFPlan(0); + jclMap.setFOnJob(0); + } jclMap.setFIsVitual(0); Calendar cal = Calendar.getInstance(); diff --git a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java index af1fb673..66f30569 100644 --- a/src/com/engine/organization/thread/DepartmentTriggerRunnable.java +++ b/src/com/engine/organization/thread/DepartmentTriggerRunnable.java @@ -4,6 +4,7 @@ import com.engine.organization.entity.cusfielddata.po.CusFieldData; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.logview.bo.FieldBaseEquator; import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.enums.ModuleTypeEnum; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; @@ -99,9 +100,14 @@ public class DepartmentTriggerRunnable implements Runnable { jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); - - jclMap.setFPlan(getDepartmentTriggerMapper().sumStaffNum(jclMap.getFDateBegin(), jclMap.getFObjId())); - jclMap.setFOnJob(getDepartmentTriggerMapper().countHrmResource(jclMap.getFEcId())); + JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(currentDate, ModuleTypeEnum.departmentfielddefined.getValue().toString(), jclMap.getFObjId().toString()); + if (null != jclOrgMapByObjID) { + jclMap.setFPlan(jclOrgMapByObjID.getFPlan()); + jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob()); + } else { + jclMap.setFPlan(0); + jclMap.setFOnJob(0); + } jclMap.setFIsVitual(0); Calendar cal = Calendar.getInstance(); diff --git a/src/com/engine/organization/thread/GroupTriggerRunnable.java b/src/com/engine/organization/thread/GroupTriggerRunnable.java index c18a9b18..38ac3087 100644 --- a/src/com/engine/organization/thread/GroupTriggerRunnable.java +++ b/src/com/engine/organization/thread/GroupTriggerRunnable.java @@ -64,13 +64,19 @@ public class GroupTriggerRunnable implements Runnable { jclOrgMap.setFLeaderSt(cusFieldDataById.getField100008()); jclOrgMap.setFLeaderLv(cusFieldDataById.getField100007()); } - jclOrgMap.setFParentId(1); + jclOrgMap.setFParentId(-1); jclOrgMap.setFObjParentId(0); String currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); jclOrgMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclOrgMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); - jclOrgMap.setFPlan(getGroupTriggerMapper().sumStaffNum(jclOrgMap.getFDateBegin())); - jclOrgMap.setFOnJob(getGroupTriggerMapper().countHrmResource()); + JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(currentDate, "0", jclOrgMap.getFObjId().toString()); + if (null != jclOrgMapByObjID) { + jclOrgMap.setFPlan(jclOrgMapByObjID.getFPlan()); + jclOrgMap.setFOnJob(jclOrgMapByObjID.getFOnJob()); + } else { + jclOrgMap.setFPlan(0); + jclOrgMap.setFOnJob(0); + } jclOrgMap.setFIsVitual(0); Calendar cal = Calendar.getInstance(); cal.setTime(jclOrgMap.getFDateBegin()); diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index 9ae6ad7c..97de746c 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -57,8 +57,7 @@ public class HrmResourceTriggerRunnable implements Runnable { if (null != cusFieldDataById) { String field100002 = cusFieldDataById.getField100002(); if (StringUtils.isNotBlank(field100002)) { - int index = field100002.indexOf('_'); - jclMap.setFObjParentId(Integer.parseInt(field100002.substring(index + 1))); + jclMap.setFObjParentId(Integer.parseInt(field100002)); jclMap.setFParentId(jclMap.getFObjParentId() + sj); } jclMap.setFLeaderSt(cusFieldDataById.getField100008()); diff --git a/src/com/engine/organization/thread/JobTriggerRunnable.java b/src/com/engine/organization/thread/JobTriggerRunnable.java index 685b4d31..79fb9dd7 100644 --- a/src/com/engine/organization/thread/JobTriggerRunnable.java +++ b/src/com/engine/organization/thread/JobTriggerRunnable.java @@ -3,6 +3,7 @@ package com.engine.organization.thread; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.logview.bo.FieldBaseEquator; import com.engine.organization.entity.map.JclOrgMap; +import com.engine.organization.enums.ModuleTypeEnum; import com.engine.organization.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.trigger.CompTriggerMapper; @@ -79,9 +80,14 @@ public class JobTriggerRunnable implements Runnable { jclMap.setFDateBegin(new Date(OrganizationDateUtil.stringToDate(currentDate).getTime())); jclMap.setFDateEnd(new Date(OrganizationDateUtil.stringToDate("2099-12-31").getTime())); - - jclMap.setFPlan(getJobTriggerMapper().sumStaffNum(jclMap.getFDateBegin(), jclMap.getFObjId())); - jclMap.setFOnJob(getJobTriggerMapper().countHrmResource(parentdept, jclMap.getFName())); + JclOrgMap jclOrgMapByObjID = MapperProxyFactory.getProxy(JclOrgMapper.class).getJclOrgMapByObjID(currentDate, ModuleTypeEnum.jobfielddefined.getValue().toString(), jclMap.getFObjId().toString()); + if (null != jclOrgMapByObjID) { + jclMap.setFPlan(jclOrgMapByObjID.getFPlan()); + jclMap.setFOnJob(jclOrgMapByObjID.getFOnJob()); + } else { + jclMap.setFPlan(0); + jclMap.setFOnJob(0); + } jclMap.setFIsVitual(0); Calendar cal = Calendar.getInstance(); diff --git a/src/com/engine/organization/thread/OrganizationSyncEc.java b/src/com/engine/organization/thread/OrganizationSyncEc.java index 22478ff7..db631845 100644 --- a/src/com/engine/organization/thread/OrganizationSyncEc.java +++ b/src/com/engine/organization/thread/OrganizationSyncEc.java @@ -219,7 +219,6 @@ public class OrganizationSyncEc { // 修改岗位表数据 this.resultMap = ServiceUtil.getService(HrmJobServiceImpl.class, user).editJobTitle(map, user); } else { - // TODO 纠正错误数据 临时使用 // 不存在则新建职务 map.put("operateIp", Util.null2String(user.getLoginip())); map.put("jobtitlemark", newName); diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index e263f818..6bbf2be1 100644 --- a/src/com/engine/organization/thread/StaffTriggerRunnable.java +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -1,14 +1,15 @@ package com.engine.organization.thread; -import com.engine.organization.entity.commom.RecordInfo; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.job.po.JobPO; +import com.engine.organization.entity.map.JclOrgMap; import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.entity.staff.po.StaffPlanPO; +import com.engine.organization.enums.ModuleTypeEnum; 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.mapper.jclorgmap.JclOrgMapper; import com.engine.organization.mapper.job.JobMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.mapper.trigger.StaffTriggerMapper; @@ -16,7 +17,9 @@ import com.engine.organization.util.OrganizationDateUtil; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.relation.EcHrmRelationUtil; import org.apache.commons.lang3.StringUtils; -import weaver.general.Util; +import weaver.common.DateUtil; + +import java.sql.Date; /** * @author:dxfeng @@ -46,11 +49,17 @@ public class StaffTriggerRunnable implements Runnable { return MapperProxyFactory.getProxy(JobMapper.class); } + private JclOrgMapper getJclOrgMapper() { + return MapperProxyFactory.getProxy(JclOrgMapper.class); + } + private final String currentDate; + private final String yesterday; public StaffTriggerRunnable(StaffPO staffPO) { this.staffPO = staffPO; currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + yesterday = DateUtil.addDate(currentDate, -1); } @Override @@ -62,18 +71,18 @@ public class StaffTriggerRunnable implements Runnable { switch (fType) { case "1": // 更新分部编制 - refreshCompanyStaff(staffPO.getCompId(), 0); + refreshCompanyStaff(staffPO.getCompId()); break; case "2": // 更新部门编制 - refreshCompanyStaff(staffPO.getCompId(), 0); - refreshDepartmentStaff(staffPO.getDeptId(), 0); + refreshDepartmentStaff(staffPO.getDeptId()); + refreshCompanyStaff(staffPO.getCompId()); break; case "3": // 更新岗位编制 - refreshCompanyStaff(staffPO.getCompId(), 0); - refreshDepartmentStaff(staffPO.getDeptId(), 0); - refreshJobStaff(staffPO.getJobId(), 0); + refreshJobStaff(staffPO.getJobId()); + refreshDepartmentStaff(staffPO.getDeptId()); + refreshCompanyStaff(staffPO.getCompId()); break; default: break; @@ -82,64 +91,86 @@ public class StaffTriggerRunnable implements Runnable { } } - private void refreshCompanyStaff(Long companyId, Integer fPlan) { + private void refreshCompanyStaff(Long companyId) { if (null == companyId) { return; } CompPO compPO = getCompMapper().listById(companyId); if (null != compPO) { - String ecCompanyId = EcHrmRelationUtil.getEcCompanyId(Util.null2String(companyId)); - String fObjId = Util.null2String(companyId); - int fOnJob = getStaffTriggerMapper().countCompanyUsers(ecCompanyId); - Integer staffSum = getStaffTriggerMapper().countCompanyStaffNum(currentDate, companyId); - fPlan += null == staffSum ? 0 : staffSum; - getStaffTriggerMapper().updateOrgStaffs(currentDate, "1", fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); + updateOrgMap(ModuleTypeEnum.subcompanyfielddefined.getValue().toString(), companyId.toString()); if (null != compPO.getParentCompany() && 0 != compPO.getParentCompany()) { - refreshCompanyStaff(compPO.getParentCompany(), fPlan); + refreshCompanyStaff(compPO.getParentCompany()); } else { - refreshGroupStaff(fPlan); + // 刷新集团数据 + refreshGroupStaff(); } } } - private void refreshDepartmentStaff(Long departmentId, Integer fPlan) { + private void refreshDepartmentStaff(Long departmentId) { if (null == departmentId) { return; } DepartmentPO deptById = getDepartmentMapper().getDeptById(departmentId); if (null != deptById) { - String ecDepartmentId = EcHrmRelationUtil.getEcDepartmentId(Util.null2String(departmentId)); - String fObjId = Util.null2String(departmentId); - int fOnJob = getStaffTriggerMapper().countDepartmentUsers(ecDepartmentId); - Integer staffSum = getStaffTriggerMapper().countDepartmentStaffNum(currentDate, departmentId); - fPlan += null == staffSum ? 0 : staffSum; - getStaffTriggerMapper().updateOrgStaffs(currentDate, "2", fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); + updateOrgMap(ModuleTypeEnum.departmentfielddefined.getValue().toString(), departmentId.toString()); if (null != deptById.getParentDept() && 0 != deptById.getParentDept()) { - refreshDepartmentStaff(deptById.getParentDept(), fPlan); + refreshDepartmentStaff(deptById.getParentDept()); } } } - private void refreshJobStaff(Long jobId, Integer fPlan) { + private void refreshJobStaff(Long jobId) { if (null == jobId) { return; } JobPO jobById = getJobMapper().getJobById(jobId); if (null != jobById) { - String fObjId = Util.null2String(jobId); - RecordInfo hrmJobTitleByName = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmJobTitleByName(jobById.getJobName()); - int fOnJob = getStaffTriggerMapper().countJobUsers(hrmJobTitleByName.getId()); - Integer staffSum = getStaffTriggerMapper().countJobStaffNum(currentDate, jobId); - fPlan += null == staffSum ? 0 : staffSum; - getStaffTriggerMapper().updateOrgStaffs(currentDate, "3", fObjId, fPlan < 0 ? 0 : fPlan, fOnJob); - //if (null != jobById.getParentJob() && 0 != jobById.getParentJob()) { - // refreshJobStaff(jobById.getParentJob(), fPlan); - //} + updateOrgMap(ModuleTypeEnum.jobfielddefined.getValue().toString(), jobId.toString()); + if (null != jobById.getParentJob() && 0 != jobById.getParentJob()) { + refreshJobStaff(jobById.getParentJob()); + } } } - private void refreshGroupStaff(Integer fPlan) { - Integer fOnJob = getStaffTriggerMapper().countAllusers(); - getStaffTriggerMapper().updateOrgStaffs(currentDate, "0", "0", fPlan < 0 ? 0 : fPlan, fOnJob); + private void refreshGroupStaff() { + updateOrgMap("0", "0"); + } + + + private void updateOrgMap(String type, String objId) { + Integer planSum = 0; + Integer onJobSum = 0; + switch (type) { + case "1": + planSum = getStaffTriggerMapper().countCompanyStaffNum(currentDate, objId); + break; + case "2": + planSum = getStaffTriggerMapper().countDepartmentStaffNum(currentDate, objId); + break; + case "3": + planSum = getStaffTriggerMapper().countJobStaffNum(currentDate, objId); + String ecJobId = EcHrmRelationUtil.getEcJobId(Long.parseLong(objId)); + onJobSum = getStaffTriggerMapper().countJobUsers(ecJobId); + default: + break; + } + + JclOrgMap jclOrgMapByObjID = getJclOrgMapper().getJclOrgMapByObjID(currentDate, type, objId); + String mapInfoId = getStaffTriggerMapper().getIdByObjIdAndType(currentDate, objId, type); + Integer childPlanSum = getStaffTriggerMapper().sumPlanByParentId(currentDate, mapInfoId); + Integer childOnJobSum = getStaffTriggerMapper().sumOnJobByParentId(currentDate, mapInfoId); + getJclOrgMapper().deleteMap(type, objId, currentDate); + getJclOrgMapper().updateMap(type, objId, currentDate, yesterday); + jclOrgMapByObjID.setFPlan(addInteger(planSum, childPlanSum)); + jclOrgMapByObjID.setFOnJob(addInteger(onJobSum, childOnJobSum)); + jclOrgMapByObjID.setFDateBegin(new Date(System.currentTimeMillis())); + getJclOrgMapper().insertMap(jclOrgMapByObjID); + } + + private Integer addInteger(Integer num1, Integer num2) { + num1 = num1 == null ? 0 : num1; + num2 = num2 == null ? 0 : num2; + return num1 + num2; } } diff --git a/src/com/engine/organization/util/relation/EcHrmRelationUtil.java b/src/com/engine/organization/util/relation/EcHrmRelationUtil.java index 53ab7152..d46c789b 100644 --- a/src/com/engine/organization/util/relation/EcHrmRelationUtil.java +++ b/src/com/engine/organization/util/relation/EcHrmRelationUtil.java @@ -93,6 +93,18 @@ public class EcHrmRelationUtil { return getDepartmentMapper().getDepartmentByUUID(uuid); } + public static String getEcJobId(Long jclJobId) { + JobPO jobById = getJobMapper().getJobById(jclJobId); + if (null == jobById) { + return ""; + } + RecordInfo hrmJobTitleByName = MapperProxyFactory.getProxy(SystemDataMapper.class).getHrmJobTitleByName(jobById.getJobName()); + if (null == hrmJobTitleByName) { + return ""; + } + return hrmJobTitleByName.getId(); + } + /** * 判断岗位名称是否共用 diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java index 7245c291..4769b914 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java @@ -282,7 +282,6 @@ public class HrmImportAdaptExcelE9 extends BaseBean implements IHrmImportAdapt { cellValue = getCellValue(cell).trim(); for (int k = 0; k < temFields.length; k++) { if (cellValue.equals(temFields[k])) { - // TODO 初始化必填字段下标 String requiredFields = "所属分部,部门,姓名,岗位,职务,职务类别,办公地点"; requiredFields = "所属分部,部门,登录名,姓名,性别,状态,办公地点,入职日期,参加工作日期,担任岗位,职等职级,担任职务"; List requiredFieldList = Arrays.asList(requiredFields.split(",")); diff --git a/src/weaver/interfaces/organization/action/StaffChangeAction.java b/src/weaver/interfaces/organization/action/StaffChangeAction.java index 0f50638c..ff324f69 100644 --- a/src/weaver/interfaces/organization/action/StaffChangeAction.java +++ b/src/weaver/interfaces/organization/action/StaffChangeAction.java @@ -5,7 +5,7 @@ import com.engine.organization.entity.staff.po.StaffPO; import com.engine.organization.entity.staff.po.StaffsPO; import com.engine.organization.mapper.staff.StaffMapper; import com.engine.organization.mapper.staff.StaffsMapper; -import com.engine.organization.thread.StaffTriggerRunnable; +import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -77,6 +77,9 @@ public class StaffChangeAction implements Action { } } + if (null == changeNum) { + return "编制变动数必填"; + } if (changeNum < 0) { return "编制变动数需大于0"; } @@ -111,6 +114,7 @@ public class StaffChangeAction implements Action { case "6":// 减员释放,比如离职、调出等 staffPO.setPermanentNum(staffPO.getPermanentNum() - changeNum); if (staffPO.getPermanentNum() < 0) { + OrganizationAssert.isFalse(staffPO.getPermanentNum() < 0,"调整数量不可大于在编数"); return "调整数量不可大于在编数"; } break; @@ -137,7 +141,7 @@ public class StaffChangeAction implements Action { StaffBO.buildStaffDesc(staffPO); MapperProxyFactory.getProxy(StaffMapper.class).updateStaff(staffPO); // 同步组织架构图编制信息 - new Thread(new StaffTriggerRunnable(staffPO)).start(); + // new Thread(new StaffTriggerRunnable(staffPO)).start(); return SUCCESS; } From acee0bad51d1d70f7b2eae22d62a439ee3193997 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 30 Sep 2022 11:05:42 +0800 Subject: [PATCH 45/68] =?UTF-8?q?=E4=BA=BA=E5=91=98=E8=B0=83=E6=95=B4,?= =?UTF-8?q?=E5=9C=A8=E5=B2=97=E6=95=B0=E5=85=B3=E8=81=94=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/jclorgmap/JclOrgMapper.xml | 2 +- .../service/impl/StaffServiceImpl.java | 2 ++ .../thread/HrmResourceTriggerRunnable.java | 18 +++++++++++++++--- .../thread/StaffTriggerRunnable.java | 16 +++++++++++++++- .../organization/action/StaffChangeAction.java | 2 +- 5 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml index 0543cefb..428e7595 100644 --- a/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml +++ b/src/com/engine/organization/mapper/jclorgmap/JclOrgMapper.xml @@ -16,7 +16,7 @@ update jcl_org_map - fdateend=#{currentDate}, + fdateend=#{yesterday}, where ftype=#{ftype} and fobjid=#{fobjid} and fdateend > #{currentDate} diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index ae276303..f940c80d 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -115,6 +115,8 @@ public class StaffServiceImpl extends Service implements StaffService { HasRightUtil.hasRight(user, RIGHT_NAME, false); StaffPO staffByID = getStaffMapper().getStaffByID(param.getId()); StaffPO staffPO = StaffBO.convertParamToPO(param, (long) user.getUID()); + staffPO.setPermanentNum(staffByID.getPermanentNum()); + staffPO.setFreezeNum(staffByID.getFreezeNum()); checkRequired(staffPO); // 赋值 CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(Util.null2String(staffPO.getEcCompany())); diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index 97de746c..f6ac0fd0 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -30,6 +30,10 @@ public class HrmResourceTriggerRunnable implements Runnable { return MapperProxyFactory.getProxy(HrmResourceTriggerMapper.class); } + private JclOrgMapper getJclOrgMapper() { + return MapperProxyFactory.getProxy(JclOrgMapper.class); + } + public HrmResourceTriggerRunnable(Long id) { this.userId = id; } @@ -75,15 +79,23 @@ public class HrmResourceTriggerRunnable implements Runnable { cal.setTime(jclMap.getFDateBegin()); Calendar calendar = DateUtil.addDay(cal, -1); Date time = new Date(calendar.getTime().getTime()); + // 更新前的数据 + JclOrgMap jclOrgMapByObjID = getJclOrgMapper().getJclOrgMapByObjID(currentDate, "4", hrmResource.getId().toString()); getCompTriggerMapper().deleteMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin()); getCompTriggerMapper().updateMap(jclMap.getFType(), jclMap.getFObjId(), jclMap.getFDateBegin(), time); if (0 == delete) { MapperProxyFactory.getProxy(JclOrgMapper.class).insertMap(jclMap); - 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 (!jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) { + new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); + new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); + } + } else if (null != jclOrgMapByObjID) { + new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); } } - - } } diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index 6bbf2be1..f7e75585 100644 --- a/src/com/engine/organization/thread/StaffTriggerRunnable.java +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -28,6 +28,7 @@ import java.sql.Date; */ public class StaffTriggerRunnable implements Runnable { StaffPO staffPO; + StaffPlanPO staffPlanByID; private StaffPlanMapper getStaffPlanMapper() { return MapperProxyFactory.getProxy(StaffPlanMapper.class); @@ -58,6 +59,20 @@ public class StaffTriggerRunnable implements Runnable { public StaffTriggerRunnable(StaffPO staffPO) { this.staffPO = staffPO; + this.staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId()); + + currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); + yesterday = DateUtil.addDate(currentDate, -1); + } + + public StaffTriggerRunnable(Integer jclJobId) { + if (null != jclJobId) { + JobPO jobById = getJobMapper().getJobById((long) jclJobId); + if (null != jobById) { + this.staffPO = StaffPO.builder().compId(jobById.getParentComp()).deptId(jobById.getParentDept()).jobId(jobById.getId()).build(); + this.staffPlanByID = StaffPlanPO.builder().controlDimension("3").build(); + } + } currentDate = OrganizationDateUtil.getFormatLocalDate(new java.util.Date()); yesterday = DateUtil.addDate(currentDate, -1); } @@ -65,7 +80,6 @@ public class StaffTriggerRunnable implements Runnable { @Override public void run() { if (null != staffPO) { - StaffPlanPO staffPlanByID = getStaffPlanMapper().getStaffPlanByID(staffPO.getPlanId()); if (null != staffPlanByID && StringUtils.isNotBlank(staffPlanByID.getControlDimension())) { String fType = staffPlanByID.getControlDimension(); switch (fType) { diff --git a/src/weaver/interfaces/organization/action/StaffChangeAction.java b/src/weaver/interfaces/organization/action/StaffChangeAction.java index ff324f69..aa2c91c9 100644 --- a/src/weaver/interfaces/organization/action/StaffChangeAction.java +++ b/src/weaver/interfaces/organization/action/StaffChangeAction.java @@ -94,7 +94,7 @@ public class StaffChangeAction implements Action { switch (changeType) { case "3":// 冻结,比如招聘中,面试中,入职办理中等 if (staffPO.getFreezeNum() + changeNum > staffNum) { - return "冻结数不能小于编制数"; + return "冻结数不能大于编制数"; } // 设置冻结数 staffPO.setFreezeNum(staffPO.getFreezeNum() + changeNum); From 284f77896327fb1b4849cb6e11e7d4f0804ec3a6 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Fri, 30 Sep 2022 15:19:22 +0800 Subject: [PATCH 46/68] =?UTF-8?q?=E4=BA=BA=E5=91=98=E8=B0=83=E6=95=B4,?= =?UTF-8?q?=E5=9C=A8=E5=B2=97=E6=95=B0=E5=85=B3=E8=81=94=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/organization/mapper/scheme/SchemeMapper.xml | 2 +- .../organization/mapper/trigger/StaffTriggerMapper.java | 4 +++- .../organization/mapper/trigger/StaffTriggerMapper.xml | 9 +++++++++ .../organization/thread/HrmResourceTriggerRunnable.java | 4 +++- .../engine/organization/thread/StaffTriggerRunnable.java | 4 +--- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/com/engine/organization/mapper/scheme/SchemeMapper.xml b/src/com/engine/organization/mapper/scheme/SchemeMapper.xml index b47f9615..55ca3517 100644 --- a/src/com/engine/organization/mapper/scheme/SchemeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/SchemeMapper.xml @@ -77,7 +77,7 @@ + \ No newline at end of file diff --git a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java index f6ac0fd0..a555ba7d 100644 --- a/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java +++ b/src/com/engine/organization/thread/HrmResourceTriggerRunnable.java @@ -89,7 +89,9 @@ public class HrmResourceTriggerRunnable implements Runnable { // 更新当前架构图负责人的卡片信息 getHrmResourceTriggerMapper().updateLeaders(currentDate, hrmResource.getId().toString(), jclMap.getFLeaderImg(), jclMap.getFLeaderName(), jclMap.getFLeaderJobId(), jclMap.getFLeaderJob(), jclMap.getFLeaderLv(), jclMap.getFLeaderSt()); // 更新组织架构图在岗数 - if (!jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) { + if (null == jclOrgMapByObjID) { + new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); + } else if (!jclMap.getFObjParentId().equals(jclOrgMapByObjID.getFObjParentId())) { new StaffTriggerRunnable(jclOrgMapByObjID.getFObjParentId()).run(); new StaffTriggerRunnable(jclMap.getFObjParentId()).run(); } diff --git a/src/com/engine/organization/thread/StaffTriggerRunnable.java b/src/com/engine/organization/thread/StaffTriggerRunnable.java index f7e75585..4e95e6be 100644 --- a/src/com/engine/organization/thread/StaffTriggerRunnable.java +++ b/src/com/engine/organization/thread/StaffTriggerRunnable.java @@ -15,7 +15,6 @@ import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.mapper.trigger.StaffTriggerMapper; import com.engine.organization.util.OrganizationDateUtil; import com.engine.organization.util.db.MapperProxyFactory; -import com.engine.organization.util.relation.EcHrmRelationUtil; import org.apache.commons.lang3.StringUtils; import weaver.common.DateUtil; @@ -164,8 +163,7 @@ public class StaffTriggerRunnable implements Runnable { break; case "3": planSum = getStaffTriggerMapper().countJobStaffNum(currentDate, objId); - String ecJobId = EcHrmRelationUtil.getEcJobId(Long.parseLong(objId)); - onJobSum = getStaffTriggerMapper().countJobUsers(ecJobId); + onJobSum = getStaffTriggerMapper().countOnJobByJObId(objId); default: break; } From 231addfda1522068fa002c3efcdf95ac814472d1 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Sun, 9 Oct 2022 11:42:26 +0800 Subject: [PATCH 47/68] =?UTF-8?q?=E4=BA=BA=E4=BA=8B=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/PersonnelCardController.java | 12 + .../entity/SelectOptionParam.java | 23 ++ .../entity/personnelcard/Anchor.java | 22 ++ .../entity/personnelcard/FormItem.java | 23 ++ .../entity/personnelcard/Iframe.java | 21 ++ .../entity/personnelcard/Item.java | 20 ++ .../entity/personnelcard/ResourceBaseTab.java | 30 ++ .../entity/personnelcard/Statistical.java | 23 ++ .../entity/personnelcard/User.java | 42 +++ .../personnelcard/PersonnelCardMapper.java | 28 ++ .../personnelcard/PersonnelCardMapper.xml | 48 +++ .../service/HrmPersonnelCardService.java | 28 ++ .../service/impl/FieldDefinedServiceImpl.java | 4 + .../impl/HrmPersonnelCardServiceImpl.java | 182 ++++++++++ .../util/field/FieldDefinedValueUtil.java | 314 ++++++++++++++++++ .../web/PersonnelCardController.java | 56 ++++ .../wrapper/PersonnelCardWrapper.java | 31 ++ 17 files changed, 907 insertions(+) create mode 100644 src/com/api/organization/web/PersonnelCardController.java create mode 100644 src/com/engine/organization/entity/personnelcard/Anchor.java create mode 100644 src/com/engine/organization/entity/personnelcard/FormItem.java create mode 100644 src/com/engine/organization/entity/personnelcard/Iframe.java create mode 100644 src/com/engine/organization/entity/personnelcard/Item.java create mode 100644 src/com/engine/organization/entity/personnelcard/ResourceBaseTab.java create mode 100644 src/com/engine/organization/entity/personnelcard/Statistical.java create mode 100644 src/com/engine/organization/entity/personnelcard/User.java create mode 100644 src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java create mode 100644 src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml create mode 100644 src/com/engine/organization/service/HrmPersonnelCardService.java create mode 100644 src/com/engine/organization/service/impl/HrmPersonnelCardServiceImpl.java create mode 100644 src/com/engine/organization/util/field/FieldDefinedValueUtil.java create mode 100644 src/com/engine/organization/web/PersonnelCardController.java create mode 100644 src/com/engine/organization/wrapper/PersonnelCardWrapper.java diff --git a/src/com/api/organization/web/PersonnelCardController.java b/src/com/api/organization/web/PersonnelCardController.java new file mode 100644 index 00000000..cde89535 --- /dev/null +++ b/src/com/api/organization/web/PersonnelCardController.java @@ -0,0 +1,12 @@ +package com.api.organization.web; + +import javax.ws.rs.Path; + +/** + * @author:dxfeng + * @createTime: 2022/10/09 + * @version: 1.0 + */ +@Path("/bs/hrmorganization/personnelcard") +public class PersonnelCardController extends com.engine.organization.web.PersonnelCardController { +} diff --git a/src/com/engine/organization/entity/SelectOptionParam.java b/src/com/engine/organization/entity/SelectOptionParam.java index 94f75911..c89470c0 100644 --- a/src/com/engine/organization/entity/SelectOptionParam.java +++ b/src/com/engine/organization/entity/SelectOptionParam.java @@ -112,5 +112,28 @@ public class SelectOptionParam { return selectFields; } + /** + * 根据ID获取下拉框的展示文本 + * @param customValue + * @param id + * @return + */ + public static String getSelectOption(String customValue,String id) { + JSONArray objects = JSONObject.parseArray(customValue); + JSONObject o = (JSONObject) objects.get(2); + JSONArray datas = o.getJSONArray("datas"); + List selectFields = new ArrayList<>(); + if (!datas.isEmpty()) { + for (int i = 0; i < datas.size(); i++) { + selectFields.add((JSONObject) datas.get(i)); + } + } + JSONObject filter = selectFields.stream().filter(item -> id.equals(item.getString("id"))).findFirst().orElse(null); + if (null == filter) { + return ""; + } + return filter.getString("option"); + } + } diff --git a/src/com/engine/organization/entity/personnelcard/Anchor.java b/src/com/engine/organization/entity/personnelcard/Anchor.java new file mode 100644 index 00000000..1b8f8145 --- /dev/null +++ b/src/com/engine/organization/entity/personnelcard/Anchor.java @@ -0,0 +1,22 @@ +package com.engine.organization.entity.personnelcard; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 锚点实体类 + * + * @author:dxfeng + * @createTime: 2022/10/08 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class Anchor { + private String id; + private String title; +} diff --git a/src/com/engine/organization/entity/personnelcard/FormItem.java b/src/com/engine/organization/entity/personnelcard/FormItem.java new file mode 100644 index 00000000..4d7e1867 --- /dev/null +++ b/src/com/engine/organization/entity/personnelcard/FormItem.java @@ -0,0 +1,23 @@ +package com.engine.organization.entity.personnelcard; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author:dxfeng + * @createTime: 2022/10/08 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class FormItem { + private String id; + private String title; + private List items; +} diff --git a/src/com/engine/organization/entity/personnelcard/Iframe.java b/src/com/engine/organization/entity/personnelcard/Iframe.java new file mode 100644 index 00000000..31c96e25 --- /dev/null +++ b/src/com/engine/organization/entity/personnelcard/Iframe.java @@ -0,0 +1,21 @@ +package com.engine.organization.entity.personnelcard; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2022/10/08 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class Iframe { + private String id; + private String title; + private String url; +} diff --git a/src/com/engine/organization/entity/personnelcard/Item.java b/src/com/engine/organization/entity/personnelcard/Item.java new file mode 100644 index 00000000..fad39bde --- /dev/null +++ b/src/com/engine/organization/entity/personnelcard/Item.java @@ -0,0 +1,20 @@ +package com.engine.organization.entity.personnelcard; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2022/10/08 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class Item { + private String fieldId; + private Object fieldValue; +} diff --git a/src/com/engine/organization/entity/personnelcard/ResourceBaseTab.java b/src/com/engine/organization/entity/personnelcard/ResourceBaseTab.java new file mode 100644 index 00000000..c2132001 --- /dev/null +++ b/src/com/engine/organization/entity/personnelcard/ResourceBaseTab.java @@ -0,0 +1,30 @@ +package com.engine.organization.entity.personnelcard; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 人员自定义显示栏目实体类 + * + * @author:dxfeng + * @createTime: 2022/10/09 + * @version: 1.0 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ResourceBaseTab { + private Integer id; + private String groupName; + private Integer groupLabel; + private Integer dspOrder; + private String isOpen; + private String isMand; + private String isUsed; + private String isSystem; + private String linkUrl; + private String tabNum; +} diff --git a/src/com/engine/organization/entity/personnelcard/Statistical.java b/src/com/engine/organization/entity/personnelcard/Statistical.java new file mode 100644 index 00000000..4c50d1fd --- /dev/null +++ b/src/com/engine/organization/entity/personnelcard/Statistical.java @@ -0,0 +1,23 @@ +package com.engine.organization.entity.personnelcard; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2022/10/08 + * @version: 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class Statistical { + private Integer workflowCount; + private Integer docCount; + private Integer cusCount; + private Integer collaborationCount; + private Integer weiboCount; +} diff --git a/src/com/engine/organization/entity/personnelcard/User.java b/src/com/engine/organization/entity/personnelcard/User.java new file mode 100644 index 00000000..6d67537e --- /dev/null +++ b/src/com/engine/organization/entity/personnelcard/User.java @@ -0,0 +1,42 @@ +package com.engine.organization.entity.personnelcard; + +import com.api.system.language.service.LanguageService; +import com.engine.organization.entity.extend.po.ExtendInfoPO; +import com.engine.organization.util.field.FieldDefinedValueUtil; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author:dxfeng + * @createTime: 2022/10/08 + * @version: 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class User { + private Integer id; + private String image; + private String name; + private String sex; + private String email; + private String phone; + private String belongTo; + private String status; + + public String getSex() { + if ("0".equals(sex)) { + return "男"; + } + return "女"; + } + + public String getImage() { + weaver.hrm.User user = new weaver.hrm.User(); + user.setLanguage(LanguageService.getDefaultLang()); + return FieldDefinedValueUtil.getFieldValue(user, ExtendInfoPO.builder().controlType(6).browserType("1").build(), image); + } +} diff --git a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java new file mode 100644 index 00000000..8671c926 --- /dev/null +++ b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.java @@ -0,0 +1,28 @@ +package com.engine.organization.mapper.personnelcard; + +import com.engine.organization.entity.personnelcard.ResourceBaseTab; +import com.engine.organization.entity.personnelcard.User; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author:dxfeng + * @createTime: 2022/10/08 + * @version: 1.0 + */ +public interface PersonnelCardMapper { + /** + * 获取人员卡片User对象 + * + * @param id + * @return + */ + User getUserById(@Param("id") Long id); + + /** + * 获取自定义显示栏目 + * @return + */ + List getResourceBaseTabList(); +} diff --git a/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml new file mode 100644 index 00000000..8171ec2c --- /dev/null +++ b/src/com/engine/organization/mapper/personnelcard/PersonnelCardMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/com/engine/organization/service/HrmPersonnelCardService.java b/src/com/engine/organization/service/HrmPersonnelCardService.java new file mode 100644 index 00000000..f12888b1 --- /dev/null +++ b/src/com/engine/organization/service/HrmPersonnelCardService.java @@ -0,0 +1,28 @@ +package com.engine.organization.service; + +import com.engine.organization.entity.personnelcard.Iframe; + +import java.util.List; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2022/10/08 + * @version: 1.0 + */ +public interface HrmPersonnelCardService { + /** + * 获取人事卡片信息 + * + * @param uId + * @return + */ + Map getPersonnelCard(Long uId); + + /** + * 获取人事自定义显示栏目 + * + * @return + */ + List