From 9af6de6ff3b46a8a0d3a29bd85d5bdd37221f8ae Mon Sep 17 00:00:00 2001 From: liweijie Date: Thu, 17 Sep 2026 09:30:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=95=99=E5=AD=A6=E5=9C=BA?= =?UTF-8?q?=E5=9C=B0=E6=A0=A1=E9=AA=8C=E7=BC=96=E5=8F=B7=E7=9A=84=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomroot/jwgl/service/impl/ClassRoomServiceImpl.java | 9 ++++++++- .../roomroot/jwgl/service/impl/ElectiveServiceImpl.java | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ClassRoomServiceImpl.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ClassRoomServiceImpl.java index 386525833..3bafb1920 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ClassRoomServiceImpl.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ClassRoomServiceImpl.java @@ -6,6 +6,7 @@ import com.roomroot.common.utils.StringUtils; import com.roomroot.jwgl.entity.JSB; import com.roomroot.jwgl.mapper.ClassRoomMapper; import com.roomroot.jwgl.service.ClassRoomService; +import com.roomroot.jwgl.unit.BusinessException; import com.roomroot.jwgl.unit.PageQuery; import com.roomroot.jwgl.unit.PageResult; import com.roomroot.jwgl.utils.UuidUtil; @@ -27,11 +28,17 @@ public class ClassRoomServiceImpl implements ClassRoomService { public void add(JSB jsb) { jsb.setId(UuidUtil.getUUID()); jsb.setDelFlag(0); - // 教室编号为非空列:留空时按现有最大数字编号 +1 自动生成 + // 教室编号为非空列:留空时按现有最大数字编号 +1 自动生成;手填时校验唯一,避免按编号查询出现多行 if (StringUtils.isEmpty(jsb.getJsbh())) { jsb.setJsbh(nextJsbh()); } else { jsb.setJsbh(jsb.getJsbh().trim()); + Long dup = jsbMapper.selectCount(new LambdaQueryWrapper() + .eq(JSB::getJsbh, jsb.getJsbh()) + .eq(JSB::getDelFlag, 0)); + if (dup != null && dup > 0) { + throw new BusinessException("教室编号已存在:" + jsb.getJsbh()); + } } jsbMapper.insert(jsb); } diff --git a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ElectiveServiceImpl.java b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ElectiveServiceImpl.java index b4eaf3243..39e825e10 100644 --- a/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ElectiveServiceImpl.java +++ b/backend/roomroot-jwgl/src/main/java/com/roomroot/jwgl/service/impl/ElectiveServiceImpl.java @@ -407,7 +407,12 @@ public class ElectiveServiceImpl implements ElectiveService { } JSB room = classRoomMapper.selectById(zyjsbh); if (room == null) { - room = classRoomMapper.selectOne(new LambdaQueryWrapper().eq(JSB::getJsbh, zyjsbh)); + // 教室编号历史上可能出现重复行,取第一条避免 selectOne 多结果异常 + List rooms = classRoomMapper.selectList(new LambdaQueryWrapper() + .eq(JSB::getJsbh, zyjsbh) + .eq(JSB::getDelFlag, 0) + .last("LIMIT 1")); + room = rooms.isEmpty() ? null : rooms.get(0); } return room == null ? null : room.getJsmc(); }