|
@@ -114,4 +114,31 @@
|
|
|
AND i.month_ <= DATE_FORMAT(NOW(),'%Y-%m-%d')
|
|
|
AND i.month_ = #{date}
|
|
|
</select>
|
|
|
+
|
|
|
+ <select id="getAttendanceError" resultMap="IndexErrDataRecord">
|
|
|
+ SELECT COUNT(DISTINCT c.id_)
|
|
|
+ FROM (SELECT cs.id_ FROM course_schedule cs
|
|
|
+ LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
|
|
|
+ LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
|
|
|
+ LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
|
|
|
+ WHERE ta.teacher_id_ = cs.actual_teacher_id_
|
|
|
+ AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
|
|
|
+ AND (((ta.sign_in_status_ = 0 OR ta.sign_in_status_ IS NULL OR ta.sign_out_status_ = 0 OR ta.sign_out_status_ IS NULL) AND ta.dispose_content_ IS NULL) OR (sa.id_ IS NULL OR (sa.status_ = 'TRUANT' AND sa.visit_flag_ = 0)))
|
|
|
+ AND ((ta.sign_in_status_ IS NULL AND ta.sign_out_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NULL AND ta.sign_in_status_ IS NOT NULL) OR (ta.sign_out_status_ IS NOT NULL AND ta.sign_in_status_ IS NOT NULL))
|
|
|
+ AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND cssp.id_ IS NOT NULL
|
|
|
+ AND EXISTS (SELECT id_ FROM course_schedule_teacher_salary WHERE cs.id_=course_schedule_id_ AND settlement_time_ IS NULL)
|
|
|
+ <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="organIds != null and organIds.size()>0">
|
|
|
+ AND cs.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY cs.id_) c
|
|
|
+ </select>
|
|
|
</mapper>
|