Browse Source

床位调整:
1、左右列表增加班主任信息返回
2、增加批量调整床位的接口

dzx 1 year ago
parent
commit
0c6817566c

+ 26 - 2
src/main/java/com/xjrsoft/module/room/service/impl/RoomBedServiceImpl.java

@@ -550,10 +550,16 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
         List<String> girlStudents = new ArrayList<>();
         //需要清空床位的学生
         List<AdjustStudentBedDto> todoStudents = new ArrayList<>();
+
+        Map<Long, Long> bedStudentMap = new HashMap<>();
+        Map<Long, String> studentNameMap = new HashMap<>();
         for (AdjustStudentBedDto dto : dtoList) {
             if(dto.getStudentUserId() != null && dto.getBedId() != null){
+                bedStudentMap.put(dto.getBedId(), dto.getStudentUserId());
                 //查询学生的性别
                 XjrUser xjrUser = xjrUserMapper.selectById(dto.getStudentUserId());
+                studentNameMap.put(dto.getStudentUserId(), xjrUser.getName());
+
                 String studentGender = xjrUser.getGender();
 
                 RoomBed roomBedInfo = roomBedMapper.selectById(dto.getBedId());
@@ -570,9 +576,19 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
                 todoStudents.add(dto);
             }
         }
+        //存被安排了多个床位的学生
+        List<String> moreBedStudents = new ArrayList<>();
+        for (Map.Entry<Long, Long> entry : bedStudentMap.entrySet()) {
+            Long value = entry.getValue();
+
+            if (bedStudentMap.entrySet().stream().filter(e -> e.getValue().equals(value)).count() > 1) {
+                moreBedStudents.add(studentNameMap.get(value));
+            }
+        }
+
         //存这次处理过的寝室,查看是否需要设置为混合寝室
         List<Long> roomIds = new ArrayList<>();
-        if(boyStudents.isEmpty() && girlStudents.isEmpty()){
+        if(boyStudents.isEmpty() && girlStudents.isEmpty() && moreBedStudents.isEmpty()){
             for (AdjustStudentBedDto todoStudent : todoStudents) {
                 //先清空原来的床位
                 UpdateWrapper<RoomBed> updateWrapper = new UpdateWrapper<>();
@@ -618,7 +634,15 @@ public class RoomBedServiceImpl extends MPJBaseServiceImpl<RoomBedMapper, RoomBe
             }
             girlMsg += "被分配到女生寝室";
 
-            throw new MyException(boyMsg + ";" + girlMsg);
+            String moreBedMsg = "学生";
+            for (int i = 0; i < moreBedStudents.size(); i ++){
+                if(i > 0){
+                    moreBedMsg += "、";
+                }
+                moreBedMsg += moreBedStudents.get(i);
+            }
+            moreBedMsg += "被分配多个床位";
+            throw new MyException(boyMsg + ";" + girlMsg + ";" + moreBedMsg);
         }
         return true;
     }

+ 1 - 1
src/main/resources/mapper/room/RoomBedMapper.xml

@@ -399,7 +399,7 @@
     </select>
 
     <select id="getClassTeacherInfo" parameterType="com.xjrsoft.module.room.dto.AdjustClassPageDto" resultType="com.xjrsoft.module.room.vo.AdjustBedClassPageVo">
-        SELECT t1.id,t1.name,t1.id AS teacher_id, t2.name AS teacher_name FROM base_class t1
+        SELECT t1.id,t1.name,t2.id AS teacher_id, t2.name AS teacher_name FROM base_class t1
         LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
         WHERE t1.delete_mark = 0
         <if test="dto.gradeId != null">