Joburgess 5 rokov pred
rodič
commit
e1fc31c962

+ 9 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java

@@ -105,4 +105,13 @@ public interface StudentExamResultDao extends BaseDAO<Long, StudentExamResult> {
      * @return java.util.List<com.keao.edu.user.entity.StudentExamResult>
      */
     List<StudentExamResult> getWithExamRoom(@Param("examRoomId") Long examRoomId);
+
+    /**
+     * @describe 统计考级项目下未确认结果的学生数量
+     * @author Joburgess
+     * @date 2020.08.03
+     * @param examId:
+     * @return int
+     */
+    int countExamNoResultStudentNum(@Param("examId") Long examId);
 }

+ 5 - 2
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExaminationBasicServiceImpl.java

@@ -60,6 +60,8 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
     @Autowired
     private StudentExamResultService studentExamResultService;
     @Autowired
+    private StudentExamResultDao studentExamResultDao;
+    @Autowired
     private ExamRoomDao examRoomDao;
     @Autowired
     private TenantInfoDao tenantInfoDao;
@@ -217,8 +219,9 @@ public class ExaminationBasicServiceImpl extends BaseServiceImpl<Long, Examinati
         if(ExamStatusEnum.DELETE.equals(statusEnum)){
             examLifecycleLogDao.insert(new ExamLifecycleLog(existsExam.getId().intValue(), "删除考级项目", operatorId));
         }else if(ExamStatusEnum.RESULT_CONFIRM.equals(statusEnum)){
-            if(ExamStatusEnum.EXAM_END.equals(existsExam.getStatus())){
-                throw new BizException("考试未结束");
+            int noResultStudentNum = studentExamResultDao.countExamNoResultStudentNum(examId);
+            if(noResultStudentNum>0){
+                throw new BizException("尚有考生考试结果未确认");
             }
             examLifecycleLogDao.insert(new ExamLifecycleLog(existsExam.getId().intValue(), "确认考试结果", operatorId));
             studentExamResultService.examResultConfirmPush(examId);

+ 3 - 0
edu-user/edu-user-biz/src/main/resources/config/mybatis/StudentExamResultMapper.xml

@@ -289,4 +289,7 @@
     <select id="getWithExamRoom" resultMap="StudentExamResult">
 		SELECT * FROM student_exam_result WHERE exam_room_id_=#{examRoomId}
     </select>
+	<select id="countExamNoResultStudentNum" resultType="int">
+		SELECT COUNT(exam_registration_id_) FROM student_exam_result WHERE examination_basic_id_=#{examId} AND result_ IS NULL
+	</select>
 </mapper>