فهرست منبع

批次管理-分页查询

xiaof 3 سال پیش
والد
کامیت
68cd0bafbf

+ 6 - 0
src/main/java/cn/com/qmth/print/manage/dao/ExamDao.java

@@ -2,8 +2,14 @@ package cn.com.qmth.print.manage.dao;
 
 import cn.com.qmth.print.manage.entity.ExamEntity;
 
+import cn.com.qmth.print.manage.service.query.ExamQuery;
+import cn.com.qmth.print.manage.vo.ExamVo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 
 public interface ExamDao extends BaseMapper<ExamEntity> {
 
+    IPage<ExamVo> pageExam(@Param("page") Page<ExamVo> page, @Param("query") ExamQuery query);
 }

+ 4 - 0
src/main/java/cn/com/qmth/print/manage/service/BreakRecordService.java

@@ -7,6 +7,8 @@ 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 examId, String startNumber);
@@ -14,4 +16,6 @@ public interface BreakRecordService extends IService<BreakRecordEntity> {
     BreakRecordVo end(Long id, Long examId, String endNumber);
 
     IPage<BreakRecordEntity> pageQuery(RecordQuery query);
+
+    List<BreakRecordEntity> listByExamId(Long examId);
 }

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

@@ -8,6 +8,8 @@ import cn.com.qmth.print.manage.vo.CheckRecordVo;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 public interface CheckRecordService extends IService<CheckRecordEntity> {
 
     CheckRecordVo start(Long examId, String startNumber);
@@ -18,4 +20,5 @@ public interface CheckRecordService extends IService<CheckRecordEntity> {
 
     IPage<CheckRecordEntity> pageQuery(RecordQuery query);
 
+    List<CheckRecordEntity> listByExamId(Long examId);
 }

+ 8 - 0
src/main/java/cn/com/qmth/print/manage/service/impl/BreakRecordServiceImpl.java

@@ -1,6 +1,7 @@
 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;
@@ -109,4 +110,11 @@ public class BreakRecordServiceImpl extends ServiceImpl<BreakRecordDao, BreakRec
         Page<BreakRecordEntity> page = new Page<>(query.getPageNumber(), query.getPageSize());
         return breakRecordDao.selectPage(page, wrapper);
     }
+
+    @Override
+    public List<BreakRecordEntity> listByExamId(Long examId) {
+        QueryWrapper<BreakRecordEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(BreakRecordEntity::getExamId, examId);
+        return this.list(queryWrapper);
+    }
 }

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

@@ -1,6 +1,7 @@
 package cn.com.qmth.print.manage.service.impl;
 
 import java.util.Date;
+import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -133,4 +134,11 @@ public class CheckRecordServiceImpl extends ServiceImpl<CheckRecordDao, CheckRec
         Page<CheckRecordEntity> page = new Page<>(query.getPageNumber(), query.getPageSize());
         return checkRecordDao.selectPage(page, wrapper);
     }
+
+    @Override
+    public List<CheckRecordEntity> listByExamId(Long examId) {
+        QueryWrapper<CheckRecordEntity> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(CheckRecordEntity::getExamId, examId);
+        return this.list(queryWrapper);
+    }
 }

+ 42 - 6
src/main/java/cn/com/qmth/print/manage/service/impl/ExamServiceImpl.java

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

+ 10 - 0
src/main/java/cn/com/qmth/print/manage/vo/ExamVo.java

@@ -12,6 +12,8 @@ public class ExamVo extends ExamEntity {
 
     private Integer checkNormalLCount;
 
+    private Integer checkErrorCount;
+
     private Integer breakCount;
 
     private Integer breakNormalLCount;
@@ -48,6 +50,14 @@ public class ExamVo extends ExamEntity {
         this.checkNormalLCount = checkNormalLCount;
     }
 
+    public Integer getCheckErrorCount() {
+        return checkErrorCount;
+    }
+
+    public void setCheckErrorCount(Integer checkErrorCount) {
+        this.checkErrorCount = checkErrorCount;
+    }
+
     public Integer getBreakCount() {
         return breakCount;
     }

+ 21 - 0
src/main/resources/mapper/ExamDao.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.com.qmth.print.manage.dao.ExamDao">
+    <select id="pageExam" resultType="cn.com.qmth.print.manage.vo.ExamVo">
+        SELECT
+            pe.id, pe.enable, po.name orgName
+        FROM
+            pm_exam pe
+                LEFT JOIN
+            pm_org po ON pe.org_id = po.id
+        <where>
+            pe.enable = #{query.enable}
+            <if test="query.name != null and query.name != ''">
+                and pe.name = #{query.name}
+            </if>
+            <if test="query.orgId != null and query.orgId != ''">
+                and pe.name = #{query.orgId}
+            </if>
+        </where>
+    </select>
+</mapper>