|
@@ -1412,7 +1412,7 @@
|
|
|
SELECT sa.user_id_ FROM student_attendance sa
|
|
|
LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
|
|
|
LEFT JOIN sys_user su ON su.id_ = sa.user_id_
|
|
|
- WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE'
|
|
|
+ WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE'
|
|
|
<if test="organId != null">
|
|
|
AND FIND_IN_SET(cs.organ_id_,#{organId})
|
|
|
</if>
|
|
@@ -1438,14 +1438,14 @@
|
|
|
<result property="organName" column="organ_name_"/>
|
|
|
</resultMap>
|
|
|
<select id="queryStudentErrorLeave" resultMap="StudentErrorLeaveDto">
|
|
|
- SELECT organ_id_,organ_name_,user_id_,username_,phone_,SUM(total_num_) total_num_,current_num_,class_date_
|
|
|
- FROM (SELECT cs.organ_id_,o.name_ organ_name_,sa.user_id_,su.username_,su.phone_,COUNT(sa.id_) total_num_,
|
|
|
- COUNT(CASE WHEN DATE_FORMAT(cs.class_date_,'%Y-%m') = #{currentMonth} THEN 1 ELSE NULL END) current_num_,cs.class_date_
|
|
|
+ SELECT organ_id_,organ_name_,user_id_,username_,phone_,current_num_,class_date_
|
|
|
+ FROM (SELECT cs.organ_id_,o.name_ organ_name_,sa.user_id_,su.username_,su.phone_,
|
|
|
+ COUNT(sa.id_) current_num_,cs.class_date_
|
|
|
FROM student_attendance sa
|
|
|
LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
|
|
|
LEFT JOIN organization o ON o.id_ = cs.organ_id_
|
|
|
LEFT JOIN sys_user su ON su.id_ = sa.user_id_
|
|
|
- WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE'
|
|
|
+ WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE'
|
|
|
<if test="organId != null">
|
|
|
AND FIND_IN_SET(cs.organ_id_,#{organId})
|
|
|
</if>
|
|
@@ -1507,4 +1507,26 @@
|
|
|
ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
|
|
|
<include refid="global.limit"/>
|
|
|
</select>
|
|
|
+ <select id="getStudentErrorLeaveNumMap" resultType="java.util.Map">
|
|
|
+ SELECT user_id_ 'key',SUM(total_num_) 'value'
|
|
|
+ FROM (SELECT sa.user_id_,COUNT(sa.id_) total_num_
|
|
|
+ FROM student_attendance sa
|
|
|
+ LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
|
|
|
+ LEFT JOIN sys_user su ON su.id_ = sa.user_id_
|
|
|
+ WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE'
|
|
|
+ <if test="organId != null">
|
|
|
+ AND FIND_IN_SET(cs.organ_id_,#{organId})
|
|
|
+ </if>
|
|
|
+ <if test="classGroupIds != null and classGroupIds.size() > 0">
|
|
|
+ AND cs.class_group_id_ IN
|
|
|
+ <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
|
|
|
+ #{classGroupId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="search != null and search != ''">
|
|
|
+ AND (sa.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
|
|
|
+ </if>
|
|
|
+ GROUP BY sa.user_id_,DATE_FORMAT(cs.class_date_,'%Y-%m') HAVING COUNT(sa.id_) > 1 AND COUNT(sa.id_) > SUM(sa.leave_visit_flag_) ORDER BY cs.class_date_ DESC)c
|
|
|
+ GROUP BY c.user_id_
|
|
|
+ </select>
|
|
|
</mapper>
|