BaseClass.xml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.xjrsoft.module.base.mapper.BaseClassMapper">
  6. <select id="getPage" parameterType="com.xjrsoft.module.base.dto.BaseClassPageDto" resultType="com.xjrsoft.module.base.vo.BaseClassPageVo">
  7. SELECT t1.id,t1.name,t1.code,t4.name AS grade_name,t2.name AS teacher_name,t3.name AS enroll_type_cn,
  8. t5.name AS class_type_cn,t6.name AS classroomName,
  9. (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
  10. LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  11. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  12. AND a1.gender = 'SB10001' AND a2.class_id = t1.id
  13. AND a2.archives_status = 'FB2901') AS male_cout,
  14. (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
  15. LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  16. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  17. AND a2.class_id = t1.id AND a2.stduy_status = 'FB3002'
  18. AND a2.archives_status = 'FB2901' AND a1.gender = 'SB10001') AS male_stay_count,
  19. (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
  20. LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  21. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  22. AND a2.class_id = t1.id AND a2.stduy_status = 'FB3001'
  23. AND a2.archives_status = 'FB2901' AND a1.gender = 'SB10001') AS male_not_stay_count,
  24. (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
  25. LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  26. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  27. AND a1.gender = 'SB10002' AND a2.class_id = t1.id
  28. AND a2.archives_status = 'FB2901') AS female_count,
  29. (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
  30. LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  31. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  32. AND a2.class_id = t1.id AND a2.stduy_status = 'FB3002'
  33. AND a2.archives_status = 'FB2901' AND a1.gender = 'SB10002') AS female_stay_count,
  34. (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
  35. LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  36. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  37. AND a2.class_id = t1.id AND a2.stduy_status = 'FB3001'
  38. AND a2.archives_status = 'FB2901' AND a1.gender = 'SB10002') AS female_not_stay_count,
  39. <!--
  40. (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
  41. LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  42. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  43. AND a2.class_id = t1.id AND a2.stduy_status = 'FB3002'
  44. AND a2.archives_status = 'FB2901') AS stay_count,
  45. (SELECT COUNT(DISTINCT(a1.id)) FROM xjr_user a1
  46. LEFT JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  47. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  48. AND a2.class_id = t1.id AND a2.stduy_status = 'FB3001'
  49. AND a2.archives_status = 'FB2901') AS not_stay_count,
  50. -->
  51. t7.name AS org_name,t2.mobile as teacher_mobile,
  52. t8.name as major_set_name,t1.major_set_id FROM base_class t1
  53. LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
  54. LEFT JOIN xjr_dictionary_detail t3 ON t3.code = t1.enroll_type AND t3.item_id = 2023000000000000027
  55. LEFT JOIN xjr_dictionary_detail t5 ON t5.code = t1.class_type AND t5.item_id = 1784405535724978177
  56. LEFT JOIN base_grade t4 ON t1.grade_id = t4.id
  57. LEFT JOIN base_classroom t6 ON t1.classroom_id = t6.id
  58. LEFT JOIN xjr_department t7 ON t1.org_id = t7.id
  59. left join base_major_set t8 on t1.major_set_id = t8.id
  60. WHERE t1.delete_mark = 0
  61. <if test="dto.name != null and dto.name != ''">
  62. and t1.name like concat('%', #{dto.name}, '%')
  63. </if>
  64. <if test="dto.teacherName != null and dto.teacherName != ''">
  65. and t2.name like concat('%', #{dto.teacherName}, '%')
  66. </if>
  67. <if test="dto.gradeId != null">
  68. and t4.id = #{dto.gradeId}
  69. </if>
  70. <if test="dto.classroomName != null and dto.classroomName != ''">
  71. and t6.name like concat('%', #{dto.classroomName}, '%')
  72. </if>
  73. <if test="dto.classType != null and dto.classType != ''">
  74. and t1.class_type = #{dto.classType}
  75. </if>
  76. <if test="dto.isOrderClass != null">
  77. and t1.is_order_class = #{dto.isOrderClass}
  78. </if>
  79. <if test="dto.isGraduate != null">
  80. and t1.is_graduate = #{dto.isGraduate}
  81. </if>
  82. <if test="dto.teacherId != null">
  83. and t1.teacher_id = #{dto.teacherId}
  84. </if>
  85. <if test="dto.orgId != null">
  86. and t1.org_id = #{dto.orgId}
  87. </if>
  88. <if test="dto.classroomId != null">
  89. and t1.classroom_id = #{dto.classroomId}
  90. </if>
  91. <if test="dto.code != null and dto.code != ''">
  92. and t1.code like concat('%', #{dto.code}, '%')
  93. </if>
  94. <if test="dto.enrollType != null and dto.enrollType != ''">
  95. and t1.enroll_type = #{dto.enrollType}
  96. </if>
  97. </select>
  98. <select id="getStudentClass" resultType="com.xjrsoft.module.base.vo.StudentClassVo">
  99. SELECT t2.user_id, t1.id, t1.name, t1.teacher_id FROM base_class t1
  100. INNER JOIN base_student_school_roll t2 ON t1.id = t2.class_id
  101. WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
  102. </select>
  103. <select id="getAttendanceClass" resultType="com.xjrsoft.module.attendance.vo.ClassStatisticsVo">
  104. SELECT t1.id,t1.name,t2.name AS teacher_name,
  105. (SELECT COUNT(*) FROM base_student_school_roll c1
  106. INNER JOIN xjr_user c2 ON c1.user_id = c2.id
  107. WHERE c1.delete_mark = 0 AND c1.delete_mark = 0
  108. AND c1.class_id = t1.id AND c1.archives_status = 'FB2901') AS student_count,
  109. (SELECT COUNT(*) FROM base_student_school_roll c1
  110. INNER JOIN xjr_user c2 ON c1.user_id = c2.id
  111. WHERE c1.delete_mark = 0 AND c1.delete_mark = 0
  112. AND c1.class_id = t1.id AND c1.archives_status = 'FB2901' AND c1.stduy_status = 'FB3002') AS stay_count,
  113. (SELECT COUNT(*) FROM base_student_school_roll c1
  114. INNER JOIN xjr_user c2 ON c1.user_id = c2.id
  115. WHERE c1.delete_mark = 0 AND c1.delete_mark = 0
  116. AND c1.class_id = t1.id AND c1.archives_status = 'FB2901' AND c1.stduy_status = 'FB3001') AS not_stay_count FROM base_class t1
  117. LEFT JOIN xjr_user t2 ON t1.teacher_id = t2.id
  118. WHERE t1.delete_mark = 0
  119. <if test="dto.classId != null">
  120. and t1.id = #{dto.classId}
  121. </if>
  122. <if test="dto.gradeId != null">
  123. and t1.grade_id = #{dto.gradeId}
  124. </if>
  125. </select>
  126. </mapper>