From 0dc034c66e14e309f17a1f47001594a2efb53862 Mon Sep 17 00:00:00 2001 From: dxfeng Date: Mon, 13 Jun 2022 17:22:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E3=80=81=E5=B2=97=E4=BD=8D?= =?UTF-8?q?=20=E4=B8=BB=E8=A1=A8=E3=80=81=E6=8B=93=E5=B1=95=E8=A1=A8?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5=E3=80=81?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=88=86=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/DepartmentService.java | 2 +- .../organization/service/JobService.java | 2 +- .../service/impl/CompServiceImpl.java | 18 +- .../service/impl/DepartmentServiceImpl.java | 188 ++++------------ .../service/impl/ExtServiceImpl.java | 34 ++- .../service/impl/JobServiceImpl.java | 212 ++++-------------- .../web/DepartmentController.java | 2 +- .../organization/web/JobController.java | 2 +- .../wrapper/DepartmentWrapper.java | 2 +- .../organization/wrapper/JobWrapper.java | 2 +- 10 files changed, 119 insertions(+), 345 deletions(-) diff --git a/src/com/engine/organization/service/DepartmentService.java b/src/com/engine/organization/service/DepartmentService.java index a4261e2d..eca115ed 100644 --- a/src/com/engine/organization/service/DepartmentService.java +++ b/src/com/engine/organization/service/DepartmentService.java @@ -58,7 +58,7 @@ public interface DepartmentService { * @param params * @return */ - int saveBaseForm(DeptSearchParam params); + int saveBaseForm(Map params); /** * 更新禁用标记 diff --git a/src/com/engine/organization/service/JobService.java b/src/com/engine/organization/service/JobService.java index be3ae804..5af4ff3e 100644 --- a/src/com/engine/organization/service/JobService.java +++ b/src/com/engine/organization/service/JobService.java @@ -63,7 +63,7 @@ public interface JobService { * @param params * @return */ - int saveBaseForm(JobSearchParam params); + int saveBaseForm(Map params); /** * 更新主表、拓展表、明细表 diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 07bd4551..57a21d7d 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -17,7 +17,6 @@ import com.engine.organization.entity.company.param.CompSearchParam; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.mapper.comp.CompMapper; -import com.engine.organization.mapper.extend.ExtMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; import com.engine.organization.service.CompService; import com.engine.organization.service.ExtService; @@ -140,12 +139,8 @@ public class CompServiceImpl extends Service implements CompService { List list = getCompMapper().listByNo(Util.null2String(compNo)); OrganizationAssert.isEmpty(list, "编号不允许重复"); params.put("comp_no", compNo); - params.put("forbidden_tag", 0); - params.put("creator", user.getUID()); - params.put("delete_type", 0); - params.put("create_time", new Date()); - params.put("update_time", new Date()); - return MapperProxyFactory.getProxy(ExtMapper.class).insertExt(JCL_ORG_COMP, params); + + return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", null); } @Override @@ -160,17 +155,16 @@ public class CompServiceImpl extends Service implements CompService { HasRightUtil.hasRight(user, RIGHT_NAME, false); CompSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), CompSearchParam.class); String groupId = (String) params.get("viewCondition"); - CompPO compPO = CompBO.convertParamToPO(searchParam, (long) user.getUID()); if ("0".equals(groupId)) { groupId = GROUP_ID.toString(); } int updateCount = 0; // 更新主表数据 - updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, groupId, compPO.getId()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", searchParam.getId()); // 更新主表拓展表 - updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, compPO.getId()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, searchParam.getId()); //更新明细表 - getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, params, compPO.getId()); + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, params, searchParam.getId()); return updateCount; } @@ -249,7 +243,7 @@ public class CompServiceImpl extends Service implements CompService { List extendGroupPOS = getExtendGroupMapper().listGroupByPid(Long.parseLong(groupId)); if (CollectionUtils.isNotEmpty(extendGroupPOS)) { for (ExtendGroupPO extendGroupPO : extendGroupPOS) { - addGroups.add(new SearchConditionGroup(extendGroupPO.getGroupName(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", Integer.parseInt(groupId) >= 0 ? JCL_ORG_COMPEXT : JCL_ORG_COMP, viewAttr, id, extendGroupPO.getId().toString(),"comp_no"))); + addGroups.add(new SearchConditionGroup(extendGroupPO.getGroupName(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", Integer.parseInt(groupId) >= 0 ? JCL_ORG_COMPEXT : JCL_ORG_COMP, viewAttr, id, extendGroupPO.getId().toString(), "comp_no"))); } } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 51a011e3..cd373178 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -1,7 +1,6 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSONObject; -import com.api.browser.bean.BrowserBean; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; @@ -11,7 +10,6 @@ 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.codesetting.po.CodeRulePO; import com.engine.organization.entity.company.bo.CompBO; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; @@ -19,12 +17,12 @@ import com.engine.organization.entity.department.dto.DepartmentListDTO; import com.engine.organization.entity.department.param.*; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.vo.SingleDeptTreeVO; +import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; -import com.engine.organization.mapper.codesetting.CodeRuleMapper; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; @@ -64,6 +62,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService * 3:岗位 */ private static final String EXTEND_TYPE = "2"; + /** + * 主表 + */ + private static final String JCL_ORG_DEPT = "JCL_ORG_DEPT"; /** * 主表拓展表 */ @@ -75,6 +77,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService private static final String RIGHT_NAME = "Department:All"; + /** + * 部门主表title指定ID + */ + private static final Long GROUP_ID = -2L; + private DepartmentMapper getDepartmentMapper() { return MapperProxyFactory.getProxy(DepartmentMapper.class); @@ -178,14 +185,15 @@ public class DepartmentServiceImpl extends Service implements DepartmentService } @Override - public int saveBaseForm(DeptSearchParam params) { + public int saveBaseForm(Map params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); - // 自动编号 - params.setDeptNo(CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, params.getDeptNo())); - List list = getDepartmentMapper().listByNo(Util.null2String(params.getDeptNo())); + String deptNo = (String) params.get("dept_no"); + deptNo = CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, deptNo); + List list = getDepartmentMapper().listByNo(Util.null2String(deptNo)); OrganizationAssert.isEmpty(list, "编号不允许重复"); - DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(params, user.getUID()); - return getDepartmentMapper().insertIgnoreNull(departmentPO); + params.put("dept_no", deptNo); + + return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", null); } @Override @@ -200,14 +208,16 @@ public class DepartmentServiceImpl extends Service implements DepartmentService HasRightUtil.hasRight(user, RIGHT_NAME, false); DeptSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), DeptSearchParam.class); String groupId = (String) params.get("viewCondition"); - DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(searchParam, user.getUID()); + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } int updateCount = 0; // 更新主表数据 - updateCount += getDepartmentMapper().updateBaseDept(departmentPO); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", searchParam.getId()); // 更新主表拓展表 - updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, params, groupId, departmentPO.getId()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, params, groupId, searchParam.getId()); //更新明细表 - getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, params, departmentPO.getId()); + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_DEPTEXT_DT1, params, searchParam.getId()); return updateCount; } @@ -279,10 +289,15 @@ public class DepartmentServiceImpl extends Service implements DepartmentService buttonsMap.put("hasSave", true); List addGroups = new ArrayList<>(); - if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { - addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); - } else { - addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, viewAttr, id, groupId))); + + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } + List extendGroupPOS = getExtendGroupMapper().listGroupByPid(Long.parseLong(groupId)); + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(extendGroupPOS)) { + for (ExtendGroupPO extendGroupPO : extendGroupPOS) { + addGroups.add(new SearchConditionGroup(extendGroupPO.getGroupName(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", Integer.parseInt(groupId) >= 0 ? JCL_ORG_DEPTEXT : JCL_ORG_DEPT, viewAttr, id, extendGroupPO.getId().toString(), "dept_no"))); + } } HashMap resultMap = new HashMap<>(); @@ -302,48 +317,16 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public Map getSaveForm() { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "deptNo"); - deptNoItem.setRules("required|string"); - CodeRulePO codeRuleByType = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(RuleCodeType.DEPARTMENT.getValue()); - if (null != codeRuleByType && "1".equals(codeRuleByType.getSerialEnable())) { - deptNoItem.setViewAttr(2); - deptNoItem.setRules(""); - deptNoItem.setHelpfulTip("编号为空,则按照指定规则自动生成编号"); + List extendGroupPOS = getExtendGroupMapper().listGroupByPid(GROUP_ID); + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(extendGroupPOS)) { + for (ExtendGroupPO extendGroupPO : extendGroupPOS) { + addGroups.add(new SearchConditionGroup(extendGroupPO.getGroupName(), true, getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_DEPT, 2, extendGroupPO.getId().toString(), "dept_no", RuleCodeType.DEPARTMENT.getValue()))); + } } - // 名称 - SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "departmentName"); - deptNameItem.setRules("required|string"); - // 简称 - SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "deptNameShort"); - deptNameShortItem.setRules("required|string"); - // 所属分部 - SearchConditionItem compBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); - //上级部门 - SearchConditionItem deptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级部门", "161", "parentDept", "deptBrowser"); - // 部门负责人 - SearchConditionItem deptPrincipalItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门负责人", "1", "deptPrincipal", ""); - // 显示顺序 - SearchConditionItem showOrderItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "显示顺序", "showOrder"); - // 说明 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description"); - - conditionItems.add(deptNoItem); - conditionItems.add(deptNameItem); - conditionItems.add(deptNameShortItem); - conditionItems.add(compBrowserItem); - conditionItems.add(deptBrowserItem); - conditionItems.add(deptPrincipalItem); - conditionItems.add(showOrderItem); - conditionItems.add(descriptionItem); - - - addGroups.add(new SearchConditionGroup("基本信息", true, conditionItems)); apiDatas.put("condition", addGroups); - return apiDatas; } @@ -512,101 +495,6 @@ public class DepartmentServiceImpl extends Service implements DepartmentService return !(StringUtil.isEmpty(departmentPO.getDeptNo()) && StringUtil.isEmpty(departmentPO.getDeptName()) && StringUtil.isEmpty(departmentPO.getDeptNameShort()) && null == departmentPO.getParentComp() && null == departmentPO.getParentDept() && null == departmentPO.getDeptPrincipal() && null == departmentPO.getShowOrder() && null == departmentPO.getForbiddenTag()); } - /** - * 基本信息基础表单 - * - * @param viewAttr - * @param id - * @return - */ - private List getBaseForm(int viewAttr, long id) { - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "deptNo"); - // 名称 - SearchConditionItem deptNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "departmentName"); - deptNameItem.setRules("required|string"); - // 简称 - SearchConditionItem deptNameShortItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "简称", "deptNameShort"); - deptNameShortItem.setRules("required|string"); - // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); - // 上级部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级部门", "161", "parentDept", "deptBrowser"); - // 部门负责人 - SearchConditionItem deptPrincipalBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "部门负责人", "1", "deptPrincipal", ""); - // 显示顺序 - SearchConditionItem showOrderItem = OrganizationFormItemUtil.inputNumberItem(user, 2, 16, 2, "显示顺序", "showOrder"); - // 说明 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 2, 60, "说明", "description"); - - - conditionItems.add(deptNoItem); - conditionItems.add(deptNameItem); - conditionItems.add(deptNameShortItem); - conditionItems.add(parentCompBrowserItem); - conditionItems.add(parentDeptBrowserItem); - conditionItems.add(deptPrincipalBrowserItem); - conditionItems.add(showOrderItem); - conditionItems.add(descriptionItem); - - - // 编辑、查看状态赋值,设置只读状态 - - // 赋值 - DepartmentPO departmentPO = getDepartmentMapper().getDeptById(id); - OrganizationAssert.notNull(departmentPO, "数据不存在或数据已删除"); - deptNoItem.setValue(departmentPO.getDeptNo()); - deptNameItem.setValue(departmentPO.getDeptName()); - deptNameShortItem.setValue(departmentPO.getDeptNameShort()); - - // parentCompBrowserItem - if (null != departmentPO.getParentComp()) { - BrowserBean browserBean = parentCompBrowserItem.getBrowserConditionParam(); - browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getParentComp(), getCompMapper().listById(departmentPO.getParentComp()).getCompName())); - parentCompBrowserItem.setBrowserConditionParam(browserBean); - } - // parentDeptBrowserItem - if (null != departmentPO.getParentDept()) { - BrowserBean browserBean = parentDeptBrowserItem.getBrowserConditionParam(); - browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getParentDept(), getDepartmentMapper().getDeptById(departmentPO.getParentDept()).getDeptName())); - parentDeptBrowserItem.setBrowserConditionParam(browserBean); - } - // deptPrincipalBrowserItem - if (null != departmentPO.getDeptPrincipal()) { - BrowserBean browserBean = deptPrincipalBrowserItem.getBrowserConditionParam(); - browserBean.setReplaceDatas(creatReplaceDatas(departmentPO.getDeptPrincipal(), DepartmentBO.getEmployeeNameById(departmentPO.getDeptPrincipal()))); - deptPrincipalBrowserItem.setBrowserConditionParam(browserBean); - } - showOrderItem.setValue(departmentPO.getShowOrder()); - descriptionItem.setValue(departmentPO.getDescription()); - - // 查看,全部置位只读 - if (1 == viewAttr) { - for (SearchConditionItem item : conditionItems) { - item.setViewAttr(viewAttr); - } - } - return conditionItems; - } - - /** - * 浏览按钮类型赋值转换 - * - * @param id - * @param name - * @return - */ - private List> creatReplaceDatas(Object id, Object name) { - List> datas = new ArrayList<>(); - Map map = new HashMap<>(); - map.put("id", id); - map.put("name", name); - datas.add(map); - return datas; - - } - /** * 根据keyword查询数据 diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java index eb0a6c3c..10388cea 100644 --- a/src/com/engine/organization/service/impl/ExtServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -17,6 +17,7 @@ import com.engine.organization.service.ExtService; import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.db.MapperProxyFactory; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import weaver.general.Util; import weaver.hrm.User; @@ -171,23 +172,36 @@ public class ExtServiceImpl extends Service implements ExtService { @Override public int updateExtForm(User user, String extendType, String tableName, Map params, String groupId, Long id) { int updateBaseComp; - List extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ""); - List extFields = extInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList()); + List extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ExtendInfoOperateType.EDIT.getValue()); Map map = new HashMap<>(); - for (String dtField : extFields) { - map.put(dtField, params.get(dtField)); + for (ExtendInfoPO extendInfoPO : extInfoPOList) { + String key = extendInfoPO.getFieldName(); + Object value = params.get(extendInfoPO.getFieldName()); + if ("int".equals(extendInfoPO.getFieldType()) && StringUtils.isEmpty((String) value)) { + value = null; + } + map.put(key, value); } - // 判断更新还是插入 - int count = getExtMapper().countExtById(tableName, id); - if (count > 0) { - map.put("update_time", new Date()); - updateBaseComp = getExtMapper().updateExt(tableName, id, map); + if (null != id) { + // 判断更新还是插入 + int count = getExtMapper().countExtById(tableName, id); + if (count > 0) { + map.put("update_time", new Date()); + updateBaseComp = getExtMapper().updateExt(tableName, id, map); + } else { + map.put("creator", user.getUID()); + map.put("delete_type", 0); + map.put("create_time", new Date()); + map.put("update_time", new Date()); + map.put("id", id); + updateBaseComp = getExtMapper().insertExt(tableName, map); + } } else { + map.put("forbidden_tag", 0); map.put("creator", user.getUID()); map.put("delete_type", 0); map.put("create_time", new Date()); map.put("update_time", new Date()); - map.put("id", id); updateBaseComp = getExtMapper().insertExt(tableName, map); } return updateBaseComp; diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 27f025bc..3d14c887 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -1,7 +1,6 @@ package com.engine.organization.service.impl; import com.alibaba.fastjson.JSONObject; -import com.api.browser.bean.BrowserBean; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; @@ -12,13 +11,13 @@ 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.company.bo.CompBO; import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.department.bo.DepartmentBO; import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.employee.vo.EmployeeTableVO; import com.engine.organization.entity.extend.bo.ExtendInfoBO; +import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.entity.extend.po.ExtendInfoPO; import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.dto.JobListDTO; @@ -28,7 +27,6 @@ import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.scheme.po.GradePO; import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTreeParams; -import com.engine.organization.mapper.codesetting.CodeRuleMapper; import com.engine.organization.mapper.comp.CompMapper; import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper; @@ -83,6 +81,10 @@ public class JobServiceImpl extends Service implements JobService { * 3:岗位 */ private static final String EXTEND_TYPE = "3"; + /** + * 主表 + */ + private static final String JCL_ORG_JOB = "JCL_ORG_JOB"; /** * 主表拓展表 */ @@ -94,6 +96,11 @@ public class JobServiceImpl extends Service implements JobService { private static final String RIGHT_NAME = "Job:All"; + /** + * 岗位主表title指定ID + */ + private static final Long GROUP_ID = -3L; + private JobMapper getJobMapper() { return MapperProxyFactory.getProxy(JobMapper.class); } @@ -251,51 +258,15 @@ public class JobServiceImpl extends Service implements JobService { @Override public Map getSaveForm() { + HasRightUtil.hasRight(user, RIGHT_NAME, false); Map apiDatas = new HashMap<>(); List addGroups = new ArrayList<>(); - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "jobNo"); - jobNoItem.setRules("required|string"); - CodeRulePO codeRuleByType = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(RuleCodeType.JOBTITLES.getValue()); - if (null != codeRuleByType && "1".equals(codeRuleByType.getSerialEnable())) { - jobNoItem.setViewAttr(2); - jobNoItem.setRules(""); - jobNoItem.setHelpfulTip("编号为空,则按照指定规则自动生成编号"); + List extendGroupPOS = getExtendGroupMapper().listGroupByPid(GROUP_ID); + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(extendGroupPOS)) { + for (ExtendGroupPO extendGroupPO : extendGroupPOS) { + addGroups.add(new SearchConditionGroup(extendGroupPO.getGroupName(), true, getExtService(user).getExtSaveForm(user, EXTEND_TYPE + "", JCL_ORG_JOB, 2, extendGroupPO.getId().toString(), "job_no", RuleCodeType.JOBTITLES.getValue()))); + } } - // 名称 - SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); - jobNameItem.setRules("required|string"); - // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); - // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); - // 岗位序列 - SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); - // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "等级方案", "161", "schemeId", "schemeBrowser"); - // 上级岗位 - SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); - // 是否关键岗 - List isKeyOptions = new ArrayList<>(); - SearchConditionOption yesOption = new SearchConditionOption("0", "否"); - SearchConditionOption noOption = new SearchConditionOption("1", "是"); - isKeyOptions.add(yesOption); - isKeyOptions.add(noOption); - SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "isKey"); - isKeyItem.setDetailtype(3); - isKeyItem.setValue("0"); - - conditionItems.add(jobNoItem); - conditionItems.add(jobNameItem); - conditionItems.add(parentCompBrowserItem); - conditionItems.add(parentDeptBrowserItem); - conditionItems.add(sequenceBrowserItem); - conditionItems.add(schemeBrowserItem); - conditionItems.add(parentJobBrowserItem); - conditionItems.add(isKeyItem); - - addGroups.add(new SearchConditionGroup("基本信息", true, conditionItems)); apiDatas.put("condition", addGroups); return apiDatas; } @@ -314,12 +285,15 @@ public class JobServiceImpl extends Service implements JobService { buttonsMap.put("hasSave", true); List addGroups = new ArrayList<>(); - if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { - addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); - } else { - addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, viewAttr, id, groupId))); + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } + List extendGroupPOS = getExtendGroupMapper().listGroupByPid(Long.parseLong(groupId)); + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(extendGroupPOS)) { + for (ExtendGroupPO extendGroupPO : extendGroupPOS) { + addGroups.add(new SearchConditionGroup(extendGroupPO.getGroupName(), true, getExtService(user).getExtForm(user, EXTEND_TYPE + "", Integer.parseInt(groupId) >= 0 ? JCL_ORG_JOBEXT : JCL_ORG_JOB, viewAttr, id, extendGroupPO.getId().toString(), "job_no"))); + } } - HashMap resultMap = new HashMap<>(); resultMap.put("buttons", buttonsMap); resultMap.put("conditions", addGroups); @@ -356,15 +330,21 @@ public class JobServiceImpl extends Service implements JobService { } @Override - public int saveBaseForm(JobSearchParam params) { + public int saveBaseForm(Map params) { HasRightUtil.hasRight(user, RIGHT_NAME, false); + JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); + // 处理自动编号 - params.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, params.getJobNo())); - List list = getJobMapper().listByNo(Util.null2String(params.getJobNo())); + searchParam.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, searchParam.getJobNo())); + List list = getJobMapper().listByNo(Util.null2String(searchParam.getJobNo())); OrganizationAssert.isEmpty(list, "编号不允许重复"); - JobPO jobPO = JobBO.convertParamsToPO(params, user.getUID()); + JobPO jobPO = JobBO.convertParamsToPO(searchParam, user.getUID()); jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); int insertCount = getJobMapper().insertIgnoreNull(jobPO); + params.put("job_no", jobPO.getJobNo()); + params.put("is_key", jobPO.getIsKey()); + + getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOB, params, "", jobPO.getId()); if (null != jobPO.getSchemeId()) { // 插入明细表信息 // 根据等级方案查询职等、职级 @@ -383,24 +363,28 @@ public class JobServiceImpl extends Service implements JobService { HasRightUtil.hasRight(user, RIGHT_NAME, false); JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); String groupId = (String) params.get("viewCondition"); - JobPO jobPO = JobBO.convertParamsToPO(searchParam, user.getUID()); - jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); + searchParam.setIsKey(null == searchParam.getIsKey() ? 0 : searchParam.getIsKey()); + if ("0".equals(groupId)) { + groupId = GROUP_ID.toString(); + } int updateCount = 0; // 更新主表数据 - updateCount += getJobMapper().updateBaseJob(jobPO); + params.put("is_key", searchParam.getIsKey()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOB, params, "", searchParam.getId()); + // 更新主表拓展表 - updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, jobPO.getId()); + updateCount += getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, params, groupId, searchParam.getId()); // 更新明细表 - getJobDTMapper().deleteByIds(jobPO.getId()); + getJobDTMapper().deleteByIds(searchParam.getId()); int rowNum = Util.getIntValue((String) params.get("rownum")); for (int i = 0; i < rowNum; i++) { String levelId = (String) params.get("levelId_" + i); String gradeId = (String) params.get("gradeId_" + i); String levelIdspan = (String) params.get("levelIdspan_" + i); String gradeIdspan = (String) params.get("gradeIdspan_" + i); - getJobDTMapper().insertIgnoreNull(JobDTPO.builder().levelId(levelId).gradeId(gradeId).levelIdspan(levelIdspan).gradeIdspan(gradeIdspan).mainId(jobPO.getId()).creator((long) user.getUID()).deleteType(0).createTime(new Date()).updateTime(new Date()).build()); + getJobDTMapper().insertIgnoreNull(JobDTPO.builder().levelId(levelId).gradeId(gradeId).levelIdspan(levelIdspan).gradeIdspan(gradeIdspan).mainId(searchParam.getId()).creator((long) user.getUID()).deleteType(0).createTime(new Date()).updateTime(new Date()).build()); } - getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, jobPO.getId()); + getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_JOBEXT_DT1, params, searchParam.getId()); return updateCount; } @@ -564,112 +548,6 @@ public class JobServiceImpl extends Service implements JobService { && null == jobPO.getForbiddenTag(); } - /** - * 基本信息基础表单 - * - * @param viewAttr - * @param id - * @return - */ - private List getBaseForm(int viewAttr, long id) { - List conditionItems = new ArrayList<>(); - // 编号 - SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, "编号", "jobNo"); - // 名称 - SearchConditionItem jobNameItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "名称", "jobName"); - jobNameItem.setRules("required|string"); - // 所属分部 - SearchConditionItem parentCompBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属分部", "161", "parentComp", "compBrowser"); - // 所属部门 - SearchConditionItem parentDeptBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "所属部门", "161", "parentDept", "deptBrowser"); - // 岗位序列 - SearchConditionItem sequenceBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "岗位序列", "161", "sequenceId", "sequenceBrowser"); - // 等级方案 - SearchConditionItem schemeBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 3, false, "等级方案", "161", "schemeId", "schemeBrowser"); - // 上级岗位 - SearchConditionItem parentJobBrowserItem = OrganizationFormItemUtil.browserItem(user, 2, 16, 2, false, "上级岗位", "161", "parentJob", "jobBrowser"); - // 是否关键岗 - List isKeyOptions = new ArrayList<>(); - SearchConditionOption yesOption = new SearchConditionOption("0", "否"); - SearchConditionOption noOption = new SearchConditionOption("1", "是"); - isKeyOptions.add(yesOption); - isKeyOptions.add(noOption); - SearchConditionItem isKeyItem = OrganizationFormItemUtil.selectItem(user, isKeyOptions, 2, 16, 6, false, "是否关键岗", "isKey"); - isKeyItem.setDetailtype(3); - // 工作地点 - SearchConditionItem workplaceItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 2, 50, "工作地点", "workplace"); - // 工作概述 - SearchConditionItem descriptionItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "工作概述", "description"); - // 任职职责 - SearchConditionItem workDutyItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "任职职责", "workDuty"); - // 工作权限 - SearchConditionItem workAuthorityItem = OrganizationFormItemUtil.textareaItem(user, 2, 16, false, 2, 50, "工作权限", "workAuthority"); - - conditionItems.add(jobNoItem); - conditionItems.add(jobNameItem); - conditionItems.add(parentCompBrowserItem); - conditionItems.add(parentDeptBrowserItem); - conditionItems.add(sequenceBrowserItem); - conditionItems.add(schemeBrowserItem); - conditionItems.add(parentJobBrowserItem); - conditionItems.add(isKeyItem); - conditionItems.add(workplaceItem); - conditionItems.add(descriptionItem); - conditionItems.add(workDutyItem); - conditionItems.add(workAuthorityItem); - - - // 编辑、查看状态赋值,设置只读状态 - JobPO jobPO = getJobMapper().getJobById(id); - OrganizationAssert.notNull(jobPO, "数据不存在或数据已删除"); - jobNoItem.setValue(jobPO.getJobNo()); - jobNameItem.setValue(jobPO.getJobName()); - isKeyItem.setValue(null == jobPO.getIsKey() ? "0" : jobPO.getIsKey() + ""); - workplaceItem.setValue(jobPO.getWorkplace()); - descriptionItem.setValue(jobPO.getDescription()); - workDutyItem.setValue(jobPO.getWorkDuty()); - workAuthorityItem.setValue(jobPO.getWorkAuthority()); - - if (null != jobPO.getParentComp()) { - BrowserBean browserBean = parentCompBrowserItem.getBrowserConditionParam(); - List> compMaps = getCompMapper().listCompsByIds(DeleteParam.builder().ids(jobPO.getParentComp().toString()).build().getIds()); - browserBean.setReplaceDatas(compMaps); - parentCompBrowserItem.setBrowserConditionParam(browserBean); - } - if (null != jobPO.getParentDept()) { - BrowserBean browserBean = parentDeptBrowserItem.getBrowserConditionParam(); - List> deptMaps = getDepartmentMapper().listDeptsByIds(DeleteParam.builder().ids(jobPO.getParentDept().toString()).build().getIds()); - browserBean.setReplaceDatas(deptMaps); - parentDeptBrowserItem.setBrowserConditionParam(browserBean); - } - if (null != jobPO.getSequenceId()) { - BrowserBean browserBean = sequenceBrowserItem.getBrowserConditionParam(); - List> deptMaps = getSequenceMapper().listSequencesByIds(DeleteParam.builder().ids(jobPO.getSequenceId().toString()).build().getIds()); - browserBean.setReplaceDatas(deptMaps); - sequenceBrowserItem.setBrowserConditionParam(browserBean); - } - if (null != jobPO.getSchemeId()) { - BrowserBean browserBean = schemeBrowserItem.getBrowserConditionParam(); - List> deptMaps = getSchemeMapper().listSchemesByIds(DeleteParam.builder().ids(jobPO.getSchemeId().toString()).build().getIds()); - browserBean.setReplaceDatas(deptMaps); - schemeBrowserItem.setBrowserConditionParam(browserBean); - } - if (null != jobPO.getParentJob()) { - BrowserBean browserBean = parentJobBrowserItem.getBrowserConditionParam(); - List> deptMaps = getJobMapper().listJobsByIds(DeleteParam.builder().ids(jobPO.getParentJob().toString()).build().getIds()); - browserBean.setReplaceDatas(deptMaps); - parentJobBrowserItem.setBrowserConditionParam(browserBean); - } - - // 查看,全部置为只读 - if (1 == viewAttr) { - for (SearchConditionItem item : conditionItems) { - item.setViewAttr(viewAttr); - } - } - return conditionItems; - } - /** * 获取待删除数据的子级元素 * diff --git a/src/com/engine/organization/web/DepartmentController.java b/src/com/engine/organization/web/DepartmentController.java index 2f85fc96..6c92051b 100644 --- a/src/com/engine/organization/web/DepartmentController.java +++ b/src/com/engine/organization/web/DepartmentController.java @@ -111,7 +111,7 @@ public class DepartmentController { @POST @Path("/saveBaseForm") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody DeptSearchParam params) { + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Map params) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getDepartmentWrapper(user).saveBaseForm(params)); diff --git a/src/com/engine/organization/web/JobController.java b/src/com/engine/organization/web/JobController.java index 686b162e..83b7d77b 100644 --- a/src/com/engine/organization/web/JobController.java +++ b/src/com/engine/organization/web/JobController.java @@ -120,7 +120,7 @@ public class JobController { @POST @Path("/saveBaseForm") @Produces(MediaType.APPLICATION_JSON) - public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody JobSearchParam params) { + public ReturnResult saveBaseComp(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody Map params) { try { User user = HrmUserVarify.getUser(request, response); return ReturnResult.successed(getJobWrapper(user).saveBaseForm(params)); diff --git a/src/com/engine/organization/wrapper/DepartmentWrapper.java b/src/com/engine/organization/wrapper/DepartmentWrapper.java index d8596edf..93a5871b 100644 --- a/src/com/engine/organization/wrapper/DepartmentWrapper.java +++ b/src/com/engine/organization/wrapper/DepartmentWrapper.java @@ -79,7 +79,7 @@ public class DepartmentWrapper extends Service { * @param params * @return */ - public int saveBaseForm(DeptSearchParam params) { + public int saveBaseForm(Map params) { return getDepartmentService(user).saveBaseForm(params); } diff --git a/src/com/engine/organization/wrapper/JobWrapper.java b/src/com/engine/organization/wrapper/JobWrapper.java index 4d5b0bf6..b16874f4 100644 --- a/src/com/engine/organization/wrapper/JobWrapper.java +++ b/src/com/engine/organization/wrapper/JobWrapper.java @@ -89,7 +89,7 @@ public class JobWrapper extends Service { * @param params * @return */ - public int saveBaseForm(JobSearchParam params) { + public int saveBaseForm(Map params) { return getJobService(user).saveBaseForm(params); }