package cn.com.qmth.scancentral.controller.admin; import cn.com.qmth.scancentral.bean.AssignedQueryDomain; import cn.com.qmth.scancentral.bean.User; import cn.com.qmth.scancentral.controller.BaseController; import cn.com.qmth.scancentral.service.StudentService; import cn.com.qmth.scancentral.vo.answerquery.AnswerQueryVo; import cn.com.qmth.scancentral.vo.assginedcheck.AssginedTaskResult; import cn.com.qmth.scancentral.vo.assginedcheck.AssignedCheckExport; import cn.com.qmth.scancentral.vo.assginedcheck.AssignedTaskSaveVo; import cn.com.qmth.scancentral.vo.task.TaskStatusVo; import com.qmth.boot.api.annotation.Aac; import com.qmth.boot.api.constant.ApiConstant; import com.qmth.boot.core.collection.PageResult; import com.qmth.boot.tools.excel.ExcelWriter; import com.qmth.boot.tools.excel.enums.ExcelType; import com.qmth.boot.tools.iterator.PageListIterator; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.Collection; import java.util.List; @RestController @Api(tags = "人工绑定校验接口") @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/admin/assigned/check") @Aac(strict = false, auth = true) public class AssignedCheckController extends BaseController { @Autowired private StudentService studentService; @ApiOperation(value = "列表") @RequestMapping(value = "/list", method = RequestMethod.POST) public PageResult list(@Validated AssignedQueryDomain query) { if (query.getAssignedCheckCount() == null || query.getAssignedCheckCount() <= 1) { query.setAssignedCheckCount(1); } query.setAssigned(true); return studentService.queryAssignedCheckPage(query); } @ApiOperation(value = "导出") @RequestMapping(value = "/export", method = RequestMethod.POST) public void export(@Validated AssignedQueryDomain query, HttpServletResponse response) throws IOException { AssignedQueryDomain query1 = new AssignedQueryDomain(); query1.setExamId(query.getExamId()); query1.setAssigned(true); query1.setAssignedSuspect(true); String fileName = URLEncoder.encode("人工绑定", "UTF-8"); response.setHeader("Content-Disposition", "inline; filename=" + fileName + ".xlsx"); response.setContentType("application/vnd.ms-excel"); User user = getAccessUser(); ExcelWriter writer = ExcelWriter.create(ExcelType.XLSX); PageListIterator iterator = new PageListIterator(100) { @Override public Collection getPageList(int pageNumber, int pageSize) { query1.setPageNumber(pageNumber); query1.setPageSize(pageSize); return studentService.exportAssignedCheckPage(query1); } }; writer.writeObjects("用户", null, AssignedCheckExport.class, iterator); writer.output(response.getOutputStream()); } @ApiOperation(value = "审核员任务获取") @RequestMapping(value = "task/get", method = RequestMethod.POST) public AnswerQueryVo get(@RequestParam Long examId) { User user = getAccessUser(); return studentService.getAssignedCheckTask(examId, user.getAccount()); } @ApiOperation(value = "审核员任务历史") @RequestMapping(value = "task/history", method = RequestMethod.POST) public List history(@RequestParam Long id, @RequestParam Long pageSize) { User user = getAccessUser(); return studentService.getAssignedCheckTaskHistory(id, pageSize, user); } @ApiOperation(value = "审核员任务提交") @RequestMapping(value = "task/save", method = RequestMethod.POST) public AssignedTaskSaveVo submit(@Validated @RequestBody AssginedTaskResult result) { User user = getAccessUser(); return studentService.submitAssignedCheckTask(result, user); } @ApiOperation(value = "答题卡扫描图片检查任务状态") @PostMapping("task/status") public TaskStatusVo status(@RequestParam Long examId) { User user = getAccessUser(); return studentService.getAssignedCheckTaskStatus(examId, user); } @ApiOperation(value = "审核员任务释放") @PostMapping("task/release") public Object release(@RequestParam Long examId) { User user = getAccessUser(); studentService.releaseAssignedCheckTaskByUser(examId, user.getAccount()); return success(true); } }