StudentLeaveMapper.xml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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.StudentLeaveMapper">
  6. <select id="getLeaveCount" resultType="java.lang.Long">
  7. SELECT COUNT(*) as count FROM student_leave t1
  8. INNER JOIN xjr_user t2 ON t1.student_user_id = t2.id
  9. WHERE t1.status = 1 AND t2.delete_mark = 0
  10. AND (
  11. (start_date BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  12. OR (end_date BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  13. OR (start_date > DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d') > end_date)
  14. OR (DATE_FORMAT(#{startTime}, '%Y-%m-%d') > start_date and end_date > DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  15. )
  16. </select>
  17. <select id="getClassLeaveCount" resultType="com.xjrsoft.module.outint.vo.IdCountVo">
  18. SELECT t1.class_id as id, COUNT(*) as count FROM student_leave t1
  19. INNER JOIN xjr_user t2 ON t1.student_user_id = t2.id
  20. WHERE t1.status = 1 AND t2.delete_mark = 0
  21. AND (
  22. (start_date BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  23. OR (end_date BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  24. OR (start_date > DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d') > end_date)
  25. OR (DATE_FORMAT(#{startTime}, '%Y-%m-%d') > start_date and end_date > DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  26. ) group by t1.class_id
  27. </select>
  28. <select id="getLeaveList" resultType="com.xjrsoft.module.student.entity.StudentLeave">
  29. SELECT t1.* FROM student_leave t1
  30. INNER JOIN xjr_user t2 ON t1.student_user_id = t2.id
  31. WHERE t1.status = 1 AND t2.delete_mark = 0
  32. AND (
  33. (start_date BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  34. OR (end_date BETWEEN DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  35. OR (start_date > DATE_FORMAT(#{startTime}, '%Y-%m-%d') and DATE_FORMAT(#{endTime}, '%Y-%m-%d') > end_date)
  36. OR (DATE_FORMAT(#{startTime}, '%Y-%m-%d') > start_date and end_date > DATE_FORMAT(#{endTime}, '%Y-%m-%d'))
  37. )
  38. </select>
  39. </mapper>