package com.qmth.distributed.print.api; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qmth.boot.api.annotation.Aac; import com.qmth.boot.api.annotation.BOOL; import com.qmth.boot.api.constant.ApiConstant; import com.qmth.distributed.print.business.bean.dto.ExamTaskDetailDto; import com.qmth.distributed.print.business.bean.dto.PrintTaskDto; import com.qmth.distributed.print.business.bean.dto.PrintTaskTotalDto; import com.qmth.distributed.print.business.bean.dto.RelatePaperDto; import com.qmth.distributed.print.business.bean.params.ArraysParams; import com.qmth.distributed.print.business.bean.params.DeleteParams; import com.qmth.distributed.print.business.bean.params.PrintPlanParams; import com.qmth.distributed.print.business.bean.params.RelatePaperParam; import com.qmth.distributed.print.business.bean.result.EditResult; import com.qmth.distributed.print.business.entity.ExamDetail; import com.qmth.distributed.print.business.entity.SysUser; import com.qmth.distributed.print.business.entity.TBTask; import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum; import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum; import com.qmth.distributed.print.business.enums.TaskTypeEnum; import com.qmth.distributed.print.business.service.*; import com.qmth.distributed.print.business.templete.execute.AsyncDownloadPdfTempleteService; import com.qmth.distributed.print.business.util.ServletUtil; import com.qmth.distributed.print.common.contant.SystemConstant; import com.qmth.distributed.print.common.enums.ExceptionResultEnum; import com.qmth.distributed.print.common.util.Result; import com.qmth.distributed.print.common.util.ResultUtil; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import java.io.IOException; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; /** *
* 印刷计划管理 前端控制器 *
* * @author xf * @since 2021-03-23 */ @Api(tags = "印刷计划管理Controller") @RestController @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/print") @Aac(auth = BOOL.FALSE) public class ExamPrintPlanController { @Resource private ExamPrintPlanService examPrintPlanService; @Autowired private ExamTaskService examTaskService; @Autowired private ExamTaskDetailService examTaskDetailService; @Autowired private ExamDetailService examDetailService; @Resource TBTaskService tbTaskService; @Resource AsyncDownloadPdfTempleteService asyncDownloadPdfTempleteService; @ApiOperation(value = "印刷计划查询") @RequestMapping(value = "/list", method = RequestMethod.POST) @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)}) public Result findPrintPlanPage(@ApiParam(value = "印刷计划id") @RequestParam(required = false) String printPlanId, @ApiParam(value = "印刷计划状态") @RequestParam(required = false) PrintPlanStatusEnum status, @ApiParam(value = "计划创建时间段开始时间") @RequestParam(required = false) Long startTime, @ApiParam(value = "计划创建时间段结束时间") @RequestParam(required = false) Long endTime, @ApiParam(value = "分页页码", required = true) @RequestParam int pageNumber, @ApiParam(value = "分页数", required = true) @RequestParam int pageSize) { Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString()); return ResultUtil.ok(examPrintPlanService.printPlanPage(schoolId, SystemConstant.convertIdToLong(printPlanId), status, startTime, endTime, pageNumber, pageSize)); } @ApiOperation(value = "印刷计划模糊查询") @RequestMapping(value = "/query", method = RequestMethod.POST) @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)}) public Result findPrintPlanQuery() { return ResultUtil.ok(examPrintPlanService.printPlanBriefQuery()); } @ApiOperation(value = "按类型查询模板") @RequestMapping(value = "/get_template", method = RequestMethod.POST) @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = Result.class)}) public Result findPrintPlanPage() { Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString()); SysUser user = (SysUser) ServletUtil.getRequestUser(); Long userId = user.getId(); return ResultUtil.ok(examPrintPlanService.printPlanTemplateDatasource(schoolId, userId)); } @ApiOperation(value = "印刷计划-新增/修改") @RequestMapping(value = "/save", method = RequestMethod.POST) @ApiResponses({@ApiResponse(code = 200, message = "更新成功", response = Result.class)}) public Result savePrintPlan(@Valid @RequestBody PrintPlanParams printPlanParams, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage()); } Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString()); printPlanParams.setSchoolId(schoolId); return ResultUtil.ok(examPrintPlanService.savePrintPlan(printPlanParams)); } @ApiOperation(value = "印刷计划-删除") @RequestMapping(value = "/remove", method = RequestMethod.POST) @ApiResponses({@ApiResponse(code = 200, message = "删除成功", response = Result.class)}) public Result removePrintPlan(@Valid @RequestBody DeleteParams deleteParams, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage()); } return ResultUtil.ok(examPrintPlanService.removePrintPlan(deleteParams)); } /** * 关联试卷管理-查询 * * @param relateType * @param printPlanId * @param courseCode * @param paperNumber * @param pageNumber * @param pageSize * @return */ @ApiOperation(value = "关联试卷管理-查询") @RequestMapping(value = "/relate_list", method = RequestMethod.POST) public Result relateList(@RequestParam(value = "relateType", required = false) String relateType, @RequestParam(value = "printPlanId", required = false) Long printPlanId, @RequestParam(value = "courseCode", required = false) String courseCode, @RequestParam(value = "paperNumber", required = false) String paperNumber, @RequestParam Integer pageNumber, @RequestParam Integer pageSize) { IPage