瀏覽代碼

1.3日,校外导师的一些判断和返回合作导师

Crazy 3 月之前
父節點
當前提交
fd03d24d9e

+ 26 - 6
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/studentSelectSupervisorRecord/StudentSelectSupervisorRecordController.java

@@ -171,12 +171,23 @@ public class StudentSelectSupervisorRecordController {
 
         UserSaveReqVO saveReqVO =new UserSaveReqVO();
         saveReqVO.setId(record.getStudentId());
-        saveReqVO.setSupervisorId(updateReqVO.getSupervisorId());
+        AdminUserDO supervisor =adminUserService.getUser(updateReqVO.getSupervisorId());
+        if (supervisor!=null) {
+            if (supervisor.getUserType().equals("3")) {
+                saveReqVO.setSupervisorId(updateReqVO.getSupervisorId());
+            } else if (supervisor.getUserType().equals("5")) {
+                saveReqVO.setExternalSupervisorId(updateReqVO.getSupervisorId());
+//                //校外导师的合作导师
+                if (supervisor.getSupervisorId()!=null&&supervisor.getSupervisorId()!=0) {
+                    saveReqVO.setSupervisorId(supervisor.getSupervisorId());
+                }
+            }
+        }
 
         if(record.getSelectType()==4){//编辑状态
             updateReqVO.setSelectType(2);//同意
         }else if (record.getSelectType()==2){//同意了的
-            //更新记录里面的签名啥的
+            //初始化记录里面的签名
             updateReqVO.setStudentSignature("");//学生签名
             updateReqVO.setSupervisorApproveTime(null);
             updateReqVO.setSupervisorSignature("");
@@ -273,10 +284,21 @@ public class StudentSelectSupervisorRecordController {
                 updateReqVO.setSupervisorSignDate(dateTime.toLocalDate());//导师日期
                 studentSelectSupervisorRecordService.updateStudentSelectSupervisorRecord(updateReqVO);
 
-                //更新学生的supervisorId
                 UserSaveReqVO saveReqVO = new UserSaveReqVO();
                 saveReqVO.setId(record.getStudentId());
-                saveReqVO.setSupervisorId(record.getSupervisorId());
+                //更新学生的supervisorId//或者externalSupervisorId
+                AdminUserDO supervisor =adminUserService.getUser(updateReqVO.getSupervisorId());
+                if (supervisor!=null) {
+                    if (supervisor.getUserType().equals("3")) {
+                        saveReqVO.setSupervisorId(updateReqVO.getSupervisorId());
+                    } else if (supervisor.getUserType().equals("5")) {
+                        saveReqVO.setExternalSupervisorId(updateReqVO.getSupervisorId());
+                        if (supervisor.getSupervisorId()!=null&&supervisor.getSupervisorId()!=0) {
+                            saveReqVO.setSupervisorId(supervisor.getSupervisorId());
+                        }
+                    }
+                }
+
                 adminUserService.updateUser(saveReqVO);
             }
             return success(true);
@@ -432,6 +454,4 @@ public class StudentSelectSupervisorRecordController {
     public CommonResult<List<StudentSelectSupervisorRecordRespVO>> getRecordSelectSupervisorRecordList(@Valid StudentSelectSupervisorRecordPageReqVO listReqVO) {
         return success(BeanUtils.toBean(studentSelectSupervisorRecordService.getStudentSelectSupervisorRecordList(listReqVO), StudentSelectSupervisorRecordRespVO.class));
     }
-
-
 }

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

@@ -29,6 +29,9 @@ public class PrintBookVO {
     @Schema(description = "导师名称")
     private String supervisor;
 
+    @Schema(description = "合作的校内导师名称")
+    private String workSupervisor;
+
     @Schema(description = "导师类型/校内或校外")
     private String supervisorType;
 

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

@@ -313,12 +313,35 @@ public class UserController {
         if (user == null) {
             return success(null);
         }
-        //添加导师名称
-        if (user.getSupervisorId() != null && (Objects.equals(user.getUserType(), "1") || Objects.equals(user.getUserType(), "2"))) {
-            AdminUserDO supervisorUser = userService.getUser(user.getSupervisorId());
-            if (supervisorUser!=null) {
-                String supervisor = supervisorUser.getNickname();
-                user.setSupervisor(supervisor);
+
+        //在校生和毕业生添加导师名称
+        if (user.getUserType()!=null) {
+            if (user.getUserType().equals("1") || user.getUserType().equals("2")) {
+                if (!(user.getSupervisorId() == null || user.getSupervisorId() == 0)) {
+                    AdminUserDO supervisorUser = userService.getUser(user.getSupervisorId());
+                    if (supervisorUser != null) {
+                        user.setSupervisor(supervisorUser.getNickname());
+                    }
+                }
+                if (!(user.getExternalSupervisorId() == null || user.getExternalSupervisorId() == 0)) {
+                    AdminUserDO externalSupervisor = userService.getUser(user.getExternalSupervisorId());
+                    if (externalSupervisor != null) {
+                        user.setWorkSupervisor(externalSupervisor.getNickname());
+                    }
+                }
+            }
+
+            if (user.getUserType().equals("3") && !(user.getExternalSupervisorId() == null || user.getExternalSupervisorId() == 0)) {
+                AdminUserDO externalSupervisor = userService.getUser(user.getExternalSupervisorId());
+                if (externalSupervisor != null) {
+                    user.setWorkSupervisor(externalSupervisor.getNickname());
+                }
+            }
+            if (user.getUserType().equals("5") && !(user.getSupervisorId() == null || user.getSupervisorId() == 0)) {
+                AdminUserDO supervisor = userService.getUser(user.getSupervisorId());
+                if (supervisor != null) {
+                    user.setWorkSupervisor(supervisor.getNickname());
+                }
             }
         }
         // 拼接数据
@@ -326,7 +349,6 @@ public class UserController {
         return success(UserConvert.INSTANCE.convert(user, dept));
     }
 
-
     @GetMapping("/export")
     @Operation(summary = "导出用户")
     @PreAuthorize("@ss.hasPermission('system:user:export')")

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

@@ -112,4 +112,7 @@ public class UserProfileRespVO {
     @Schema(description = "职称")
     private String title;
 
+    @Schema(description = "工作地点")
+    private String workPlace;
+
 }

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

@@ -76,4 +76,7 @@ public class UserProfileUpdateReqVO {
     @Schema(description = "职称")
     private String title;
 
+    @Schema(description = "工作地点")
+    private String workPlace;
+
 }

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

@@ -135,4 +135,7 @@ public class UserRespVO{
     @Schema(description = "职称")
     private String title;
 
+    @Schema(description = "合作导师名称")
+    private String workSupervisor;
+
 }

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

@@ -161,6 +161,18 @@ public class AdminUserDO extends TenantBaseDO {
     @TableField(exist = false)
     private String supervisor;
 
+    /**
+     * 校外导师名称
+     */
+    @TableField(exist = false)
+    private String externalSupervisor;
+
+    /**
+     * 合作的导师名称
+     */
+    @TableField(exist = false)
+    private String workSupervisor;
+
     @TableField(exist = false)
     private String supervisorMobile;
 

+ 25 - 1
yudao-module-system/yudao-module-system-biz/src/main/resources/Mapper/studentSelectSupervisorRecord/studentSelectSupervisorRecordMapper.xml

@@ -40,10 +40,22 @@
         WHEN su_supervisor.user_type = 3 THEN '校内导师'
         WHEN su_supervisor.user_type = 5 THEN '校外导师'
         ELSE '其他类型'
-        END AS supervisorType
+        END AS supervisorType,
+
+        CASE
+        WHEN su_supervisor.user_type = 5 AND su_supervisor.supervisor_id IS NOT NULL AND su_supervisor.supervisor_id != 0 THEN su_internalSupervisor.nickname
+--         WHEN su_supervisor.user_type = 3 AND su_supervisor.external_supervisor_id IS NOT NULL AND su_supervisor.external_supervisor_id != 0 THEN su_externalSupervisor.nickname
+        ELSE NULL
+        END AS workSupervisor
+
         FROM student_select_supervisor_record r
         LEFT JOIN system_users su_student ON r.student_id = su_student.id
         LEFT JOIN system_users su_supervisor ON r.supervisor_id = su_supervisor.id
+--             是校外的时候,这个连接的su_internalSupervisor代表校内导师
+        LEFT JOIN system_users su_internalSupervisor ON su_supervisor.supervisor_id = su_internalSupervisor.id
+--  --             是校内的时候,这个连接的su_externalSupervisor代表校外导师
+--         LEFT JOIN system_users su_externalSupervisor ON su_supervisor.external_supervisor_id = su_externalSupervisor.id
+
         LEFT JOIN supervisor_selection_setting supervisor_setting ON r.supervisor_id = supervisor_setting.supervisor_id
 
         WHERE r.deleted = 0
@@ -54,6 +66,8 @@
 
     </select>
 
+
+
     <select id="getSelectionBookListByProjectId" resultType="cn.iocoder.yudao.module.system.controller.admin.studentSelectSupervisorRecord.vo.PrintBookVO">
         SELECT
         r.*,
@@ -69,11 +83,21 @@
         WHEN su_supervisor.user_type = 5 THEN '校外导师'
         ELSE '其他类型'
         END AS supervisorType
+
+        CASE
+        WHEN su_supervisor.user_type = 5 AND su_supervisor.supervisor_id IS NOT NULL AND su_supervisor.supervisor_id != 0 THEN su_internalSupervisor.nickname
+        ELSE NULL
+        END AS workSupervisor
+
         FROM student_select_supervisor_record r
         LEFT JOIN system_users su_student ON r.student_id = su_student.id
         LEFT JOIN system_users su_supervisor ON r.supervisor_id = su_supervisor.id
+--          是校外的时候,这个连接的su_internalSupervisor代表校内导师
+        LEFT JOIN system_users su_internalSupervisor ON su_supervisor.supervisor_id = su_internalSupervisor.id
+
         LEFT JOIN supervisor_selection_setting supervisor_setting ON r.supervisor_id = supervisor_setting.supervisor_id
 
+
         WHERE r.deleted = 0
         AND r.select_type = 2
         <if test="projectId != null">