|
@@ -1,5 +1,11 @@
|
|
|
package cn.com.qmth.print.manage.service.impl;
|
|
|
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
import cn.com.qmth.print.manage.dao.BreakRecordDao;
|
|
|
import cn.com.qmth.print.manage.entity.BreakRecordEntity;
|
|
|
import cn.com.qmth.print.manage.entity.ExamEntity;
|
|
@@ -13,6 +19,7 @@ import cn.com.qmth.print.manage.service.ExamStudentService;
|
|
|
import cn.com.qmth.print.manage.service.UserService;
|
|
|
import cn.com.qmth.print.manage.service.query.RecordQuery;
|
|
|
import cn.com.qmth.print.manage.vo.BreakRecordVo;
|
|
|
+
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
@@ -20,11 +27,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qmth.boot.core.exception.StatusException;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
|
|
|
@Service
|
|
|
public class BreakRecordServiceImpl extends ServiceImpl<BreakRecordDao, BreakRecordEntity> implements
|
|
@@ -60,19 +62,31 @@ public class BreakRecordServiceImpl extends ServiceImpl<BreakRecordDao, BreakRec
|
|
|
} else if (GroupType.EXAM_ROOM.equals(exam.getGroupType())) {
|
|
|
groupName = student.getExamRoom();
|
|
|
}
|
|
|
- BreakRecordEntity recordEntity = new BreakRecordEntity();
|
|
|
- recordEntity.setOrgId(exam.getOrgId());
|
|
|
- recordEntity.setExamId(examId);
|
|
|
- recordEntity.setCreatorId(userId);
|
|
|
- recordEntity.setCreateTime(new Date());
|
|
|
- recordEntity.setStartNumber(startNumber);
|
|
|
- recordEntity.setGroupType(exam.getGroupType());
|
|
|
- recordEntity.setGroupName(groupName);
|
|
|
- recordEntity.setStatus(RecordStatus.ERROR);
|
|
|
- saveOrUpdate(recordEntity);
|
|
|
+ BreakRecordEntity recordEntity = findByExamIdAndStartNumberAndStatus(examId, startNumber, RecordStatus.ERROR);
|
|
|
+ if (recordEntity == null) {
|
|
|
+ recordEntity = new BreakRecordEntity();
|
|
|
+ recordEntity.setOrgId(exam.getOrgId());
|
|
|
+ recordEntity.setExamId(examId);
|
|
|
+ recordEntity.setCreatorId(userId);
|
|
|
+ recordEntity.setCreateTime(new Date());
|
|
|
+ recordEntity.setStartNumber(startNumber);
|
|
|
+ recordEntity.setGroupType(exam.getGroupType());
|
|
|
+ recordEntity.setGroupName(groupName);
|
|
|
+ recordEntity.setStatus(RecordStatus.ERROR);
|
|
|
+ saveOrUpdate(recordEntity);
|
|
|
+ }
|
|
|
return new BreakRecordVo(recordEntity, student);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public BreakRecordEntity findByExamIdAndStartNumberAndStatus(Long examId, String startNumber, RecordStatus status) {
|
|
|
+ QueryWrapper<BreakRecordEntity> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(BreakRecordEntity::getExamId, examId);
|
|
|
+ queryWrapper.lambda().eq(BreakRecordEntity::getStartNumber, startNumber);
|
|
|
+ queryWrapper.lambda().eq(BreakRecordEntity::getStatus, status);
|
|
|
+ return this.getOne(queryWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public BreakRecordVo end(Long id, Long userId, Long examId, String endNumber) {
|
|
|
ExamEntity exam = examService.getById(examId);
|
|
@@ -137,4 +151,17 @@ public class BreakRecordServiceImpl extends ServiceImpl<BreakRecordDao, BreakRec
|
|
|
updateWrapper.lambda().eq(BreakRecordEntity::getExamId, examId);
|
|
|
this.remove(updateWrapper);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public BreakRecordVo findOne(Long id, String examNumber) {
|
|
|
+ BreakRecordEntity entity = this.getById(id);
|
|
|
+ if (entity == null) {
|
|
|
+ throw new StatusException("找不到中断记录");
|
|
|
+ }
|
|
|
+ ExamStudentEntity student = studentService.findByExamIdAndExamNumber(entity.getExamId(), examNumber);
|
|
|
+ if (student == null) {
|
|
|
+ throw new StatusException("找不到考生");
|
|
|
+ }
|
|
|
+ return new BreakRecordVo(entity, student);
|
|
|
+ }
|
|
|
}
|