Browse Source

11.25,oook

Crazy 4 months ago
parent
commit
6e2e317d93
11 changed files with 297 additions and 135 deletions
  1. 23 10
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java
  2. 76 72
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java
  3. 42 41
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentAttendance/StudentAttendanceController.java
  4. 5 5
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java
  5. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java
  6. 59 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/graduateStudentExportExcelVO.java
  7. 20 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/userAchievement/UserAchievementController.java
  8. 41 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/userAchievement/UserAchievementMapper.java
  9. 9 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
  10. 7 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/userAchievement/UserAchievementServiceImpl.java
  11. 12 4
      yudao-module-system/yudao-module-system-biz/src/main/resources/Mapper/AdminUserMapper/AdminUserMapper.xml

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

@@ -84,9 +84,11 @@ public class DeptController {
 
 
         if(newLeaderList == null || newLeaderList.isEmpty()){
         if(newLeaderList == null || newLeaderList.isEmpty()){
             List<AdminUserDO> teachers = adminUserService.getUserList(newLeaderList);
             List<AdminUserDO> teachers = adminUserService.getUserList(newLeaderList);
-            for (AdminUserDO teacher : teachers) {//负责人的工作间
+            if (teachers!=null&&!teachers.isEmpty()) {
+                for (AdminUserDO teacher : teachers) {//负责人的工作间
                     teacher.setDeptId(0L);
                     teacher.setDeptId(0L);
                     adminUserService.updateUser(BeanUtils.toBean(teacher, UserSaveReqVO.class));
                     adminUserService.updateUser(BeanUtils.toBean(teacher, UserSaveReqVO.class));
+                }
             }
             }
             return success(true);
             return success(true);
         }
         }
@@ -96,16 +98,20 @@ public class DeptController {
                 if(!newLeaderList.contains(teacherId)){
                 if(!newLeaderList.contains(teacherId)){
                     //给教师删除所有的dept
                     //给教师删除所有的dept
                     AdminUserDO teacher = adminUserService.getUser(teacherId);
                     AdminUserDO teacher = adminUserService.getUser(teacherId);
-                    //TODO设置成测绘学院(默认)
-                    teacher.setDeptId(0L);
-                    adminUserService.updateUser(BeanUtils.toBean(teacher, UserSaveReqVO.class));
+                    if (teacher!=null) {
+                        //TODO设置成测绘学院(默认)
+                        teacher.setDeptId(0L);
+                        adminUserService.updateUser(BeanUtils.toBean(teacher, UserSaveReqVO.class));
+                    }
                 }
                 }
                 newLeaderList.remove(teacherId);
                 newLeaderList.remove(teacherId);
             }
             }
             List<AdminUserDO> teachers = adminUserService.getUserList(newLeaderList);
             List<AdminUserDO> teachers = adminUserService.getUserList(newLeaderList);
-            for (AdminUserDO teacher : teachers) {//负责人的工作间
-                teacher.setDeptId(updateReqVO.getId());
-                adminUserService.updateUser(BeanUtils.toBean(teacher, UserSaveReqVO.class));
+            if (teachers!=null&&!teachers.isEmpty()) {
+                for (AdminUserDO teacher : teachers) {//负责人的工作间
+                    teacher.setDeptId(updateReqVO.getId());
+                    adminUserService.updateUser(BeanUtils.toBean(teacher, UserSaveReqVO.class));
+                }
             }
             }
         }
         }
         return success(true);
         return success(true);
