Crazy 7 months ago
parent
commit
10ce54e153

+ 1 - 1
yudao-module-md/yudao-module-md-biz/src/main/java/cn/iocoder/yudao/module/md/controller/admin/AcsController.java

@@ -246,7 +246,7 @@ public class AcsController {
                                                     @RequestParam(value = "imageFile", required = false) MultipartFile imageFile) {
         try {
             importResponse response = acsService.importData(excelFile, imageFile);
-            System.out.println("导入结果"+response);
+//            System.out.println("导入结果"+response);
             return CommonResult.success(response);
         } catch (Exception e) {
             return CommonResult.error(500, "导入过程中发生错误: " + e.getMessage());

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

@@ -325,6 +325,8 @@ public class DeptController {
         return success(BeanUtils.toBean(list, DeptRespVO.class));  // 返回成功结果
     }
 
+
+    //有的是2024级,有的又是2024
     private Integer extractGradeNumber(String grade) {
         // 使用正则表达式提取数字部分
         String gradeNumber = grade.replaceAll("[^0-9]", "");  // 只保留数字部分

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

@@ -326,6 +326,32 @@ public class StudentAttendanceController {
         );
     }
 
+    @GetMapping("/dayExcuseAttendance")
+    @Operation(summary = "获得所有人当日请假列表")
+//    @PreAuthorize("@ss.hasPermission('system:student-attendance:dayExcuse')")
+    public CommonResult<List<StudentAttendanceDO>> getDayStudentExcuseAttendance () {
+        LocalDate localDate = LocalDate.now();
+        StudentAttendancePageReqVO reqVO = new StudentAttendancePageReqVO();
+        reqVO.setDate(localDate);
+
+        List<StudentAttendanceDO> attendanceList = studentAttendanceService.getStudentAttendanceExcusedList(reqVO);
+        // 限制最多 20 条,处理数据并返回
+        return success(
+                attendanceList.stream()
+                        .limit(20)
+                        .peek(attendance -> {
+                            //加上导师和工作间
+                            if (attendance.getSupervisorId() != null) {
+                                attendance.setSupervisor(adminUserService.getUser(attendance.getSupervisorId()).getNickname());
+                            }
+                            if (attendance.getDeptId() != null) {
+                                attendance.setDeptName(deptService.getDept(attendance.getDeptId()).getName());
+                            }
+                        })
+                        .collect(Collectors.toList())
+        );
+    }
+
 
 
 //    //当周有一次未打卡则异常

+ 39 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/studentAttendance/StudentAttendanceMapper.java

@@ -58,6 +58,8 @@ public interface StudentAttendanceMapper extends BaseMapperX<StudentAttendanceDO
 
             } else if (roleIds.contains(112L)) {//是学生,只显示自己的
                 queryWrapper.eqIfPresent(StudentAttendanceDO::getStudentId, loginId);
+            }else if (roleIds.contains(114L)) {
+
             }
         }
         return selectList(queryWrapper);
@@ -241,6 +243,43 @@ public interface StudentAttendanceMapper extends BaseMapperX<StudentAttendanceDO
         return selectPage(reqVO, queryWrapper);
     }
 
