|
@@ -35,7 +35,10 @@ import java.math.RoundingMode;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @title: 考勤消息设置
|
|
@@ -92,9 +95,13 @@ public class StatisticsController {
|
|
|
new QueryWrapper<TeacherOutInRecord>().lambda()
|
|
|
.between(TeacherOutInRecord::getRecordTime, startTime, endTime)
|
|
|
.eq(TeacherOutInRecord::getStatus, 1)
|
|
|
+ .orderByAsc(TeacherOutInRecord::getRecordTime)
|
|
|
);
|
|
|
+
|
|
|
+ List<Long> collect = outInRecords.stream().map(TeacherOutInRecord::getUserId).collect(Collectors.toList());
|
|
|
+ Set<Long> userIds = new HashSet<>(collect);
|
|
|
//实到人数
|
|
|
- statisticsVo.setActualCount(Long.valueOf(outInRecords.size()));
|
|
|
+ statisticsVo.setActualCount(Long.valueOf(userIds.size()));
|
|
|
|
|
|
//查询教师请假人数
|
|
|
Long leaveCount = wfTeacherleaveService.getLeaveCount(startTime, endTime);
|
|
@@ -102,12 +109,13 @@ public class StatisticsController {
|
|
|
leaveCount = 0L;
|
|
|
}
|
|
|
statisticsVo.setLeaveCount(leaveCount);
|
|
|
-
|
|
|
//通过考勤规则和实到人数信息,计算迟到的
|
|
|
+ userIds = new HashSet<>();
|
|
|
Long lateCount = 0L;
|
|
|
for (TeacherOutInRecord outInRecord : outInRecords) {
|
|
|
- if("迟到".equals(outInRecord.getAttendanceStatus())){
|
|
|
+ if("迟到".equals(outInRecord.getAttendanceStatus()) && !userIds.contains(outInRecord.getUserId())){
|
|
|
lateCount ++;
|
|
|
+ userIds.add(outInRecord.getUserId());
|
|
|
}
|
|
|
}
|
|
|
statisticsVo.setLateCount(lateCount);
|