@@ -133,7 +139,9 @@ public class DeptController {
             if (leaderUserIds!=null&&!leaderUserIds.isEmpty()) {
             if (leaderUserIds!=null&&!leaderUserIds.isEmpty()) {
                 for (Long leaderUserId : leaderUserIds) {
                 for (Long leaderUserId : leaderUserIds) {
                     AdminUserDO user = (leaderUserId != null) ? adminUserService.getUser(leaderUserId) : null;
                     AdminUserDO user = (leaderUserId != null) ? adminUserService.getUser(leaderUserId) : null;
-                    userList.add(user);
+                    if (user!=null) {
+                        userList.add(user);
+                    }
                 }
                 }
                 newDept.setUser(userList);
                 newDept.setUser(userList);
             }
             }
@@ -153,7 +161,9 @@ public class DeptController {
             if (leaderUserIds!=null&&!leaderUserIds.isEmpty()) {
             if (leaderUserIds!=null&&!leaderUserIds.isEmpty()) {
                 for (Long leaderUserId : leaderUserIds) {
                 for (Long leaderUserId : leaderUserIds) {
                     AdminUserDO user = (leaderUserId != null) ? adminUserService.getUser(leaderUserId) : null;
                     AdminUserDO user = (leaderUserId != null) ? adminUserService.getUser(leaderUserId) : null;
-                    userList.add(user);
+                    if (user!=null) {
+                        userList.add(user);
+                    }
                 }
                 }
                 newDept.setUser(userList);
                 newDept.setUser(userList);
             }
             }
@@ -238,7 +248,10 @@ public class DeptController {
         // 获取负责人用户信息
         // 获取负责人用户信息
         if (CollectionUtils.isNotEmpty(newDept.getLeaderUserId())) {
         if (CollectionUtils.isNotEmpty(newDept.getLeaderUserId())) {
             List<AdminUserDO> userList = newDept.getLeaderUserId().stream()
             List<AdminUserDO> userList = newDept.getLeaderUserId().stream()
-                    .map(leaderUserId -> leaderUserId != null ? adminUserService.getUser(leaderUserId) : null)
+                    .map(leaderUserId -> {
+                        AdminUserDO user = adminUserService.getUser(leaderUserId);
+                        return user != null ? user : null; //
+                    })
                     .filter(Objects::nonNull)
                     .filter(Objects::nonNull)
                     .collect(Collectors.toList());
                     .collect(Collectors.toList());
             newDept.setUser(userList);
             newDept.setUser(userList);

+ 76 - 72
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/mail/MailTemplateController.java

@@ -64,43 +64,45 @@ public class MailTemplateController {
         Map<String, Object> templateParams =new HashMap<>();//模板参数设置
         Map<String, Object> templateParams =new HashMap<>();//模板参数设置
         // 获取当前这天
         // 获取当前这天
         LocalDate today = LocalDate.now();
         LocalDate today = LocalDate.now();
-        for (AdminUserDO teacher : TeacherList) {
-            pageReqVO.setDate(today);
-            List<StudentAttendanceEmailVO> normalList = BeanUtils.toBean(
-                    studentAttendanceService.getStudentAttendanceListForTeacher(pageReqVO.setDeptId(String.valueOf(teacher.getDeptId()))),
-                    StudentAttendanceEmailVO.class
-            );
-            List<StudentAttendanceEmailVO> errorList = BeanUtils.toBean(
-                    studentAttendanceService.getStudentAttendanceErrorListForTeacher(pageReqVO.setDeptId(String.valueOf(teacher.getDeptId()))),
-                    StudentAttendanceEmailVO.class
-            );
-
-            StringBuilder normalListBuilder = new StringBuilder();
-            for (StudentAttendanceEmailVO attendance : normalList) {
-                normalListBuilder
-                        .append(", 学生姓名: ").append(attendance.getStudentName())
-                        .append(", 学生学号: ").append(attendance.getUserNumber() != null ? attendance.getUserNumber() : "无")
+        if ( TeacherList!=null&& !TeacherList.isEmpty()) {
+            for (AdminUserDO teacher : TeacherList) {
+                pageReqVO.setDate(today);
+                List<StudentAttendanceEmailVO> normalList = BeanUtils.toBean(
+                        studentAttendanceService.getStudentAttendanceListForTeacher(pageReqVO.setDeptId(String.valueOf(teacher.getDeptId()))),
+                        StudentAttendanceEmailVO.class
+                );
+                List<StudentAttendanceEmailVO> errorList = BeanUtils.toBean(
+                        studentAttendanceService.getStudentAttendanceErrorListForTeacher(pageReqVO.setDeptId(String.valueOf(teacher.getDeptId()))),
+                        StudentAttendanceEmailVO.class
+                );
+
+                StringBuilder normalListBuilder = new StringBuilder();
+                for (StudentAttendanceEmailVO attendance : normalList) {
+                    normalListBuilder
+                            .append(", 学生姓名: ").append(attendance.getStudentName())
+                            .append(", 学生学号: ").append(attendance.getUserNumber() != null ? attendance.getUserNumber() : "无")
 //                        .append(", 工作间名称: ").append(deptService.getDept(Long.valueOf(attendance.getDeptId())).getName()) // 这里需要映射为实际工作间名称
 //                        .append(", 工作间名称: ").append(deptService.getDept(Long.valueOf(attendance.getDeptId())).getName()) // 这里需要映射为实际工作间名称
-                        .append(", 日期: ").append(attendance.getDate())
-                        .append(", 打卡时间: ").append(attendance.getClockInTime() != null ? attendance.getClockInTime() : "未打卡")
-                        .append("<br/>");
-            }
-
-            StringBuilder errorListBuilder = new StringBuilder();
-            for (StudentAttendanceEmailVO attendance : errorList) {
-                errorListBuilder
-                        .append(", 学生姓名: ").append(attendance.getStudentName())
-                        .append(", 学生学号: ").append(attendance.getUserNumber() != null ? attendance.getUserNumber() : "无")
+                            .append(", 日期: ").append(attendance.getDate())
+                            .append(", 打卡时间: ").append(attendance.getClockInTime() != null ? attendance.getClockInTime() : "未打卡")
+                            .append("<br/>");
+                }
+
+                StringBuilder errorListBuilder = new StringBuilder();
+                for (StudentAttendanceEmailVO attendance : errorList) {
+                    errorListBuilder
+                            .append(", 学生姓名: ").append(attendance.getStudentName())
+                            .append(", 学生学号: ").append(attendance.getUserNumber() != null ? attendance.getUserNumber() : "无")
 //                        .append(", 工作间名称: ").append(deptService.getDept(Long.valueOf(attendance.getDeptId())).getName())
 //                        .append(", 工作间名称: ").append(deptService.getDept(Long.valueOf(attendance.getDeptId())).getName())
-                        .append(", 日期: ").append(attendance.getDate())
-                        .append(", 打卡时间: ").append(attendance.getClockInTime() != null ? attendance.getClockInTime() : "未打卡")
-                        .append("<br/>");
-            }
-
-            templateParams.put("normalList", normalListBuilder.toString());
-            templateParams.put("errorList", errorListBuilder.toString());
-            if (teacher.getEmail()!=null) {
-                mailSendService.sendSingleMailToMember(teacher.getEmail(),null, "attendance-list", templateParams);
+                            .append(", 日期: ").append(attendance.getDate())
+                            .append(", 打卡时间: ").append(attendance.getClockInTime() != null ? attendance.getClockInTime() : "未打卡")
+                            .append("<br/>");
+                }
+
+                templateParams.put("normalList", normalListBuilder.toString());
+                templateParams.put("errorList", errorListBuilder.toString());
+                if (teacher.getEmail() != null) {
+                    mailSendService.sendSingleMailToMember(teacher.getEmail(), null, "attendance-list", templateParams);
+                }
             }
             }
         }
         }
 
 
@@ -172,45 +174,47 @@ public class MailTemplateController {
         UserPageReqVO reqVO = new UserPageReqVO();
         UserPageReqVO reqVO = new UserPageReqVO();
         reqVO.setUserType("3");
         reqVO.setUserType("3");
         List<AdminUserDO> TeacherList = adminUserService.getUserPage(reqVO).getList();//所有老师
         List<AdminUserDO> TeacherList = adminUserService.getUserPage(reqVO).getList();//所有老师
-        StudentAttendancePageReqVO pageReqVO =new StudentAttendancePageReqVO();
+        StudentAttendancePageReqVO pageReqVO = new StudentAttendancePageReqVO();
         // 获取当前这天
         // 获取当前这天
         LocalDate today = LocalDate.now();
         LocalDate today = LocalDate.now();
-        Map<String, Object> templateParams =new HashMap<>();//模板参数设置
-        for (AdminUserDO teacher : TeacherList) {
-            pageReqVO.setDate(today);
-            List<StudentAttendanceEmailVO> normalList = BeanUtils.toBean(
-                    studentAttendanceService.getStudentAttendanceListForTeacher(pageReqVO.setDeptId(String.valueOf(teacher.getDeptId()))),
-                    StudentAttendanceEmailVO.class
-            );
-            List<StudentAttendanceEmailVO> errorList = BeanUtils.toBean(
-                    studentAttendanceService.getStudentAttendanceErrorListForTeacher(pageReqVO.setDeptId(String.valueOf(teacher.getDeptId()))),
-                    StudentAttendanceEmailVO.class
-            );
-
-            StringBuilder normalListBuilder = new StringBuilder();
-            for (StudentAttendanceEmailVO attendance : normalList) {
-                normalListBuilder.append("学生id: ").append(attendance.getId())
-                        .append(", 学生姓名: ").append(attendance.getStudentName())
-                        .append(", 学生学号: ").append(attendance.getUserNumber() != null ? attendance.getUserNumber() : "无")
-                        .append(", 日期: ").append(attendance.getDate())
-                        .append(", 打卡时间: ").append(attendance.getClockInTime() != null ? attendance.getClockInTime() : "未打卡")
-                        .append("<br/>");
-            }
-
-            StringBuilder errorListBuilder = new StringBuilder();
-            for (StudentAttendanceEmailVO attendance : errorList) {
-                errorListBuilder
-                        .append(", 学生姓名: ").append(attendance.getStudentName())
-                        .append(", 学生学号: ").append(attendance.getUserNumber() != null ? attendance.getUserNumber() : "无")
-                        .append(", 日期: ").append(attendance.getDate())
-                        .append(", 打卡时间: ").append(attendance.getClockInTime() != null ? attendance.getClockInTime() : "未打卡")
-                        .append("<br/>");
-            }
-
-            templateParams.put("normalList", normalListBuilder.toString());
-            templateParams.put("errorList", errorListBuilder.toString());
-            if (teacher.getEmail()!=null) {
-                mailSendService.sendSingleMailToMember(teacher.getEmail(), teacher.getId(), "attendance-list", templateParams);
+        Map<String, Object> templateParams = new HashMap<>();//模板参数设置
+        if (TeacherList != null && !TeacherList.isEmpty()) {
+            for (AdminUserDO teacher : TeacherList) {
+                pageReqVO.setDate(today);
+                List<StudentAttendanceEmailVO> normalList = BeanUtils.toBean(
+                        studentAttendanceService.getStudentAttendanceListForTeacher(pageReqVO.setDeptId(String.valueOf(teacher.getDeptId()))),
+                        StudentAttendanceEmailVO.class
+                );
+                List<StudentAttendanceEmailVO> errorList = BeanUtils.toBean(
+                        studentAttendanceService.getStudentAttendanceErrorListForTeacher(pageReqVO.setDeptId(String.valueOf(teacher.getDeptId()))),
+                        StudentAttendanceEmailVO.class
+                );
+
+                StringBuilder normalListBuilder = new StringBuilder();
+                for (StudentAttendanceEmailVO attendance : normalList) {
+                    normalListBuilder.append("学生id: ").append(attendance.getId())
+                            .append(", 学生姓名: ").append(attendance.getStudentName())
+                            .append(", 学生学号: ").append(attendance.getUserNumber() != null ? attendance.getUserNumber() : "无")
+                            .append(", 日期: ").append(attendance.getDate())
+                            .append(", 打卡时间: ").append(attendance.getClockInTime() != null ? attendance.getClockInTime() : "未打卡")
+                            .append("<br/>");
+                }
+
+                StringBuilder errorListBuilder = new StringBuilder();
+                for (StudentAttendanceEmailVO attendance : errorList) {
+                    errorListBuilder
+                            .append(", 学生姓名: ").append(attendance.getStudentName())
+                            .append(", 学生学号: ").append(attendance.getUserNumber() != null ? attendance.getUserNumber() : "无")
+                            .append(", 日期: ").append(attendance.getDate())
+                            .append(", 打卡时间: ").append(attendance.getClockInTime() != null ? attendance.getClockInTime() : "未打卡")
+                            .append("<br/>");
+                }
+
+                templateParams.put("normalList", normalListBuilder.toString());
+                templateParams.put("errorList", errorListBuilder.toString());
+                if (teacher.getEmail() != null) {
+                    mailSendService.sendSingleMailToMember(teacher.getEmail(), teacher.getId(), "attendance-list", templateParams);
+                }
             }
             }
         }
         }
     }
     }

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

@@ -138,49 +138,50 @@ public class StudentAttendanceController {
         LocalDate nowDate = LocalDate.now();
         LocalDate nowDate = LocalDate.now();
         Long studentId = SecurityFrameworkUtils.getLoginUserId();
         Long studentId = SecurityFrameworkUtils.getLoginUserId();
         AdminUserDO student =adminUserService.getUser(studentId);
         AdminUserDO student =adminUserService.getUser(studentId);
-        StudentAttendancePageReqVO reqVO = new StudentAttendancePageReqVO();
-        if (createReqVO.getDate().isBefore(nowDate)){
-            return error(1,"该日期有问题");
-        }else if (createReqVO.getDate().equals(nowDate)){//正好是当日,更新未打卡这条记录
-            if (student.getUserNumber()!=null) {
-                reqVO.setUserNumber(student.getUserNumber());
-                reqVO.setDate(nowDate);
-                List<StudentAttendanceDO> result = studentAttendanceService.getStudentAttendanceAllList(reqVO);//找到这天的打卡记录
-                if (result.size() == 1) {//
-                    StudentAttendanceDO re = result.get(0);
-                    if ("1".equals(re.getClockInStatus())) {//找到未打卡的
-                        re.setClockInStatus("2");//变成请假
-                        re.setRemark(createReqVO.getRemark());//更新请假原因
-                        re.setCreateTime(LocalDateTime.now());
-                        re.setUpdateTime(LocalDateTime.now());
-                        studentAttendanceService.updateStudentAttendance(BeanUtils.toBean(re, StudentAttendanceSaveReqVO.class));
-                        return success("请假成功");
+        if (student!=null) {
+            StudentAttendancePageReqVO reqVO = new StudentAttendancePageReqVO();
+            if (createReqVO.getDate().isBefore(nowDate)) {
+                return error(1, "该日期有问题");
+            } else if (createReqVO.getDate().equals(nowDate)) {//正好是当日,更新未打卡这条记录
+                if (student.getUserNumber() != null) {
+                    reqVO.setUserNumber(student.getUserNumber());
+                    reqVO.setDate(nowDate);
+                    List<StudentAttendanceDO> result = studentAttendanceService.getStudentAttendanceAllList(reqVO);//找到这天的打卡记录
+                    if (result.size() == 1) {//
+                        StudentAttendanceDO re = result.get(0);
+                        if ("1".equals(re.getClockInStatus())) {//找到未打卡的
+                            re.setClockInStatus("2");//变成请假
+                            re.setRemark(createReqVO.getRemark());//更新请假原因
+                            re.setCreateTime(LocalDateTime.now());
+                            re.setUpdateTime(LocalDateTime.now());
+                            studentAttendanceService.updateStudentAttendance(BeanUtils.toBean(re, StudentAttendanceSaveReqVO.class));
+                            return success("请假成功");
+                        }
+                        if ("2".equals(re.getClockInStatus())) {//找到已经同一天请假的
+                            return error(1, "今天已经请过假");
+                        }
+                    } else {
+                        return error(1, "没有未打卡记录");
                     }
                     }
-                    if ("2".equals(re.getClockInStatus())) {//找到已经同一天请假的
-                        return error(1,"今天已经请过假");
-                    }
-                }else {
-                    return error(1,"没有未打卡记录");
                 }
                 }
-            }
-        }
-        else if(createReqVO.getDate().isAfter(nowDate)){//创建日期在当日之后
-            reqVO.setUserNumber(student.getUserNumber());
-            reqVO.setDate(createReqVO.getDate());
-            reqVO.setClockInStatus("2");
-            List<StudentAttendanceDO> result = studentAttendanceService.getStudentAttendanceAllList(reqVO);//找到这天请假
-            if (result == null || result.isEmpty()) {
-                // 创建请假记录
-                createReqVO.setStudentId(studentId);
-                createReqVO.setStudentName(student.getNickname());
-                createReqVO.setUserNumber(student.getUserNumber());
-                createReqVO.setDeptId(String.valueOf(student.getDeptId()));
-                createReqVO.setSupervisorId(student.getSupervisorId());//导师id
-                createReqVO.setClockInStatus("2");//请假
-                studentAttendanceService.createStudentAttendance(createReqVO);
-                return success("请假成功");
-            }else{
-                return error(1,createReqVO.getDate()+"这天已经请过假了");
+            } else if (createReqVO.getDate().isAfter(nowDate)) {//创建日期在当日之后
+                reqVO.setUserNumber(student.getUserNumber());
+                reqVO.setDate(createReqVO.getDate());
+                reqVO.setClockInStatus("2");
+                List<StudentAttendanceDO> result = studentAttendanceService.getStudentAttendanceAllList(reqVO);//找到这天请假
+                if (result == null || result.isEmpty()) {
+                    // 创建请假记录
+                    createReqVO.setStudentId(studentId);
+                    createReqVO.setStudentName(student.getNickname());
+                    createReqVO.setUserNumber(student.getUserNumber());
+                    createReqVO.setDeptId(String.valueOf(student.getDeptId()));
+                    createReqVO.setSupervisorId(student.getSupervisorId());//导师id
+                    createReqVO.setClockInStatus("2");//请假
+                    studentAttendanceService.createStudentAttendance(createReqVO);
+                    return success("请假成功");
+                } else {
+                    return error(1, createReqVO.getDate() + "这天已经请过假了");
+                }
             }
             }
         }
         }
         return null;
         return null;

+ 5 - 5
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java

@@ -255,14 +255,14 @@ public class UserController {
     public CommonResult<UserRespVO> getUser(@RequestParam("id") Long id) {
     public CommonResult<UserRespVO> getUser(@RequestParam("id") Long id) {
         AdminUserDO user = userService.getUser(id);
         AdminUserDO user = userService.getUser(id);
         //添加导师名称
         //添加导师名称
+        if (user == null) {
+            return success(null);
+        }
         if (user.getSupervisorId() != null && (Objects.equals(user.getUserType(), "1") || Objects.equals(user.getUserType(), "2"))) {
         if (user.getSupervisorId() != null && (Objects.equals(user.getUserType(), "1") || Objects.equals(user.getUserType(), "2"))) {
             AdminUserDO supervisorUser = userService.getUser(user.getSupervisorId());
             AdminUserDO supervisorUser = userService.getUser(user.getSupervisorId());
             String supervisor = supervisorUser.getNickname();
             String supervisor = supervisorUser.getNickname();
             user.setSupervisor(supervisor);
             user.setSupervisor(supervisor);
         }
         }
-        if (user == null) {
-            return success(null);
-        }
         // 拼接数据
         // 拼接数据
         DeptDO dept = deptService.getDept(user.getDeptId());
         DeptDO dept = deptService.getDept(user.getDeptId());
         return success(UserConvert.INSTANCE.convert(user, dept));
         return success(UserConvert.INSTANCE.convert(user, dept));
@@ -315,9 +315,9 @@ public class UserController {
     public void exportGraduateList(@Validated UserPageReqVO exportReqVO,
     public void exportGraduateList(@Validated UserPageReqVO exportReqVO,
                                   HttpServletResponse response) throws IOException {
                                   HttpServletResponse response) throws IOException {
         exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<graduateStudentImportExcelVO> list = BeanUtils.toBean(userService.getGraduateStudentPage(exportReqVO).getList(),graduateStudentImportExcelVO.class) ;
+        List<graduateStudentExportExcelVO> list = BeanUtils.toBean(userService.getGraduateStudentPage(exportReqVO).getList(),graduateStudentExportExcelVO.class) ;
         // 输出 Excel
         // 输出 Excel
-        ExcelUtils.write(response, "毕业生数据.xls", "数据", graduateStudentImportExcelVO.class, list);
+        ExcelUtils.write(response, "毕业生数据.xls", "数据", graduateStudentExportExcelVO.class, list);
     }
     }
 
 
     @GetMapping("/exportFace")
     @GetMapping("/exportFace")

+ 3 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java

@@ -43,6 +43,9 @@ public class UserProfileRespVO {
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
     private LocalDateTime createTime;
     private LocalDateTime createTime;
 
 
+    @Schema(description ="备注")
+    private String remark;
+
     /**
     /**
      * 所属角色
      * 所属角色
      */
      */

+ 59 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/graduateStudentExportExcelVO.java

@@ -0,0 +1,59 @@
+package cn.iocoder.yudao.module.system.controller.admin.user.vo.user;
+
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
+import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+/**
+ * 用户 Excel 导入 VO
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
+public class graduateStudentExportExcelVO {
+
+    @ExcelProperty("用户名称")
+    private String nickname;
+
+    @ExcelProperty(value = "用户性别", converter = DictConvert.class)
+    @DictFormat(DictTypeConstants.USER_SEX)
+    private Integer sex;
+
+    @ExcelProperty("年级")
+    private String grade;
+
+    @ExcelProperty("专业名称")
+    private String major;
+
+    @ExcelProperty("学号")
+    private String userNumber;
+
+    @ExcelProperty("用户邮箱")
+    private String email;
+
+    @ExcelProperty("手机号码")
+    private String mobile;
+
+    @ExcelProperty("工作地点")
+    private String workPlace;
+
+    @ExcelProperty("导师名称")
+    private String supervisor;
+
+//    @ExcelProperty(value = "账号状态", converter = DictConvert.class)
+//    @DictFormat(DictTypeConstants.COMMON_STATUS)
+//    private Integer status;
+
+    //导入毕业生直接添加身份
+
+
+}

+ 20 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/userAchievement/UserAchievementController.java

@@ -17,6 +17,7 @@ import javax.validation.*;
 import javax.servlet.http.*;
 import javax.servlet.http.*;
 import java.util.*;
 import java.util.*;
 import java.io.IOException;
 import java.io.IOException;
+import java.util.stream.Collectors;
 
 
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -132,6 +133,25 @@ public class UserAchievementController {
               HttpServletResponse response) throws IOException {
               HttpServletResponse response) throws IOException {
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
         List<UserAchievementDO> list = userAchievementService.getUserAchievementPage(pageReqVO).getList();
         List<UserAchievementDO> list = userAchievementService.getUserAchievementPage(pageReqVO).getList();
+        list = list.stream()
+                .map(userAchievement -> {
+                    // 根据sort值设置对应的作者类型
+                    switch (userAchievement.getSort()) {
+                        case "1":
+                            userAchievement.setSort("第一作者");
+                            break;
+                        case "2":
+                            userAchievement.setSort("第二作者");
+                            break;
+                        case "3":
+                            userAchievement.setSort("其他");
+                            break;
+                        default:
+                            userAchievement.setSort("未知"); // 其他未定义的值
+                    }
+                    return userAchievement;
+                })
+                .collect(Collectors.toList()); // 收集回List
         // 导出 Excel
         // 导出 Excel
         ExcelUtils.write(response, "成果.xls", "数据", UserAchievementRespVO.class,
         ExcelUtils.write(response, "成果.xls", "数据", UserAchievementRespVO.class,
                         BeanUtils.toBean(list, UserAchievementRespVO.class));
                         BeanUtils.toBean(list, UserAchievementRespVO.class));

+ 41 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/userAchievement/UserAchievementMapper.java

@@ -23,7 +23,7 @@ public interface UserAchievementMapper extends BaseMapperX<UserAchievementDO> {
     //都是按时间分页
     //都是按时间分页
     //所有用户
     //所有用户
     default PageResult<UserAchievementDO> selectPage(UserAchievementPageReqVO reqVO) {
     default PageResult<UserAchievementDO> selectPage(UserAchievementPageReqVO reqVO) {
-//        Long deptId =SecurityFrameworkUtils.getLoginUserDeptId();
+        Long loginId = SecurityFrameworkUtils.getLoginUserId();
         MPJLambdaWrapperX<UserAchievementDO> queryWrapper =new MPJLambdaWrapperX<>();
         MPJLambdaWrapperX<UserAchievementDO> queryWrapper =new MPJLambdaWrapperX<>();
 
 
         queryWrapper.betweenIfPresent(UserAchievementDO::getCreateTime,reqVO.getCreateTime())
         queryWrapper.betweenIfPresent(UserAchievementDO::getCreateTime,reqVO.getCreateTime())
@@ -55,6 +55,46 @@ public interface UserAchievementMapper extends BaseMapperX<UserAchievementDO> {
         pageResult.setList(updatedList);
         pageResult.setList(updatedList);
         return pageResult;
         return pageResult;
     }
     }
+
+    default PageResult<UserAchievementDO> selectAchievementPage(UserAchievementPageReqVO reqVO,Set<Long>roleIds,Long loginId) {
+        MPJLambdaWrapperX<UserAchievementDO> queryWrapper =new MPJLambdaWrapperX<>();
+
+        queryWrapper.betweenIfPresent(UserAchievementDO::getCreateTime,reqVO.getCreateTime())
+                .inIfPresent(UserAchievementDO::getUserType,reqVO.getUserType())
+                .selectAll(UserAchievementDO.class)
+                .selectAs(AdminUserDO::getUserType,UserAchievementDO::getUserType)
+                .leftJoin(AdminUserDO.class,AdminUserDO::getId,UserAchievementDO::getUserId)
+                .eqIfExists(UserAchievementDO::getUserId, reqVO.getUserId())
+                .likeIfExists(UserAchievementDO::getAchievementName, reqVO.getAchievementName())
+                .eqIfExists(UserAchievementDO::getAchievementType, reqVO.getAchievementType())
+                .likeIfExists(UserAchievementDO::getUserName, reqVO.getUserName())
+                .eqIfExists(UserAchievementDO::getDetail, reqVO.getDetail())
+                .eqIfExists(UserAchievementDO::getSort,reqVO.getSort())
+                .eqIfExists(UserAchievementDO::getIsGraduate,reqVO.getIsGraduate())
+
+                .eqIfExists(UserAchievementDO::getDeptId,reqVO.getDeptId())
+                //用户类型查
+                .orderByDesc(UserAchievementDO::getCreateTime);
+
+        if (roleIds.contains(112L)){//学生成果
+            queryWrapper.eqIfExists(UserAchievementDO::getUserId, loginId);
+        } else if(roleIds.contains(113L)||roleIds.contains(114L)){//导师或者学院导出学生成果
+            queryWrapper.eqIfExists(UserAchievementDO::getUserId, reqVO.getUserId());
+        }
+
+        // 执行分页查询
+        PageResult<UserAchievementDO> pageResult = selectPage(reqVO, queryWrapper);
+
+        // 使用 stream() 对结果进行流操作并设置 ID
+        List<UserAchievementDO> updatedList = pageResult.getList().stream()
+                .peek((userAchievementDO) -> {
+                    userAchievementDO.setId((pageResult.getList().indexOf(userAchievementDO) + 1));
+                })
+                .collect(Collectors.toList());
+        // 设置更新后的列表
+        pageResult.setList(updatedList);
+        return pageResult;
+    }
     default List<UserAchievementDO> selectList(UserAchievementPageReqVO reqVO) {
     default List<UserAchievementDO> selectList(UserAchievementPageReqVO reqVO) {
 
 
         MPJLambdaWrapperX<UserAchievementDO> queryWrapper =new MPJLambdaWrapperX<>();
         MPJLambdaWrapperX<UserAchievementDO> queryWrapper =new MPJLambdaWrapperX<>();

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

@@ -6,6 +6,7 @@ import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.framework.common.exception.ServiceException;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -388,7 +389,14 @@ public class AdminUserServiceImpl implements AdminUserService {
         Long loginId = SecurityFrameworkUtils.getLoginUserId();
         Long loginId = SecurityFrameworkUtils.getLoginUserId();
         Long deptId = SecurityFrameworkUtils.getLoginUserDeptId();
         Long deptId = SecurityFrameworkUtils.getLoginUserDeptId();
         Set<Long> roleIds = permissionService.getUserRoleIdListByUserId(loginId);
         Set<Long> roleIds = permissionService.getUserRoleIdListByUserId(loginId);
-        int offset = (reqVO.getPageNo() - 1) * reqVO.getPageSize();
+        int offset;
+        System.out.println("KDASOD"+reqVO.getPageSize());
+        if (reqVO.getPageSize() == -1) {
+            offset =-1;  //
+        } else {
+            offset = (reqVO.getPageNo() - 1) * reqVO.getPageSize();
+        }
+
         List<AdminUserDO> result =userMapper.selectPage1(reqVO, getDeptCondition(reqVO.getDeptId()),roleIds,deptId,offset);
         List<AdminUserDO> result =userMapper.selectPage1(reqVO, getDeptCondition(reqVO.getDeptId()),roleIds,deptId,offset);
         Long size = userMapper.selectPage1Count(reqVO, getDeptCondition(reqVO.getDeptId()),roleIds,loginId,offset);
         Long size = userMapper.selectPage1Count(reqVO, getDeptCondition(reqVO.getDeptId()),roleIds,loginId,offset);
 
 

+ 7 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/userAchievement/UserAchievementServiceImpl.java

@@ -1,5 +1,7 @@
 package cn.iocoder.yudao.module.system.service.userAchievement;
 package cn.iocoder.yudao.module.system.service.userAchievement;
 
 
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.system.service.permission.PermissionService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
@@ -26,6 +28,8 @@ public class UserAchievementServiceImpl implements UserAchievementService {
 
 
     @Resource
     @Resource
     private UserAchievementMapper userAchievementMapper;
     private UserAchievementMapper userAchievementMapper;
+    @Resource
+    private PermissionService permissionService;
 
 
     @Override
     @Override
     public Integer createUserAchievement(UserAchievementSaveReqVO createReqVO) {
     public Integer createUserAchievement(UserAchievementSaveReqVO createReqVO) {
@@ -83,7 +87,9 @@ public class UserAchievementServiceImpl implements UserAchievementService {
 
 
     @Override
     @Override
     public PageResult<UserAchievementDO> getUserAchievementPage(UserAchievementPageReqVO pageReqVO) {
     public PageResult<UserAchievementDO> getUserAchievementPage(UserAchievementPageReqVO pageReqVO) {
-        return userAchievementMapper.selectPage(pageReqVO);
+        Long loginId = SecurityFrameworkUtils.getLoginUserId();
+        Set<Long> roleIds = permissionService.getUserRoleIdListByUserId(loginId);
+        return userAchievementMapper.selectAchievementPage(pageReqVO,roleIds,loginId);
     }
     }
     @Override
     @Override
     public List<UserAchievementDO> getUserAchievementList(UserAchievementPageReqVO reqVO) {
     public List<UserAchievementDO> getUserAchievementList(UserAchievementPageReqVO reqVO) {

+ 12 - 4
yudao-module-system/yudao-module-system-biz/src/main/resources/Mapper/AdminUserMapper/AdminUserMapper.xml

@@ -21,7 +21,9 @@
         LEFT JOIN
         LEFT JOIN
         system_user_achievement ua ON ua.user_id = a.id
         system_user_achievement ua ON ua.user_id = a.id
         LEFT JOIN
         LEFT JOIN
-        system_users supervisor_user ON supervisor_user.id = a.supervisor_id  -- 自连接获取 supervisor 的信息
+        system_users supervisor_user
+        ON supervisor_user.id = a.supervisor_id
+        AND supervisor_user.deleted = 0
         LEFT JOIN
         LEFT JOIN
         system_dept system_dept ON system_dept.id = a.dept_id
         system_dept system_dept ON system_dept.id = a.dept_id
         WHERE
         WHERE
@@ -103,7 +105,9 @@
         a.id
         a.id
         ORDER BY
         ORDER BY
         a.id DESC
         a.id DESC
-        LIMIT #{offset}, #{reqVO.pageSize}
+        <if test="offset != -1">
+            LIMIT #{offset}, #{reqVO.pageSize}
+        </if>
     </select>
     </select>
 
 
     <select id="selectPage1Count" resultType="Long">
     <select id="selectPage1Count" resultType="Long">
@@ -213,7 +217,9 @@
         LEFT JOIN
         LEFT JOIN
         system_user_achievement ua ON ua.user_id = a.id
         system_user_achievement ua ON ua.user_id = a.id
         LEFT JOIN
         LEFT JOIN
-        system_users supervisor_user ON supervisor_user.id = a.supervisor_id  -- 自连接获取 supervisor 的信息
+        system_users supervisor_user
+        ON supervisor_user.id = a.supervisor_id
+        AND supervisor_user.deleted = 0
         LEFT JOIN
         LEFT JOIN
         system_dept system_dept ON system_dept.id = a.dept_id
         system_dept system_dept ON system_dept.id = a.dept_id
         WHERE
         WHERE
@@ -318,7 +324,9 @@
         LEFT JOIN
         LEFT JOIN
         system_user_achievement ua ON ua.user_id = a.id
         system_user_achievement ua ON ua.user_id = a.id
         LEFT JOIN
         LEFT JOIN
-        system_users supervisor_user ON supervisor_user.id = a.supervisor_id  -- 自连接获取 supervisor 的信息
+        system_users supervisor_user
+        ON supervisor_user.id = a.supervisor_id
+        AND supervisor_user.deleted = 0
         LEFT JOIN
         LEFT JOIN
         system_dept system_dept ON system_dept.id = a.dept_id
         system_dept system_dept ON system_dept.id = a.dept_id
         WHERE
         WHERE