Browse Source

管乐迷需求一大堆

zouxuan 2 years ago
parent
commit
f3b283024d

+ 20 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -862,20 +862,27 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 				int currentCourseError = indexBaseMonthDataDao.getCurrentCourseError(month,organIdList);
 				fourChild.add(new IndexErrInfoDto(IndexErrorType.CURRENT_COURSE_ERROR, currentCourseError));
 			});
-
-			//课程考勤异常
-			int teacherAttendanceError = 0;
-			int studentAttendanceError = 0;
-			int noAttendance = 0;
-			if(classGroupIds == null || classGroupIds.size() > 0){
-				teacherAttendanceError = indexBaseMonthDataDao.getTeacherAttendanceError(organIds,startTime,classGroupIds,tenantId);
-				studentAttendanceError = indexBaseMonthDataDao.getStudentAttendanceError(organIds,startTime,classGroupIds,tenantId);
-				noAttendance = indexBaseMonthDataDao.getNoAttendance(organIds,startTime,classGroupIds,tenantId);
+			CompletableFuture future2 = null;
+			if(classGroupIds == null || classGroupIds.size() > 0) {
+				future2 = this.async(() -> {
+					//课程考勤异常
+					int teacherAttendanceError = indexBaseMonthDataDao.getTeacherAttendanceError(organIdList, startTime, classGroupIdList, tenantId);
+					int studentAttendanceError = indexBaseMonthDataDao.getStudentAttendanceError(organIdList, startTime, classGroupIdList, tenantId);
+					int noAttendance = indexBaseMonthDataDao.getNoAttendance(organIdList, startTime, classGroupIdList, tenantId);
+					fourChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXCEPTION_ATTENDANCE, teacherAttendanceError));
+					fourChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_EXCEPTION_ATTENDANCE, studentAttendanceError));
+					//课程异常
+					fourChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_NOT_A_CLASS, noAttendance));
+				});
+			}else {
+				fourChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXCEPTION_ATTENDANCE, 0));
+				fourChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_EXCEPTION_ATTENDANCE, 0));
+				//课程异常
+				fourChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_NOT_A_CLASS, 0));
+			}
+			if(classGroupIds == null || classGroupIds.size() > 0) {
+				future2.join();
 			}
-			fourChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_EXCEPTION_ATTENDANCE, teacherAttendanceError));
-			fourChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_EXCEPTION_ATTENDANCE, studentAttendanceError));
-			//课程异常
-			fourChild.add(new IndexErrInfoDto(IndexErrorType.TEACHER_NOT_A_CLASS,noAttendance));
 			future1.join();
 			four.setNum(fourChild.stream().mapToInt(IndexErrInfoDto::getNum).sum());
 			four.setResult(fourChild);

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

@@ -372,7 +372,7 @@
 	</resultMap>
 	<select id="studentSmallClassStatisticsSum" resultMap="StudentStatisticsSumDto">
 		SELECT
-		COUNT(CASE WHEN ss.last_visit_status_ = 'NORMAL' OR ((ss.last_visit_status_ IS NULL AND ss.no_schedule_num_ > 0 OR suca.course_balance_ > 0) AND (ss.over_course_num_ &lt;= 0 OR ss.lately_year_course_consumer_ &lt;= 0)) THEN 1 ELSE NULL END) 'sleepStudentNum',
+		COUNT(CASE WHEN ss.last_visit_status_ = 'SLEEPY' OR ((ss.last_visit_status_ IS NULL AND ss.no_schedule_num_ > 0 OR suca.course_balance_ > 0) AND (ss.over_course_num_ &lt;= 0 OR ss.lately_year_course_consumer_ &lt;= 0)) THEN 1 ELSE NULL END) 'sleepStudentNum',
 		COUNT(CASE WHEN ss.over_course_num_ > 0 AND (ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0) AND ss.lately_year_course_consumer_ &lt;= 0 AND ss.no_schedule_num_ > 0 THEN 1 ELSE NULL END) 'sleepStudentHasNotSchedule',
 		COUNT(CASE WHEN ss.over_course_num_ > 0 AND (ss.sub_course_num_ > 0 OR ss.no_schedule_num_ > 0) AND ss.lately_year_course_consumer_ &lt;= 0 AND ss.no_schedule_num_ &lt;= 0 THEN 1 ELSE NULL END) 'sleepStudentNoNotSchedule',
 		COUNT(CASE WHEN ss.last_visit_status_ = 'NORMAL' OR (ss.last_visit_status_ IS NULL AND (ss.no_schedule_num_ > 0 OR ss.sub_course_num_ > 0) AND ss.lately_year_course_consumer_ > 0) THEN 1 ELSE NULL END) 'normalStudentNum',