Browse Source

阅卷数据

xiatian 8 months ago
parent
commit
9d0073048f

+ 41 - 0
src/main/java/cn/com/qmth/markingaudit/bean/MarkingScoreDataQuery.java

@@ -0,0 +1,41 @@
+package cn.com.qmth.markingaudit.bean;
+
+import javax.validation.constraints.NotNull;
+
+import cn.com.qmth.markingaudit.support.IdPagerQuery;
+
+public class MarkingScoreDataQuery extends IdPagerQuery {
+
+    private String schoolCode;
+
+    @NotNull(message = "考试ID不能为空")
+    private Integer examId;
+
+    @NotNull(message = "科目代码不能为空")
+    private String subjectCode;
+
+    public Integer getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Integer examId) {
+        this.examId = examId;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public String getSchoolCode() {
+        return schoolCode;
+    }
+
+    public void setSchoolCode(String schoolCode) {
+        this.schoolCode = schoolCode;
+    }
+
+}

+ 38 - 0
src/main/java/cn/com/qmth/markingaudit/bean/MarkingScoreDataVo.java

@@ -0,0 +1,38 @@
+package cn.com.qmth.markingaudit.bean;
+
+import java.util.List;
+
+public class MarkingScoreDataVo {
+
+    private Integer id;
+
+    // 准考证号
+    private String carNo;
+
+    List<MarkingScoreInfo> examInfo;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getCarNo() {
+        return carNo;
+    }
+
+    public void setCarNo(String carNo) {
+        this.carNo = carNo;
+    }
+
+    public List<MarkingScoreInfo> getExamInfo() {
+        return examInfo;
+    }
+
+    public void setExamInfo(List<MarkingScoreInfo> examInfo) {
+        this.examInfo = examInfo;
+    }
+
+}

+ 80 - 0
src/main/java/cn/com/qmth/markingaudit/bean/MarkingScoreInfo.java

@@ -0,0 +1,80 @@
+package cn.com.qmth.markingaudit.bean;
+
+public class MarkingScoreInfo {
+
+    private Integer studentId;
+
+    // 大题名
+    private String majorName;
+
+    // 大题号
+    private String majorNo;
+
+    // 小题号
+    private String minorNo;
+
+    // 得分
+    private Integer score;
+
+    private String createTime;
+
+    // 操作账号id
+    private Integer id;
+
+    public String getMajorName() {
+        return majorName;
+    }
+
+    public void setMajorName(String majorName) {
+        this.majorName = majorName;
+    }
+
+    public String getMajorNo() {
+        return majorNo;
+    }
+
+    public void setMajorNo(String majorNo) {
+        this.majorNo = majorNo;
+    }
+
+    public String getMinorNo() {
+        return minorNo;
+    }
+
+    public void setMinorNo(String minorNo) {
+        this.minorNo = minorNo;
+    }
+
+    public Integer getScore() {
+        return score;
+    }
+
+    public void setScore(Integer score) {
+        this.score = score;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+
+}

+ 10 - 0
src/main/java/cn/com/qmth/markingaudit/controller/MonitorController.java

@@ -12,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.MarkingScoreDataQuery;
+import cn.com.qmth.markingaudit.bean.MarkingScoreDataVo;
 import cn.com.qmth.markingaudit.bean.QuestionDataQuery;
 import cn.com.qmth.markingaudit.bean.QuestionDataVo;
 import cn.com.qmth.markingaudit.bean.StudentDataQuery;
@@ -63,4 +65,12 @@ public class MonitorController {
         req.setSchoolCode(ai.getSchoolCode());
         return monitorService.subjectData(req);
     }
+
+    @ApiOperation(value = "阅卷数据")
+    @PostMapping("scoringOperationDataSync")
+    public List<MarkingScoreDataVo> markingScoreData(@Validated MarkingScoreDataQuery req) {
+        AccessInfo ai = ServletUtil.getAccessInfo();
+        req.setSchoolCode(ai.getSchoolCode());
+        return monitorService.markingScoreData(req);
+    }
 }

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

@@ -6,6 +6,9 @@ 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.MarkingScoreDataQuery;
+import cn.com.qmth.markingaudit.bean.MarkingScoreDataVo;
+import cn.com.qmth.markingaudit.bean.MarkingScoreInfo;
 import cn.com.qmth.markingaudit.bean.QuestionDataQuery;
 import cn.com.qmth.markingaudit.bean.QuestionDataVo;
 import cn.com.qmth.markingaudit.bean.StudentDataQuery;
@@ -25,4 +28,8 @@ public interface MonitorDao {
 
     List<SubjectDataVo> subjectData(@Param("req") SubjectDataQuery req);
 
+    List<MarkingScoreDataVo> markingScoreData(@Param("req") MarkingScoreDataQuery req);
+
+    List<MarkingScoreInfo> markingScoreInfo(@Param("ids") List<Integer> ids);
+
 }

