diff --git a/src/com/engine/organization/entity/company/bo/CompBO.java b/src/com/engine/organization/entity/company/bo/CompBO.java index e1e04f5d..098ecc84 100644 --- a/src/com/engine/organization/entity/company/bo/CompBO.java +++ b/src/com/engine/organization/entity/company/bo/CompBO.java @@ -103,7 +103,7 @@ public class CompBO { } public static List buildSetToSearchTree(Set comps) { - return comps.stream().map(item -> { + return comps.stream().sorted(Comparator.comparing(CompPO::getShowOrder)).map(item -> { SearchTree tree = new SearchTree(); tree.setCanClick(true); tree.setCanceled(item.getForbiddenTag() != 0); @@ -115,6 +115,7 @@ public class CompBO { tree.setPid(null == item.getParentCompany() ? "0" : item.getParentCompany().toString()); tree.setSelected(false); tree.setType("1"); + tree.setOrderNum(null == item.getShowOrder() ? 0 : item.getShowOrder()); return tree; }).collect(Collectors.toList()); } diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index 4223df42..2eefd980 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -140,6 +140,7 @@ public class DepartmentBO { tree.setSelected(false); tree.setType("2"); tree.setParentComp(null == item.getParentComp() ? "0" : item.getParentComp().toString()); + tree.setOrderNum(null == item.getShowOrder() ? 0 : item.getShowOrder()); return tree; }).collect(Collectors.toList()); } diff --git a/src/com/engine/organization/entity/job/bo/JobBO.java b/src/com/engine/organization/entity/job/bo/JobBO.java index 7e85404f..93bf2ff6 100644 --- a/src/com/engine/organization/entity/job/bo/JobBO.java +++ b/src/com/engine/organization/entity/job/bo/JobBO.java @@ -167,6 +167,7 @@ public class JobBO { tree.setSelected(false); tree.setType("3"); tree.setParentComp(null == item.getParentDept() ? "0" : item.getParentDept().toString()); + tree.setOrderNum(null == item.getShowOrder() ? 0 : item.getShowOrder()); return tree; }).collect(Collectors.toList()); diff --git a/src/com/engine/organization/entity/searchtree/SearchTree.java b/src/com/engine/organization/entity/searchtree/SearchTree.java index 14c98631..b279b3e2 100644 --- a/src/com/engine/organization/entity/searchtree/SearchTree.java +++ b/src/com/engine/organization/entity/searchtree/SearchTree.java @@ -18,4 +18,5 @@ public class SearchTree extends TreeNode { private boolean isCanceled; private String requestParams; private String parentComp; + private Integer orderNum; } \ No newline at end of file diff --git a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml index a93e0d34..f6d35f6e 100644 --- a/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml +++ b/src/com/engine/organization/mapper/hrmresource/SystemDataMapper.xml @@ -162,7 +162,7 @@ 'hrmresource' as tablename from hrm_formfield a inner join htmllabelinfo b on a.fieldlabel = b.indexid and b.languageid = 7 - where a.fielddbtype != '6' + where a.fielddbtype != '6' and a.isuse = '1' and a.fieldname in #{field} diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.java b/src/com/engine/organization/mapper/scheme/GradeMapper.java index 69996684..7495bfb8 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.java +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.java @@ -91,4 +91,5 @@ public interface GradeMapper { GradePO getGradeByLevelId(@Param("levelId") long levelId); + int checkRepeatNo(@Param("schemeId") Long schemeId, @Param("no") String no, @Param("id") Long id); } diff --git a/src/com/engine/organization/mapper/scheme/GradeMapper.xml b/src/com/engine/organization/mapper/scheme/GradeMapper.xml index eecd8dc8..e1f6ea45 100644 --- a/src/com/engine/organization/mapper/scheme/GradeMapper.xml +++ b/src/com/engine/organization/mapper/scheme/GradeMapper.xml @@ -245,9 +245,20 @@ + concat(',', level_id, ',') like concat('%,', cast(#{levelId} as CHAR), ',%') diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.java b/src/com/engine/organization/mapper/scheme/LevelMapper.java index eaa33e9b..11b5f460 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.java +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.java @@ -98,4 +98,6 @@ public interface LevelMapper { ArrayList getTreeData(); List getLevelsByIds(@Param("ids")Collection ids); + + int checkRepeatNo(@Param("schemeId") Long schemeId, @Param("no") String no, @Param("id") Long id); } diff --git a/src/com/engine/organization/mapper/scheme/LevelMapper.xml b/src/com/engine/organization/mapper/scheme/LevelMapper.xml index bde2f5f0..116e2e90 100644 --- a/src/com/engine/organization/mapper/scheme/LevelMapper.xml +++ b/src/com/engine/organization/mapper/scheme/LevelMapper.xml @@ -89,6 +89,17 @@ #{id} + update jcl_org_level diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 07a5b68c..c8abead8 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -705,7 +705,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService private List getFilterCompany(String id, String keyword) { // 查询部门信息 Long parentCompId = StringUtil.isEmpty(id) ? null : Long.parseLong(id); - CompPO compBuild = CompPO.builder().compName(keyword).parentCompany(parentCompId).build(); + CompPO compBuild = CompPO.builder().compName(keyword).parentCompany(parentCompId).forbiddenTag(0).build(); List filterComps = getCompMapper().listByFilter(compBuild, "show_order"); Set builderComps = new HashSet<>(); @@ -728,7 +728,7 @@ public class DepartmentServiceImpl extends Service implements DepartmentService return; } CompPO parentComp = getCompMapper().listById(compPO.getParentCompany()); - if (null != parentComp) { + if (null != parentComp && 0 == parentComp.getForbiddenTag()) { buildParentComps(parentComp, builderComps); } } diff --git a/src/com/engine/organization/service/impl/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index 7c851cd1..ab65d10c 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -73,8 +73,7 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public int saveGrade(GradeSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); - List list = getGradeMapper().listByNo(Util.null2String(param.getGradeNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); + OrganizationAssert.isTrue(checkRepeatNo(param.getSchemeId(), param.getGradeNo(), null), "同一等级方案下编号不能重复"); GradePO gradePO = GradeDTO.convertParamToPO(param, (long) user.getUID()); return getGradeMapper().insertIgnoreNull(gradePO); } @@ -83,11 +82,7 @@ public class GradeServiceImpl extends Service implements GradeService { public int updateGrade(GradeSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); GradePO gradePO = GradeDTO.convertParamToPO(param, (long) user.getUID()); - String oldGradeNo = getGradeMapper().getGradeByID(gradePO.getId()).getGradeNo(); - if (!oldGradeNo.equals(gradePO.getGradeNo())) { - List list = getGradeMapper().listByNo(Util.null2String(param.getGradeNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); - } + OrganizationAssert.isTrue(checkRepeatNo(gradePO.getSchemeId(), gradePO.getGradeNo(), gradePO.getId()), "同一等级方案下编号不能重复"); return getGradeMapper().updateGrade(gradePO); } @@ -167,20 +162,20 @@ public class GradeServiceImpl extends Service implements GradeService { long l = System.currentTimeMillis(); Map completeParams = levelBrowserBean.getCompleteParams(); completeParams.put("currenttime", l); - completeParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - completeParams.put("level_id_"+ l,"''"); + completeParams.put("scheme_id_" + l, gradePO.getSchemeId()); + completeParams.put("level_id_" + l, "''"); Map conditionDataParams = levelBrowserBean.getConditionDataParams(); conditionDataParams.put("currenttime", l); - conditionDataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - conditionDataParams.put("level_id_"+ l,"''"); + conditionDataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + conditionDataParams.put("level_id_" + l, "''"); Map dataParams = levelBrowserBean.getDataParams(); dataParams.put("currenttime", l); - dataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - dataParams.put("level_id_"+ l,"''"); + dataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + dataParams.put("level_id_" + l, "''"); Map destDataParams = levelBrowserBean.getDestDataParams(); destDataParams.put("currenttime", l); - destDataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - destDataParams.put("level_id_"+ l,"''"); + destDataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + destDataParams.put("level_id_" + l, "''"); levelBrowserItem.setBrowserConditionParam(levelBrowserBean); @@ -253,4 +248,11 @@ public class GradeServiceImpl extends Service implements GradeService { return sqlWhere; } + /** + * 校验重复编号 + */ + private boolean checkRepeatNo(Long schemeId, String no, Long id) { + return 0 == getGradeMapper().checkRepeatNo(schemeId, no, id); + } + } diff --git a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java index c595b426..5c48f59b 100644 --- a/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ImportCommonServiceImpl.java @@ -153,8 +153,9 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ mergeList.addAll(hrmFieldBeanList); mergeList.addAll(customFieldList); + // TODO 分部、部门 List fieldDatas = mergeList.stream().map(item -> FieldTypeTreeParam.builder().id(item.getFieldId()).name(item.getFieldLabel()).build()).collect(Collectors.toList()); - List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "hrmresource".equals(item.getTableName()))).map(CusFormFieldPO::getFieldId).collect(Collectors.toList()); + List selectedKeys = mergeList.stream().filter(item -> ("1".equals(item.getRequired()) || "subcompanyid1".equals(item.getFieldName()) || "departmentid".equals(item.getFieldName()))).map(CusFormFieldPO::getFieldId).collect(Collectors.toList()); returnMaps.put("data", fieldDatas); returnMaps.put("selectedKeys", selectedKeys); @@ -657,6 +658,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (StringUtils.isBlank(Util.null2String(map.get("forbidden_tag")))) { map.put("forbidden_tag", 0); } + String showOrder = Util.null2String(map.get("show_order")); + if (StringUtils.isBlank(showOrder)) { + Integer maxShowOrder = MapperProxyFactory.getProxy(CompMapper.class).getMaxShowOrder(); + if (null == maxShowOrder) { + maxShowOrder = 0; + } + map.put("show_order", maxShowOrder + 1); + } Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.COMPANY, OperateTypeEnum.ADD, map, false).sync(); if (isThrowError(syncMap)) { @@ -861,7 +870,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (StringUtils.isBlank(Util.null2String(map.get("forbidden_tag")))) { map.put("forbidden_tag", 0); } - + String showOrder = Util.null2String(map.get("show_order")); + if (StringUtils.isBlank(showOrder)) { + Integer maxShowOrder = MapperProxyFactory.getProxy(DepartmentMapper.class).getMaxShowOrder(); + if (null == maxShowOrder) { + maxShowOrder = 0; + } + map.put("show_order", maxShowOrder + 1); + } Map syncMap = new OrganizationSyncEc(user, LogModuleNameEnum.DEPARTMENT, OperateTypeEnum.ADD, map, false).sync(); if (isThrowError(syncMap)) { // 查询UUID @@ -1093,6 +1109,14 @@ public class ImportCommonServiceImpl extends Service implements ImportCommonServ if (StringUtils.isBlank(Util.null2String(map.get("forbidden_tag")))) { map.put("forbidden_tag", 0); } + String showOrder = Util.null2String(map.get("show_order")); + if (StringUtils.isBlank(showOrder)) { + Integer maxShowOrder = MapperProxyFactory.getProxy(JobMapper.class).getMaxShowOrder(); + if (null == maxShowOrder) { + maxShowOrder = 0; + } + map.put("show_order", maxShowOrder + 1); + } ExtendInfoParams infoParams = ExtendInfoParams.builder().tableName("JCL_ORG_JOB").params(map).build(); map.put("jobactivityid", JobServiceImpl.JOB_ACTIVITY_ID); diff --git a/src/com/engine/organization/service/impl/JobServiceImpl.java b/src/com/engine/organization/service/impl/JobServiceImpl.java index 53ae3950..b047b16b 100644 --- a/src/com/engine/organization/service/impl/JobServiceImpl.java +++ b/src/com/engine/organization/service/impl/JobServiceImpl.java @@ -497,7 +497,7 @@ public class JobServiceImpl extends Service implements JobService { return; } DepartmentPO parentDept = getDepartmentMapper().getDeptById(departmentPO.getParentDept()); - if (null != parentDept) { + if (null != parentDept && 0 == parentDept.getForbiddenTag()) { buildParentDepts(parentDept, builderDeparts); } } @@ -514,7 +514,7 @@ public class JobServiceImpl extends Service implements JobService { return; } CompPO parentComp = getCompMapper().listById(compPO.getParentCompany()); - if (null != parentComp) { + if (null != parentComp && 0 == parentComp.getForbiddenTag()) { buildParentComps(parentComp, builderComps); } } @@ -532,13 +532,13 @@ public class JobServiceImpl extends Service implements JobService { // 通过分部、公司 组装数据 if (StringUtil.isEmpty(id) || TYPE_COMP.equals(type)) { Long parentCompId = StringUtil.isEmpty(id) ? null : Long.parseLong(id); - DepartmentPO departmentBuild = DepartmentPO.builder().deptName(keyword).parentComp(parentCompId).build(); - CompPO compBuild = CompPO.builder().compName(keyword).parentCompany(parentCompId).build(); + DepartmentPO departmentBuild = DepartmentPO.builder().deptName(keyword).parentComp(parentCompId).forbiddenTag(0).build(); + CompPO compBuild = CompPO.builder().compName(keyword).parentCompany(parentCompId).forbiddenTag(0).build(); searchTree = buildTreeByCompAndDept(departmentBuild, compBuild); } else if (TYPE_DEPT.equals(type)) { // // 查询部门信息 - List filterDeparts = getDepartmentMapper().listByFilter(DepartmentPO.builder().deptName(keyword).parentDept(Long.parseLong(id)).build(), "show_order"); + List filterDeparts = getDepartmentMapper().listByFilter(DepartmentPO.builder().deptName(keyword).forbiddenTag(0).parentDept(Long.parseLong(id)).build(), "show_order"); Set builderDeparts = new HashSet<>(); for (DepartmentPO departmentPO : filterDeparts) { buildParentDepts(departmentPO, builderDeparts); diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 01cfd72f..d385441a 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -70,7 +70,7 @@ public class LevelServiceImpl extends Service implements LevelService { public int saveLevel(LevelSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getLevelMapper().listByNo(Util.null2String(param.getLevelNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); + OrganizationAssert.isTrue(checkRepeatNo(param.getSchemeId(), param.getLevelNo(), null), "同一等级方案下编号不能重复"); LevelPO levelPO = LevelDTO.convertParamToPO(param, (long) user.getUID()); return getLevelMapper().insertIgnoreNull(levelPO); } @@ -79,12 +79,7 @@ public class LevelServiceImpl extends Service implements LevelService { public int updateLevel(LevelSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); LevelPO levelPO = LevelDTO.convertParamToPO(param, (long) user.getUID()); - // 更新前先查询下旧编号, - String oldLevelNo = getLevelMapper().getLevelByID(levelPO.getId()).getLevelNo(); - if (!oldLevelNo.equals(levelPO.getLevelNo())) { - List list = getLevelMapper().listByNo(Util.null2String(levelPO.getLevelNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); - } + OrganizationAssert.isTrue(checkRepeatNo(levelPO.getSchemeId(), levelPO.getLevelNo(), levelPO.getId()), "同一等级方案下编号不能重复"); return getLevelMapper().updateLevel(levelPO); } @@ -220,4 +215,11 @@ public class LevelServiceImpl extends Service implements LevelService { } return sqlWhere; } + + /** + * 校验重复编号 + */ + private boolean checkRepeatNo(Long schemeId, String no, Long id) { + return 0 == getLevelMapper().checkRepeatNo(schemeId, no, id); + } } diff --git a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java index 57204249..dae9bcbe 100644 --- a/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java +++ b/src/com/engine/organization/util/saveimport/hrmimport/HrmImportAdaptExcelE9.java @@ -282,8 +282,9 @@ public class HrmImportAdaptExcelE9 extends BaseBean implements IHrmImportAdapt { cellValue = getCellValue(cell).trim(); for (int k = 0; k < temFields.length; k++) { if (cellValue.equals(temFields[k])) { - // 初始化必填字段下标 + // TODO 初始化必填字段下标 String requiredFields = "所属分部,部门,姓名,岗位,职务,职务类别,办公地点"; + requiredFields = "所属分部,部门,登录名,姓名,性别,状态,办公地点,入职日期,参加工作日期,担任岗位,职等职级,担任职务"; List requiredFieldList = Arrays.asList(requiredFields.split(",")); if (requiredFieldList.contains(cellValue)) { diff --git a/src/com/engine/organization/util/tree/SearchTreeUtil.java b/src/com/engine/organization/util/tree/SearchTreeUtil.java index 763eea85..f52c1848 100644 --- a/src/com/engine/organization/util/tree/SearchTreeUtil.java +++ b/src/com/engine/organization/util/tree/SearchTreeUtil.java @@ -88,8 +88,9 @@ public class SearchTreeUtil { * @return */ public static List builderTreeMode(List treeList) { - Map> collects = treeList.stream().collect(Collectors.groupingBy(TreeNode::getPid)); - return treeList.stream().peek(e -> e.setSubs(collects.get(e.getId()))).peek(item -> { + List sortedList = treeList.stream().sorted(Comparator.comparing(SearchTree::getOrderNum)).collect(Collectors.toList()); + Map> collects = sortedList.stream().collect(Collectors.groupingBy(TreeNode::getPid)); + return sortedList.stream().peek(e -> e.setSubs(collects.get(e.getId()))).peek(item -> { if (CollectionUtils.isNotEmpty(item.getSubs())) { item.setIsParent(true); }