瀏覽代碼

课表列表学员考勤列表排序

zouxuan 4 年之前
父節點
當前提交
1507797a56

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentAttendanceDao.java

@@ -307,4 +307,11 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
      * @return
      */
     List<ExportStudentAttendanceDto> exportStudentAttendancesQueryPage(Map<String, Object> params);
+
+    /**
+     * 获取异常考勤学员数量
+     * @param courseScheduleId
+     * @return
+     */
+    int countErrorAttendance(Integer courseScheduleId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherAttendanceDetailDto.java

@@ -32,9 +32,19 @@ public class TeacherAttendanceDetailDto {
     private Date signOutTime;
 
     private Integer attendClassTime;
+
+    private Integer errorAttendanceNum;
     
     private School school;
 
+    public Integer getErrorAttendanceNum() {
+        return errorAttendanceNum;
+    }
+
+    public void setErrorAttendanceNum(Integer errorAttendanceNum) {
+        this.errorAttendanceNum = errorAttendanceNum;
+    }
+
     public Integer getAttendClassTime() {
         return attendClassTime;
     }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1508,7 +1508,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.SECTION_MANAGER);
         Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
         integers.add(musicGroup.getEducationalTeacherId());
-        sysMessageService.batchSeoMessage(roleIds, MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT, "", musicGroup.getName());
+        sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT, "", musicGroup.getName());
         return true;
     }
 

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -696,6 +696,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		result.setTeacherName(teacherDao.queryNameById(courseSchedule.getActualTeacherId()));
 		result.setAttendClassTime(teacherAttendanceDao.getAttendClassTime(courseScheduleId));
 		result.setSchool(schoolDao.get(courseSchedule.getSchoolId()));
+		//获取异常考勤学员数量
+		result.setErrorAttendanceNum(studentAttendanceDao.countErrorAttendance(courseScheduleId));
 		if(teacherAttendance != null){
 			result.setIsSignIn(Objects.isNull(teacherAttendance.getSignInStatus())?3:teacherAttendance.getSignInStatus().getCode());
 			result.setIsSignOut(Objects.isNull(teacherAttendance.getSignOutStatus())?3:teacherAttendance.getSignOutStatus().getCode());

+ 8 - 2
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -498,7 +498,8 @@
         su.username_,su.phone_,su.avatar_,cs.teach_mode_,cs.type_ course_type_,o.name_ organ_name_,tu.real_name_ teacher_name_,tu.avatar_ teacher_avatar_,
         cs.name_ course_schedule_name_,cs.status_ course_status_,
         cs.actual_teacher_id_ teacher_id_,cs.class_date_ ,cs.start_class_time_,cs.end_class_time_ ,cs.new_course_id_,
-        CASE WHEN sa.visit_flag_ IS NULL THEN 0 ELSE sa.visit_flag_ END visitFlag
+        CASE WHEN sa.visit_flag_ IS NULL THEN 0 ELSE sa.visit_flag_ END visitFlag,
+        CASE WHEN sa.status_ IS NULL OR sa.status_ = 'TRUANT' THEN 'LEAVE1' ELSE sa.status_ END status_1
         FROM course_schedule_student_payment cssp left join course_schedule cs on cs.id_ = cssp.course_schedule_id_
         left join student_attendance sa on cssp.course_schedule_id_ = sa.course_schedule_id_ and cssp.user_id_ = sa.user_id_
         LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
@@ -508,7 +509,7 @@
         GROUP BY cssp.id_
         ORDER BY
         <if test="orderFlag == 1 and search != null and search != ''">
-            status_ DESC,visitFlag,cssp.id_,
+            status_1 ASC,visitFlag,cssp.id_,
         </if>
         CONCAT(cs.class_date_, ' ', cs.start_class_time_) ASC
         <include refid="global.limit"/>
@@ -675,4 +676,9 @@
         ORDER BY cssp.music_group_id_ DESC,cssp.id_ DESC
         <include refid="global.limit"/>
     </select>
+    <select id="countErrorAttendance" resultType="java.lang.Integer">
+        SELECT COUNT(cssp.id_) FROM course_schedule_student_payment cssp
+        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
+        WHERE (sa.status_ != 'NORMAL' OR sa.status_ IS NULL) AND cssp.course_schedule_id_ = #{courseScheduleId}
+    </select>
 </mapper>