+ 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.MarkingScoreDataQuery;
+import cn.com.qmth.markingaudit.bean.MarkingScoreDataVo;
 import cn.com.qmth.markingaudit.bean.QuestionDataQuery;
 import cn.com.qmth.markingaudit.bean.QuestionDataVo;
 import cn.com.qmth.markingaudit.bean.StudentDataQuery;
@@ -24,4 +26,6 @@ public interface MonitorService {
 
     List<QuestionDataVo> questionData(QuestionDataQuery req);
 
+    List<MarkingScoreDataVo> markingScoreData(MarkingScoreDataQuery req);
+
 }

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

@@ -1,6 +1,10 @@
 package cn.com.qmth.markingaudit.service.impl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -12,6 +16,9 @@ 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.MarkingScoreDataQuery;
+import cn.com.qmth.markingaudit.bean.MarkingScoreDataVo;
+import cn.com.qmth.markingaudit.bean.MarkingScoreInfo;
 import cn.com.qmth.markingaudit.bean.QuestionDataQuery;
 import cn.com.qmth.markingaudit.bean.QuestionDataVo;
 import cn.com.qmth.markingaudit.bean.StudentDataQuery;
@@ -72,4 +79,27 @@ public class MonitorServiceImpl implements MonitorService {
         return monitorDao.questionData(req);
     }
 
+    @Override
+    public List<MarkingScoreDataVo> markingScoreData(MarkingScoreDataQuery req) {
+        checkExamIdValid(req.getExamId(), req.getSchoolCode());
+        List<MarkingScoreDataVo> ret = monitorDao.markingScoreData(req);
+        if (CollectionUtils.isNotEmpty(ret)) {
+            List<Integer> ids = ret.stream().map(e -> e.getId()).collect(Collectors.toList());
+            List<MarkingScoreInfo> infos = monitorDao.markingScoreInfo(ids);
+            Map<Integer, List<MarkingScoreInfo>> map = new HashMap<>();
+            for (MarkingScoreInfo info : infos) {
+                List<MarkingScoreInfo> tem = map.get(info.getStudentId());
+                if (tem == null) {
+                    tem = new ArrayList<>();
+                    map.put(info.getStudentId(), tem);
+                }
+                tem.add(info);
+            }
+            for (MarkingScoreDataVo vo : ret) {
+                vo.setExamInfo(map.get(vo.getId()));
+            }
+        }
+        return ret;
+    }
+
 }

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

@@ -1,5 +1,7 @@
 package cn.com.qmth.markingaudit.support;
 
+import javax.validation.constraints.Max;
+
 import io.swagger.annotations.ApiModelProperty;
 
 public class IdPagerQuery {
@@ -10,6 +12,7 @@ public class IdPagerQuery {
     protected Integer startId;
 
     @ApiModelProperty(value = "每页条数")
+    @Max(value = 500, message = "每页条数不能大于500")
     protected Integer pageSize;
 
     public Integer getStartId() {

+ 3 - 0
src/main/java/cn/com/qmth/markingaudit/support/PagerQuery.java

@@ -1,5 +1,7 @@
 package cn.com.qmth.markingaudit.support;
 
+import javax.validation.constraints.Max;
+
 import io.swagger.annotations.ApiModelProperty;
 
 public class PagerQuery {
@@ -10,6 +12,7 @@ public class PagerQuery {
     protected Integer pageNumber;
 
     @ApiModelProperty(value = "每页条数")
+    @Max(value = 500, message = "每页条数不能大于500")
     protected Integer pageSize;
 
     public Integer getPageNumber() {

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

@@ -44,4 +44,24 @@
 		order by t.code
 		 limit ${(req.pageNumber-1)*req.pageSize},#{req.pageSize}
 	</select>
+	
+	<select id="markingScoreData" resultType="cn.com.qmth.markingaudit.bean.MarkingScoreDataVo">
+		select t.id,t.name,t.exam_number cardNo
+		from eb_exam_student t 
+		where t.exam_id=#{req.examId}
+		and t.subject_code=#{req.subjectCode}
+		and t.id&gt;=#{req.startId}
+		order by t.id
+		limit #{req.pageSize}
+	</select>
+	<select id="markingScoreInfo" resultType="cn.com.qmth.markingaudit.bean.MarkingScoreInfo">
+		select t.id,t.name,t.exam_number cardNo//todo
+		from eb_exam_student t 
+		where 1=1
+		and t.id in
+		<foreach collection="ids" item="item"
+			index="index" separator="," open="(" close=")">
+			#{item}
+		</foreach>
+	</select>
 </mapper>