From 6c04ffd384c89dcf41b684fa09b565687679c62c Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 6 Sep 2022 10:33:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E5=88=B6=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organization/entity/staff/bo/StaffBO.java | 2 + .../entity/staff/param/StaffSearchParam.java | 2 + .../organization/entity/staff/po/StaffPO.java | 2 + .../mapper/department/DepartmentMapper.xml | 6 ++ .../organization/mapper/staff/StaffMapper.xml | 33 +++++++++- .../service/impl/DepartmentServiceImpl.java | 2 + .../service/impl/StaffPlanServiceImpl.java | 27 +------- .../service/impl/StaffServiceImpl.java | 66 ++++++++++++------- .../util/browser/OrganizationBrowserUtil.java | 54 +++++++++++++++ 9 files changed, 143 insertions(+), 51 deletions(-) create mode 100644 src/com/engine/organization/util/browser/OrganizationBrowserUtil.java diff --git a/src/com/engine/organization/entity/staff/bo/StaffBO.java b/src/com/engine/organization/entity/staff/bo/StaffBO.java index bd058175..929699c9 100644 --- a/src/com/engine/organization/entity/staff/bo/StaffBO.java +++ b/src/com/engine/organization/entity/staff/bo/StaffBO.java @@ -20,7 +20,9 @@ public class StaffBO { .id(param.getId()) .planId(param.getPlanId()) .compId(param.getCompId()) + .ecCompany(param.getEcCompany()) .deptId(param.getDeptId()) + .ecDepartment(param.getEcDepartment()) .jobId(param.getJobId()) .staffNum(param.getStaffNum()) .controlPolicy(param.getControlPolicy()) diff --git a/src/com/engine/organization/entity/staff/param/StaffSearchParam.java b/src/com/engine/organization/entity/staff/param/StaffSearchParam.java index 49fb0f68..29e944ae 100644 --- a/src/com/engine/organization/entity/staff/param/StaffSearchParam.java +++ b/src/com/engine/organization/entity/staff/param/StaffSearchParam.java @@ -28,10 +28,12 @@ public class StaffSearchParam { * 分部 */ private Long compId; + private Long ecCompany; /** * 部门 */ private Long deptId; + private Long ecDepartment; /** * 岗位 */ diff --git a/src/com/engine/organization/entity/staff/po/StaffPO.java b/src/com/engine/organization/entity/staff/po/StaffPO.java index 992d5ee7..bedc2ea7 100644 --- a/src/com/engine/organization/entity/staff/po/StaffPO.java +++ b/src/com/engine/organization/entity/staff/po/StaffPO.java @@ -30,10 +30,12 @@ public class StaffPO { * 分部 */ private Long compId; + private Long ecCompany; /** * 部门 */ private Long deptId; + private Long ecDepartment; /** * 岗位 */ diff --git a/src/com/engine/organization/mapper/department/DepartmentMapper.xml b/src/com/engine/organization/mapper/department/DepartmentMapper.xml index b73b2b51..fed2aec7 100644 --- a/src/com/engine/organization/mapper/department/DepartmentMapper.xml +++ b/src/com/engine/organization/mapper/department/DepartmentMapper.xml @@ -77,6 +77,12 @@ and t.ec_department = #{departmentPO.ecDepartment} + + and t.parent_comp = #{departmentPO.parentComp} + + + and t.parent_dept = #{departmentPO.parentDept} + and t.dept_principal = #{departmentPO.deptPrincipal} diff --git a/src/com/engine/organization/mapper/staff/StaffMapper.xml b/src/com/engine/organization/mapper/staff/StaffMapper.xml index eac374a4..75a5f644 100644 --- a/src/com/engine/organization/mapper/staff/StaffMapper.xml +++ b/src/com/engine/organization/mapper/staff/StaffMapper.xml @@ -5,7 +5,8 @@ - + + @@ -27,7 +28,9 @@ id , t.plan_id , t.comp_id + , t.ec_company , t.dept_id + , t.ec_department , t.job_id , t.staff_num , t.control_policy @@ -82,7 +85,9 @@ update_time=#{updateTime}, plan_id=#{planId}, comp_id=#{compId}, + ec_company=#{ecCompany}, dept_id=#{deptId}, + ec_department=#{ecDepartment}, job_id=#{jobId}, staff_num=#{staffNum}, control_policy=#{controlPolicy}, @@ -120,6 +125,12 @@ dept_id, + + ec_company, + + + ec_department, + job_id, @@ -168,6 +179,12 @@ #{deptId}, + + #{ecCompany}, + + + #{ecDepartment}, + #{jobId}, @@ -196,7 +213,7 @@ - + select JCL_ORG_STAFF_ID.currval from dual INSERT INTO jcl_org_staff @@ -222,6 +239,12 @@ dept_id, + + ec_company, + + + ec_department, + job_id, @@ -270,6 +293,12 @@ #{deptId}, + + #{ecCompany}, + + + #{ecDepartment}, + #{jobId}, diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 97074828..07a5b68c 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -687,6 +687,8 @@ public class DepartmentServiceImpl extends Service implements DepartmentService && StringUtil.isEmpty(departmentPO.getDeptNameShort()) && null == departmentPO.getEcCompany() && null == departmentPO.getEcDepartment() + && null == departmentPO.getParentComp() + && null == departmentPO.getParentDept() && null == departmentPO.getDeptPrincipal() && null == departmentPO.getShowOrder() && null == departmentPO.getForbiddenTag()); diff --git a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java index d12854d3..cf611eb9 100644 --- a/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffPlanServiceImpl.java @@ -3,7 +3,6 @@ package com.engine.organization.service.impl; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; -import com.api.browser.util.BrowserInitUtil; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; @@ -16,6 +15,7 @@ import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.service.StaffPlanService; import com.engine.organization.util.*; +import com.engine.organization.util.browser.OrganizationBrowserUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.relation.EcHrmRelationUtil; @@ -24,7 +24,6 @@ import weaver.common.DateUtil; import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; -import weaver.hrm.definedfield.HrmFieldManager; import java.util.*; @@ -213,29 +212,7 @@ public class StaffPlanServiceImpl extends Service implements StaffPlanService { String tmpFieldValue = staffPlanPO.getEcCompany(); if (StringUtils.isNotBlank(tmpFieldValue)) { - HrmFieldManager hrmFieldManager = new HrmFieldManager(); - String fieldshowname = null; - try { - fieldshowname = hrmFieldManager.getFieldvalue(user, null, 0, 3, 164, tmpFieldValue, 0); - } catch (Exception e) { - throw new RuntimeException(e); - } - String[] fieldvalues = Util.splitString(tmpFieldValue, ","); - String[] fieldshownames = Util.splitString(fieldshowname, ","); - List> replaceDatas = new ArrayList<>(); - for (int i = 0; fieldvalues != null && i < fieldvalues.length; i++) { - if (fieldvalues.length != fieldshownames.length) { - break; - } - if (Util.null2String(fieldshownames[i]).length() == 0) { - continue; - } - Map replaceData = new HashMap<>(); - replaceData.put("id", fieldvalues[i]); - replaceData.put("name", fieldshownames[i]); - replaceDatas.add(replaceData); - } - BrowserInitUtil.setConditionItemDefaultValue(ecCompanyIdtItem, replaceDatas, 2); + OrganizationBrowserUtil.assignBrowser(user, tmpFieldValue, 164, ecCompanyIdtItem); } dimensionItem.setValue(staffPlanPO.getControlDimension()); diff --git a/src/com/engine/organization/service/impl/StaffServiceImpl.java b/src/com/engine/organization/service/impl/StaffServiceImpl.java index 2b53021f..46d7f57f 100644 --- a/src/com/engine/organization/service/impl/StaffServiceImpl.java +++ b/src/com/engine/organization/service/impl/StaffServiceImpl.java @@ -10,6 +10,8 @@ import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.entity.DeleteParam; import com.engine.organization.entity.browser.po.CustomBrowserBean; +import com.engine.organization.entity.company.po.CompPO; +import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.staff.bo.StaffBO; import com.engine.organization.entity.staff.param.StaffSearchParam; import com.engine.organization.entity.staff.po.StaffPO; @@ -24,8 +26,10 @@ import com.engine.organization.mapper.staff.StaffPlanMapper; import com.engine.organization.mapper.staff.StaffsMapper; import com.engine.organization.service.StaffService; import com.engine.organization.util.*; +import com.engine.organization.util.browser.OrganizationBrowserUtil; import com.engine.organization.util.db.DBType; import com.engine.organization.util.db.MapperProxyFactory; +import com.engine.organization.util.relation.EcHrmRelationUtil; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import weaver.general.StringUtil; @@ -89,6 +93,15 @@ public class StaffServiceImpl extends Service implements StaffService { HasRightUtil.hasRight(user, RIGHT_NAME, false); StaffPO staffPO = StaffBO.convertParamToPO(param, (long) user.getUID()); OrganizationAssert.isFalse(staffPO.getStaffNum() < 0, "编制数不可小于0,请更正"); + // 赋值 + CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(staffPO.getEcCompany() + ""); + if (null != jclCompanyId) { + staffPO.setCompId(jclCompanyId.getId()); + } + DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(staffPO.getEcDepartment() + ""); + if (null != jclDepartmentId) { + staffPO.setDeptId(jclDepartmentId.getId()); + } checkRequired(staffPO); return getStaffMapper().insertIgnoreNull(staffPO); } @@ -98,6 +111,15 @@ 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()); + // 赋值 + CompPO jclCompanyId = EcHrmRelationUtil.getJclCompanyId(staffPO.getEcCompany() + ""); + if (null != jclCompanyId) { + staffPO.setCompId(jclCompanyId.getId()); + } + DepartmentPO jclDepartmentId = EcHrmRelationUtil.getJclDepartmentId(staffPO.getEcDepartment() + ""); + if (null != jclDepartmentId) { + staffPO.setDeptId(jclDepartmentId.getId()); + } checkRequired(staffPO); Integer changeNum = param.getChangeNum(); if (null == changeNum) { @@ -132,16 +154,13 @@ public class StaffServiceImpl extends Service implements StaffService { List addGroups = new ArrayList<>(); List conditionItems = new ArrayList<>(); - //// 方案 - //SearchConditionItem planIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "方案11", "161", "planId", "staffPlanBrowser"); - //planIdItem.setHide(true); - //planIdItem.setDisplay("none"); + // 分部 - SearchConditionItem compIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "161", "compId", "compBrowser"); + SearchConditionItem compIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "164", "ecCompany", ""); // 部门 - SearchConditionItem deptIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "161", "deptId", "deptBrowser"); + SearchConditionItem deptIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "4", "ecDepartment", ""); // 岗位 - SearchConditionItem jobIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "161", "jobId", "jobBrowser"); + SearchConditionItem jobIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "666", "jobId", ""); // 编制数 SearchConditionItem staffNumItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "编制数", "staffNum"); // 在编 @@ -188,14 +207,11 @@ public class StaffServiceImpl extends Service implements StaffService { SearchConditionItem planIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "方案", "161", "planId", "staffPlanBrowser"); planIdItem.setRules("required|string"); // 分部 - SearchConditionItem compIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "161", "compId", "compBrowser"); - //compIdItem.setRules("required|string"); + SearchConditionItem ecCompanyItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "分部", "164", "ecCompany", "compBrowser"); // 部门 - SearchConditionItem deptIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "161", "deptId", "deptBrowser"); - //deptIdItem.setRules("required|string"); + SearchConditionItem ecDepartmentItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门", "4", "ecDepartment", "deptBrowser"); // 岗位 SearchConditionItem jobIdItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位", "666", "jobId", ""); - //jobIdItem.setRules("required|string"); BrowserBean browserBean = jobIdItem.getBrowserConditionParam(); String s = JSONObject.toJSONString(browserBean); CustomBrowserBean customBrowserBean = JSONObject.parseObject(s, CustomBrowserBean.class); @@ -231,18 +247,12 @@ public class StaffServiceImpl extends Service implements StaffService { planIdItemBean.setReplaceDatas(planIdMaps); planIdItem.setBrowserConditionParam(planIdItemBean); - if (null != staffPO.getCompId()) { - BrowserBean compIdItemBean = compIdItem.getBrowserConditionParam(); - List> compIdMaps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(staffPO.getCompId().toString()).build().getIds()); - compIdItemBean.setReplaceDatas(compIdMaps); - compIdItem.setBrowserConditionParam(compIdItemBean); + if (null != staffPO.getEcCompany()) { + OrganizationBrowserUtil.assignBrowser(user, staffPO.getEcCompany().toString(), 164, ecCompanyItem); } - if (null != staffPO.getDeptId()) { - BrowserBean deptIdItemBean = deptIdItem.getBrowserConditionParam(); - List> deptIdMaps = getDepartmentMapper().listDeptsByIds(DeleteParam.builder().ids(staffPO.getDeptId().toString()).build().getIds()); - deptIdItemBean.setReplaceDatas(deptIdMaps); - deptIdItem.setBrowserConditionParam(deptIdItemBean); + if (null != staffPO.getEcDepartment()) { + OrganizationBrowserUtil.assignBrowser(user, staffPO.getEcDepartment().toString(), 4, ecDepartmentItem); } if (null != staffPO.getJobId()) { @@ -257,8 +267,8 @@ public class StaffServiceImpl extends Service implements StaffService { descriptionItem.setValue(staffPO.getDescription()); } selectItems.add(planIdItem); - selectItems.add(compIdItem); - selectItems.add(deptIdItem); + selectItems.add(ecCompanyItem); + selectItems.add(ecDepartmentItem); selectItems.add(jobIdItem); selectItems.add(staffNumItem); selectItems.add(controlPolicyItem); @@ -322,6 +332,14 @@ public class StaffServiceImpl extends Service implements StaffService { if (null != deptId) { sqlWhere += " AND t.dept_id = '" + deptId + "'"; } + Long ecCompany = param.getEcCompany(); + if (null != ecCompany) { + sqlWhere += " AND t.ec_company = '" + ecCompany + "'"; + } + Long ecDepartment = param.getEcDepartment(); + if (null != ecDepartment) { + sqlWhere += " AND t.ec_department = '" + ecDepartment + "'"; + } Long jobId = param.getJobId(); if (null != jobId) { sqlWhere += " AND t.job_id = '" + jobId + "'"; diff --git a/src/com/engine/organization/util/browser/OrganizationBrowserUtil.java b/src/com/engine/organization/util/browser/OrganizationBrowserUtil.java new file mode 100644 index 00000000..5fdce337 --- /dev/null +++ b/src/com/engine/organization/util/browser/OrganizationBrowserUtil.java @@ -0,0 +1,54 @@ +package com.engine.organization.util.browser; + +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.util.BrowserInitUtil; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.hrm.definedfield.HrmFieldManager; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author:dxfeng + * @createTime: 2022/09/06 + * @version: 1.0 + */ +public class OrganizationBrowserUtil { + /** + * 浏览按钮赋值 + * + * @param user + * @param tmpFieldValue + * @param browserType + * @param searchConditionItem + */ + public static void assignBrowser(User user, String tmpFieldValue, int browserType, SearchConditionItem searchConditionItem) { + HrmFieldManager hrmFieldManager = new HrmFieldManager(); + String fieldShowName = null; + try { + fieldShowName = hrmFieldManager.getFieldvalue(user, null, 0, 3, browserType, tmpFieldValue, 0); + } catch (Exception e) { + throw new RuntimeException(e); + } + String[] fieldvalues = Util.splitString(tmpFieldValue, ","); + String[] fieldshownames = Util.splitString(fieldShowName, ","); + List> replaceDatas = new ArrayList<>(); + for (int i = 0; fieldvalues != null && i < fieldvalues.length; i++) { + if (fieldvalues.length != fieldshownames.length) { + break; + } + if (Util.null2String(fieldshownames[i]).length() == 0) { + continue; + } + Map replaceData = new HashMap<>(); + replaceData.put("id", fieldvalues[i]); + replaceData.put("name", fieldshownames[i]); + replaceDatas.add(replaceData); + } + BrowserInitUtil.setConditionItemDefaultValue(searchConditionItem, replaceDatas, 2); + + } +}