Ver Fonte

Merge branch 'master' of http://gogs.gisvg.com/YDM/graduate

47 há 3 meses atrás
pai
commit
969d94b197

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

@@ -38,7 +38,7 @@ public class recordExportRespVO {
 
     @Schema(description = "学生学号")
     @ExcelProperty("学生学号")
-    private String major;
+    private String userNumber;
 
     @Schema(description = "导师姓名")
     @ExcelProperty("导师姓名")

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

@@ -11,6 +11,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO;
+import cn.iocoder.yudao.module.system.controller.admin.studentSelectSupervisorRecord.vo.recordExportRespVO;
 import cn.iocoder.yudao.module.system.controller.admin.studentSelectionProject.vo.studentSelectionProjectSaveReqVO;
 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
 
@@ -772,4 +773,53 @@ public class UserController {
         return success(result);
     }
 
+
+    @GetMapping("/exportStudentPassedExcel")
+    @Operation(summary = "获取今年项目学生通过的名单")
+    @PreAuthorize("@ss.hasPermission('system:user:exportStudentPassedExcel')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportStudentPassedExcel(@Valid UserPageReqVO pageReqVO,
+                                                         HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        LocalDate date =LocalDate.now();
+        Integer lastYear =date.getYear()-1 ;
+        studentSelectionProjectSaveReqVO project =new studentSelectionProjectSaveReqVO();
+        studentSelectionProjectSaveReqVO project1 = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(lastYear),studentSelectionProjectSaveReqVO.class);
+        studentSelectionProjectSaveReqVO project2 = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(date.getYear()),studentSelectionProjectSaveReqVO.class);
+        project =project1==null?project2:project1;
+        if (project==null) {
+            return;
+        }
+        pageReqVO.setGrade(project.getStudentGrade());
+        pageReqVO.setUserType("1");
+        List<StudentProjectRespVO> list =userService.getPassedStudentsPage(pageReqVO,project.getId()).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "今年项目学生通过的名单.xls", "数据", studentPassedExportRespVO.class,
+                BeanUtils.toBean(list, studentPassedExportRespVO.class));
+    }
+
+    @GetMapping("/exportStudentUnPassedExcel")
+    @Operation(summary = "获取今年项目学生通过的名单")
+    @PreAuthorize("@ss.hasPermission('system:user:exportStudentUnPassedExcel')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportStudentUnPassedExcel(@Valid UserPageReqVO pageReqVO,
+                                         HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        LocalDate date =LocalDate.now();
+        Integer lastYear =date.getYear()-1 ;
+        studentSelectionProjectSaveReqVO project =new studentSelectionProjectSaveReqVO();
+        studentSelectionProjectSaveReqVO project1 = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(lastYear),studentSelectionProjectSaveReqVO.class);
+        studentSelectionProjectSaveReqVO project2 = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProjectByYear(date.getYear()),studentSelectionProjectSaveReqVO.class);
+        project =project1==null?project2:project1;
+        if (project==null) {
+            return;
+        }
+        pageReqVO.setGrade(project.getStudentGrade());
+        pageReqVO.setUserType("1");
+        List<StudentProjectRespVO> list =userService.getPassedStudentsPage(pageReqVO,project.getId()).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "今年项目学生未通过的名单.xls", "数据", studentUnPassedExportRespVO.class,
+                BeanUtils.toBean(list, studentUnPassedExportRespVO.class));
+    }
+
 }

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

