123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package cn.com.qmth.scancentral.controller.admin;
- import java.io.File;
- import java.io.FileInputStream;
- import java.util.List;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import com.qmth.boot.api.annotation.Aac;
- import com.qmth.boot.api.constant.ApiConstant;
- import com.qmth.boot.core.exception.ParameterException;
- import cn.com.qmth.scancentral.controller.BaseController;
- import cn.com.qmth.scancentral.service.DataExportTaskService;
- import cn.com.qmth.scancentral.service.SubjectService;
- import cn.com.qmth.scancentral.util.Calculator;
- import cn.com.qmth.scancentral.vo.subject.DataExportProgressVo;
- import cn.com.qmth.scancentral.vo.subject.DataExportTaskVo;
- import cn.com.qmth.scancentral.vo.subject.ScanProgressVo;
- import cn.com.qmth.scancentral.vo.subject.SubjectBreachVo;
- import cn.com.qmth.scancentral.vo.subject.SubjectCustStatusVo;
- import cn.com.qmth.scancentral.vo.subject.TaskIdVo;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- @RestController
- @Api(tags = "科目接口")
- @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/admin/subject")
- @Aac(strict = false, auth = true)
- public class SubjectController extends BaseController {
- @Autowired
- private SubjectService subjectService;
- @Autowired
- private DataExportTaskService dataExportTaskService;
- @ApiOperation(value = "科目扫描进度查询")
- @PostMapping("scan/progress")
- public ScanProgressVo scanProgress(@RequestParam Long examId, @RequestParam(required = false) String subjectCode) {
- return subjectService.scanProgress(examId, subjectCode);
- }
- @ApiOperation(value = "查询科目违纪导入")
- @PostMapping("breach/list")
- public List<SubjectBreachVo> breachList(@RequestParam Long examId) {
- return subjectService.breachList(examId);
- }
- @ApiOperation(value = "查询科目考生状态导入")
- @PostMapping("cust-status/list")
- public List<SubjectCustStatusVo> custStatusList(@RequestParam Long examId) {
- return subjectService.custStatusList(examId);
- }
- @ApiOperation(value = "导出扫描答案DBF")
- @PostMapping("answer-data/export")
- public TaskIdVo answerDataExport(@RequestParam Long examId, @RequestParam String subjectCode) {
- return subjectService.answerDataExport(examId, subjectCode);
- }
- @ApiOperation(value = "导出打包DBF")
- @PostMapping("slice-data/export")
- public TaskIdVo sliceDataExport(@RequestParam Long examId, @RequestParam String subjectCode) {
- return subjectService.sliceDataExport(examId, subjectCode);
- }
- @ApiOperation(value = "导出扫描答案DBF、打包DBF下载进度查询")
- @PostMapping("data/progress")
- public DataExportProgressVo dataProgress(@RequestParam String taskId) {
- DataExportTaskVo vo = dataExportTaskService.getTask(taskId);
- if (vo == null) {
- throw new ParameterException("未找到导出任务");
- }
- DataExportProgressVo ret = new DataExportProgressVo();
- ret.setSuccess(vo.getSuccess());
- ret.setErrMsg(vo.getErrMsg());
- ret.setProgress(Calculator.percentageDouble(vo.getProgressCount(), vo.getTotalCount()));
- return ret;
- }
- @ApiOperation(value = "扫描答案DBF、打包DBF下载")
- @PostMapping("data/down")
- public void dataDown(HttpServletResponse response, @RequestParam String taskId) throws Exception {
- DataExportTaskVo vo = dataExportTaskService.getTask(taskId);
- if (vo == null) {
- throw new ParameterException("未找到导出任务");
- }
- if (vo.getSuccess() == null || !vo.getSuccess()) {
- throw new ParameterException("导出任务失败");
- }
- if (vo.getTotalCount() != (vo.getProgressCount())) {
- throw new ParameterException("导出任务未结束");
- }
- exportFile(vo.getFileName(), new FileInputStream(new File(vo.getFilePath())));
- }
- }
|