xiatian 9 órája
szülő
commit
639e06884b

+ 145 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/bean/StudentCheckVo.java

@@ -0,0 +1,145 @@
+package cn.com.qmth.stmms.biz.exam.bean;
+
+import java.util.Date;
+
+import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
+import io.swagger.annotations.ApiModelProperty;
+
+public class StudentCheckVo {
+
+    @ApiModelProperty("studentId")
+    private Integer id;
+
+    /**
+     * 科目代码
+     */
+    private String subjectCode;
+
+    /**
+     * 科目名称
+     */
+    private String subjectName;
+
+    @ApiModelProperty("准考证号")
+    private String examNumber;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("科目")
+    private String subjectText;
+
+    @ApiModelProperty("考点")
+    private String examSite;
+
+    /**
+     * 学号
+     */
+    @ApiModelProperty("学号")
+    private String studentCode;
+
+    @ApiModelProperty("上传时间")
+    private Date uploadTime;
+
+    @ApiModelProperty("扫描批次")
+    private String batchCode;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public String getExamNumber() {
+        return examNumber;
+    }
+
+    public void setExamNumber(String examNumber) {
+        this.examNumber = examNumber;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getSubjectText() {
+        return subjectText;
+    }
+
+    public void setSubjectText(String subjectText) {
+        this.subjectText = subjectText;
+    }
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public Date getUploadTime() {
+        return uploadTime;
+    }
+
+    public void setUploadTime(Date uploadTime) {
+        this.uploadTime = uploadTime;
+    }
+
+    public String getBatchCode() {
+        return batchCode;
+    }
+
+    public void setBatchCode(String batchCode) {
+        this.batchCode = batchCode;
+    }
+
+    public String getExamSite() {
+        return examSite;
+    }
+
+    public void setExamSite(String examSite) {
+        this.examSite = examSite;
+    }
+
+    public static StudentCheckVo of(ExamStudent from) {
+        if (from == null) {
+            return null;
+        }
+        StudentCheckVo ret = new StudentCheckVo();
+        ret.setId(from.getId());
+        ret.setSubjectCode(from.getSubjectCode());
+        ret.setSubjectName(from.getSubjectName());
+        ret.setSubjectText(from.getSubjectCode() + "-" + from.getSubjectName());
+        ret.setStudentCode(from.getStudentCode());
+        ret.setExamNumber(from.getExamNumber());
+        ret.setName(from.getName());
+        ret.setUploadTime(from.getUploadTime());
+        ret.setBatchCode(from.getBatchCode());
+        ret.setExamSite(from.getExamSite());
+        return ret;
+    }
+
+}

+ 80 - 76
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/query/CheckStudentSearchQuery.java

@@ -1,76 +1,80 @@
-package cn.com.qmth.stmms.biz.exam.query;
-
-import org.springframework.data.domain.Sort;
-import org.springframework.data.domain.Sort.Direction;
-
-import cn.com.qmth.stmms.biz.common.BaseQuery;
-import cn.com.qmth.stmms.biz.exam.model.CheckStudent;
-import cn.com.qmth.stmms.common.enums.CheckType;
-
-public class CheckStudentSearchQuery extends BaseQuery<CheckStudent> {
-
-    private Integer examId;
-
-    private String studentId;
-
-    private String subjectCode;
-
-    private String examSite;
-
-    private Boolean checked;
-
-    private CheckType type;
-
-    public void orderByStudentId() {
-        setSort(new Sort(Direction.ASC, "studentId"));
-    }
-
-    public Integer getExamId() {
-        return examId;
-    }
-
-    public void setExamId(Integer examId) {
-        this.examId = examId;
-    }
-
-    public String getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(String studentId) {
-        this.studentId = studentId;
-    }
-
-    public String getSubjectCode() {
-        return subjectCode;
-    }
-
-    public void setSubjectCode(String subjectCode) {
-        this.subjectCode = subjectCode;
-    }
-
-    public Boolean getChecked() {
-        return checked;
-    }
-
-    public void setChecked(Boolean checked) {
-        this.checked = checked;
-    }
-
-    public CheckType getType() {
-        return type;
-    }
-
-    public void setType(CheckType type) {
-        this.type = type;
-    }
-
-    public String getExamSite() {
-        return examSite;
-    }
-
-    public void setExamSite(String examSite) {
-        this.examSite = examSite;
-    }
-
-}
+package cn.com.qmth.stmms.biz.exam.query;
+
+import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Sort.Direction;
+
+import cn.com.qmth.stmms.biz.common.BaseQuery;
+import cn.com.qmth.stmms.biz.exam.model.CheckStudent;
+import cn.com.qmth.stmms.common.enums.CheckType;
+import io.swagger.annotations.ApiModelProperty;
+
+public class CheckStudentSearchQuery extends BaseQuery<CheckStudent> {
+
+    private Integer examId;
+
+    private String studentId;
+
+    @ApiModelProperty("科目")
+    private String subjectCode;
+
+    @ApiModelProperty("考点")
+    private String examSite;
+
+    private Boolean checked;
+
+    @ApiModelProperty("确认类型")
+    private CheckType type;
+
+    public void orderByStudentId() {
+        setSort(new Sort(Direction.ASC, "studentId"));
+    }
+
+    public Integer getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Integer examId) {
+        this.examId = examId;
+    }
+
+    public String getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(String studentId) {
+        this.studentId = studentId;
+    }
+
+    public String getSubjectCode() {
+        return subjectCode;
+    }
+
+    public void setSubjectCode(String subjectCode) {
+        this.subjectCode = subjectCode;
+    }
+
+    public Boolean getChecked() {
+        return checked;
+    }
+
+    public void setChecked(Boolean checked) {
+        this.checked = checked;
+    }
+
+    public CheckType getType() {
+        return type;
+    }
+
+    public void setType(CheckType type) {
+        this.type = type;
+    }
+
+    public String getExamSite() {
+        return examSite;
+    }
+
+    public void setExamSite(String examSite) {
+        this.examSite = examSite;
+    }
+
+}

