Browse Source

feat:报表中心异常导出

Joburgess 4 năm trước cách đây
mục cha
commit
fa46684e8a

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexErrDataRecordDao.java

@@ -35,5 +35,14 @@ public interface IndexErrDataRecordDao extends BaseDAO<Long, IndexErrDataRecord>
      * @return java.util.List<com.ym.mec.biz.dal.entity.IndexErrDataRecord>
      */
     List<IndexErrDataRecord> queryStudentVisit(@Param("date") String date);
+
+    /**
+     * @describe 课程考勤异常
+     * @author Joburgess
+     * @date 2021/5/28 0028
+     * @param date:
+     * @return java.util.List<com.ym.mec.biz.dal.entity.IndexErrDataRecord>
+     */
+    List<IndexErrDataRecord> getAttendanceError(@Param("date") String date);
 	
 }

+ 27 - 0
mec-biz/src/main/resources/config/mybatis/IndexErrDataRecordMapper.xml

@@ -114,4 +114,31 @@
 		AND i.month_ &lt;= 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>