|
@@ -337,10 +337,10 @@
|
|
|
WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
|
|
|
<if test="dto.isEmptyRoom != null">
|
|
|
<if test="dto.isEmptyRoom == 1">
|
|
|
- and t2.bed_count = (SELECT COUNT(*) FROM room_bed WHERE delete_mark = 0 AND student_user_id IS NULL AND is_check_in = 0 AND room_id = t2.id)
|
|
|
+ and t2.bed_count = (SELECT COUNT(*) FROM room_bed WHERE delete_mark = 0 AND student_user_id IS NULL AND room_id = t2.id)
|
|
|
</if>
|
|
|
<if test="dto.isEmptyRoom == 0">
|
|
|
- and t2.bed_count != (SELECT COUNT(*) FROM room_bed WHERE delete_mark = 0 AND student_user_id IS NULL AND is_check_in = 0 AND room_id = t2.id)
|
|
|
+ and t2.bed_count != (SELECT COUNT(*) FROM room_bed WHERE delete_mark = 0 AND student_user_id IS NULL AND room_id = t2.id)
|
|
|
</if>
|
|
|
</if>
|
|
|
<if test="dto.roomName != null">
|
|
@@ -358,12 +358,16 @@
|
|
|
<if test="dto.floorNumber != null">
|
|
|
and t2.floor_number = #{dto.floorNumber}
|
|
|
</if>
|
|
|
- <if test="dto.classId != null">
|
|
|
- AND t2.id IN (
|
|
|
- SELECT DISTINCT c1.room_id FROM room_bed c1
|
|
|
- INNER JOIN base_student_school_roll c2 ON c1.student_user_id = c2.user_id
|
|
|
- WHERE c2.class_id = #{dto.classId}
|
|
|
- )
|
|
|
+ <if test="dto.isTeacher != null">
|
|
|
+ <if test="dto.classId != null">
|
|
|
+ AND (t2.id IN (
|
|
|
+ SELECT DISTINCT c1.room_id FROM room_bed c1
|
|
|
+ INNER JOIN base_student_school_roll c2 ON c1.student_user_id = c2.user_id
|
|
|
+ WHERE c2.class_id = #{dto.classId}
|
|
|
+ ) or
|
|
|
+ t2.bed_count != (SELECT COUNT(*) FROM room_bed WHERE delete_mark = 0 AND student_user_id IS not NULL AND room_id = t2.id)
|
|
|
+ )
|
|
|
+ </if>
|
|
|
</if>
|
|
|
<if test="dto.buildId != null">
|
|
|
and t3.id = #{dto.buildId}
|
|
@@ -425,4 +429,26 @@
|
|
|
WHERE t1.delete_mark = 0 AND t1.delete_mark = 0
|
|
|
AND t2.student_user_id = #{id}
|
|
|
</select>
|
|
|
+
|
|
|
+ <select id="getTeacherRoomList" parameterType="com.xjrsoft.module.room.dto.AdjustBedPageDto" resultType="com.xjrsoft.module.room.vo.TeacherRoomListVo">
|
|
|
+ SELECT DISTINCT t2.id,t3.name as build_name,t2.room_name FROM room_bed t1
|
|
|
+ LEFT JOIN room t2 ON t1.room_id = t2.id
|
|
|
+ LEFT JOIN base_office_build t3 ON t2.office_build_id = t3.id
|
|
|
+ LEFT JOIN xjr_user t4 ON t1.student_user_id = t4.id
|
|
|
+ LEFT JOIN xjr_dictionary_detail t5 ON t2.gender = t5.code AND t5.item_id = 2023000000000000004
|
|
|
+ LEFT JOIN base_student_school_roll t7 ON t4.id = t7.user_id
|
|
|
+ LEFT JOIN base_class t8 ON t7.class_id = t8.id
|
|
|
+ LEFT JOIN base_grade t9 ON t7.grade_id = t9.id
|
|
|
+ LEFT JOIN xjr_user t10 ON t8.teacher_id = t10.id
|
|
|
+ WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
|
|
|
+ <if test="dto.classId != null">
|
|
|
+ AND (t2.id IN (
|
|
|
+ SELECT DISTINCT c1.room_id FROM room_bed c1
|
|
|
+ INNER JOIN base_student_school_roll c2 ON c1.student_user_id = c2.user_id
|
|
|
+ WHERE c2.class_id = #{dto.classId}
|
|
|
+ ) OR
|
|
|
+ t2.bed_count != (SELECT COUNT(*) FROM room_bed WHERE delete_mark = 0 AND student_user_id IS not NULL AND room_id = t2.id)
|
|
|
+ )
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
</mapper>
|