ting.yin 3 年之前
父節點
當前提交
66a12054d8

+ 5 - 0
src/main/java/cn/com/qmth/print/manage/controller/BreakRecordController.java

@@ -42,4 +42,9 @@ public class BreakRecordController extends BaseController {
         Long userId = getAccessUserId(accessEntity);
         return breakRecordService.end(id, userId, examId, endNumber);
     }
+
+    @RequestMapping("/findOne")
+    public Object findOne(@RequestParam Long id, @RequestParam String examNumber) {
+        return breakRecordService.findOne(id, examNumber);
+    }
 }

+ 4 - 0
src/main/java/cn/com/qmth/print/manage/controller/CheckRecordController.java

@@ -43,4 +43,8 @@ public class CheckRecordController extends BaseController {
         return checkRecordService.end(id, userId, examId, endNumber);
     }
 
+    @RequestMapping("/findOne")
+    public Object findOne(@RequestParam Long id, @RequestParam String examNumber) {
+        return checkRecordService.findOne(id, examNumber);
+    }
 }

+ 7 - 2
src/main/java/cn/com/qmth/print/manage/service/BreakRecordService.java

@@ -1,14 +1,15 @@
 package cn.com.qmth.print.manage.service;
 
+import java.util.List;
+
 import cn.com.qmth.print.manage.entity.BreakRecordEntity;
+import cn.com.qmth.print.manage.enums.RecordStatus;
 import cn.com.qmth.print.manage.service.query.RecordQuery;
 import cn.com.qmth.print.manage.vo.BreakRecordVo;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
-import java.util.List;
-
 public interface BreakRecordService extends IService<BreakRecordEntity> {
 
     BreakRecordVo start(Long userId, Long examId, String startNumber);
@@ -20,4 +21,8 @@ public interface BreakRecordService extends IService<BreakRecordEntity> {
     List<BreakRecordEntity> listByExamId(Long examId);
 
     void deleteByExamId(Long examId);
+
+    BreakRecordVo findOne(Long id, String examNumber);
+
+    BreakRecordEntity findByExamIdAndStartNumberAndStatus(Long examId, String startNumber, RecordStatus status);
 }

+ 2 - 0
src/main/java/cn/com/qmth/print/manage/service/CheckRecordService.java

@@ -23,4 +23,6 @@ public interface CheckRecordService extends IService<CheckRecordEntity> {
     List<CheckRecordEntity> listByExamId(Long examId);
 
     void deleteByExamId(Long examId);
+
+    CheckRecordVo findOne(Long id, String examNumber);
 }

+ 1 - 1
src/main/java/cn/com/qmth/print/manage/service/ExamStudentService.java

@@ -13,7 +13,7 @@ import java.util.List;
 
 public interface ExamStudentService extends IService<ExamStudentEntity> {
 
-    ExamStudentEntity findByExamIdAndExamNumber(Long examId, String startNumber);
+    ExamStudentEntity findByExamIdAndExamNumber(Long examId, String examNumber);
 
     Long findSortNoByExamIdAndGroupTypeAndSort(Long examId, GroupType type, String groupName, boolean isAse);
 

+ 42 - 15
src/main/java/cn/com/qmth/print/manage/service/impl/BreakRecordServiceImpl.java

@@ -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);
+    }
 }

+ 13 - 0
src/main/java/cn/com/qmth/print/manage/service/impl/CheckRecordServiceImpl.java

@@ -172,4 +172,17 @@ public class CheckRecordServiceImpl extends ServiceImpl<CheckRecordDao, CheckRec
         updateWrapper.lambda().eq(CheckRecordEntity::getExamId, examId);
         this.remove(updateWrapper);
     }
+
+    @Override
+    public CheckRecordVo findOne(Long id, String examNumber) {
+        CheckRecordEntity 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 CheckRecordVo(entity, student);
+    }
 }

+ 23 - 16
src/main/java/cn/com/qmth/print/manage/service/impl/ExamStudentServiceImpl.java

@@ -1,5 +1,24 @@
 package cn.com.qmth.print.manage.service.impl;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.StringJoiner;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.web.multipart.MultipartFile;
+
 import cn.com.qmth.print.manage.dao.ExamDao;
 import cn.com.qmth.print.manage.dao.ExamStudentDao;
 import cn.com.qmth.print.manage.dto.StudentDTO;
@@ -14,6 +33,7 @@ import cn.com.qmth.print.manage.service.ExamStudentService;
 import cn.com.qmth.print.manage.service.query.ExamStudentQuery;
 import cn.com.qmth.print.manage.utils.excel.ExcelError;
 import cn.com.qmth.print.manage.utils.excel.ExcelReader;
+
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -21,19 +41,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.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.stream.Collectors;
 
 @Service
 public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentDao, ExamStudentEntity> implements
@@ -49,17 +56,17 @@ public class ExamStudentServiceImpl extends ServiceImpl<ExamStudentDao, ExamStud
     private ExamDao examDao;
 
     @Override
-    public ExamStudentEntity findByExamIdAndExamNumber(Long examId, String startNumber) {
+    public ExamStudentEntity findByExamIdAndExamNumber(Long examId, String examNumber) {
         if (examId == null) {
             throw new StatusException("examId不能为空");
         }
-        if (StringUtils.isEmpty(startNumber)) {
+        if (StringUtils.isEmpty(examNumber)) {
             throw new StatusException("准考证号不能为空");
         }
         QueryWrapper<ExamStudentEntity> wrapper = new QueryWrapper<>();
         LambdaQueryWrapper<ExamStudentEntity> lw = wrapper.lambda();
         lw.eq(ExamStudentEntity::getExamId, examId);
-        lw.eq(ExamStudentEntity::getExamNumber, startNumber);
+        lw.eq(ExamStudentEntity::getExamNumber, examNumber);
         ExamStudentEntity entity = this.getOne(wrapper);
         return entity;
     }