|
|
@@ -0,0 +1,173 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
+<!DOCTYPE mapper
|
|
|
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
+<mapper namespace="com.xjrsoft.module.room.mapper.RoomValueWeekItemMapper">
|
|
|
+ <select id="getItemList" parameterType="com.xjrsoft.module.room.dto.RoomValueWeekPageDto" resultType="com.xjrsoft.module.room.vo.RoomValueWeekItemVo">
|
|
|
+ SELECT t1.room_value_week_id,t2.name,t1.post_name,t1.room_type,t1.number_people FROM room_value_week_item t1
|
|
|
+ LEFT JOIN xjr_user t2 ON t1.user_id = t2.id
|
|
|
+ WHERE t1.delete_mark = 0
|
|
|
+ <if test="dto.userId != null and dto.userId != ''">
|
|
|
+ and t2.id = #{dto.userId}
|
|
|
+ </if>
|
|
|
+ <if test="dto.roomType != null and dto.roomType != ''">
|
|
|
+ and t1.room_type = #{dto.roomType}
|
|
|
+ </if>
|
|
|
+ ORDER BY t1.sort_code
|
|
|
+ </select>
|
|
|
+ <select id="getMaxSortCode" resultType="java.lang.Integer">
|
|
|
+ SELECT IFNULL(MAX(sort_code),0) FROM room_value_week_item WHERE delete_mark = 0
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getDistributeClassInfo" parameterType="com.xjrsoft.module.room.dto.DistributeClassPageDto" resultType="com.xjrsoft.module.room.vo.DistributeClassPageVo">
|
|
|
+ SELECT t1.id,t2.name AS grade_name,t3.name AS org_name,t1.name AS class_name,
|
|
|
+ (SELECT COUNT(*) FROM base_student c1
|
|
|
+ LEFT JOIN base_student_school_roll c2 ON c1.user_id = c2.user_id
|
|
|
+ LEFT JOIN xjr_dictionary_detail c3 ON c2.stduy_status = c3.code AND c3.item_id = 2023000000000000030
|
|
|
+ WHERE c1.delete_mark = 0 AND c2.delete_mark = 0
|
|
|
+ AND c3.code = 'FB3002' AND c2.class_id = t1.id) AS need_count,(
|
|
|
+ SELECT COUNT(*) FROM room_bed a1
|
|
|
+ LEFT JOIN base_student_school_roll a2 ON a1.student_user_id = a2.user_id
|
|
|
+ WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
|
|
|
+ AND a2.class_id = t1.id
|
|
|
+ ) AS distribute_count FROM base_class t1
|
|
|
+ LEFT JOIN base_grade t2 ON t1.grade_id = t2.id
|
|
|
+ LEFT JOIN xjr_department t3 ON t1.org_id = t3.id
|
|
|
+ WHERE t1.delete_mark = 0
|
|
|
+ and (
|
|
|
+ SELECT COUNT(*) FROM base_student c1
|
|
|
+ LEFT JOIN base_student_school_roll c2 ON c1.user_id = c2.user_id
|
|
|
+ LEFT JOIN xjr_dictionary_detail c3 ON c2.stduy_status = c3.code AND c3.item_id = 2023000000000000030
|
|
|
+ WHERE c1.delete_mark = 0 AND c2.delete_mark = 0
|
|
|
+ AND c3.code = 'FB3002' AND c2.class_id = t1.id
|
|
|
+ ) >
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM room_bed a1
|
|
|
+ LEFT JOIN base_student_school_roll a2 ON a1.student_user_id = a2.user_id
|
|
|
+ WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
|
|
|
+ AND a2.class_id = t1.id
|
|
|
+ )
|
|
|
+ <if test="dto.gradeId != null">
|
|
|
+ and t1.grade_id = #{dto.gradeId}
|
|
|
+ </if>
|
|
|
+ <if test="dto.classId != null">
|
|
|
+ and t1.class_id = #{dto.classId}
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+ <select id="getDistributeRoomBedInfo" parameterType="com.xjrsoft.module.room.dto.DistributeRoomBedPageDto" resultType="com.xjrsoft.module.room.vo.DistributeRoomBedPageVo">
|
|
|
+ SELECT t1.id,t1.sort_code,t2.name AS build_name,t1.floor_number,t1.room_name,t4.name AS gender_cn, t3.name AS check_in_status_cn,
|
|
|
+ t1.bed_count,(
|
|
|
+ SELECT COUNT(*) FROM room_bed
|
|
|
+ WHERE delete_mark = 0 AND room_id = t1.id
|
|
|
+ AND student_user_id IS NOT NULL
|
|
|
+ ) AS into_count,(
|
|
|
+ SELECT GROUP_CONCAT(c3.name) FROM room_bed c1
|
|
|
+ LEFT JOIN base_student_school_roll c2 ON c1.student_user_id = c2.user_id
|
|
|
+ LEFT JOIN base_class c3 ON c2.class_id = c3.id
|
|
|
+ WHERE c1.delete_mark = 0 AND c1.room_id = t1.id
|
|
|
+ AND c1.student_user_id IS NOT NULL
|
|
|
+ ) AS into_class FROM room t1
|
|
|
+ LEFT JOIN base_office_build t2 ON t1.office_build_id = t2.id
|
|
|
+ LEFT JOIN xjr_dictionary_detail t3 ON t1.check_in_status = t3.code AND t3.item_id = 1739843696019435521
|
|
|
+ LEFT JOIN xjr_dictionary_detail t4 ON t1.gender = t4.code AND t4.item_id = 2023000000000000004
|
|
|
+ WHERE t1.delete_mark = 0
|
|
|
+ and
|
|
|
+ (
|
|
|
+ SELECT COUNT(*) FROM room_bed
|
|
|
+ WHERE delete_mark = 0 AND room_id = t1.id
|
|
|
+ AND student_user_id IS NOT NULL
|
|
|
+ ) != t1.bed_count
|
|
|
+ ORDER BY t1.sort_code
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getBedInfo" resultType="com.xjrsoft.module.room.vo.RoomBedVo">
|
|
|
+ SELECT t1.* FROM room_bed t1
|
|
|
+ LEFT JOIN room t2 ON t1.room_id = t2.id
|
|
|
+ WHERE t1.delete_mark = 0 AND t1.room_id IN
|
|
|
+ <foreach item="roomId" index="index" collection="ids" open="(" close=")" separator=",">
|
|
|
+ #{roomId}
|
|
|
+ </foreach>
|
|
|
+ ORDER BY t2.sort_code,t1.sort_code
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getDistributeResult" parameterType="com.xjrsoft.module.room.dto.DistributeRoomBedDto" resultType="com.xjrsoft.module.room.vo.DistributeResultListVo">
|
|
|
+ SELECT t5.class_id,t4.name,t6.name AS gender_cn,t3.name AS build_name,t2.room_name,t1.bed_number 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 base_student_school_roll t5 ON t5.user_id = t4.id
|
|
|
+ LEFT JOIN xjr_dictionary_detail t6 ON t2.gender = t6.code AND t6.item_id = 2023000000000000004
|
|
|
+ WHERE t1.student_user_id IS NOT NULL AND t1.delete_mark = 0
|
|
|
+ AND t1.room_id IN
|
|
|
+ <foreach item="roomId" index="index" collection="dto.roomIds" open="(" close=")" separator=",">
|
|
|
+ #{roomId}
|
|
|
+ </foreach>
|
|
|
+ AND t5.class_id IN
|
|
|
+ <foreach item="classId" index="index" collection="dto.classIds" open="(" close=")" separator=",">
|
|
|
+ #{classId}
|
|
|
+ </foreach>
|
|
|
+ ORDER BY t2.sort_code,t1.sort_code
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getClassStudetBed" parameterType="com.xjrsoft.module.room.dto.AdjustClassPageDto" resultType="com.xjrsoft.module.room.vo.AdjustBedClassStudentPageVo">
|
|
|
+ SELECT t1.user_id,t4.id AS class_id, t4.name AS class_name,t2.name AS student_name,REPLACE(REPLACE(t2.gender,1,'男'),2,'女') AS gender_cn,t7.name AS build_name,t6.room_name,t5.bed_number FROM base_student t1
|
|
|
+ LEFT JOIN xjr_user t2 ON t1.user_id = t2.id
|
|
|
+ LEFT JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
|
|
|
+ LEFT JOIN base_class t4 ON t3.class_id = t4.id
|
|
|
+ LEFT JOIN room_bed t5 ON t5.student_user_id = t1.user_id
|
|
|
+ LEFT JOIN room t6 ON t5.room_id = t6.id
|
|
|
+ LEFT JOIN base_office_build t7 ON t6.office_build_id = t7.id
|
|
|
+ WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
|
|
|
+ and t3.stduy_status = 'FB3002'
|
|
|
+ <if test="dto.gradeId != null">
|
|
|
+ and t4.grade_id = #{dto.gradeId}
|
|
|
+ </if>
|
|
|
+ <if test="dto.classId != null">
|
|
|
+ and t4.id = #{dto.classId}
|
|
|
+ </if>
|
|
|
+ <if test="dto.gender != null and dto.gender != ''">
|
|
|
+ and t6.gender = #{dto.gender}
|
|
|
+ </if>
|
|
|
+ <if test="dto.gender != null and dto.gender != ''">
|
|
|
+ and t6.gender = #{dto.gender}
|
|
|
+ </if>
|
|
|
+ <if test="dto.isDistribute != null">
|
|
|
+ <if test="dto.isDistribute == 1">
|
|
|
+ and t5.student_user_id is not null
|
|
|
+ </if>
|
|
|
+ <if test="dto.isDistribute == 0">
|
|
|
+ and t5.student_user_id is null
|
|
|
+ </if>
|
|
|
+ </if>
|
|
|
+ <if test="dto.studentName != null and dto.studentName != ''">
|
|
|
+ and t2.name like concat('%', #{dto.studentName}, '%')
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getBedStudentInfo" parameterType="com.xjrsoft.module.room.dto.AdjustBedPageDto" resultType="com.xjrsoft.module.room.vo.AdjustBedStudentPageVo">
|
|
|
+ SELECT t1.id,t3.name AS build_name,t2.room_name,t5.name AS gender_cn,t1.bed_number,t4.name AS student_name,t4.id as student_user_id,t6.student_user_id as student_appoint_id,t2.is_max,t2.id as room_id 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 room_student_appoint t6 ON t6.room_bed_id = t1.id
|
|
|
+ WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
|
|
|
+ <if test="dto.isEmptyRoom != null">
|
|
|
+ and t2.name like concat('%', #{dto.studentName}, '%')
|
|
|
+ </if>
|
|
|
+ ORDER BY t2.sort_code,t1.sort_code
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getNoBedStudent" parameterType="com.xjrsoft.module.room.dto.AdjustBedPageDto" resultType="com.xjrsoft.module.room.vo.NoBedStudentPageVo">
|
|
|
+ SELECT t1.user_id, t2.name AS student_name,REPLACE(REPLACE(t2.gender,1,'男'),2,'女') as gender_cn,t4.name AS class_name FROM base_student t1
|
|
|
+ INNER JOIN xjr_user t2 ON t1.user_id = t2.id
|
|
|
+ LEFT JOIN base_student_school_roll t3 ON t1.user_id = t3.user_id
|
|
|
+ LEFT JOIN base_class t4 ON t3.class_id = t4.id
|
|
|
+ WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
|
|
|
+ AND t3.stduy_status = 'FB3001'
|
|
|
+ AND t1.user_id NOT IN (
|
|
|
+ SELECT student_user_id FROM room_bed WHERE delete_mark = 0 AND student_user_id IS NOT NULL
|
|
|
+ )
|
|
|
+ </select>
|
|
|
+
|
|
|
+</mapper>
|