|
@@ -1,19 +1,20 @@
|
|
|
package cn.com.qmth.print.manage.service.impl;
|
|
|
|
|
|
import cn.com.qmth.print.manage.dao.ExamDao;
|
|
|
-import cn.com.qmth.print.manage.entity.ExamEntity;
|
|
|
-import cn.com.qmth.print.manage.entity.ExamUserRelationEntity;
|
|
|
-import cn.com.qmth.print.manage.service.ExamService;
|
|
|
-import cn.com.qmth.print.manage.service.ExamUserRelationService;
|
|
|
+import cn.com.qmth.print.manage.entity.*;
|
|
|
+import cn.com.qmth.print.manage.enums.RecordStatus;
|
|
|
+import cn.com.qmth.print.manage.service.*;
|
|
|
import cn.com.qmth.print.manage.service.query.ExamQuery;
|
|
|
import cn.com.qmth.print.manage.vo.ExamVo;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
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 org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
@@ -21,7 +22,16 @@ import java.util.List;
|
|
|
public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements ExamService {
|
|
|
|
|
|
@Autowired
|
|
|
- ExamUserRelationService examUserRelationService;
|
|
|
+ private ExamUserRelationService examUserRelationService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ExamStudentService examStudentService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CheckRecordService checkRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private BreakRecordService breakRecordService;
|
|
|
|
|
|
@Override
|
|
|
public List<ExamEntity> listByOrgId(Long orgId) {
|
|
@@ -57,6 +67,32 @@ public class ExamServiceImpl extends ServiceImpl<ExamDao, ExamEntity> implements
|
|
|
|
|
|
@Override
|
|
|
public IPage<ExamVo> pageQuery(ExamQuery query) {
|
|
|
- return null;
|
|
|
+ Page<ExamVo> page = new Page<>(query.getPageNumber(), query.getPageSize());
|
|
|
+ IPage<ExamVo> iPage = this.baseMapper.pageExam(page, query);
|
|
|
+ for (ExamVo record : iPage.getRecords()) {
|
|
|
+ // 考生总量
|
|
|
+ List<ExamStudentEntity> studentEntityList = examStudentService.listByExamId(record.getId());
|
|
|
+ record.setStudentCount(studentEntityList.size());
|
|
|
+
|
|
|
+ // 校验数量
|
|
|
+ List<CheckRecordEntity> checkRecordEntities = checkRecordService.listByExamId(record.getId());
|
|
|
+ record.setCheckCount(checkRecordEntities.size());
|
|
|
+ if(!CollectionUtils.isEmpty(checkRecordEntities)){
|
|
|
+ long checkNormalLCount = checkRecordEntities.stream().filter(m->m.getStatus().equals(RecordStatus.NORMAL)).count();
|
|
|
+ record.setCheckNormalLCount(Math.toIntExact(checkNormalLCount));
|
|
|
+
|
|
|
+ long checkErrorLCount = checkRecordEntities.stream().filter(m->m.getStatus().equals(RecordStatus.ERROR)).count();
|
|
|
+ record.setCheckErrorCount(Math.toIntExact(checkErrorLCount));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 中断数量
|
|
|
+ List<BreakRecordEntity> breakRecordEntities = breakRecordService.listByExamId(record.getId());
|
|
|
+ record.setBreakCount(breakRecordEntities.size());
|
|
|
+ if(!CollectionUtils.isEmpty(breakRecordEntities)){
|
|
|
+ long breakNormalLCount = breakRecordEntities.stream().filter(m->m.getStatus().equals(RecordStatus.NORMAL)).count();
|
|
|
+ record.setBreakNormalLCount(Math.toIntExact(breakNormalLCount));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return iPage;
|
|
|
}
|
|
|
}
|