+    //根据登录人员不同显示全部请假的考勤记录
+    default List<StudentAttendanceDO> selectExcusedList(StudentAttendancePageReqVO reqVO, Set<Long> roleIds,Long loginId) {
+        Long dept_id = SecurityFrameworkUtils.getLoginUserDeptId();
+        // 创建查询包装器
+        MPJLambdaWrapperX<StudentAttendanceDO> queryWrapper = new MPJLambdaWrapperX<>();
+        // 添加查询条件
+        queryWrapper.betweenIfPresent(StudentAttendanceDO::getCreateTime,reqVO.getCreateTime())
+                .eqIfPresent(StudentAttendanceDO::getDate,reqVO.getDate())
+                .selectAll(StudentAttendanceDO.class)
+                .selectAs(DeptDO::getName, StudentAttendanceDO::getDeptName)
+                .selectAs(AdminUserDO::getUserNumber, StudentAttendanceDO::getUserNumber)
+                .leftJoin(DeptDO.class, DeptDO::getId, StudentAttendanceDO::getDeptId)
+                .leftJoin(AdminUserDO.class, AdminUserDO::getId, StudentAttendanceDO::getStudentId)
+                .likeIfExists(StudentAttendanceDO::getStudentName, reqVO.getStudentName())
+                .likeIfExists(DeptDO::getName,reqVO.getDeptName())//工作间名称
+                .likeIfExists(StudentAttendanceDO::getUserNumber, reqVO.getUserNumber())//按学号查
+
+                .eqIfExists(StudentAttendanceDO::getClockInStatus,"2")//请假
+                .eqIfExists(StudentAttendanceDO::getStudentId, reqVO.getStudentId())
+                .eqIfExists(StudentAttendanceDO::getDeptId, reqVO.getDeptId())
+                .eqIfExists(StudentAttendanceDO::getClockInStatus, reqVO.getClockInStatus())
+                .eqIfExists(StudentAttendanceDO::getRemark, reqVO.getRemark())
+                .eqIfExists(StudentAttendanceDO::getSupervisorId,reqVO.getSupervisorId())//导师查
+                .orderByDesc(StudentAttendanceDO::getDate);
+
+        if (roleIds != null && !roleIds.isEmpty()) {
+            if (roleIds.contains(113L)) {//是教师
+                queryWrapper.eqIfPresent(StudentAttendanceDO::getDeptId, dept_id);
+            } else if (roleIds.contains(112L)) {//是学生,只显示自己的
+                queryWrapper.eqIfPresent(StudentAttendanceDO::getStudentId, loginId);
+            }  else if (roleIds.contains(114L)) {//是学院
+
+            }
+        }
+        return selectList(queryWrapper);
+    }
+
     @Select("SELECT * FROM system_student_attendance WHERE user_number = #{userNumber} AND clock_in_time = #{clockTime}")
     StudentAttendanceDO getStudentAttendanceOne(@Param("userNumber") String userNumber,
                                                 @Param("clockTime") LocalDateTime clockTime);

+ 1 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/studentAttendance/StudentAttendanceService.java

