StudentReportRecordMapper.xml 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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.student.mapper.StudentReportRecordMapper">
  6. <select id="getClassStatistics" parameterType="com.xjrsoft.module.student.dto.StudentReportRecordStatisticsDto"
  7. resultType="com.xjrsoft.module.student.vo.StudentReportRecordStatisticsVo">
  8. SELECT t1.name AS class_name,t2.name AS teacher_name,
  9. (
  10. SELECT COUNT(*) FROM xjr_user a1
  11. INNER JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  12. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  13. AND a2.class_id = t1.id
  14. ) AS all_count,
  15. (
  16. SELECT COUNT(*) FROM xjr_user a1
  17. INNER JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  18. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  19. AND a1.gender = 'SB10001' AND a2.class_id = t1.id
  20. ) AS male_count,
  21. (
  22. SELECT COUNT(*) FROM xjr_user a1
  23. INNER JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  24. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0
  25. AND a1.gender = 'SB10002' AND a2.class_id = t1.id
  26. ) AS female_count,
  27. (
  28. SELECT COUNT(distinct(a1.id)) FROM xjr_user a1
  29. INNER JOIN base_student_school_roll a2 ON a1.id = a2.user_id
  30. INNER JOIN student_report_record a3 ON a1.id = a3.user_id
  31. WHERE a1.delete_mark = 0 AND a2.delete_mark = 0 and a3.delete_mark = 0
  32. AND a2.class_id = t1.id AND a3.base_semester_id = #{dto.baseSemesterId} AND a3.report_time IS NOT NULL
  33. ) AS arrived_count
  34. FROM base_class t1
  35. INNER JOIN xjr_user t2 ON t1.teacher_id = t2.id
  36. WHERE t1.delete_mark = 0 and t1.grade_id = #{dto.gradeId}
  37. AND t1.teacher_id = #{dto.teacherId}
  38. </select>
  39. <select id="getMobilePage" parameterType="com.xjrsoft.module.student.dto.StudentReportRecordPageDto"
  40. resultType="com.xjrsoft.module.student.vo.StudentReportRecordPageVo">
  41. SELECT t1.id as user_id,t1.name,t1.credential_number,t1.mobile,t4.name AS stduy_status_cn,t5.telephone AS parent_mobile,t2.graduated_university,
  42. (select count(*) from student_report_record where user_id = t1.id and base_semester_id = #{dto.baseSemesterId} and delete_mark = 0) as is_report FROM xjr_user t1
  43. INNER JOIN base_student_school_roll t2 ON t1.id = t2.user_id
  44. INNER JOIN base_class t3 ON t2.class_id = t3.id
  45. LEFT JOIN xjr_dictionary_detail t4 ON t2.stduy_status = t4.code
  46. LEFT JOIN base_student_family t5 ON t5.user_id = t1.id
  47. WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
  48. AND t3.teacher_id = #{dto.teacherId} and t2.grade_id = #{dto.gradeId}
  49. <if test="dto.keyword != null and dto.keyword != ''">
  50. and t1.name like concat('%', #{dto.keyword},'%')
  51. </if>
  52. ORDER BY t1.create_date DESC, t2.create_date DESC,t3.create_date DESC
  53. </select>
  54. <select id="getStatisticsDataList" parameterType="com.xjrsoft.module.student.dto.StudentReportRecordStatisticsDto"
  55. resultType="com.xjrsoft.module.student.vo.StudentReportRecordStatisticsListVo">
  56. SELECT t1.name,t1.credential_number,t2.gender,t4.graduated_university,t4.stduy_status,t5.report_time FROM base_new_student t1
  57. INNER JOIN xjr_user t2 ON t1.credential_number = t2.credential_number
  58. INNER JOIN enrollment_plan t3 ON t3.id = t1.enrollment_plan_id
  59. INNER JOIN base_student_school_roll t4 ON t4.user_id = t2.id
  60. LEFT JOIN student_report_record t5 ON t2.id = t5.user_id and t5.delete_mark = 0
  61. WHERE t1.delete_mark = 0 AND t2.delete_mark = 0
  62. AND t3.grade_id = #{dto.gradeId} AND t3.enroll_type = #{dto.enrollType}
  63. </select>
  64. </mapper>