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/GradeServiceImpl.java b/src/com/engine/organization/service/impl/GradeServiceImpl.java index 7c851cd1..ab65d10c 100644 --- a/src/com/engine/organization/service/impl/GradeServiceImpl.java +++ b/src/com/engine/organization/service/impl/GradeServiceImpl.java @@ -73,8 +73,7 @@ public class GradeServiceImpl extends Service implements GradeService { @Override public int saveGrade(GradeSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); - List list = getGradeMapper().listByNo(Util.null2String(param.getGradeNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); + OrganizationAssert.isTrue(checkRepeatNo(param.getSchemeId(), param.getGradeNo(), null), "同一等级方案下编号不能重复"); GradePO gradePO = GradeDTO.convertParamToPO(param, (long) user.getUID()); return getGradeMapper().insertIgnoreNull(gradePO); } @@ -83,11 +82,7 @@ public class GradeServiceImpl extends Service implements GradeService { public int updateGrade(GradeSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); GradePO gradePO = GradeDTO.convertParamToPO(param, (long) user.getUID()); - String oldGradeNo = getGradeMapper().getGradeByID(gradePO.getId()).getGradeNo(); - if (!oldGradeNo.equals(gradePO.getGradeNo())) { - List list = getGradeMapper().listByNo(Util.null2String(param.getGradeNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); - } + OrganizationAssert.isTrue(checkRepeatNo(gradePO.getSchemeId(), gradePO.getGradeNo(), gradePO.getId()), "同一等级方案下编号不能重复"); return getGradeMapper().updateGrade(gradePO); } @@ -167,20 +162,20 @@ public class GradeServiceImpl extends Service implements GradeService { long l = System.currentTimeMillis(); Map completeParams = levelBrowserBean.getCompleteParams(); completeParams.put("currenttime", l); - completeParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - completeParams.put("level_id_"+ l,"''"); + completeParams.put("scheme_id_" + l, gradePO.getSchemeId()); + completeParams.put("level_id_" + l, "''"); Map conditionDataParams = levelBrowserBean.getConditionDataParams(); conditionDataParams.put("currenttime", l); - conditionDataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - conditionDataParams.put("level_id_"+ l,"''"); + conditionDataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + conditionDataParams.put("level_id_" + l, "''"); Map dataParams = levelBrowserBean.getDataParams(); dataParams.put("currenttime", l); - dataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - dataParams.put("level_id_"+ l,"''"); + dataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + dataParams.put("level_id_" + l, "''"); Map destDataParams = levelBrowserBean.getDestDataParams(); destDataParams.put("currenttime", l); - destDataParams.put("scheme_id_"+ l,gradePO.getSchemeId()); - destDataParams.put("level_id_"+ l,"''"); + destDataParams.put("scheme_id_" + l, gradePO.getSchemeId()); + destDataParams.put("level_id_" + l, "''"); levelBrowserItem.setBrowserConditionParam(levelBrowserBean); @@ -253,4 +248,11 @@ public class GradeServiceImpl extends Service implements GradeService { return sqlWhere; } + /** + * 校验重复编号 + */ + private boolean checkRepeatNo(Long schemeId, String no, Long id) { + return 0 == getGradeMapper().checkRepeatNo(schemeId, no, id); + } + } diff --git a/src/com/engine/organization/service/impl/LevelServiceImpl.java b/src/com/engine/organization/service/impl/LevelServiceImpl.java index 01cfd72f..d385441a 100644 --- a/src/com/engine/organization/service/impl/LevelServiceImpl.java +++ b/src/com/engine/organization/service/impl/LevelServiceImpl.java @@ -70,7 +70,7 @@ public class LevelServiceImpl extends Service implements LevelService { public int saveLevel(LevelSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); List list = getLevelMapper().listByNo(Util.null2String(param.getLevelNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); + OrganizationAssert.isTrue(checkRepeatNo(param.getSchemeId(), param.getLevelNo(), null), "同一等级方案下编号不能重复"); LevelPO levelPO = LevelDTO.convertParamToPO(param, (long) user.getUID()); return getLevelMapper().insertIgnoreNull(levelPO); } @@ -79,12 +79,7 @@ public class LevelServiceImpl extends Service implements LevelService { public int updateLevel(LevelSearchParam param) { HasRightUtil.hasRight(user, RIGHT_NAME, false); LevelPO levelPO = LevelDTO.convertParamToPO(param, (long) user.getUID()); - // 更新前先查询下旧编号, - String oldLevelNo = getLevelMapper().getLevelByID(levelPO.getId()).getLevelNo(); - if (!oldLevelNo.equals(levelPO.getLevelNo())) { - List list = getLevelMapper().listByNo(Util.null2String(levelPO.getLevelNo())); - OrganizationAssert.isEmpty(list, "编号不允许重复"); - } + OrganizationAssert.isTrue(checkRepeatNo(levelPO.getSchemeId(), levelPO.getLevelNo(), levelPO.getId()), "同一等级方案下编号不能重复"); return getLevelMapper().updateLevel(levelPO); } @@ -220,4 +215,11 @@ public class LevelServiceImpl extends Service implements LevelService { } return sqlWhere; } + + /** + * 校验重复编号 + */ + private boolean checkRepeatNo(Long schemeId, String no, Long id) { + return 0 == getLevelMapper().checkRepeatNo(schemeId, no, id); + } }