Crazy hai 4 meses
pai
achega
32c8e2d231
Modificáronse 17 ficheiros con 177 adicións e 30 borrados
  1. 95 13
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/studentSelectSupervisorRecordController.java
  2. 4 1
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/vo/selectionBookRespVO.java
  3. 4 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/vo/studentSelectSupervisorRecordRespVO.java
  4. 0 3
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/vo/studentSelectSupervisorRecordSaveReqVO.java
  5. 18 2
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/supervisorSelectionSetting/supervisorSelectionSettingController.java
  6. 4 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/supervisorSelectionSetting/vo/supervisorSelectionSettingRespVO.java
  7. 10 6
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java
  8. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileRespVO.java
  9. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/profile/UserProfileUpdateReqVO.java
  10. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserRespVO.java
  11. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java
  12. 5 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java
  13. 14 5
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/studentSelectSupervisorRecord/studentSelectSupervisorRecordMapper.java
  14. 3 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java
  15. 1 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/studentSelectionProject/studentSelectionProjectServiceImpl.java
  16. 2 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java
  17. 5 0
      yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

+ 95 - 13
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/studentSelectSupervisorRecordController.java

@@ -1,14 +1,22 @@
 package cn.iocoder.yudao.module.system.controller.admin.studentSelectSupervisorRecord;
 
+import cn.iocoder.yudao.framework.idempotent.core.annotation.Idempotent;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.system.controller.admin.studentSelectionProject.vo.studentSelectionProjectSaveReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.supervisorSelectionSetting.vo.supervisorSelectionSettingSaveReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
+import cn.iocoder.yudao.module.system.dal.dataobject.studentSelectionProject.studentSelectionProjectDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.supervisorSelectionSetting.supervisorSelectionSettingDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
+import cn.iocoder.yudao.module.system.service.studentSelectionProject.studentSelectionProjectService;
 import cn.iocoder.yudao.module.system.service.supervisorSelectionSetting.supervisorSelectionSettingService;
 import cn.iocoder.yudao.module.system.service.user.AdminUserService;
+import com.alibaba.druid.sql.visitor.functions.If;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -20,8 +28,10 @@ import io.swagger.v3.oas.annotations.Operation;
 import javax.validation.constraints.*;
 import javax.validation.*;
 import javax.servlet.http.*;
+import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.ZoneId;
 import java.util.*;
 import java.io.IOException;
 
