xiatian hai 8 meses
pai
achega
2b4dc8f9eb

+ 0 - 10
src/main/java/cn/com/qmth/markingaudit/bean/ExamDataQuery.java

@@ -4,14 +4,4 @@ import cn.com.qmth.markingaudit.support.IdPagerQuery;
 
 public class ExamDataQuery extends IdPagerQuery {
 
-    private String schoolCode;
-
-    public String getSchoolCode() {
-        return schoolCode;
-    }
-
-    public void setSchoolCode(String schoolCode) {
-        this.schoolCode = schoolCode;
-    }
-
 }

+ 20 - 0
src/main/java/cn/com/qmth/markingaudit/bean/StudentDataQuery.java

@@ -0,0 +1,20 @@
+package cn.com.qmth.markingaudit.bean;
+
+import javax.validation.constraints.NotNull;
+
+import cn.com.qmth.markingaudit.support.IdPagerQuery;
+
+public class StudentDataQuery extends IdPagerQuery {
+
+    @NotNull(message = "考试ID不能为空")
+    private Integer examId;
+
+    public Integer getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Integer examId) {
+        this.examId = examId;
+    }
+
+}

+ 59 - 0
src/main/java/cn/com/qmth/markingaudit/bean/StudentDataVo.java

@@ -0,0 +1,59 @@
+package cn.com.qmth.markingaudit.bean;
+
+public class StudentDataVo {
+
+    private Integer id;
+
+    // 准考证号
+    private String cardNo;
+
+    // 学号
+    private String studentId;
+
+    // 姓名
+    private String name;
+
+    // 考生状态 0缺考 1正常考试
+    private Integer status;
+
+    public String getCardNo() {
+        return cardNo;
+    }
+
+    public void setCardNo(String cardNo) {
+        this.cardNo = cardNo;
+    }
+
+    public String getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(String studentId) {
+        this.studentId = studentId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+}

+ 11 - 1
src/main/java/cn/com/qmth/markingaudit/controller/MonitorController.java

@@ -3,6 +3,7 @@ package cn.com.qmth.markingaudit.controller;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -11,6 +12,8 @@ import com.qmth.boot.api.annotation.Aac;
 
 import cn.com.qmth.markingaudit.bean.ExamDataQuery;
 import cn.com.qmth.markingaudit.bean.ExamDataVo;
+import cn.com.qmth.markingaudit.bean.StudentDataQuery;
+import cn.com.qmth.markingaudit.bean.StudentDataVo;
 import cn.com.qmth.markingaudit.service.MonitorService;
 import cn.com.qmth.markingaudit.support.AccessInfo;
 import cn.com.qmth.markingaudit.support.CustConstants;
@@ -27,10 +30,17 @@ public class MonitorController {
 
     @ApiOperation(value = "考试数据")
     @PostMapping("examDataSync")
-    public List<ExamDataVo> examData(ExamDataQuery req) throws Exception {
+    public List<ExamDataVo> examData(@Validated ExamDataQuery req) {
         AccessInfo ai = ServletUtil.getAccessInfo();
         req.setSchoolCode(ai.getSchoolCode());
         return monitorService.examData(req);
     }
 
+    @ApiOperation(value = "考生数据")
+    @PostMapping("examineeDataSync")
+    public List<StudentDataVo> studentData(@Validated StudentDataQuery req) {
+        AccessInfo ai = ServletUtil.getAccessInfo();
+        req.setSchoolCode(ai.getSchoolCode());
+        return monitorService.studentData(req);
+    }
 }

+ 6 - 0
src/main/java/cn/com/qmth/markingaudit/dao/MonitorDao.java

@@ -6,9 +6,15 @@ import org.apache.ibatis.annotations.Param;
 
 import cn.com.qmth.markingaudit.bean.ExamDataQuery;
 import cn.com.qmth.markingaudit.bean.ExamDataVo;
+import cn.com.qmth.markingaudit.bean.StudentDataQuery;
+import cn.com.qmth.markingaudit.bean.StudentDataVo;
 
 public interface MonitorDao {
 
     List<ExamDataVo> examData(@Param("req") ExamDataQuery req);
 
+    List<StudentDataVo> studentData(@Param("req") StudentDataQuery req);
+
+    Integer getExamIdByIdAndSchoolCode(@Param("examId") Integer examId, @Param("schoolCode") String schoolCode);
+
 }

+ 4 - 0
src/main/java/cn/com/qmth/markingaudit/service/MonitorService.java

@@ -4,6 +4,8 @@ import java.util.List;
 
 import cn.com.qmth.markingaudit.bean.ExamDataQuery;
 import cn.com.qmth.markingaudit.bean.ExamDataVo;
+import cn.com.qmth.markingaudit.bean.StudentDataQuery;
+import cn.com.qmth.markingaudit.bean.StudentDataVo;
 
 /**
  * 类注释
@@ -12,4 +14,6 @@ public interface MonitorService {
 
     List<ExamDataVo> examData(ExamDataQuery req);
 
+    List<StudentDataVo> studentData(StudentDataQuery req);
+
 }

+ 17 - 0
src/main/java/cn/com/qmth/markingaudit/service/impl/MonitorServiceImpl.java

@@ -8,9 +8,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.alibaba.fastjson.JSONObject;
+import com.qmth.boot.core.exception.StatusException;
 
 import cn.com.qmth.markingaudit.bean.ExamDataQuery;
 import cn.com.qmth.markingaudit.bean.ExamDataVo;
+import cn.com.qmth.markingaudit.bean.StudentDataQuery;
+import cn.com.qmth.markingaudit.bean.StudentDataVo;
 import cn.com.qmth.markingaudit.dao.MonitorDao;
 import cn.com.qmth.markingaudit.service.MonitorService;
 
@@ -40,4 +43,18 @@ public class MonitorServiceImpl implements MonitorService {
         return ret;
     }
 
+    @Override
+    public List<StudentDataVo> studentData(StudentDataQuery req) {
+        checkExamIdValid(req.getExamId(), req.getSchoolCode());
+        List<StudentDataVo> ret = monitorDao.studentData(req);
+        return ret;
+    }
+
+    private void checkExamIdValid(Integer examId, String schoolCode) {
+        Integer id = monitorDao.getExamIdByIdAndSchoolCode(examId, schoolCode);
+        if (id == null) {
+            throw new StatusException("无效的考试id");
+        }
+    }
+
 }

+ 9 - 0
src/main/java/cn/com/qmth/markingaudit/support/IdPagerQuery.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
 
 public class IdPagerQuery {
 
+    private String schoolCode;
+
     @ApiModelProperty(value = "起始id")
     protected Integer startId;
 
@@ -36,4 +38,11 @@ public class IdPagerQuery {
         this.pageSize = pageSize;
     }
 
+    public String getSchoolCode() {
+        return schoolCode;
+    }
+
+    public void setSchoolCode(String schoolCode) {
+        this.schoolCode = schoolCode;
+    }
 }

+ 18 - 0
src/main/resources/mapper/MonitorMapper.xml

@@ -1,6 +1,13 @@
 <?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.markingaudit.dao.MonitorDao">
+	<select id="getExamIdByIdAndSchoolCode" resultType="int">
+		select t.id
+		from eb_exam t 
+		left join b_school s on t.school_id=s.id
+		where s.code=#{schoolCode}
+		and t.id=#{examId}
+	</select>
 	<select id="examData" resultType="cn.com.qmth.markingaudit.bean.ExamDataVo">
 		select t.id,t.name,t.type kind,t.exam_time,t.mark_start_time start_time,t.mark_end_time end_time,t.create_time,t.sas_config
 		from eb_exam t 
@@ -10,4 +17,15 @@
 		order by t.id
 		limit #{req.pageSize}
 	</select>
+	
+	<select id="studentData" resultType="cn.com.qmth.markingaudit.bean.StudentDataVo">
+		select t.id,t.name,t.exam_number cardNo,t.student_code studentId,
+		(case when t.is_absent=0 and t.is_upload=1 then 1 else 0 end) status
+		from eb_exam_student t 
+		where t.exam_id=#{req.examId}
+		and t.id&gt;=#{req.startId}
+		order by t.id
+		limit #{req.pageSize}
+	</select>
+	
 </mapper>