diff --git a/web/src/main/java/com/ibeetl/jlw/service/SchoolClassService.java b/web/src/main/java/com/ibeetl/jlw/service/SchoolClassService.java index 4cd3de33..6d117afa 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/SchoolClassService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/SchoolClassService.java @@ -13,10 +13,12 @@ import com.ibeetl.jlw.entity.SchoolClass; import com.ibeetl.jlw.web.query.SchoolClassQuery; import org.beetl.sql.core.SqlId; import org.beetl.sql.core.engine.PageQuery; +import org.beetl.sql.core.query.interfacer.StrongValue; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -78,7 +80,7 @@ public class SchoolClassService extends CoreBaseService{ * 验证班级编号数据,是否已经存在 * @param classList */ - public void validateClassSnListIsExistsThrow(List classList) { + public void validateClassSnListIsExistsThrow(List classList, String orgIds) { if (CollectionUtil.isEmpty(classList)) { return; } @@ -92,13 +94,33 @@ public class SchoolClassService extends CoreBaseService{ // 查询库里已经存在的编号 List existsList = schoolClassDao.createLambdaQuery() .andIsNotNull(SchoolClass::getClassSn) - .andIn(SchoolClass::getClassSn, classSnList).select(String.class,"class_sn"); + .andIn(SchoolClass::getClassSn, classSnList) + .andIn(SchoolClass::getOrgId, new StrongValue() { + @Override + public boolean isEffective() { + return StrUtil.isNotBlank(orgIds); + } + + @Override + public Object getValue() { + return Arrays.asList(orgIds.split(",")); + } + }) + .andEq(SchoolClass::getClassStatus, 1).select(String.class,"class_sn"); // 如果存在的话,属于异常数据 String errorClassSns = CollectionUtil.emptyIfNull(existsList).stream().collect(Collectors.joining(",")); // 构建异常信息,传给前端 Assert.isTrue(StrUtil.isBlank(errorClassSns), "已存在的班级编号:\"{}\",请修改后再进行提交!", errorClassSns); } + /** + * 没有传递机构ID的验证方法 + * @param classList + */ + public void validateClassSnListIsExistsThrow(List classList) { + validateClassSnListIsExistsThrow(classList, null); + } + /** * 查询所有的班级 * @@ -108,4 +130,5 @@ public class SchoolClassService extends CoreBaseService{ // Long currentOrgId = SpringUtil.getBean(CorePlatformService.class).getCurrentOrgId(); return SpringUtil.getBean(SchoolClassDao.class).getAllSchoolClass(null); } + } \ No newline at end of file diff --git a/web/src/main/java/com/ibeetl/jlw/web/SchoolClassController.java b/web/src/main/java/com/ibeetl/jlw/web/SchoolClassController.java index 046adde3..43acfa04 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/SchoolClassController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/SchoolClassController.java @@ -184,14 +184,15 @@ public class SchoolClassController extends BaseController { schoolClass.setClassStatus(1); schoolClass.setUserId(coreUser.getId()); - // 判断班级编号是否已经存在,并抛出异常 - if(StrUtil.isNotBlank(schoolClass.getClassSn())) { - schoolClassService.validateClassSnListIsExistsThrow(Collections.singletonList(schoolClass)); - } - if(null != schoolClass.getUniversitiesCollegesId()){ UniversitiesColleges universitiesColleges = universitiesCollegesService.queryById(schoolClass.getUniversitiesCollegesId()); schoolClass.setOrgId(universitiesColleges.getOrgId()); + + // 判断班级编号是否已经存在,并抛出异常 + // 如果院校ID不为空,则验证方法的区域缩减到院校级别的。不使用全表验证了 + if(StrUtil.isNotBlank(schoolClass.getClassSn())) { + schoolClassService.validateClassSnListIsExistsThrow(Collections.singletonList(schoolClass), universitiesColleges.getOrgId().toString()); + } }else { UniversitiesColleges universitiesColleges = new UniversitiesColleges(); universitiesColleges.setOrgId(coreUser.getOrgId()); @@ -330,11 +331,12 @@ public class SchoolClassController extends BaseController { }, true); try { - schoolClassService.validateClassSnListIsExistsThrow(classList); + schoolClassService.validateClassSnListIsExistsThrow(classList, classList.get(0).getOrgId().toString()); } catch (IllegalArgumentException e) { listener.putFailMessage(e.getMessage()); } + catch (Exception e) { } finally { // 再次判断错误的结果集 Assert.isTrue(CollectionUtil.isEmpty(listener.getFailMessage()), JSONUtil.toJsonStr(listener.getFailMessage()));