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);
+ }
}