@@ -56,6 +66,43 @@ public class studentSelectSupervisorRecordController {
     private supervisorSelectionSettingService supervisorSelectionSettingService;
     @Resource
     private PermissionService permissionService;
+    @Resource
+    private studentSelectionProjectService studentSelectionProjectService;
+
+//    @Resource
+//    private ThreadPoolTaskScheduler taskScheduler;
+//    // 调度器
+//    private void scheduleNextExecution(LocalDateTime endTime) {
+//        taskScheduler.schedule(this::checkSelection, Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant()));
+//    }
+//    //在项目结束的时候
+//    @Idempotent(timeout = 10)
+//    public void checkSelection() {
+//        //获取今年的选择记录
+//        LocalDate date =LocalDate.now();
+//        studentSelectionProjectSaveReqVO project = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(date.getYear()),studentSelectionProjectSaveReqVO.class);
+//        LocalDateTime endTime = project.getSupervisorConfirmDeadline();
+//
+//        scheduleNextExecution(endTime);
+//        //导师未同意或者没有选择导师的学生
+//        List<AdminUserDO> studentList =adminUserService.getStudentAndSupervisorNull(project.getStudentGrade());
+//        //更新待处理的记录
+//        for (AdminUserDO student :studentList){
+//            //待处理的记录
+//            studentSelectSupervisorRecordDO record =studentSelectSupervisorRecordService.getRecordByStudentIdAndSupervisorId(student.getId(),null,1);
+//            record.setSelectType(0);//设置成编辑状态
+//            studentSelectSupervisorRecordService.updateStudentSelectSupervisorRecord(BeanUtils.toBean(record,studentSelectSupervisorRecordSaveReqVO.class));
+//            studentList.remove(student);
+//        }
+//        //创建其他的记录
+//        studentSelectSupervisorRecordSaveReqVO createReqVO =new studentSelectSupervisorRecordSaveReqVO();
+//        for (AdminUserDO student :studentList){
+//            createReqVO.setStudentId(student.getId());
+//            createReqVO.setSelectType(0);//编辑状态
+//            studentSelectSupervisorRecordService.createStudentSelectSupervisorRecord(createReqVO);
+//        }
+//
+//    }
 
 
     @PostMapping("/create")
@@ -65,11 +112,15 @@ public class studentSelectSupervisorRecordController {
         Long loginId = SecurityFrameworkUtils.getLoginUserId();
         studentSelectSupervisorRecordDO record1 =studentSelectSupervisorRecordService.getRecordByStudentIdAndSupervisorId(loginId,null,2);//同意
         studentSelectSupervisorRecordDO record2 =studentSelectSupervisorRecordService.getRecordByStudentIdAndSupervisorId(loginId,null,1);//待处理
+        studentSelectSupervisorRecordDO record3 =studentSelectSupervisorRecordService.getRecordByStudentIdAndSupervisorId(loginId,null,0);//编辑
+
 
         if (record1!=null){
             return error(1,"请求已通过了");
         }else if (record2!=null){
             return error(1,"还有请求在待处理中");
+        }else if (record3!=null){
+            return error(1,"还有请求处于编辑状态");
         }
         createReqVO.setStudentId(loginId);
         createReqVO.setSelectType(1);//待处理
@@ -79,15 +130,22 @@ public class studentSelectSupervisorRecordController {
         return success("请求提交成功");
     }
 
-//    撤回,同意,退回
+//    学院志愿编辑
     @PutMapping("/update")
     @Operation(summary = "更新师生互选记录")
     @PreAuthorize("@ss.hasPermission('system:student-select-supervisor-record:update')")
-    public CommonResult<Boolean> updateStudentSelectSupervisorRecord(@Valid @RequestBody studentSelectSupervisorRecordSaveReqVO updateReqVO) {
-        studentSelectSupervisorRecordService.updateStudentSelectSupervisorRecord(updateReqVO);
-        return success(true);
+    public CommonResult<String> updateStudentSelectSupervisorRecord(@Valid @RequestBody studentSelectSupervisorRecordSaveReqVO updateReqVO) {
+
+        studentSelectSupervisorRecordDO record =studentSelectSupervisorRecordService.getStudentSelectSupervisorRecord(updateReqVO.getId());
+        if(record.getSelectType()==0){
+            updateReqVO.setSelectType(2);//同意
+            studentSelectSupervisorRecordService.updateStudentSelectSupervisorRecord(updateReqVO);
+            return success("志愿修改成功");
+        }
+       return error(1,"该状态不可编辑");
     }
 
+
     @DeleteMapping("/delete")
     @Operation(summary = "删除师生互选记录")
     @Parameter(name = "id", description = "编号", required = true)
@@ -110,8 +168,14 @@ public class studentSelectSupervisorRecordController {
     @Operation(summary = "获得师生互选记录分页")
     @PreAuthorize("@ss.hasPermission('system:student-select-supervisor-record:query')")
     public CommonResult<PageResult<studentSelectSupervisorRecordRespVO>> getStudentSelectSupervisorRecordPage(@Valid studentSelectSupervisorRecordPageReqVO pageReqVO) {
-        PageResult<studentSelectSupervisorRecordDO> pageResult = studentSelectSupervisorRecordService.getStudentSelectSupervisorRecordPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, studentSelectSupervisorRecordRespVO.class));
+        LocalDateTime dateTime = LocalDateTime.now();
+        studentSelectionProjectSaveReqVO project = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(dateTime.getYear()), studentSelectionProjectSaveReqVO.class);
+        if (project.getSupervisorConfirmDeadline().isBefore(dateTime)){
+            return error(1,"该项目已过截至日期");
+        }else {
+            PageResult<studentSelectSupervisorRecordDO> pageResult = studentSelectSupervisorRecordService.getStudentSelectSupervisorRecordPage(pageReqVO);
+            return success(BeanUtils.toBean(pageResult, studentSelectSupervisorRecordRespVO.class));
+        }
     }
 
     @GetMapping("/export-excel")
@@ -161,7 +225,7 @@ public class studentSelectSupervisorRecordController {
         return success(true);
     }
 
-    //传导师id
+    //在导师设置那传导师id
     @PutMapping("/withdraw")
     @Operation(summary = "撤回")
     @PreAuthorize("@ss.hasPermission('system:student-select-supervisor-record:withdraw')")
@@ -203,19 +267,19 @@ public class studentSelectSupervisorRecordController {
     }
 
 
-    //通过方法和志愿填报方法都是这个
+    //志愿填报方法都是这个
     @PutMapping("/updateSelectionBook")
     @Operation(summary = "更新互选表数据")
     @PreAuthorize("@ss.hasPermission('system:student-select-supervisor-record:updateSelection')")
-    public CommonResult<String> updateSelectionBook(selectionBookRespVO updateVo) {
+    public CommonResult<String> updateSelectionBook(@RequestBody selectionBookRespVO updateVo) {
         Long loginId =SecurityFrameworkUtils.getLoginUserId();
         Set<Long> roleIds =permissionService.getUserRoleIdListByUserId(loginId);
         //填写简介
         UserSaveReqVO userSaveReqVO = new UserSaveReqVO();
         userSaveReqVO.setId(loginId);
 
-        if (userSaveReqVO.getIntroduction()!=null&&!userSaveReqVO.getIntroduction().isEmpty()) {
-            userSaveReqVO.setIntroduction(userSaveReqVO.getIntroduction());//用户简历
+        if (updateVo.getIntroduction()!=null&&!updateVo.getIntroduction().trim().isEmpty()) {
+            userSaveReqVO.setIntroduction(updateVo.getIntroduction());//用户简历
         }
 
         studentSelectSupervisorRecordSaveReqVO recordUpdateReqVO =new studentSelectSupervisorRecordSaveReqVO();
@@ -231,8 +295,12 @@ public class studentSelectSupervisorRecordController {
 //            }
             //导师填写信息
             //1.研究方向
-            if (updateVo.getSupervisorMajor()!=null&&!updateVo.getSupervisorMajor().isEmpty()){
-                userSaveReqVO.setMajor(updateVo.getSupervisorMajor());
+            if (updateVo.getMajor()!=null&&!updateVo.getMajor().isEmpty()){
+                userSaveReqVO.setMajor(updateVo.getMajor());
+            }
+            //职称
+            if (updateVo.getTitle()!=null&&!updateVo.getTitle().isEmpty()){
+                userSaveReqVO.setTitle(updateVo.getTitle());
             }
             //学生成果要求,和名额填写
             supervisorSelectionSettingDO setting = supervisorSelectionSettingService.getSettingBySupervisorId(loginId);
@@ -254,7 +322,21 @@ public class studentSelectSupervisorRecordController {
     @Operation(summary = "获取选择记录列表")
     @PreAuthorize("@ss.hasPermission('system:student-select-supervisor-record:getRecordList')")
     public CommonResult<List<studentSelectSupervisorRecordRespVO>> getRecordSelectSupervisorRecordList(@Valid studentSelectSupervisorRecordPageReqVO listReqVO) {
+//        LocalDate date =LocalDate.now();
+//        studentSelectionProjectSaveReqVO project = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(date.getYear()),studentSelectionProjectSaveReqVO.class);
+//        listReqVO.setProjectId(project.getId());
         return success(BeanUtils.toBean(studentSelectSupervisorRecordService.getStudentSelectSupervisorRecordList(listReqVO),studentSelectSupervisorRecordRespVO.class));
     }
 
+//    @GetMapping("/getStudentRecordList")
+//    @Operation(summary = "学院获取今年学生列表")
+//    @PreAuthorize("@ss.hasPermission('system:student-select-supervisor-record:getStudentRecordList')")
+//    public CommonResult<List<studentSelectSupervisorRecordRespVO>> getStudentSelectSupervisorRecord(@Valid studentSelectSupervisorRecordPageReqVO listReqVO) {
+//        LocalDate date =LocalDate.now();
+//        studentSelectionProjectSaveReqVO project = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(date.getYear()),studentSelectionProjectSaveReqVO.class);
+//        listReqVO.setProjectId(project.getId());
+//        listReqVO.set
+//        return success(BeanUtils.toBean(studentSelectSupervisorRecordService.getStudentSelectSupervisorRecordList(listReqVO),studentSelectSupervisorRecordRespVO.class));
+//    }
+
 }

+ 4 - 1
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/vo/selectionBookRespVO.java

@@ -21,7 +21,7 @@ public class selectionBookRespVO {
     @Schema(description = "学生学号")
     private String studentNumber;
 
-    @Schema(description = "学生专业")
+    @Schema(description = "学生专业//导师研究方向")
     private String major;
 
     @Schema(description = "导师研究方向")
@@ -51,6 +51,9 @@ public class selectionBookRespVO {
     @Schema(description = "简介")
     private String introduction;
 
+    @Schema(description = "职称")
+    private String title;
+
     @Schema(description = "学硕名额")
     private Integer academicSlots;
 

+ 4 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/vo/studentSelectSupervisorRecordRespVO.java

@@ -44,6 +44,10 @@ public class studentSelectSupervisorRecordRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("更新时间")
+    private LocalDateTime updateTime;
+
     @Schema(description = "导师审批时间")
     @ExcelProperty("导师审批时间")
     private LocalDateTime supervisorApproveTime;

+ 0 - 3
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/vo/studentSelectSupervisorRecordSaveReqVO.java

@@ -45,9 +45,6 @@ public class studentSelectSupervisorRecordSaveReqVO {
     @Schema(description = "校外导师id", example = "17747")
     private Integer externalSupervisorId;
 
-    @Schema(description = "硕士类型")
-    private Integer masterType;
-
     @Schema(description = "同意日期")
     private LocalDate agreeDate;
 

+ 18 - 2
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/supervisorSelectionSetting/supervisorSelectionSettingController.java

@@ -1,5 +1,7 @@
 package cn.iocoder.yudao.module.system.controller.admin.supervisorSelectionSetting;
 
+import cn.iocoder.yudao.module.system.controller.admin.studentSelectionProject.vo.studentSelectionProjectSaveReqVO;
+import cn.iocoder.yudao.module.system.service.studentSelectionProject.studentSelectionProjectService;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -11,6 +13,8 @@ import io.swagger.v3.oas.annotations.Operation;
 import javax.validation.constraints.*;
 import javax.validation.*;
 import javax.servlet.http.*;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.*;
 import java.io.IOException;
 
@@ -18,6 +22,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
@@ -37,6 +43,8 @@ public class supervisorSelectionSettingController {
 
     @Resource
     private supervisorSelectionSettingService supervisorSelectionSettingService;
+    @Resource
+    private studentSelectionProjectService studentSelectionProjectService;
 
     @PostMapping("/create")
     @Operation(summary = "创建导师学硕专硕名额设置")
@@ -67,6 +75,8 @@ public class supervisorSelectionSettingController {
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
     @PreAuthorize("@ss.hasPermission('system:supervisor-selection-setting:query')")
     public CommonResult<supervisorSelectionSettingRespVO> getSupervisorSelectionSetting(@RequestParam("id") Integer id) {
+        LocalDate date = LocalDate.now();
+        studentSelectionProjectSaveReqVO project = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(date.getYear()), studentSelectionProjectSaveReqVO.class);
         supervisorSelectionSettingDO supervisorSelectionSetting = supervisorSelectionSettingService.getSupervisorSelectionSetting(id);
         return success(BeanUtils.toBean(supervisorSelectionSetting, supervisorSelectionSettingRespVO.class));
     }
@@ -76,8 +86,14 @@ public class supervisorSelectionSettingController {
     @Operation(summary = "获得导师学硕专硕名额设置分页")
     @PreAuthorize("@ss.hasPermission('system:supervisor-selection-setting:query')")
     public CommonResult<PageResult<supervisorSelectionSettingRespVO>> getSupervisorSelectionSettingPage(@Valid supervisorSelectionSettingPageReqVO pageReqVO) {
-        PageResult<supervisorSelectionSettingDO> pageResult = supervisorSelectionSettingService.getSupervisorSelectionSettingPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, supervisorSelectionSettingRespVO.class));
+        LocalDateTime dateTime = LocalDateTime.now();
+        studentSelectionProjectSaveReqVO project = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(dateTime.getYear()), studentSelectionProjectSaveReqVO.class);
+        if (project.getSupervisorConfirmDeadline().isBefore(dateTime)){
+            return error(1,"该项目已过截至日期");
+        }else {
+            PageResult<supervisorSelectionSettingDO> pageResult = supervisorSelectionSettingService.getSupervisorSelectionSettingPage(pageReqVO);
+            return success(BeanUtils.toBean(pageResult, supervisorSelectionSettingRespVO.class));
+        }
     }
 
     @GetMapping("/export-excel")

+ 4 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/supervisorSelectionSetting/vo/supervisorSelectionSettingRespVO.java

@@ -52,6 +52,10 @@ public class supervisorSelectionSettingRespVO {
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;
 
+    @Schema(description = "更新时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("更新时间")
+    private LocalDateTime updateTime;
+
     @Schema(description = "选择状态")
     private  Integer selectType;
 

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

@@ -579,13 +579,13 @@ public class UserController {
         Integer isSupervisor =result.getIsSupervisor();
         //学生填写
         if (roleIds.contains(112L)){
-            if (isStudent==1&&loginUser.getGrade().equals(project.getStudentGrade())){
+            if (isStudent==1&&loginUser.getGrade().equals(project.getStudentGrade())&&loginUser.getIsSelectionInformation()==0){
                 return success(true);
             }else {
                 return success(false);
             }
         }else if (roleIds.contains(113L)){
-            if (isSupervisor==1&&project.getSupervisorIds().contains(loginId)){
+            if (isSupervisor==1&&project.getSupervisorIds().contains(loginId)&&loginUser.getIsSelectionInformation()==0){
                 return success(true);
             }else {
                 return success(false);
@@ -598,7 +598,7 @@ public class UserController {
     @Operation(summary = "更新是否弹窗")
     @PreAuthorize("@ss.hasPermission('system:user:updateIsPop')")
     public CommonResult<Boolean> updateIsPop( @RequestBody PopDo popData) {
-        System.out.println(popData);
+        PopDo PD =userService.getPopData();
         if (popData.getIsStudent() != null || popData.getIsSupervisor() != null) {
             userService.updatePop(popData);
             LocalDate date =LocalDate.now();
@@ -611,17 +611,21 @@ public class UserController {
             if (supervisorIds!=null&&!supervisorIds.isEmpty()){
                 for (Long supervisorId : supervisorIds){
                     saveReqVO.setId(supervisorId);
-                    saveReqVO.setIsSelectionInformation(popData.getIsSupervisor() == 1 ? 1 : 0);
+                    if (PD.getIsSupervisor()!=null&&!PD.getIsSupervisor().equals(popData.getIsSupervisor())) {
+                        saveReqVO.setIsSelectionInformation(popData.getIsSupervisor() == 1 ? 0 : 1);
+                    }
                     userService.updateUser(saveReqVO);
                 }
             }
             //更新学生
             List<AdminUserDO> studentList = userService.getUserList1(studentVo);
-            if (studentList!=null&&!studentList.isEmpty()){
+            if (PD.getIsStudent()!=null&&studentList!=null&&!studentList.isEmpty()){
                 saveReqVO =new UserSaveReqVO();
                 for (AdminUserDO student :studentList){
                     saveReqVO.setId(student.getId());
-                    saveReqVO.setIsSelectionInformation(popData.getIsStudent() == 1 ? 1 : 0);
+                    if (!PD.getIsStudent().equals(popData.getIsStudent())) {
+                        saveReqVO.setIsSelectionInformation(popData.getIsStudent() == 1 ? 0 : 1);
+                    }
                     userService.updateUser(saveReqVO);
                 }
             }

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

@@ -109,4 +109,7 @@ public class UserProfileRespVO {
     @Schema(description = "招生简介PDF")
     private String introduction;
 
+    @Schema(description = "职称")
+    private String title;
+
 }

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

@@ -73,4 +73,7 @@ public class UserProfileUpdateReqVO {
     @Schema(description = "是否填写互选信息")
     private Integer isSelectionInformation;
 
+    @Schema(description = "职称")
+    private String title;
+
 }

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

@@ -132,5 +132,8 @@ public class UserRespVO{
     @Schema(description = "是否填写互选信息")
     private Integer isSelectionInformation;
 
+    @Schema(description = "职称")
+    private String title;
+
 
 }

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

@@ -116,6 +116,9 @@ public class UserSaveReqVO {
     @Schema(description = "是否填写互选信息")
     private Integer isSelectionInformation;
 
+    @Schema(description = "职称")
+    private String title;
+
 
     // ========== 仅【创建】时,需要传递的字段 ==========
 

+ 5 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java

@@ -144,6 +144,11 @@ public class AdminUserDO extends TenantBaseDO {
      */
     private String introduction;
 
+    /**
+     * 职称
+     */
+    private String title;
+
     /**
      * 是否填写互选信息
      */

+ 14 - 5
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/studentSelectSupervisorRecord/studentSelectSupervisorRecordMapper.java

@@ -41,10 +41,16 @@ public interface studentSelectSupervisorRecordMapper extends BaseMapperX<student
                 .eqIfExists(studentSelectSupervisorRecordDO::getSupervisorSignature, reqVO.getSupervisorSignature())
                 .eqIfExists(studentSelectSupervisorRecordDO::getExternalSupervisorId, reqVO.getExternalSupervisorId())
                 .orderByDesc(studentSelectSupervisorRecordDO::getId);
-        if (roleIds.contains(113L)){//校内导师(查看选择了自己的)
+
+        if (roleIds.contains(113L)){
             queryWrapperX.eqIfPresent(studentSelectSupervisorRecordDO::getSupervisorId,loginUser.getId());
-        }else if (roleIds.contains(114L)){//学院看招生情况
-//            queryWrapperX.eqIfPresent(studentSelectSupervisorRecordDO::getSupervisorId,reqVO.getSupervisorId());
+        }else if (roleIds.contains(114L)){//学院看所有的编辑、待处理、退回记录
+            queryWrapperX.inIfPresent(studentSelectSupervisorRecordDO::getSelectType,0,1,2,3)
+                    .orderBy(true, true, studentSelectSupervisorRecordDO::getSelectType)
+                    .last("ORDER BY FIELD(select_type, 0, 1, 3, 2)");
+
+        }else if (roleIds.contains(112L)){//学生看自己的
+            queryWrapperX.eqIfPresent(studentSelectSupervisorRecordDO::getStudentId,loginUser.getId());
         }
         return selectPage(reqVO,queryWrapperX);
     }
@@ -69,8 +75,11 @@ public interface studentSelectSupervisorRecordMapper extends BaseMapperX<student
                 .orderByDesc(studentSelectSupervisorRecordDO::getId);
         if (roleIds.contains(113L)){
             queryWrapperX.eqIfPresent(studentSelectSupervisorRecordDO::getSupervisorId,loginUser.getId());
-        }else if (roleIds.contains(114L)){//学院看所有的同意记录
-            queryWrapperX.inIfPresent(studentSelectSupervisorRecordDO::getSelectType,1,2,3);
+        }else if (roleIds.contains(114L)){//学院看所有的编辑、待处理、退回记录
+            queryWrapperX.inIfPresent(studentSelectSupervisorRecordDO::getSelectType,0,1,2,3)
+                    .orderBy(true, true, studentSelectSupervisorRecordDO::getSelectType)
+                            .last("ORDER BY FIELD(select_type, 0, 1, 3, 2)");
+
         }else if (roleIds.contains(112L)){//学生看自己的
             queryWrapperX.eqIfPresent(studentSelectSupervisorRecordDO::getStudentId,loginUser.getId());
         }

+ 3 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java

@@ -346,4 +346,7 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
 
     @Update("UPDATE system_users SET introduction = #{introduction} WHERE id = #{id}")
     void updateUserIntroduction(@Param("id") Long id, @Param("introduction") String introduction);
+
+    @Select("SELECT * FROM system_users WHERE supervisor_id = 0 OR Null AND grade = grade AND user_type = '1' AND deleted = 0")
+    List<AdminUserDO> getStudentAndSupervisorNull(@Param("grade") String grade);
 }

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

@@ -15,6 +15,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 
 import cn.iocoder.yudao.module.system.dal.mysql.studentSelectionProject.studentSelectionProjectMapper;
 
+import java.util.List;
 import java.util.Set;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;

+ 2 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java

@@ -250,6 +250,8 @@ public interface AdminUserService {
     void updatePop(PopDo popDo);
     //
     void updateUserIntroduction(String introduction);
+
+    List<AdminUserDO> getStudentAndSupervisorNull(String grade);
 }
 
 

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

@@ -1207,5 +1207,10 @@ public class AdminUserServiceImpl implements AdminUserService {
         Long loginId =SecurityFrameworkUtils.getLoginUserId();
         userMapper.updateUserIntroduction(loginId,introduction);
     }
+
+    @Override
+    public List<AdminUserDO> getStudentAndSupervisorNull(String grade){
+        return userMapper.getStudentAndSupervisorNull(grade);
+    }
 }