部门、岗位 主表、拓展表动态添加字段、动态分组

pull/73/MERGE^2
dxfeng 3 years ago
parent 3a075f4ec6
commit 0dc034c66e

@ -58,7 +58,7 @@ public interface DepartmentService {
* @param params * @param params
* @return * @return
*/ */
int saveBaseForm(DeptSearchParam params); int saveBaseForm(Map<String, Object> params);
/** /**
* *

@ -63,7 +63,7 @@ public interface JobService {
* @param params * @param params
* @return * @return
*/ */
int saveBaseForm(JobSearchParam params); int saveBaseForm(Map<String, Object> params);
/** /**
* *

@ -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.company.po.CompPO;
import com.engine.organization.entity.extend.po.ExtendGroupPO; import com.engine.organization.entity.extend.po.ExtendGroupPO;
import com.engine.organization.mapper.comp.CompMapper; 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.mapper.extend.ExtendGroupMapper;
import com.engine.organization.service.CompService; import com.engine.organization.service.CompService;
import com.engine.organization.service.ExtService; import com.engine.organization.service.ExtService;
@ -140,12 +139,8 @@ public class CompServiceImpl extends Service implements CompService {
List<CompPO> list = getCompMapper().listByNo(Util.null2String(compNo)); List<CompPO> list = getCompMapper().listByNo(Util.null2String(compNo));
OrganizationAssert.isEmpty(list, "编号不允许重复"); OrganizationAssert.isEmpty(list, "编号不允许重复");
params.put("comp_no", compNo); params.put("comp_no", compNo);
params.put("forbidden_tag", 0);
params.put("creator", user.getUID()); return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMP, params, "", null);
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);
} }
@Override @Override
@ -160,17 +155,16 @@ public class CompServiceImpl extends Service implements CompService {
HasRightUtil.hasRight(user, RIGHT_NAME, false); HasRightUtil.hasRight(user, RIGHT_NAME, false);
CompSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), CompSearchParam.class); CompSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), CompSearchParam.class);
String groupId = (String) params.get("viewCondition"); String groupId = (String) params.get("viewCondition");
CompPO compPO = CompBO.convertParamToPO(searchParam, (long) user.getUID());
if ("0".equals(groupId)) { if ("0".equals(groupId)) {
groupId = GROUP_ID.toString(); groupId = GROUP_ID.toString();
} }
int updateCount = 0; 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; return updateCount;
} }
@ -249,7 +243,7 @@ public class CompServiceImpl extends Service implements CompService {
List<ExtendGroupPO> extendGroupPOS = getExtendGroupMapper().listGroupByPid(Long.parseLong(groupId)); List<ExtendGroupPO> extendGroupPOS = getExtendGroupMapper().listGroupByPid(Long.parseLong(groupId));
if (CollectionUtils.isNotEmpty(extendGroupPOS)) { if (CollectionUtils.isNotEmpty(extendGroupPOS)) {
for (ExtendGroupPO extendGroupPO : 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")));
} }
} }

@ -1,7 +1,6 @@
package com.engine.organization.service.impl; package com.engine.organization.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.api.browser.bean.BrowserBean;
import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionGroup;
import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionItem;
import com.api.browser.bean.SearchConditionOption; 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.core.impl.Service;
import com.engine.hrm.entity.RuleCodeType; import com.engine.hrm.entity.RuleCodeType;
import com.engine.organization.component.OrganizationWeaTable; 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.bo.CompBO;
import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.company.po.CompPO;
import com.engine.organization.entity.department.bo.DepartmentBO; 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.param.*;
import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.po.DepartmentPO;
import com.engine.organization.entity.department.vo.SingleDeptTreeVO; 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.bo.JobBO;
import com.engine.organization.entity.job.po.JobPO; import com.engine.organization.entity.job.po.JobPO;
import com.engine.organization.entity.job.vo.SingleJobTreeVO; import com.engine.organization.entity.job.vo.SingleJobTreeVO;
import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTree;
import com.engine.organization.entity.searchtree.SearchTreeParams; 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.comp.CompMapper;
import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.department.DepartmentMapper;
import com.engine.organization.mapper.extend.ExtendGroupMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper;
@ -64,6 +62,10 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
* 3 * 3
*/ */
private static final String EXTEND_TYPE = "2"; 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"; private static final String RIGHT_NAME = "Department:All";
/**
* titleID
*/
private static final Long GROUP_ID = -2L;
private DepartmentMapper getDepartmentMapper() { private DepartmentMapper getDepartmentMapper() {
return MapperProxyFactory.getProxy(DepartmentMapper.class); return MapperProxyFactory.getProxy(DepartmentMapper.class);
@ -178,14 +185,15 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
} }
@Override @Override
public int saveBaseForm(DeptSearchParam params) { public int saveBaseForm(Map<String, Object> params) {
HasRightUtil.hasRight(user, RIGHT_NAME, false); HasRightUtil.hasRight(user, RIGHT_NAME, false);
// 自动编号 String deptNo = (String) params.get("dept_no");
params.setDeptNo(CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, params.getDeptNo())); deptNo = CodeRuleUtil.generateCode(RuleCodeType.DEPARTMENT, deptNo);
List<DepartmentPO> list = getDepartmentMapper().listByNo(Util.null2String(params.getDeptNo())); List<DepartmentPO> list = getDepartmentMapper().listByNo(Util.null2String(deptNo));
OrganizationAssert.isEmpty(list, "编号不允许重复"); OrganizationAssert.isEmpty(list, "编号不允许重复");
DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(params, user.getUID()); params.put("dept_no", deptNo);
return getDepartmentMapper().insertIgnoreNull(departmentPO);
return getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_DEPT, params, "", null);
} }
@Override @Override
@ -200,14 +208,16 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
HasRightUtil.hasRight(user, RIGHT_NAME, false); HasRightUtil.hasRight(user, RIGHT_NAME, false);
DeptSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), DeptSearchParam.class); DeptSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), DeptSearchParam.class);
String groupId = (String) params.get("viewCondition"); String groupId = (String) params.get("viewCondition");
DepartmentPO departmentPO = DepartmentBO.convertParamsToPO(searchParam, user.getUID()); if ("0".equals(groupId)) {
groupId = GROUP_ID.toString();
}
int updateCount = 0; 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; return updateCount;
} }
@ -279,10 +289,15 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
buttonsMap.put("hasSave", true); buttonsMap.put("hasSave", true);
List<SearchConditionGroup> addGroups = new ArrayList<>(); List<SearchConditionGroup> addGroups = new ArrayList<>();
if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) {
addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); if ("0".equals(groupId)) {
} else { groupId = GROUP_ID.toString();
addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_DEPTEXT, viewAttr, id, groupId))); }
List<ExtendGroupPO> 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<String, Object> resultMap = new HashMap<>(); HashMap<String, Object> resultMap = new HashMap<>();
@ -302,48 +317,16 @@ public class DepartmentServiceImpl extends Service implements DepartmentService
@Override @Override
public Map<String, Object> getSaveForm() { public Map<String, Object> getSaveForm() {
HasRightUtil.hasRight(user, RIGHT_NAME, false);
Map<String, Object> apiDatas = new HashMap<>(); Map<String, Object> apiDatas = new HashMap<>();
List<SearchConditionGroup> addGroups = new ArrayList<>(); List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> conditionItems = new ArrayList<>(); List<ExtendGroupPO> extendGroupPOS = getExtendGroupMapper().listGroupByPid(GROUP_ID);
// 编号 if (org.apache.commons.collections.CollectionUtils.isNotEmpty(extendGroupPOS)) {
SearchConditionItem deptNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "deptNo"); for (ExtendGroupPO extendGroupPO : extendGroupPOS) {
deptNoItem.setRules("required|string"); 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())));
CodeRulePO codeRuleByType = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(RuleCodeType.DEPARTMENT.getValue()); }
if (null != codeRuleByType && "1".equals(codeRuleByType.getSerialEnable())) {
deptNoItem.setViewAttr(2);
deptNoItem.setRules("");
deptNoItem.setHelpfulTip("编号为空,则按照指定规则自动生成编号");
} }
// 名称
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); apiDatas.put("condition", addGroups);
return apiDatas; 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()); 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<SearchConditionItem> getBaseForm(int viewAttr, long id) {
List<SearchConditionItem> 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<Map<String, Object>> creatReplaceDatas(Object id, Object name) {
List<Map<String, Object>> datas = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("id", id);
map.put("name", name);
datas.add(map);
return datas;
}
/** /**
* keyword * keyword

@ -17,6 +17,7 @@ import com.engine.organization.service.ExtService;
import com.engine.organization.util.OrganizationAssert; import com.engine.organization.util.OrganizationAssert;
import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.db.MapperProxyFactory;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import weaver.general.Util; import weaver.general.Util;
import weaver.hrm.User; import weaver.hrm.User;
@ -171,23 +172,36 @@ public class ExtServiceImpl extends Service implements ExtService {
@Override @Override
public int updateExtForm(User user, String extendType, String tableName, Map<String, Object> params, String groupId, Long id) { public int updateExtForm(User user, String extendType, String tableName, Map<String, Object> params, String groupId, Long id) {
int updateBaseComp; int updateBaseComp;
List<ExtendInfoPO> extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ""); List<ExtendInfoPO> extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName, ExtendInfoOperateType.EDIT.getValue());
List<String> extFields = extInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList());
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
for (String dtField : extFields) { for (ExtendInfoPO extendInfoPO : extInfoPOList) {
map.put(dtField, params.get(dtField)); 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);
} }
// 判断更新还是插入 if (null != id) {
int count = getExtMapper().countExtById(tableName, id); // 判断更新还是插入
if (count > 0) { int count = getExtMapper().countExtById(tableName, id);
map.put("update_time", new Date()); if (count > 0) {
updateBaseComp = getExtMapper().updateExt(tableName, id, map); 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 { } else {
map.put("forbidden_tag", 0);
map.put("creator", user.getUID()); map.put("creator", user.getUID());
map.put("delete_type", 0); map.put("delete_type", 0);
map.put("create_time", new Date()); map.put("create_time", new Date());
map.put("update_time", new Date()); map.put("update_time", new Date());
map.put("id", id);
updateBaseComp = getExtMapper().insertExt(tableName, map); updateBaseComp = getExtMapper().insertExt(tableName, map);
} }
return updateBaseComp; return updateBaseComp;

@ -1,7 +1,6 @@
package com.engine.organization.service.impl; package com.engine.organization.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.api.browser.bean.BrowserBean;
import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionGroup;
import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionItem;
import com.api.browser.bean.SearchConditionOption; 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.hrm.entity.RuleCodeType;
import com.engine.organization.component.OrganizationWeaTable; import com.engine.organization.component.OrganizationWeaTable;
import com.engine.organization.entity.DeleteParam; 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.bo.CompBO;
import com.engine.organization.entity.company.po.CompPO; import com.engine.organization.entity.company.po.CompPO;
import com.engine.organization.entity.department.bo.DepartmentBO; import com.engine.organization.entity.department.bo.DepartmentBO;
import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.department.po.DepartmentPO;
import com.engine.organization.entity.employee.vo.EmployeeTableVO; import com.engine.organization.entity.employee.vo.EmployeeTableVO;
import com.engine.organization.entity.extend.bo.ExtendInfoBO; 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.extend.po.ExtendInfoPO;
import com.engine.organization.entity.job.bo.JobBO; import com.engine.organization.entity.job.bo.JobBO;
import com.engine.organization.entity.job.dto.JobListDTO; 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.scheme.po.GradePO;
import com.engine.organization.entity.searchtree.SearchTree; import com.engine.organization.entity.searchtree.SearchTree;
import com.engine.organization.entity.searchtree.SearchTreeParams; 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.comp.CompMapper;
import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.department.DepartmentMapper;
import com.engine.organization.mapper.extend.ExtendGroupMapper; import com.engine.organization.mapper.extend.ExtendGroupMapper;
@ -83,6 +81,10 @@ public class JobServiceImpl extends Service implements JobService {
* 3 * 3
*/ */
private static final String EXTEND_TYPE = "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"; private static final String RIGHT_NAME = "Job:All";
/**
* titleID
*/
private static final Long GROUP_ID = -3L;
private JobMapper getJobMapper() { private JobMapper getJobMapper() {
return MapperProxyFactory.getProxy(JobMapper.class); return MapperProxyFactory.getProxy(JobMapper.class);
} }
@ -251,51 +258,15 @@ public class JobServiceImpl extends Service implements JobService {
@Override @Override
public Map<String, Object> getSaveForm() { public Map<String, Object> getSaveForm() {
HasRightUtil.hasRight(user, RIGHT_NAME, false);
Map<String, Object> apiDatas = new HashMap<>(); Map<String, Object> apiDatas = new HashMap<>();
List<SearchConditionGroup> addGroups = new ArrayList<>(); List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> conditionItems = new ArrayList<>(); List<ExtendGroupPO> extendGroupPOS = getExtendGroupMapper().listGroupByPid(GROUP_ID);
// 编号 if (org.apache.commons.collections.CollectionUtils.isNotEmpty(extendGroupPOS)) {
SearchConditionItem jobNoItem = OrganizationFormItemUtil.inputItem(user, 2, 16, 3, 50, "编号", "jobNo"); for (ExtendGroupPO extendGroupPO : extendGroupPOS) {
jobNoItem.setRules("required|string"); 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())));
CodeRulePO codeRuleByType = MapperProxyFactory.getProxy(CodeRuleMapper.class).getCodeRuleByType(RuleCodeType.JOBTITLES.getValue()); }
if (null != codeRuleByType && "1".equals(codeRuleByType.getSerialEnable())) {
jobNoItem.setViewAttr(2);
jobNoItem.setRules("");
jobNoItem.setHelpfulTip("编号为空,则按照指定规则自动生成编号");
} }
// 名称
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<SearchConditionOption> 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); apiDatas.put("condition", addGroups);
return apiDatas; return apiDatas;
} }
@ -314,12 +285,15 @@ public class JobServiceImpl extends Service implements JobService {
buttonsMap.put("hasSave", true); buttonsMap.put("hasSave", true);
List<SearchConditionGroup> addGroups = new ArrayList<>(); List<SearchConditionGroup> addGroups = new ArrayList<>();
if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) { if ("0".equals(groupId)) {
addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id))); groupId = GROUP_ID.toString();
} else { }
addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_JOBEXT, viewAttr, id, groupId))); List<ExtendGroupPO> 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<String, Object> resultMap = new HashMap<>(); HashMap<String, Object> resultMap = new HashMap<>();
resultMap.put("buttons", buttonsMap); resultMap.put("buttons", buttonsMap);
resultMap.put("conditions", addGroups); resultMap.put("conditions", addGroups);
@ -356,15 +330,21 @@ public class JobServiceImpl extends Service implements JobService {
} }
@Override @Override
public int saveBaseForm(JobSearchParam params) { public int saveBaseForm(Map<String, Object> params) {
HasRightUtil.hasRight(user, RIGHT_NAME, false); HasRightUtil.hasRight(user, RIGHT_NAME, false);
JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class);
// 处理自动编号 // 处理自动编号
params.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, params.getJobNo())); searchParam.setJobNo(CodeRuleUtil.generateCode(RuleCodeType.JOBTITLES, searchParam.getJobNo()));
List<JobPO> list = getJobMapper().listByNo(Util.null2String(params.getJobNo())); List<JobPO> list = getJobMapper().listByNo(Util.null2String(searchParam.getJobNo()));
OrganizationAssert.isEmpty(list, "编号不允许重复"); 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()); jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey());
int insertCount = getJobMapper().insertIgnoreNull(jobPO); 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()) { if (null != jobPO.getSchemeId()) {
// 插入明细表信息 // 插入明细表信息
// 根据等级方案查询职等、职级 // 根据等级方案查询职等、职级
@ -383,24 +363,28 @@ public class JobServiceImpl extends Service implements JobService {
HasRightUtil.hasRight(user, RIGHT_NAME, false); HasRightUtil.hasRight(user, RIGHT_NAME, false);
JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class); JobSearchParam searchParam = JSONObject.parseObject(JSONObject.toJSONString(params), JobSearchParam.class);
String groupId = (String) params.get("viewCondition"); String groupId = (String) params.get("viewCondition");
JobPO jobPO = JobBO.convertParamsToPO(searchParam, user.getUID()); searchParam.setIsKey(null == searchParam.getIsKey() ? 0 : searchParam.getIsKey());
jobPO.setIsKey(null == jobPO.getIsKey() ? 0 : jobPO.getIsKey()); if ("0".equals(groupId)) {
groupId = GROUP_ID.toString();
}
int updateCount = 0; 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")); int rowNum = Util.getIntValue((String) params.get("rownum"));
for (int i = 0; i < rowNum; i++) { for (int i = 0; i < rowNum; i++) {
String levelId = (String) params.get("levelId_" + i); String levelId = (String) params.get("levelId_" + i);
String gradeId = (String) params.get("gradeId_" + i); String gradeId = (String) params.get("gradeId_" + i);
String levelIdspan = (String) params.get("levelIdspan_" + i); String levelIdspan = (String) params.get("levelIdspan_" + i);
String gradeIdspan = (String) params.get("gradeIdspan_" + 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; return updateCount;
} }
@ -564,112 +548,6 @@ public class JobServiceImpl extends Service implements JobService {
&& null == jobPO.getForbiddenTag(); && null == jobPO.getForbiddenTag();
} }
/**
*
*
* @param viewAttr
* @param id
* @return
*/
private List<SearchConditionItem> getBaseForm(int viewAttr, long id) {
List<SearchConditionItem> 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<SearchConditionOption> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> 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;
}
/** /**
* *
* *

@ -111,7 +111,7 @@ public class DepartmentController {
@POST @POST
@Path("/saveBaseForm") @Path("/saveBaseForm")
@Produces(MediaType.APPLICATION_JSON) @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<String, Object> params) {
try { try {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getDepartmentWrapper(user).saveBaseForm(params)); return ReturnResult.successed(getDepartmentWrapper(user).saveBaseForm(params));

@ -120,7 +120,7 @@ public class JobController {
@POST @POST
@Path("/saveBaseForm") @Path("/saveBaseForm")
@Produces(MediaType.APPLICATION_JSON) @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<String, Object> params) {
try { try {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
return ReturnResult.successed(getJobWrapper(user).saveBaseForm(params)); return ReturnResult.successed(getJobWrapper(user).saveBaseForm(params));

@ -79,7 +79,7 @@ public class DepartmentWrapper extends Service {
* @param params * @param params
* @return * @return
*/ */
public int saveBaseForm(DeptSearchParam params) { public int saveBaseForm(Map<String, Object> params) {
return getDepartmentService(user).saveBaseForm(params); return getDepartmentService(user).saveBaseForm(params);
} }

@ -89,7 +89,7 @@ public class JobWrapper extends Service {
* @param params * @param params
* @return * @return
*/ */
public int saveBaseForm(JobSearchParam params) { public int saveBaseForm(Map<String, Object> params) {
return getJobService(user).saveBaseForm(params); return getJobService(user).saveBaseForm(params);
} }

Loading…
Cancel
Save