|
|
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
import com.xjrsoft.common.enums.ArchivesStatusEnum;
|
|
|
+import com.xjrsoft.common.enums.OutInStatusEnum;
|
|
|
import com.xjrsoft.common.enums.StudyStatusEnum;
|
|
|
import com.xjrsoft.common.model.result.RT;
|
|
|
import com.xjrsoft.common.page.ConventPage;
|
|
|
@@ -49,6 +50,7 @@ import java.time.temporal.ChronoUnit;
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
|
@@ -125,16 +127,19 @@ public class StudentStatisticsController {
|
|
|
}
|
|
|
record.setLeaveCount(leaveCount);
|
|
|
int actualCount = 0;
|
|
|
+ Set<Long> userIds = new HashSet<>();
|
|
|
for (StudentOutInRecordVo outInRecordVo : notStayMap.get(record.getId())) {
|
|
|
- if(outInRecordVo.getStatus() == 1){
|
|
|
- actualCount ++;
|
|
|
+ if(userIds.contains(outInRecordVo.getUserId())){
|
|
|
+ continue;
|
|
|
}
|
|
|
+ actualCount ++;
|
|
|
+ userIds.add(outInRecordVo.getUserId());
|
|
|
}
|
|
|
record.setActualCount(actualCount);
|
|
|
|
|
|
Integer lateCount = 0, playTruantCount = 0;
|
|
|
for (StudentOutInRecordVo outInRecord : notStayMap.get(record.getId())) {
|
|
|
- if(outInRecord.getStatus() == 0){
|
|
|
+ if(userIds.contains(outInRecord.getUserId())){
|
|
|
continue;
|
|
|
}
|
|
|
if("迟到".equals(outInRecord.getAttendanceStatus())){
|
|
|
@@ -142,6 +147,7 @@ public class StudentStatisticsController {
|
|
|
}else if("旷课".equals(outInRecord.getAttendanceStatus())){
|
|
|
playTruantCount ++;
|
|
|
}
|
|
|
+ userIds.add(outInRecord.getUserId());
|
|
|
}
|
|
|
record.setPlayTruantCount(playTruantCount);
|
|
|
record.setLateCount(lateCount);
|