|
@@ -17,6 +17,7 @@ import javax.validation.*;
|
|
|
import javax.servlet.http.*;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.ZoneId;
|
|
|
+import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.*;
|
|
|
import java.io.IOException;
|
|
|
|
|
@@ -229,16 +230,36 @@ public class StudentAttendanceController {
|
|
|
return success(result);
|
|
|
}
|
|
|
|
|
|
-// //TODO还没做的
|
|
|
-// @GetMapping("/weekendAttendance")
|
|
|
-// @Operation(summary = "周出勤统计")
|
|
|
-// @PreAuthorize("@ss.hasPermission('system:student-attendance:day')")
|
|
|
-// public CommonResult<Map<String,Integer>> getWeekendAttendance () {
|
|
|
-// List<AdminUserDO>studentList = adminUserService.getAllUserList();
|
|
|
-// for (AdminUserDO student :studentList){
|
|
|
-// if ()
|
|
|
-// }
|
|
|
-// return null;
|
|
|
-// }
|
|
|
+
|
|
|
+ @GetMapping("/weekendAttendance")
|
|
|
+ @Operation(summary = "周出勤统计")
|
|
|
+ @PreAuthorize("@ss.hasPermission('system:student-attendance:day')")
|
|
|
+ public CommonResult<Map<String,Integer>> getWeekendAttendance () {
|
|
|
+ List<AdminUserDO>studentList = adminUserService.getAllUserList();
|
|
|
+ //获取当天所在的一周内
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
+ LocalDate startDate = today.with(TemporalAdjusters.previousOrSame(java.time.DayOfWeek.MONDAY));
|
|
|
+ LocalDate endDate = today.with(TemporalAdjusters.nextOrSame(java.time.DayOfWeek.SUNDAY));
|
|
|
+ List<AdminUserDO> errorList =new ArrayList<>();
|
|
|
+ List<AdminUserDO> normalList =new ArrayList<>();
|
|
|
+ for (AdminUserDO student :studentList){
|
|
|
+ List<StudentAttendanceDO> attendanceList = studentAttendanceService.getStudentAttendanceInRange(student.getUserNumber(),startDate,endDate);
|
|
|
+ for (StudentAttendanceDO attendance :attendanceList){
|
|
|
+ if ("2".equals(attendance.getClockInStatus())){//有一个警告就添加
|
|
|
+ errorList.add(student);
|
|
|
+ break;
|
|
|
+ }else{
|
|
|
+ normalList.add(student);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Integer errorNum =errorList.size();
|
|
|
+ Integer normalNum =normalList.size();
|
|
|
+ Map<String, Integer> result = new HashMap<>();
|
|
|
+ result.put("errorNum", errorNum);
|
|
|
+ result.put("normalNum", normalNum);
|
|
|
+
|
|
|
+ return success(result);
|
|
|
+ }
|
|
|
|
|
|
}
|