Browse Source

解决班级考勤中缺勤统计为0的问题

dzx 8 months ago
parent
commit
7509f8b2fe

+ 6 - 13
src/main/java/com/xjrsoft/module/attendance/controller/StudentStatisticsController.java

@@ -141,27 +141,20 @@ public class StudentStatisticsController {
                 record.setLeaveCount(leaveCount);
                 int actualCount = 0;
                 Set<Long> userIds = new HashSet<>();
+                Integer lateCount = 0, playTruantCount = 0;
                 for (StudentOutInRecordVo outInRecordVo : notStayMap.get(record.getId())) {
                     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(userIds.contains(outInRecord.getUserId())){
-                        continue;
-                    }
-                    if("迟到".equals(outInRecord.getAttendanceStatus())){
+                    if("迟到".equals(outInRecordVo.getAttendanceStatus())){
                         lateCount ++;
-                    }else if("旷课".equals(outInRecord.getAttendanceStatus())){
+                    }else if("旷课".equals(outInRecordVo.getAttendanceStatus())){
                         playTruantCount ++;
                     }
-                    userIds.add(outInRecord.getUserId());
+                    actualCount ++;
+                    userIds.add(outInRecordVo.getUserId());
                 }
+                record.setActualCount(actualCount);
                 record.setPlayTruantCount(playTruantCount);
                 record.setLateCount(lateCount);
 

+ 3 - 3
src/main/java/com/xjrsoft/module/hikvision/util/OutInRecordUtil.java

@@ -330,17 +330,17 @@ public class OutInRecordUtil {
                 }else{//进
                     if(recordTime.isBefore(amEndTime) && recordTime.isAfter(amStartTime)){
                         attendanceStatus = "迟到";
-                        if(recordTime.isAfter(amStartTime.plusMinutes(40))){
+                        if(recordTime.isAfter(amStartTime.plusMinutes(ruleDetails.getOverMinutes()))){
                             attendanceStatus = "旷课";
                         }
                     }else if(recordTime.isBefore(pmEndTime) && recordTime.isAfter(pmStartTime)){
                         attendanceStatus = "迟到";
-                        if(recordTime.isAfter(pmStartTime.plusMinutes(40))){
+                        if(recordTime.isAfter(pmStartTime.plusMinutes(ruleDetails.getOverMinutes()))){
                             attendanceStatus = "旷课";
                         }
                     }else if(recordTime.isBefore(eveningEndTime) && recordTime.isAfter(eveningStartTime)){
                         attendanceStatus = "迟到";
-                        if(recordTime.isAfter(eveningStartTime.plusMinutes(40))){
+                        if(recordTime.isAfter(eveningStartTime.plusMinutes(ruleDetails.getOverMinutes()))){
                             attendanceStatus = "旷课";
                         }
                     }else{