Quellcode durchsuchen

Merge branch 'feature/0427-school' of http://git.dayaedu.com/yonge/mec into feature/0427-school

liujc vor 2 Jahren
Ursprung
Commit
d571e5233f

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherAttendanceDao.java

@@ -3,6 +3,8 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.school.dto.TeacherAttendanceSumDto;
+import com.ym.mec.biz.dal.school.page.TeacherAttendanceQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
@@ -265,4 +267,8 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
 						 @Param("userId") String userId,
 						 @Param("signInDeviceNum") String signInDeviceNum,
 						 @Param("signOutDeviceNum") String signOutDeviceNum);
+
+    List<TeacherAttendanceSumDto> queryTeacherAttendance(@Param("queryInfo") TeacherAttendanceQueryInfo queryInfo);
+
+	List<Map<Integer,Integer>> queryTeacherAttendanceForWeek(@Param("queryInfo") TeacherAttendanceQueryInfo queryInfo);
 }

+ 6 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/school/dto/TeacherAttendanceSumDto.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.school.dto;
 
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.school.page.TeacherAttendanceQueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,8 +13,8 @@ public class TeacherAttendanceSumDto {
     @ApiModelProperty(value = "老师头像")
     private String teacherAvatar;
 
-    @ApiModelProperty(value = "班级名称")
-    private String classGroupName;
+    @ApiModelProperty(value = "班级类型")
+    private ClassGroupTypeEnum classGroupType;
 
     @ApiModelProperty(value = "班级编号")
     private Integer classGroupId;
@@ -26,4 +27,7 @@ public class TeacherAttendanceSumDto {
 
     @ApiModelProperty(value = "本学期异常考勤课程数")
     private Integer errCourseNum;
+
+    @ApiModelProperty(value = "本学期总课程数")
+    private Integer totalCourseNum;
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryDto.java

@@ -6,8 +6,8 @@ import lombok.Data;
 @Data
 public class TeacherAttendanceQueryDto {
 
-    @ApiModelProperty(value = "学校编号",required = true)
-    private Integer schoolId;
+    @ApiModelProperty(value = "合作单位编号",required = true)
+    private Integer coopId;
 
     @ApiModelProperty(value = "班级编号",required = true)
     private Integer classGroupId;

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryDto1.java

@@ -0,0 +1,21 @@
+package com.ym.mec.biz.dal.school.page;
+
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class TeacherAttendanceQueryDto1 {
+
+    @ApiModelProperty(value = "班级编号",required = true)
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "老师编号",required = true)
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "课程考勤状态(正常异常)",required = true)
+    private Boolean courseType;
+
+    @ApiModelProperty(value = "课程类型",required = true)
+    private CourseSchedule.CourseScheduleType courseScheduleType;
+}

+ 7 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryInfo.java

@@ -5,6 +5,8 @@ import com.ym.mec.common.enums.BaseEnum;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class TeacherAttendanceQueryInfo{
     public enum TeacherAttendanceEnum implements BaseEnum<String,TeacherAttendanceEnum> {
@@ -35,8 +37,8 @@ public class TeacherAttendanceQueryInfo{
     @ApiModelProperty(value = "模糊查询",required = false)
     private String search;
 
-    @ApiModelProperty(value = "学校编号",required = true)
-    private Integer schoolId;
+    @ApiModelProperty(value = "合作单位编号",required = true)
+    private Integer coopId;
 
     @ApiModelProperty(value = "班级编号",required = false)
     private Integer classGroupId;
@@ -52,4 +54,7 @@ public class TeacherAttendanceQueryInfo{
 
     @ApiModelProperty(value = "学期(不用传)",required = false)
     private String endTerm;
+
+    @ApiModelProperty(value = "(不用传)",required = false)
+    private List<String> musicGroupIds;
 }

+ 5 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -699,12 +699,12 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 
 	/**
 	* @description: 获取学校端当前学期课程数量汇总
-	 * @param schoolId
+	 * @param coopId
 	* @return java.util.List<com.ym.mec.biz.dal.school.dto.SummaryOfCurrentSemesterCoursesDto>
 	* @author zx
 	* @date 2023/5/4 10:15
 	*/
-    List<SummaryOfCurrentSemesterCoursesDto> getSummaryOfCurrentSemesterCourses(Integer schoolId);
+    List<SummaryOfCurrentSemesterCoursesDto> getSummaryOfCurrentSemesterCourses(Integer coopId);
 
 	/**
 	* @description: 获取当前学期每天课程汇总
@@ -713,16 +713,16 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	* @author zx
 	* @date 2023/5/4 10:31
 	*/
-    Map<Integer, List<DailySummaryOfClassesForTheCurrentSemesterDto>> getDailySummaryOfClassesForTheCurrentSemester(Integer schoolId);
+	Map<String, List<DailySummaryOfClassesForTheCurrentSemesterDto>> getDailySummaryOfClassesForTheCurrentSemester(Integer schoolId);
 
 	/**
 	* @description: 获取当天课程列表
-	 * @param schoolId
+	 * @param coopId
 	* @return java.util.List<com.ym.mec.biz.dal.school.dto.ClassesForDayDto>
 	* @author zx
 	* @date 2023/5/4 10:50
 	*/
-	List<ClassesForDayDto> getListClassesForDay(Integer schoolId,String classDate);
+	List<ClassesForDayDto> getListClassesForDay(Integer coopId,String classDate);
 
 	/**
 	* @description: 获取课程详情

+ 19 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -56,6 +56,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
 import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
 import java.time.temporal.IsoFields;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
@@ -6021,7 +6022,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     }
 
 	@Override
-	public Map<Integer, List<DailySummaryOfClassesForTheCurrentSemesterDto>> getDailySummaryOfClassesForTheCurrentSemester(Integer coopId) {
+	public Map<String, List<DailySummaryOfClassesForTheCurrentSemesterDto>> getDailySummaryOfClassesForTheCurrentSemester(Integer coopId) {
 		//获取合作单位关联的所有乐团列表
 		List<String> musicGroupIds = musicGroupDao.findNormalByCooperationId(coopId);
 		//获取当前学期
@@ -6034,13 +6035,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}else {
 			summary = courseScheduleDao.getDailySummaryOfClassesForTheCurrentSemester(musicGroupIds, startTerm, endTerm);
 		}
-		DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DateUtil.ISO_EXPANDED_DATE_FORMAT);
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
 		LocalDate startDate = LocalDate.parse(startTerm, formatter);
 		LocalDate endDate = LocalDate.parse(endTerm, formatter);
-		Map<Integer, List<DailySummaryOfClassesForTheCurrentSemesterDto>> result = new HashMap<>();
+		Map<String, List<DailySummaryOfClassesForTheCurrentSemesterDto>> result = new LinkedHashMap<>(30);
 		LocalDate currentWeekStart = startDate.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
+		StringBuffer sb;
 		while (!currentWeekStart.isAfter(endDate)) {
-			int currentWeekNumber = currentWeekStart.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
+			int currentWeekNumber = (int) ChronoUnit.WEEKS.between(startDate, currentWeekStart);
+			sb = new StringBuffer("第").append(toChineseNumber(currentWeekNumber)).append("周");
 			LocalDate currentWeekEnd = currentWeekStart.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
 			List<DailySummaryOfClassesForTheCurrentSemesterDto> currentWeekDates = new ArrayList<>();
 			for (DailySummaryOfClassesForTheCurrentSemesterDto dto : summary) {
@@ -6048,12 +6051,23 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					currentWeekDates.add(dto);
 				}
 			}
-			result.put(currentWeekNumber, currentWeekDates);
+			result.put(sb.toString(), currentWeekDates);
 			currentWeekStart = currentWeekEnd.plusDays(1);
 		}
 		return result;
 	}
 
+	private static String toChineseNumber(int n) {
+		String[] chineseNumbers = {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八",
+				"十九", "二十", "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九", "三十", "三十一", "三十二", "三十三", "三十四",
+				"三十五", "三十六", "三十七", "三十八", "三十九", "四十", "四十一", "四十二", "四十三", "四十四", "四十五", "四十六", "四十七", "四十八", "四十九", "五十"};
+		if (n <= 50) {
+			return chineseNumbers[n];
+		} else {
+			return Integer.toString(n);
+		}
+	}
+
 	@Override
 	public List<ClassesForDayDto> getListClassesForDay(Integer coopId,String classDate) {
 		//获取合作单位关联的所有乐团列表

+ 55 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -25,18 +25,19 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
-
 import static com.ym.mec.biz.dal.enums.ComplaintsStatusEnum.REPEAL;
 import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
 
@@ -83,10 +84,10 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	private StudentService studentService;
 	@Autowired
 	private LessonExaminationService lessonExaminationService;
-
     @Autowired
     private SysConfigService sysConfigService;
-
+    @Autowired
+    private MusicGroupDao musicGroupDao;
     @Autowired
     private StudentLessonTrainingDetailService studentLessonTrainingDetailService;
 
@@ -1103,11 +1104,60 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 
     @Override
     public List<TeacherAttendanceSumDto> queryTeacherAttendance(TeacherAttendanceQueryInfo queryInfo) {
-        return null;
+		//获取合作单位关联的所有乐团列表
+		List<String> musicGroupIds = musicGroupDao.findNormalByCooperationId(queryInfo.getCoopId());
+		if(CollectionUtils.isEmpty(musicGroupIds)){
+			return Collections.EMPTY_LIST;
+		}
+		//获取当前学期
+		Date date = new Date();
+		String startTerm = DateUtil.getStartTerm(date);
+		String endTerm = DateUtil.getEndTerm(date);
+		queryInfo.setStartTerm(startTerm);
+		queryInfo.setEndTerm(endTerm);
+		queryInfo.setMusicGroupIds(musicGroupIds);
+		queryInfo.setClassGroupId(queryInfo.getClassGroupId());
+		List<TeacherAttendanceSumDto> dtoList = teacherAttendanceDao.queryTeacherAttendance(queryInfo);
+		if(CollectionUtils.isNotEmpty(dtoList)){
+			List<Integer> teacherIds = dtoList.stream().map(e -> e.getTeacherId()).collect(Collectors.toList());
+			List<SimpleUserDto> usersSimpleInfo = teacherDao.getUsersSimpleInfo(teacherIds);
+			Map<Integer, SimpleUserDto> simpleUserDtoMap = usersSimpleInfo.stream().collect(Collectors.groupingBy(e -> e.getUserId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
+			//获取本周老师考勤状态
+			Date now = new Date();
+			String monday = DateUtil.dateToString(DateUtil.getWeekDayWithDate(now, Calendar.MONDAY), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+			String sunday = DateUtil.dateToString(DateUtil.getWeekDayWithDate(now, Calendar.SUNDAY), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+			TeacherAttendanceQueryInfo info = new TeacherAttendanceQueryInfo();
+			info.setStartTerm(monday);
+			info.setEndTerm(sunday);
+			info.setMusicGroupIds(queryInfo.getMusicGroupIds());
+			Map<Integer,Integer> weekCount = MapUtil.convertIntegerMap(teacherAttendanceDao.queryTeacherAttendanceForWeek(info));
+			for (TeacherAttendanceSumDto dto : dtoList) {
+				SimpleUserDto userDto = simpleUserDtoMap.get(dto.getTeacherId());
+				if(Objects.nonNull(userDto)){
+					dto.setTeacherName(userDto.getUserName());
+					dto.setTeacherAvatar(userDto.getAvatar());
+				}
+				Integer errCourseNum = weekCount.get(dto.getTeacherId());
+				if(errCourseNum == null){
+					dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.NO_COURSE);
+				}else {
+					if(errCourseNum > 0){
+						dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.ERR);
+					}else {
+						dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.NORMAL);
+					}
+				}
+			}
+			if(queryInfo.getTeacherAttendanceStatus() != null){
+				dtoList = dtoList.stream().filter(e->e.getTeacherAttendanceStatus() == queryInfo.getTeacherAttendanceStatus()).collect(Collectors.toList());
+			}
+		}
+		return dtoList;
     }
 
 	@Override
 	public List<TeacherAttendanceListDto> getClassTeacherAttendance(Integer classGroupId, Integer teacherId) {
+
 		return null;
 	}
 

+ 4 - 5
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -4215,7 +4215,7 @@
             resultType="com.ym.mec.biz.dal.school.dto.SummaryOfCurrentSemesterCoursesDto">
         select cs.type_ scheduleType,COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 END) subCourseNum,
                COUNT(cs.id_) totalCourseNum
-        from mec_pro.course_schedule cs
+        from course_schedule cs
         where cs.group_type_ = 'MUSIC' AND cs.is_lock_ = 0 AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.new_course_id_ IS NULL
         AND cs.class_date_ BETWEEN #{startTerm} AND #{endTerm}
         AND cs.music_group_id_ IN
@@ -4226,9 +4226,8 @@
     </select>
     <select id="getDailySummaryOfClassesForTheCurrentSemester"
             resultType="com.ym.mec.biz.dal.school.dto.DailySummaryOfClassesForTheCurrentSemesterDto">
-        select cs.class_date_ courseDate,cs.type_ scheduleType,COUNT(CASE WHEN cs.status_ = 'NOT_START' THEN 1 END) subCourseNum,
-               COUNT(cs.id_) totalCourseNum
-        from mec_pro.course_schedule cs
+        select cs.class_date_ courseDate,cs.type_ scheduleType,COUNT(cs.id_) totalCourseNum
+        from course_schedule cs
         where cs.group_type_ = 'MUSIC' AND cs.is_lock_ = 0 AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.new_course_id_ IS NULL
         AND cs.class_date_ BETWEEN #{startTerm} AND #{endTerm}
         AND cs.music_group_id_ IN
@@ -4240,7 +4239,7 @@
     <select id="getListClassesForDay" resultType="com.ym.mec.biz.dal.school.dto.ClassesForDayDto">
         select cs.id_ courseId,CONCAT(cs.class_date_,' ',cs.start_class_time_,'~',cs.end_class_time_) classDate,cs.status_ courseStatus,cs.name_ courseName,
         actual_teacher_id_ teacherId,cs.music_group_id_ musicGroupId
-        from mec_pro.course_schedule cs
+        from course_schedule cs
         where cs.group_type_ = 'MUSIC' AND cs.is_lock_ = 0 AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.new_course_id_ IS NULL
         <if test="classDate != null and classDate != ''">
             AND cs.class_date_ = #{classDate}

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -1248,6 +1248,6 @@
         GROUP BY sr.user_id_
     </select>
     <select id="findNormalByCooperationId" resultType="java.lang.String">
-        SELECT id_ FROM music_group WHERE cooperation_organ_id_ = #{coopId} AND mg.status_ = 'PROGRESS'
+        SELECT id_ FROM music_group WHERE cooperation_organ_id_ = #{coopId} AND status_ = 'PROGRESS'
     </select>
 </mapper>

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

@@ -682,8 +682,8 @@
                COUNT(CASE WHEN sa.status_ = 'DROP_OUT' THEN 1 END) attendanceDropNum,
                COUNT(CASE WHEN sa.status_ = 'LATE' THEN 1 END) attendanceLateNum,
         cssp.course_schedule_id_ courseId
-        from mec_pro.course_schedule_student_payment cssp
-                 left join mec_pro.student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ and sa.user_id_ = cssp.user_id_
+        from course_schedule_student_payment cssp
+                 left join student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ and sa.user_id_ = cssp.user_id_
         where cssp.course_schedule_id_ IN
         <foreach collection="courseIds" item="courseId" separator="," open="(" close=")">
             #{courseId}
@@ -691,10 +691,10 @@
         group by cssp.course_schedule_id_
     </select>
     <select id="queryCourseStudentList" resultType="com.ym.mec.biz.dal.school.dto.CourseStudentDto">
-        select cssp.user_id_ studentId,COUNT(CASE WHEN sa.id_ IS NULL THEN 'TRUANT' ELSE sa.status_ END) attendanceStatus,sa.qualified_flag_ qualifiedFlag
+        select cssp.user_id_ studentId,CASE WHEN sa.id_ IS NULL THEN 'TRUANT' ELSE sa.status_ END attendanceStatus,sa.qualified_flag_ qualifiedFlag
                                       ,CASE WHEN s.membership_end_time_ > NOW() THEN 1 ELSE 0 END memberFlag
-        from mec_pro.course_schedule_student_payment cssp
-        left join mec_pro.student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ and sa.user_id_ = cssp.user_id_
+        from course_schedule_student_payment cssp
+        left join student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ and sa.user_id_ = cssp.user_id_
         left join student s ON s.user_id_ = cssp.user_id_
         where cssp.course_schedule_id_ = #{courseId}
     </select>

+ 40 - 0
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -626,6 +626,46 @@
         WHERE ta.current_schedule_id_ = #{currentScheduleId} AND ta.teacher_id_ = #{userId}
         AND ta.sign_in_time_ IS NOT NULL ORDER BY ta.sign_in_time_ ASC LIMIT 1
     </select>
+    <select id="queryTeacherAttendance" resultType="com.ym.mec.biz.dal.school.dto.TeacherAttendanceSumDto">
+        select cg.type_ classGroupType,cs.actual_teacher_id_ teacherId,COUNT(distinct cs.id_) totalCourseNum,
+               COUNT(CASE WHEN ta.sign_in_status_ = 1 and ta.sign_in_status_ = 1 THEN NULL ELSE 1 END) errCourseNum,
+               cs.class_group_id_ classGroupId
+        from course_schedule cs
+        left join class_group cg ON cg.id_ = cs.class_group_id_
+        left join teacher_attendance ta ON ta.course_schedule_id_ = cs.id_ AND ta.teacher_id_ = cs.actual_teacher_id_
+        <include refid="queryTeacherAttendanceSql"/>
+        group by cs.actual_teacher_id_
+    </select>
+
+    <sql id="queryTeacherAttendanceSql">
+        <where>
+            cs.group_type_ = 'MUSIC' AND cs.is_lock_ = 0 AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.new_course_id_ IS NULL
+            <if test="queryInfo.startTerm != null and queryInfo.startTerm != ''">
+                AND cs.class_date_ BETWEEN #{queryInfo.startTerm} AND #{queryInfo.endTerm}
+            </if>
+            <if test="queryInfo.classGroupId != null">
+                AND cs.class_group_id_ = #{queryInfo.classGroupId}
+            </if>
+            <if test="queryInfo.teacherId != null">
+                AND cs.actual_teacher_id_ #{queryInfo.teacherId}
+            </if>
+            <if test="queryInfo.musicGroupIds != null and queryInfo.musicGroupIds.size > 0">
+                AND cs.music_group_id_ IN
+                <foreach collection="queryInfo.musicGroupIds" item="musicGroupId" open="(" separator="," close=")">
+                    #{musicGroupId}
+                </foreach>
+            </if>
+        </where>
+    </sql>
+    <select id="queryTeacherAttendanceForWeek" resultType="java.util.Map">
+        select cs.actual_teacher_id_ 'key',
+               COUNT(CASE WHEN ta.sign_in_status_ = 0 or ta.sign_in_status_ = 0
+                   or ta.sign_in_status_ IS NULL or ta.sign_in_status_ IS NULL THEN 1 ELSE 1 END) 'value'
+        from course_schedule cs
+                 left join teacher_attendance ta ON ta.course_schedule_id_ = cs.id_ AND ta.teacher_id_ = cs.actual_teacher_id_
+        <include refid="queryTeacherAttendanceSql"/>
+        group by cs.actual_teacher_id_
+    </select>
     <update id="updateViPSignOutStatus" parameterType="string">
     	UPDATE teacher_attendance SET sign_out_status_ = 1,sign_out_time_= now()
     	WHERE FIND_IN_SET(course_schedule_id_,#{courseScheduleIdList}) AND sign_in_status_ = 1

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/school/SchoolCourseScheduleController.java

@@ -41,7 +41,7 @@ public class SchoolCourseScheduleController extends BaseController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "coopId", dataType = "Integer", required = true, value = "合作单位"),
     })
-    public HttpResponseResult<Map<Integer, List<DailySummaryOfClassesForTheCurrentSemesterDto>>> getDailySummaryOfClassesForTheCurrentSemester(Integer coopId) {
+    public HttpResponseResult<Map<String, List<DailySummaryOfClassesForTheCurrentSemesterDto>>> getDailySummaryOfClassesForTheCurrentSemester(Integer coopId) {
         return succeed(courseScheduleService.getDailySummaryOfClassesForTheCurrentSemester(coopId));
     }
 

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/school/SchoolTeacherAttendanceController.java

@@ -39,7 +39,7 @@ public class SchoolTeacherAttendanceController extends BaseController {
     @PostMapping("/getTeacherAttendance")
     public HttpResponseResult<TeacherAttendanceSumDto> getTeacherAttendance(TeacherAttendanceQueryDto queryDto){
         TeacherAttendanceQueryInfo queryInfo = new TeacherAttendanceQueryInfo();
-        queryInfo.setSchoolId(queryDto.getSchoolId());
+        queryInfo.setCoopId(queryDto.getCoopId());
         queryInfo.setTeacherId(queryDto.getTeacherId());
         queryInfo.setClassGroupId(queryDto.getClassGroupId());
         List<TeacherAttendanceSumDto> sumDtos = teacherAttendanceService.queryTeacherAttendance(queryInfo);