|
@@ -3,12 +3,10 @@ package cn.com.qmth.scancentral.controller.admin;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.net.URLEncoder;
|
|
import java.net.URLEncoder;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
-import java.util.Arrays;
|
|
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
@@ -41,7 +39,6 @@ import cn.com.qmth.scancentral.bean.AnswerQueryDomain;
|
|
import cn.com.qmth.scancentral.controller.BaseController;
|
|
import cn.com.qmth.scancentral.controller.BaseController;
|
|
import cn.com.qmth.scancentral.entity.ExamEntity;
|
|
import cn.com.qmth.scancentral.entity.ExamEntity;
|
|
import cn.com.qmth.scancentral.entity.SubjectEntity;
|
|
import cn.com.qmth.scancentral.entity.SubjectEntity;
|
|
-import cn.com.qmth.scancentral.enums.ConditionType;
|
|
|
|
import cn.com.qmth.scancentral.enums.ExamStatus;
|
|
import cn.com.qmth.scancentral.enums.ExamStatus;
|
|
import cn.com.qmth.scancentral.enums.ExamStatusCheckMode;
|
|
import cn.com.qmth.scancentral.enums.ExamStatusCheckMode;
|
|
import cn.com.qmth.scancentral.enums.GroupType;
|
|
import cn.com.qmth.scancentral.enums.GroupType;
|
|
@@ -53,13 +50,15 @@ import cn.com.qmth.scancentral.service.StudentService;
|
|
import cn.com.qmth.scancentral.service.SubjectService;
|
|
import cn.com.qmth.scancentral.service.SubjectService;
|
|
import cn.com.qmth.scancentral.task.thread.ExamStatusImportThread;
|
|
import cn.com.qmth.scancentral.task.thread.ExamStatusImportThread;
|
|
import cn.com.qmth.scancentral.task.thread.ExamStatusResetThread;
|
|
import cn.com.qmth.scancentral.task.thread.ExamStatusResetThread;
|
|
|
|
+import cn.com.qmth.scancentral.util.ResouceUtil;
|
|
import cn.com.qmth.scancentral.vo.AbsentInfoVo;
|
|
import cn.com.qmth.scancentral.vo.AbsentInfoVo;
|
|
import cn.com.qmth.scancentral.vo.AbsentManualImportVo;
|
|
import cn.com.qmth.scancentral.vo.AbsentManualImportVo;
|
|
import cn.com.qmth.scancentral.vo.AbsentQueryVo;
|
|
import cn.com.qmth.scancentral.vo.AbsentQueryVo;
|
|
import cn.com.qmth.scancentral.vo.ExamStatusSaveVo;
|
|
import cn.com.qmth.scancentral.vo.ExamStatusSaveVo;
|
|
-import cn.com.qmth.scancentral.vo.OmrConditionsVo;
|
|
|
|
import cn.com.qmth.scancentral.vo.UpdateTimeVo;
|
|
import cn.com.qmth.scancentral.vo.UpdateTimeVo;
|
|
import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo;
|
|
import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo;
|
|
|
|
+import cn.com.qmth.scancentral.vo.student.StudentExamRoomVo;
|
|
|
|
+import cn.com.qmth.scancentral.vo.student.StudentVo;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
@@ -206,6 +205,49 @@ public class CheckController extends BaseController {
|
|
return studentService.query(query);
|
|
return studentService.query(query);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiOperation(value = "缺考校验按考生导出")
|
|
|
|
+ @PostMapping(value = "exam-status/student/export")
|
|
|
|
+ public void studentExport(@Validated AnswerQueryDomain query, HttpServletResponse response) throws IOException {
|
|
|
|
+ String fileName = URLEncoder.encode("按考生导出", "UTF-8");
|
|
|
|
+ response.setHeader("Content-Disposition", "inline; filename=" + fileName + ".xlsx");
|
|
|
|
+ response.setContentType("application/vnd.ms-excel");
|
|
|
|
+ ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX);
|
|
|
|
+ PageListIterator<StudentVo> iterator = new PageListIterator<StudentVo>(5000) {
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Collection<StudentVo> getPageList(int pageNumber, int pageSize) {
|
|
|
|
+ query.setPageNumber(pageNumber);
|
|
|
|
+ query.setPageSize(pageSize);
|
|
|
|
+ return studentService.studentExportList(query);
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ writer.writeObjects("按考生导出", null, StudentVo.class, iterator);
|
|
|
|
+ writer.output(response.getOutputStream());
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @ApiOperation(value = "缺考校验按考场导出")
|
|
|
|
+ @PostMapping(value = "exam-status/exam-room/export")
|
|
|
|
+ public void studentExamRoomExport(@Validated AnswerQueryDomain query, HttpServletResponse response)
|
|
|
|
+ throws IOException {
|
|
|
|
+ String fileName = URLEncoder.encode("按考场导出", "UTF-8");
|
|
|
|
+ response.setHeader("Content-Disposition", "inline; filename=" + fileName + ".xlsx");
|
|
|
|
+ response.setContentType("application/vnd.ms-excel");
|
|
|
|
+ ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX);
|
|
|
|
+ PageListIterator<StudentExamRoomVo> iterator = new PageListIterator<StudentExamRoomVo>(5000) {
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Collection<StudentExamRoomVo> getPageList(int pageNumber, int pageSize) {
|
|
|
|
+ query.setPageNumber(pageNumber);
|
|
|
|
+ query.setPageSize(pageSize);
|
|
|
|
+ return studentService.studentExamRoomExportList(query);
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ writer.writeObjects("按考场导出", null, StudentExamRoomVo.class, iterator);
|
|
|
|
+ writer.output(response.getOutputStream());
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
@ApiOperation(value = "缺考校验提交")
|
|
@ApiOperation(value = "缺考校验提交")
|
|
@RequestMapping(value = "exam-status/save", method = RequestMethod.POST)
|
|
@RequestMapping(value = "exam-status/save", method = RequestMethod.POST)
|
|
public ExamStatusSaveVo examStatusSave(@RequestParam Long id, @RequestParam ExamStatus examStatus) {
|
|
public ExamStatusSaveVo examStatusSave(@RequestParam Long id, @RequestParam ExamStatus examStatus) {
|
|
@@ -213,6 +255,12 @@ public class CheckController extends BaseController {
|
|
return ExamStatusSaveVo.create(examStatus);
|
|
return ExamStatusSaveVo.create(examStatus);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @ApiOperation(value = "缺考校验导入模版下载")
|
|
|
|
+ @PostMapping("exam-status/template")
|
|
|
|
+ public void breachTemplate(HttpServletResponse response) {
|
|
|
|
+ exportFile("缺考校验导入模板.txt", ResouceUtil.getStream("templates/absent-import.txt"));
|
|
|
|
+ }
|
|
|
|
+
|
|
@ApiOperation(value = "缺考校验导入")
|
|
@ApiOperation(value = "缺考校验导入")
|
|
@RequestMapping(value = "exam-status/import", method = RequestMethod.POST)
|
|
@RequestMapping(value = "exam-status/import", method = RequestMethod.POST)
|
|
public JSONObject examStatusImportFile(@RequestParam Long examId, @RequestParam ExamStatusCheckMode mode,
|
|
public JSONObject examStatusImportFile(@RequestParam Long examId, @RequestParam ExamStatusCheckMode mode,
|