Crazy 3 months ago
parent
commit
2ac715c3a0

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

@@ -155,10 +155,11 @@ public class StudentSelectSupervisorRecordController {
     @PreAuthorize("@ss.hasPermission('system:student-select-supervisor-record:update')")
     @PreAuthorize("@ss.hasPermission('system:student-select-supervisor-record:update')")
     public CommonResult<String> updateStudentSelectSupervisorRecord(@Valid @RequestBody StudentSelectSupervisorRecordSaveReqVO updateReqVO) {
     public CommonResult<String> updateStudentSelectSupervisorRecord(@Valid @RequestBody StudentSelectSupervisorRecordSaveReqVO updateReqVO) {
 
 
-        AdminUserDO student =adminUserService.getUser(updateReqVO.getStudentId());
         studentSelectSupervisorRecordDO record =studentSelectSupervisorRecordService.getStudentSelectSupervisorRecord(updateReqVO.getId());
         studentSelectSupervisorRecordDO record =studentSelectSupervisorRecordService.getStudentSelectSupervisorRecord(updateReqVO.getId());
         //
         //
         studentSelectionProjectSaveReqVO project = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProject(record.getProjectId()), studentSelectionProjectSaveReqVO.class);
         studentSelectionProjectSaveReqVO project = BeanUtils.toBean(studentSelectionProjectService.getStudentSelectionProject(record.getProjectId()), studentSelectionProjectSaveReqVO.class);
+        AdminUserDO student =adminUserService.getUser(updateReqVO.getStudentId());
+        Integer selectStatus =adminUserService.getUserSelectStatus(updateReqVO.getStudentId(),project.getId());
         AdminUserDO user =adminUserService.getUser(record.getStudentId());
         AdminUserDO user =adminUserService.getUser(record.getStudentId());
         Integer  occupiedAcademicSlots =adminUserService.countStudentListBySupervisorId(project.getStudentGrade(),updateReqVO.getSupervisorId(),1);//占用学硕
         Integer  occupiedAcademicSlots =adminUserService.countStudentListBySupervisorId(project.getStudentGrade(),updateReqVO.getSupervisorId(),1);//占用学硕
         Integer  occupiedProfessionalSlots =adminUserService.countStudentListBySupervisorId(project.getStudentGrade(),updateReqVO.getSupervisorId(),2);//占用专硕
         Integer  occupiedProfessionalSlots =adminUserService.countStudentListBySupervisorId(project.getStudentGrade(),updateReqVO.getSupervisorId(),2);//占用专硕
@@ -177,7 +178,7 @@ public class StudentSelectSupervisorRecordController {
                 return error(1, "该老师专硕名额已经满了");
                 return error(1, "该老师专硕名额已经满了");
             }
             }
         }
         }
-        if (user.getSelectStatus()==0){//要新建
+        if (selectStatus==0){//未提交要新建
 
 
         }else {
         }else {
             //更新志愿
             //更新志愿

+ 29 - 14
yudao-module-system/yudao-module-system-biz/src/main/resources/Mapper/user/AdminUserMapper.xml

@@ -423,10 +423,15 @@
 
 
 
 
 
 
+
     <select id="getIsPassedStudentsPage" resultType="cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO">
     <select id="getIsPassedStudentsPage" resultType="cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO">
         SELECT
         SELECT
         a.*,
         a.*,
-
+        CASE
+        WHEN COALESCE(MAX(r.select_type), 0) = 2 THEN 2
+        WHEN COALESCE(MAX(r.select_type), 0) = 1 THEN 1
+        ELSE 0
+        END AS selectStatus,
 
 
         COALESCE(system_dept.name, "测绘学院") AS deptName,
         COALESCE(system_dept.name, "测绘学院") AS deptName,
         supervisor_user.nickname AS supervisor,
         supervisor_user.nickname AS supervisor,
@@ -459,20 +464,19 @@
         <if test="reqVO.userType != null">
         <if test="reqVO.userType != null">
             AND a.user_type = #{reqVO.userType}
             AND a.user_type = #{reqVO.userType}
         </if>
         </if>
-
-        <if test="reqVO.grade != null and reqVO.grade != ''">
-            AND a.grade =#{reqVO.grade}
+        <if test="reqVO.grade != '' and reqVO.grade != null ">
+            AND a.grade = #{reqVO.grade}
         </if>
         </if>
-        <if test="reqVO.supervisorId != null">
+        <if test="reqVO.supervisorId != null and reqVO.supervisorId != '' ">
             AND a.supervisor_id = #{reqVO.supervisorId}
             AND a.supervisor_id = #{reqVO.supervisorId}
         </if>
         </if>
-        <if test="reqVO.major != null">
+        <if test="reqVO.major != null  and reqVO.major != '' ">
             AND a.major = #{reqVO.major}
             AND a.major = #{reqVO.major}
         </if>
         </if>
-        <if test="reqVO.masterType != null">
+        <if test="reqVO.masterType != null and reqVO.masterType != '' ">
             AND a.masterType = #{reqVO.masterType}
             AND a.masterType = #{reqVO.masterType}
         </if>
         </if>
-        <if test="reqVO.status != null">
+        <if test="reqVO.status != null and reqVO.status != '' ">
             AND a.status = #{reqVO.status}
             AND a.status = #{reqVO.status}
         </if>
         </if>
         AND a.deleted = 0
         AND a.deleted = 0
@@ -480,12 +484,23 @@
         a.id
         a.id
 
 
         <!-- 合并 HAVING 子句 -->
         <!-- 合并 HAVING 子句 -->
-
+        HAVING
+        CASE
+        WHEN COALESCE(MAX(r.select_type), 0) = 2 THEN 2
+        WHEN COALESCE(MAX(r.select_type), 0) = 1 THEN 1
+        ELSE 0
+        END
+        <choose>
+            <when test="isPassed == 0">IN (0, 1)</when>
+            <when test="isPassed == 1">= 2</when>
+        </choose>
 
 
         ORDER BY
         ORDER BY
         a.id DESC
         a.id DESC
 
 
-
+        <if test="offset != -1">
+            LIMIT #{offset}, #{reqVO.pageSize}
+        </if>
     </select>
     </select>
 
 
     <select id="getIsPassedStudentsPageCount" resultType="Long">
     <select id="getIsPassedStudentsPageCount" resultType="Long">
@@ -518,16 +533,16 @@
         <if test="reqVO.grade != '' and reqVO.grade != null ">
         <if test="reqVO.grade != '' and reqVO.grade != null ">
             AND a.grade = #{reqVO.grade}
             AND a.grade = #{reqVO.grade}
         </if>
         </if>
-        <if test="reqVO.supervisorId != null">
+        <if test="reqVO.supervisorId != null and reqVO.supervisorId != '' ">
             AND a.supervisor_id = #{reqVO.supervisorId}
             AND a.supervisor_id = #{reqVO.supervisorId}
         </if>
         </if>
-        <if test="reqVO.major != null">
+        <if test="reqVO.major != null  and reqVO.major != '' ">
             AND a.major = #{reqVO.major}
             AND a.major = #{reqVO.major}
         </if>
         </if>
-        <if test="reqVO.masterType != null">
+        <if test="reqVO.masterType != null and reqVO.masterType != '' ">
             AND a.masterType = #{reqVO.masterType}
             AND a.masterType = #{reqVO.masterType}
         </if>
         </if>
-        <if test="reqVO.status != null">
+        <if test="reqVO.status != null and reqVO.status != '' ">
             AND a.status = #{reqVO.status}
             AND a.status = #{reqVO.status}
         </if>
         </if>
         AND a.deleted = 0
         AND a.deleted = 0