Crazy 7 kuukautta sitten
vanhempi
commit
8cee4172dc

+ 36 - 33
yudao-module-md/yudao-module-md-biz/src/main/java/Acs/EventSearch.java

@@ -186,38 +186,14 @@ public final class EventSearch {
                 if (ST==null) { // 如果不存在,则进行打卡记录的创建
                     if (employeeNo != null && !employeeNo.equals("0")) {
                         if (user != null &&"1".equals(user.getUserType())) {//在校生
-                            attendance.setStudentName(user.getNickname()); // 昵称
-                            attendance.setStudentId(user.getId()); // 学生id
-                            attendance.setDeptId(user.getDeptId()); // 工作间id
-                            attendance.setSupervisorId(user.getSupervisorId()); // 导师id
-                            attendance.setClockInStatus(transformClockStatus(parsedTime)); // 打卡状态
-                            attendance.setCreateTime(parsedTime);
-                            attendance.setUpdateTime(parsedTime);
-                            //插入考勤表
-                            studentAttendance.add(attendance);
-                            studentAttendanceService.createStudentAttendance(BeanUtils.toBean(attendance, StudentAttendanceSaveReqVO.class));
-                        } else {
-                            System.out.println("没有找到该用户" + employeeNo);
-                        }
-                    }
-                }else {//存在打卡记录,判断更新照片(可能由于网络问题没有插入)
-                   if (ST.getPhoto()==null||ST.equals("")){
-                       ST.setPhoto(photoUrl);
-                       studentAttendanceService.updateStudentAttendance(BeanUtils.toBean(ST, StudentAttendanceSaveReqVO.class));
-                   }
-                }
-
-                 //检查并更新未打卡
-                if (user!=null&&"1".equals(user.getUserType())) {
-                    if (employeeNo != null && !employeeNo.equals("0")) {
-                        StudentAttendancePageReqVO attendanceReqVO = new StudentAttendancePageReqVO();
-                        LocalDate localDate = LocalDate.now();
-                        if (localDate.equals(date)) {
-                            attendanceReqVO.setDate(localDate);
-                            attendanceReqVO.setUserNumber(user.getUserNumber());
-                            List<StudentAttendanceDO> result = studentAttendanceService.getStudentAttendanceAllList(attendanceReqVO);//找到这天的未打卡记录
-                            if ("1".equals(user.getUserType())) {//只对在校生
-                                if (result.size() == 1) {//
+                            StudentAttendancePageReqVO attendanceReqVO = new StudentAttendancePageReqVO();
+                            LocalDate localDate = LocalDate.now();
+                            if (localDate.equals(date)) {
+                                attendanceReqVO.setDate(localDate);
+                                attendanceReqVO.setUserNumber(user.getUserNumber());
+                                attendance.setClockInStatus("1");
+                                List<StudentAttendanceDO> result = studentAttendanceService.getStudentAttendanceAllList(attendanceReqVO);//找到这天的未打卡记录
+                                if (result!=null&&!result.isEmpty()) {//有未打卡记录更新未打卡记录
                                     StudentAttendanceDO re = result.get(0);
                                     if ("1".equals(re.getClockInStatus())) {//找到未打卡的
                                         re.setClockInStatus("0");//变成正常
@@ -227,13 +203,40 @@ public final class EventSearch {
                                         if (photoUrl != null) {
                                             re.setPhoto(photoUrl); //
                                         }
-                                        studentAttendance.add(re);//测试查询
+                                        studentAttendance.add(re);//
                                         studentAttendanceService.updateStudentAttendance(BeanUtils.toBean(re, StudentAttendanceSaveReqVO.class));
                                     }
+                                }else {//无未打卡记录直接插入
+                                    attendance.setStudentName(user.getNickname()); // 昵称
+                                    attendance.setStudentId(user.getId()); // 学生id
+                                    attendance.setDeptId(user.getDeptId()); // 工作间id
+                                    attendance.setSupervisorId(user.getSupervisorId()); // 导师id
+                                    attendance.setClockInStatus(transformClockStatus(parsedTime)); // 打卡状态
+                                    attendance.setCreateTime(parsedTime);
+                                    attendance.setUpdateTime(parsedTime);
+                                    studentAttendance.add(attendance);
+                                    studentAttendanceService.createStudentAttendance(BeanUtils.toBean(attendance, StudentAttendanceSaveReqVO.class));
                                 }
+                            }else {//前一天的以免没有加载
+                                attendance.setStudentName(user.getNickname()); // 昵称
+                                attendance.setStudentId(user.getId()); // 学生id
+                                attendance.setDeptId(user.getDeptId()); // 工作间id
+                                attendance.setSupervisorId(user.getSupervisorId()); // 导师id
+                                attendance.setClockInStatus(transformClockStatus(parsedTime)); // 打卡状态
+                                attendance.setCreateTime(parsedTime);
+                                attendance.setUpdateTime(parsedTime);
+                                studentAttendance.add(attendance);
+                                studentAttendanceService.createStudentAttendance(BeanUtils.toBean(attendance, StudentAttendanceSaveReqVO.class));
                             }
+                        } else {
+                            System.out.println("没有找到该用户" + employeeNo);
                         }
                     }
+                }else {//存在打卡记录,判断更新照片(可能由于网络问题没有插入)
+                    if (ST.getPhoto() == null || ST.getPhoto().equals("")) {
+                        ST.setPhoto(photoUrl);
+                        studentAttendanceService.updateStudentAttendance(BeanUtils.toBean(ST, StudentAttendanceSaveReqVO.class));
+                    }
                 }
 
                 i++;

+ 1 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java

@@ -313,6 +313,7 @@ public class DeptController {
                         return false;
                     })
                     .collect(Collectors.toList());
+            System.out.println("SHANGDASDAS"+filteredStudents);
 
             long totalStudents = filteredStudents.size();
             long graduatedStudents = filteredStudents.stream()

+ 10 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentAttendance/StudentAttendanceController.java

@@ -450,7 +450,10 @@ public class StudentAttendanceController {
             if (normalList.isEmpty()) {
                 result.getDailyNormalList().add(0);
             } else {
-                result.getDailyNormalList().add(normalList.size());
+                Set<String> uniqueNormalStudents = normalList.stream()
+                        .map(StudentAttendanceDO::getUserNumber)  // 获取学生名字
+                        .collect(Collectors.toSet());  // 转换为 Set 去重
+                result.getDailyNormalList().add(uniqueNormalStudents.size());
             }
 
             if (errorList.isEmpty()) {
@@ -486,8 +489,13 @@ public class StudentAttendanceController {
         attendanceReqVO.setClockInStatus("2");
         List<StudentAttendanceDO> excuseList = studentAttendanceService.getStudentAttendanceAllList(attendanceReqVO);
 
+        // 去重正常打卡记录,使用学生名字来去重
+        Set<String> uniqueNormalStudents = normalList.stream()
+                .map(StudentAttendanceDO::getUserNumber)  // 获取学生名字
+                .collect(Collectors.toSet());  // 转换为 Set 去重
+
         Integer errorNum =errorList.size();
-        Integer normalNum =normalList.size();
+        Integer normalNum =uniqueNormalStudents.size();
         Integer excuseNum =excuseList.size();
         weekendAttendanceResVO result = new weekendAttendanceResVO();
         result.setErrorNum(errorNum);