@@ -65,6 +65,7 @@ public interface StudentAttendanceService {
     List<StudentAttendanceDO> getStudentAttendanceErrorList(StudentAttendancePageReqVO pageReqVO);//
 
     PageResult<StudentAttendanceDO> getStudentAttendanceExcusedPage(StudentAttendancePageReqVO pageReqVO);
+    List<StudentAttendanceDO> getStudentAttendanceExcusedList(StudentAttendancePageReqVO pageReqVO);
 
     StudentAttendanceDO getStudentAttendanceOne(String userNumber,LocalDateTime clockTime);
 

+ 16 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/studentAttendance/StudentAttendanceServiceImpl.java

@@ -167,6 +167,22 @@ public class StudentAttendanceServiceImpl implements StudentAttendanceService {
         return result;
     }
 
+    @Override
+    public List<StudentAttendanceDO> getStudentAttendanceExcusedList(StudentAttendancePageReqVO pageReqVO){
+        Long loginId = SecurityFrameworkUtils.getLoginUserId();
+        Set<Long> roleIds = permissionService.getUserRoleIdListByUserId(loginId);
+        List<StudentAttendanceDO> result =  studentAttendanceMapper.selectExcusedList(pageReqVO,roleIds,loginId);
+        result.stream().forEach(attendanceDO-> {
+            if (attendanceDO.getSupervisorId()!=null){
+                attendanceDO.setSupervisor(adminUserService.getUser(attendanceDO.getSupervisorId()).getNickname());
+            }
+            if (attendanceDO.getDeptId()==null||attendanceDO.getDeptId()==0L){
+                attendanceDO.setDeptName("测绘学院");
+            }
+        });
+        return result;
+    }
+
    public StudentAttendanceDO getStudentAttendanceOne(String userNumber, LocalDateTime clockTime){
         return studentAttendanceMapper.getStudentAttendanceOne(userNumber,clockTime);
     }

+ 22 - 19
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@@ -776,7 +776,7 @@ public class AdminUserServiceImpl implements AdminUserService {
             }
 
             // 2.2.1 判断如果不存在,在进行插入
-            AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
+            AdminUserDO existUser = userMapper.findUserByUserNumber(importUser.getUserNumber());
             String transformUserType =TransformUserType(importUser.getUserType());// 转换学生类型
             if (existUser == null) {
 
@@ -841,7 +841,9 @@ public class AdminUserServiceImpl implements AdminUserService {
                 .updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build();
         importUsers.forEach(importUser -> {
             Long deptId = null; //工作间名称转id
-            AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
+
+            AdminUserDO existUser = userMapper.findUserByUserNumber(importUser.getUserNumber());
+
             importUser.setUserType("3");//确定是导师
             // 2.2.1 判断如果不存在,在进行插入
 //            AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
@@ -851,7 +853,7 @@ public class AdminUserServiceImpl implements AdminUserService {
                     validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
                             deptId , null,null,importUser.getUserNumber());
                 } catch (ServiceException ex) {
-                    respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
+                    respVO.getFailureUsernames().put(importUser.getNickname(), ex.getMessage());
                     return;
                 }
 
@@ -868,14 +870,14 @@ public class AdminUserServiceImpl implements AdminUserService {
                 roleIds.add(113L);//导师权限
                 permissionService.assignUserRole(userId, roleIds);
 
-                respVO.getCreateUsernames().add(importUser.getUsername());
+                respVO.getCreateUsernames().add(importUser.getNickname());
                 return;
             }
 
             // 2.2.2 如果存在,判断是否允许更新
             if (!isUpdateSupport) {
                 if (importUser.getUsername()!=null) {
-                    respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg());
+                    respVO.getFailureUsernames().put(importUser.getNickname(), USER_USERNAME_EXISTS.getMsg());
                     return;
                 }
             }
@@ -885,14 +887,14 @@ public class AdminUserServiceImpl implements AdminUserService {
                 validateUserForCreateOrUpdate(existUser.getId(), null, importUser.getMobile(), importUser.getEmail(),
                         deptId , null,null,importUser.getUserNumber());
             } catch (ServiceException ex) {
-                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
+                respVO.getFailureUsernames().put(importUser.getNickname(), ex.getMessage());
                 return;
             }
             UserSaveReqVO updateUser = BeanUtils.toBean(importUser, UserSaveReqVO.class);
             updateUser.setId(existUser.getId());
             updateUser.setDeptId(deptId);//更新工作间
             updateUser(updateUser);
-            respVO.getUpdateUsernames().add(importUser.getUsername());
+            respVO.getUpdateUsernames().add(importUser.getNickname());
         });
         return respVO;
     }