@@ -8,6 +8,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 @Schema(description = "管理后台 - 用户互选项目信息 Response VO")
@@ -78,6 +79,7 @@ public class StudentProjectRespVO {
     @Schema(description = "简介PDF")
     private String introduction;
 
+    //TODO 项目有关
     //选择状态
     @Schema(description = "选择状态")
     private Integer selectStatus;
@@ -85,9 +87,18 @@ public class StudentProjectRespVO {
     @Schema(description = "记录id")
     private Long recordId;
 
+    @Schema(description = "学生签字日期")
+    private LocalDate studentSignDate;
+
+    @Schema(description = "导师签字日期")
+    private LocalDate supervisorSignDate;
+
     @Schema(description = "项目id")
     private Long projectId;
 
+    @Schema(description = "项目名称")
+    private String projectName;
+
     @Schema(description = "选中的导师Id")
     private String selectSupervisorId;
 

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

@@ -75,5 +75,8 @@ public class UserPageReqVO extends PageParam {
     @Schema(description = "是否导入人脸")
     private Long photoIsExist;
 
+    @Schema(description = "选择状态")
+    private Integer selectStatus;
+
 
 }

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

@@ -0,0 +1,57 @@
+package cn.iocoder.yudao.module.system.controller.admin.user.vo.user;
+
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 项目通过学生excel  VO")
+@Data
+@ExcelIgnoreUnannotated
+public class studentPassedExportRespVO {
+
+    @Schema(description = "项目名称")
+    @ExcelProperty("项目名称")
+    private String projectName;
+
+    @Schema(description = "选择状态", example = "1")
+    @DictFormat("system_student_select_record_select_status")
+    @ExcelProperty("选择状态")
+    private Long selectStatus;
+
+    @Schema(description = "硕士类型")
+    @DictFormat("system_student_master_type")
+    @ExcelProperty("硕士类型")
+    private Integer masterType;
+
+    @Schema(description = "学生年级")
+    @ExcelProperty("学生年级")
+    private String grade;
+
+    @Schema(description = "学生姓名")
+    @ExcelProperty("学生姓名")
+    private String nickname;
+
+    @Schema(description = "学生学号")
+    @ExcelProperty("学生学号")
+    private String userNumber;
+
+    @Schema(description = "导师姓名")
+    @ExcelProperty("导师姓名")
+    private String supervisor;
+
+//    @Schema(description = "导师类型")
+//    @ExcelProperty("导师类型")
+//    private String supervisorType;
+
+//    @Schema(description = "学生签字日期")
+//    private LocalDate studentSignDate;
+//
+//    @Schema(description = "导师签字日期")
+//    private LocalDate supervisorSignDate;
+
+}

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

@@ -0,0 +1,42 @@
+package cn.iocoder.yudao.module.system.controller.admin.user.vo.user;
+
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Schema(description = "管理后台 - 项目未通过学生excel  VO")
+@Data
+@ExcelIgnoreUnannotated
+public class studentUnPassedExportRespVO {
+
+    @Schema(description = "项目名称")
+    @ExcelProperty("项目名称")
+    private String projectName;
+
+    @Schema(description = "选择状态", example = "1")
+    @DictFormat("system_student_select_record_select_status")
+    @ExcelProperty("选择状态")
+    private Long selectStatus;
+
+    @Schema(description = "硕士类型")
+    @DictFormat("system_student_master_type")
+    @ExcelProperty("硕士类型")
+    private Integer masterType;
+
+    @Schema(description = "学生年级")
+    @ExcelProperty("学生年级")
+    private String grade;
+
+    @Schema(description = "学生姓名")
+    @ExcelProperty("学生姓名")
+    private String nickname;
+
+    @Schema(description = "学生学号")
+    @ExcelProperty("学生学号")
+    private String userNumber;
+
+}

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

@@ -426,7 +426,7 @@
 
     <select id="getIsPassedStudentsPage" resultType="cn.iocoder.yudao.module.system.controller.admin.user.vo.user.StudentProjectRespVO">
         SELECT
-        a.*,r.id,r.project_id,r.supervisor_id,
+        a.*,r.id,p.id,r.supervisor_id,
         CASE
         WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4
         WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0)= 1 THEN 2  -- 如果有 2
@@ -445,7 +445,11 @@
         supervisor_user.mobile AS supervisorMobile,
         externalSupervisor_user.nickname AS externalSupervisor,
         selectSupervisor_user.nickname AS selectSupervisor,
-        r.supervisor_id AS selectSupervisorId
+        r.supervisor_id AS selectSupervisorId,
+        p.project_name AS projectName,
+        r.student_sign_date AS studentSignDate,
+        r.supervisor_sign_date AS supervisorSignDate
+
         FROM
         system_users a
         LEFT JOIN
@@ -455,9 +459,11 @@
         LEFT JOIN
         system_users externalSupervisor_user ON externalSupervisor_user.id = a.external_supervisor_id AND externalSupervisor_user.deleted = 0
         LEFT JOIN
-        system_users selectSupervisor_user ON selectSupervisor_user.id = a.id AND selectSupervisor_user.deleted = 0
+        system_users selectSupervisor_user ON selectSupervisor_user.id = r.supervisor_id AND selectSupervisor_user.deleted = 0
         LEFT JOIN
         system_dept system_dept ON system_dept.id = a.dept_id
+        LEFT JOIN
+        supervisor_student_selection_project p ON p.id = #{projectId}  AND p.deleted = 0
         WHERE
         1=1
         AND a.deleted = 0
@@ -526,8 +532,9 @@
         LEFT JOIN student_select_supervisor_record r ON r.student_id = a.id AND r.deleted = 0 AND r.project_id = #{projectId}
         LEFT JOIN system_users supervisor_user ON supervisor_user.id = a.supervisor_id AND supervisor_user.deleted = 0
         LEFT JOIN system_users externalSupervisor_user ON externalSupervisor_user.id = a.external_supervisor_id AND externalSupervisor_user.deleted = 0
-        LEFT JOIN system_users selectSupervisor_user ON selectSupervisor_user.id = a.id AND selectSupervisor_user.deleted = 0
+        LEFT JOIN system_users selectSupervisor_user ON selectSupervisor_user.id = r.supervisor_id AND selectSupervisor_user.deleted = 0
         LEFT JOIN system_dept system_dept ON system_dept.id = a.dept_id
+        LEFT JOIN supervisor_student_selection_project p ON p.id = #{projectId}  AND p.deleted = 0
         WHERE 1 = 1
         <if test="reqVO.username != null and reqVO.username != ''">
             AND a.username LIKE CONCAT('%', #{reqVO.username}, '%')