+ 88 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/api/controller/admin/CheckStudentController.java

@@ -0,0 +1,88 @@
+package cn.com.qmth.stmms.api.controller.admin;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.qmth.boot.core.collection.PageResult;
+
+import cn.com.qmth.stmms.api.controller.BaseApiController;
+import cn.com.qmth.stmms.biz.exam.bean.StudentCheckVo;
+import cn.com.qmth.stmms.biz.exam.model.CheckStudent;
+import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
+import cn.com.qmth.stmms.biz.exam.query.CheckStudentSearchQuery;
+import cn.com.qmth.stmms.biz.exam.query.ExamStudentSearchQuery;
+import cn.com.qmth.stmms.biz.exam.service.CheckStudentService;
+import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
+import cn.com.qmth.stmms.biz.utils.PageUtil;
+import cn.com.qmth.stmms.common.annotation.Logging;
+import cn.com.qmth.stmms.common.enums.CheckType;
+import cn.com.qmth.stmms.common.enums.LogType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@Api(tags = "人工确认")
+@Controller("adminCheckStudentController")
+@RequestMapping("/api/admin/exam/check/student")
+public class CheckStudentController extends BaseApiController {
+
+    @Autowired
+    private ExamStudentService studentService;
+
+    @Autowired
+    private CheckStudentService checkStudentService;
+
+    @ApiOperation(value = "确认类型")
+    @RequestMapping(value = "types", method = RequestMethod.POST)
+    @ResponseBody
+    public List<CheckType> typeList() {
+        return Arrays.asList(CheckType.values());
+    }
+
+    @Logging(menu = "人工确认查询", type = LogType.QUERY)
+    @ApiOperation(value = "人工确认查询")
+    @ResponseBody
+    @RequestMapping(value = "list", method = RequestMethod.POST)
+    public PageResult<StudentCheckVo> list(CheckStudentSearchQuery query) {
+        int examId = getSessionExamId();
+        List<CheckStudent> list = null;
+        if (StringUtils.isNotBlank(query.getSubjectCode())) {
+            list = checkStudentService.findByExamIdAndSubjectCodeAndCheckedAndType(examId, query.getSubjectCode(),
+                    false, CheckType.MANUAL);
+        } else {
+            list = checkStudentService.findByExamIdAndCheckedAndType(examId, false, CheckType.MANUAL);
+        }
+        List<Integer> studentIds = new ArrayList<Integer>();
+        for (CheckStudent c : list) {
+            studentIds.add(c.getStudentId());
+        }
+        if (!list.isEmpty()) {
+            ExamStudentSearchQuery sQuery = new ExamStudentSearchQuery();
+            sQuery.setExamId(examId);
+            sQuery.setPageNumber(query.getPageNumber());
+            sQuery.setPageSize(query.getPageSize());
+            sQuery.setSubjectCode(query.getSubjectCode());
+            sQuery.setExamSite(query.getExamSite());
+            sQuery.setStudentIds(studentIds);
+            List<ExamStudent> studentList = studentService.findByQuery(sQuery).getResult();
+            query.setTotalCount(sQuery.getTotalCount());
+            query.setTotalPage(sQuery.getTotalPage());
+            List<StudentCheckVo> ret = new ArrayList<>();
+            for (ExamStudent student : studentList) {
+                ret.add(StudentCheckVo.of(student));
+            }
+            return PageUtil.of(ret, query);
+        } else {
+            return PageUtil.emptyPage();
+        }
+
+    }
+
+}