@@ -910,7 +912,8 @@ public class AdminUserServiceImpl implements AdminUserService {
         UserImportRespVO respVO = UserImportRespVO.builder().createUsernames(new ArrayList<>())
                 .updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build();
         importUsers.forEach(importUser -> {
-            AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
+
+            AdminUserDO existUser = userMapper.findUserByUserNumber(importUser.getUserNumber());
 
             Long loginId = SecurityFrameworkUtils.getLoginUserId();
             Set<Long> UserRoleIds = permissionService.getUserRoleIdListByUserId(loginId);//获取登录人的权限
@@ -925,7 +928,7 @@ public class AdminUserServiceImpl implements AdminUserService {
                     validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
                             null , null,importUser.getSupervisor(),importUser.getUserNumber());
                 } catch (ServiceException ex) {
-                    respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
+                    respVO.getFailureUsernames().put(importUser.getNickname(), ex.getMessage());
                     return;
                 }
                 UserSaveReqVO newUser = BeanUtils.toBean(importUser, UserSaveReqVO.class);
@@ -944,14 +947,14 @@ public class AdminUserServiceImpl implements AdminUserService {
                 roleIds.add(112L);//学生权限
                 permissionService.assignUserRole(userId, roleIds);
 
-                respVO.getCreateUsernames().add(importUser.getUsername());
+                respVO.getCreateUsernames().add(importUser.getNickname());
                 return;
             }
 
             // 2.2.2 如果存在,判断是否允许更新
             if (!isUpdateSupport) {
-                if (importUser.getUsername()!=null) {
-                    respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg());
+                if (importUser.getUsername() != null) {
+                    respVO.getFailureUsernames().put(importUser.getNickname(), USER_USERNAME_EXISTS.getMsg());
                     return;
                 }
             }
@@ -961,7 +964,7 @@ public class AdminUserServiceImpl implements AdminUserService {
                 validateUserForCreateOrUpdate(existUser.getId(), null, importUser.getMobile(), importUser.getEmail(),
                         null , null,importUser.getSupervisor(),importUser.getUserNumber());
             } catch (ServiceException ex) {
-                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
+                respVO.getFailureUsernames().put(importUser.getNickname(), ex.getMessage());
                 return;
             }
             UserSaveReqVO  updateUser = BeanUtils.toBean(importUser, UserSaveReqVO.class);
@@ -974,7 +977,7 @@ public class AdminUserServiceImpl implements AdminUserService {
                 updateUser.setSupervisorId(userMapper.getUserByNickName(importUser.getSupervisor()).getId());
             }
             updateUser(updateUser);
-            respVO.getUpdateUsernames().add(importUser.getUsername());
+            respVO.getUpdateUsernames().add(importUser.getNickname());
         });
         return respVO;
     }
@@ -994,7 +997,7 @@ public class AdminUserServiceImpl implements AdminUserService {
         UserImportRespVO respVO = UserImportRespVO.builder().createUsernames(new ArrayList<>())
                 .updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build();
         importUsers.forEach(importUser -> {
-            AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
+            AdminUserDO existUser = userMapper.findUserByUserNumber(importUser.getUserNumber());
             Long deptId = null; //工作间名称转id
 
             // 2.2.1 判断如果不存在,在进行插入
@@ -1004,7 +1007,7 @@ public class AdminUserServiceImpl implements AdminUserService {
                     validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
                             deptId , null, importUser.getSupervisor(),importUser.getUserNumber());
                 } catch (ServiceException ex) {
-                    respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
+                    respVO.getFailureUsernames().put(importUser.getNickname(), ex.getMessage());
                     return;
                 }
 
@@ -1035,14 +1038,14 @@ public class AdminUserServiceImpl implements AdminUserService {
                 roleIds.add(112L);//学生权限
                 permissionService.assignUserRole(userId,roleIds);
 
-                respVO.getCreateUsernames().add(importUser.getUsername());
+                respVO.getCreateUsernames().add(importUser.getNickname());
                 return;
             }
 
             // 2.2.2 如果存在,不允许更新
             if (!isUpdateSupport) {
                 if (importUser.getUsername()!=null) {
-                    respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg());
+                    respVO.getFailureUsernames().put(importUser.getNickname(), USER_USERNAME_EXISTS.getMsg());
                     return;
                 }
             }
@@ -1052,7 +1055,7 @@ public class AdminUserServiceImpl implements AdminUserService {
                 validateUserForCreateOrUpdate(existUser.getId(), null, importUser.getMobile(), importUser.getEmail(),
                         deptId , null, importUser.getSupervisor(),importUser.getUserNumber());
             } catch (ServiceException ex) {
-                respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
+                respVO.getFailureUsernames().put(importUser.getNickname(), ex.getMessage());
                 return;
             }