Explorar o código

卷库查询批量导出试卷、题卡

xiaof %!s(int64=4) %!d(string=hai) anos
pai
achega
5501020ef6

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java

@@ -87,4 +87,6 @@ public interface ExamTaskMapper extends BaseMapper<ExamTask> {
     List<ExamTask> listExamTaskExpire(@Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("status") String[] status);
 
     List<ExamTask> listExamTaskAuditExpire(@Param("startTime") Long startTime, @Param("endTime") Long endTime);
+
+    List<ExamTaskDetailDto> listTaskPaper(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("orgIds") Set<Long> orgIds, @Param("containsQuestionTeacher") boolean containsQuestionTeacher, @Param("id") Long id);
 }

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java

@@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
-import com.qmth.distributed.print.business.entity.ExamTask;
-import com.qmth.distributed.print.business.entity.ExamTaskDetail;
-import com.qmth.distributed.print.business.entity.ExamTaskReviewLog;
-import com.qmth.distributed.print.business.entity.SysUser;
+import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -132,4 +129,8 @@ public interface ExamTaskService extends IService<ExamTask> {
      * 发送已逾期数据短信提醒
      */
     void sendSmsOverdueTask();
+
+    List<ExamTaskDetailDto> listTaskPaper(String courseCode, String paperNumber, Long startTime, Long endTime);
+
+    TBTask taskDownloadPdf(String courseCode, String paperNumber, Long startTime, Long endTime);
 }

+ 30 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -16,6 +16,7 @@ import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.mapper.ExamTaskMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
+import com.qmth.distributed.print.business.templete.execute.AsyncPaperReviewPdfExportService;
 import com.qmth.distributed.print.business.util.ConvertUtil;
 import com.qmth.distributed.print.business.util.ExcelUtil;
 import com.qmth.distributed.print.business.util.ServletUtil;
@@ -27,6 +28,7 @@ import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -110,6 +112,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Autowired
     private BasicMessageService basicMessageService;
 
+    @Resource
+    AsyncPaperReviewPdfExportService asyncPaperReviewPdfExportService;
+
 
     @Override
     public List<ExamTask> listByCourseCode(Long schoolId, String code) {
@@ -1188,4 +1193,29 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             }
         }
     }
+
+    @Override
+    public List<ExamTaskDetailDto> listTaskPaper(String courseCode, String paperNumber, Long startTime, Long endTime) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        // 查询用户角色是否包含命题老师
+        List<SysRole> list = sysUserRoleService.listRoleByUserId(sysUser.getId());
+        boolean containsQuestionTeacher = list.stream().filter(m -> RoleTypeEnum.QUESTION_TEACHER.equals(m.getType())).count() > 0;
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        Set<Long> orgIds = commonService.listSubOrgIds(null);
+        List<ExamTaskDetailDto> examTaskDetailDtos = this.baseMapper.listTaskPaper(schoolId, courseCode, paperNumber, startTime, endTime, orgIds, containsQuestionTeacher, sysUser.getId());
+        return examTaskDetailDtos;
+    }
+
+    @Override
+    public TBTask taskDownloadPdf(String courseCode, String paperNumber, Long startTime, Long endTime) {
+        List<ExamTaskDetailDto> examTasks = this.listTaskPaper(courseCode, paperNumber, startTime, endTime);
+        if (CollectionUtils.isEmpty(examTasks)) {
+            throw ExceptionResultEnum.ERROR.exception("没有可导出数据");
+        }
+        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.PAPER_AND_CARD_PDF_DOWNLOAD, null, (SysUser) ServletUtil.getRequestUser());
+        map.put("examTasks", examTasks);
+        asyncPaperReviewPdfExportService.exportTask(map);
+        TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
+        return tbTask;
+    }
 }

+ 3 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBTaskServiceImpl.java

@@ -256,7 +256,9 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
         Map<String, Object> map = new HashMap<>();
         try {
             TBTask tbTask = saveTaskCommon(null, taskTypeEnum, map, sysUser);
-            tbTask.setRemark(JacksonUtil.parseJson(arraysParams.getIds()));
+            if(Objects.nonNull(arraysParams)) {
+                tbTask.setRemark(JacksonUtil.parseJson(arraysParams.getIds()));
+            }
             this.save(tbTask);
         } catch (Exception e) {
             log.error("请求出错", e);

+ 50 - 93
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -18,10 +18,7 @@ import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.*;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.service.TaskLogicService;
-import com.qmth.distributed.print.business.util.ConvertUtil;
-import com.qmth.distributed.print.business.util.CreatePdfUtil;
-import com.qmth.distributed.print.business.util.ExcelUtil;
-import com.qmth.distributed.print.business.util.OssUtil;
+import com.qmth.distributed.print.business.util.*;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
 import com.qmth.distributed.print.common.util.FileUtil;
@@ -963,115 +960,74 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         // 根文件路径
         String zipLocalRootPath = SystemConstant.TEMP_FILES_DIR + File.separator + System.currentTimeMillis();
 
-        List<ExamTask> examTasks = (List<ExamTask>) map.get("examTasks");
-        for (ExamTask examTask : examTasks) {
-            ExamTaskDetail examTaskDetail = examTaskDetailService.getByExamTaskId(examTask.getId());
+        List<ExamTaskDetailDto> examTasks = (List<ExamTaskDetailDto>) map.get("examTasks");
+        for (ExamTaskDetailDto examTask : examTasks) {
+            String courseCodeName = examTask.getCourseCode() + "(" + examTask.getCourseName() + ")";
+            ExamTaskDetail examTaskDetail = examTaskDetailService.getByExamTaskId(Long.valueOf(examTask.getId()));
 
             // 试卷
+            String paperSavePath = zipLocalRootPath + File.separator + "试卷";
             String paperAttachmentIds = examTaskDetail.getPaperAttachmentIds();
-
-            // 题卡
-        }
-
-        Long[] ids = (Long[]) map.get("ids");
-        for (Long id : ids) {
-            ExamTask examTask = examTaskService.getById(id);
-            if (Objects.isNull(examTask)) {
-                throw ExceptionResultEnum.ERROR.exception("未找到命题任务");
-            }
-            String examTaskSign = examTask.getCourseName() + "-" + examTask.getPaperNumber();
-            String firstPath = zipLocalRootPath + File.separator + examTaskSign;
-            ReviewSampleDto reviewSampleDto = examTaskService.findReviewSampleInfoByExamTaskId(id);
-
-
-            // 处理试卷样品
-            List<Map> paperInfo = JSONObject.parseArray(reviewSampleDto.getPaperAttachmentIds(), Map.class);
-            if (Objects.isNull(paperInfo)) {
-                throw ExceptionResultEnum.ERROR.exception("试卷信息不存在");
-            }
-            Set<Long> attPaperIds = new HashSet<>();
-            for (Map paperMap : paperInfo) {
-                if (Objects.nonNull(paperMap.get("attachmentId")) && String.valueOf(paperMap.get("attachmentId")).length() > 0 && !String.valueOf(paperMap.get("attachmentId")).equals("null")) {
-                    Long attachmentId = Long.valueOf(String.valueOf(paperMap.get("attachmentId")));
-                    attPaperIds.add(attachmentId);
-                }
-            }
-            if (attPaperIds.size() > 0) {
-                List<BasicAttachment> paperAttachmentList = basicAttachmentService.listByIds(attPaperIds);
-                for (BasicAttachment paperAttachment : paperAttachmentList) {
-                    JSONObject jsonObject = JSONObject.parseObject(paperAttachment.getPath());
-                    String paperPath = firstPath + File.separator + "试卷" + File.separator + paperAttachment.getName() + paperAttachment.getType();
-                    ossUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), paperPath);
+            if (StringUtils.isNotBlank(paperAttachmentIds)) {
+                List<Map> paperInfo = JSONObject.parseArray(paperAttachmentIds, Map.class);
+                if (Objects.isNull(paperInfo)) {
+                    throw ExceptionResultEnum.ERROR.exception("试卷信息不存在");
                 }
-            }
-
-            // 处理审核样品
-            List<Map> confirmInfo = JSONObject.parseArray(reviewSampleDto.getPaperConfirmAttachmentIds(), Map.class);
-            System.out.println("confirmInfo = " + JSON.toJSONString(confirmInfo));
-            Set<Long> attConfirmIds = new HashSet<>();
-            for (Map confirmMap : confirmInfo) {
-                if (Objects.isNull(confirmMap.get("attachmentId"))) {
-                    throw ExceptionResultEnum.ERROR.exception("未找到附件id");
-                }
-                Long attachmentId = Long.valueOf(String.valueOf(confirmMap.get("attachmentId")));
-                attConfirmIds.add(attachmentId);
-            }
-            if (attConfirmIds.size() > 0) {
-                List<BasicAttachment> confirmAttachmentList = basicAttachmentService.listByIds(attConfirmIds);
-                for (BasicAttachment confirmAttachment : confirmAttachmentList) {
-                    JSONObject jsonObject = JSONObject.parseObject(confirmAttachment.getPath());
-                    String confirmPath = firstPath + File.separator + "审核样本" + File.separator + confirmAttachment.getName() + confirmAttachment.getType();
-                    ossUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), confirmPath);
+                for (Map paperMap : paperInfo) {
+                    if (Objects.nonNull(paperMap.get("attachmentId")) && String.valueOf(paperMap.get("attachmentId")).length() > 0 && !String.valueOf(paperMap.get("attachmentId")).equals("null")) {
+                        String name = paperMap.get("name").toString();
+                        Long attachmentId = Long.valueOf(String.valueOf(paperMap.get("attachmentId")));
+                        BasicAttachment attachment = basicAttachmentService.getById(attachmentId);
+                        if (Objects.nonNull(attachment)) {
+                            JSONObject jsonObject = JSONObject.parseObject(attachment.getPath());
+                            String paperPath = paperSavePath + File.separator + courseCodeName + File.separator + examTask.getPaperNumber() + File.separator + attachment.getName() + attachment.getType();
+                            ossUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), paperPath);
+                        }
+                    }
                 }
             }
 
+            // 题卡
+            String cardSavePath = zipLocalRootPath + File.separator + "题卡";
             // 处理题卡
-            Long cardId = reviewSampleDto.getCardId();
-            ExamCard examCard = examCardService.getById(cardId);
+            ExamCard examCard = examCardService.getById(examTaskDetail.getCardId());
             if (Objects.isNull(examCard)) {
                 throw ExceptionResultEnum.ERROR.exception("找不到答题卡");
             }
             MakeMethodEnum makeMethodEnum = examCard.getMakeMethod();
+
+            String cardPath = cardSavePath + File.separator + courseCodeName + File.separator + examTask.getPaperNumber();
+            String cardHtmlPath = cardPath + File.separator + examCard.getTitle() + SystemConstant.HTML_PREFIX;
+            String cardPdfPath = cardPath + File.separator + examCard.getTitle() + SystemConstant.PDF_PREFIX;
+            // 通用题卡
+            ExamCardDetail examCardDetail = examCardDetailService.getByCardId(examCard.getId());
+            String htmlContent;
             if (MakeMethodEnum.SELECT.equals(makeMethodEnum)) {
-                Long templateId = examCard.getTemplateId();
-                if (templateId == null || templateId == 0) {
-                    throw ExceptionResultEnum.ERROR.exception("找不到题卡对应的模板");
-                }
-                BasicTemplate basicTemplate = basicTemplateService.getById(templateId);
-                if (Objects.isNull(basicTemplate)) {
-                    throw ExceptionResultEnum.ERROR.exception("找不到模板信息");
-                }
-                Long attachmentId = basicTemplate.getAttachmentId();
-                if (attachmentId == null || attachmentId == 0) {
-                    throw ExceptionResultEnum.ERROR.exception("找不到模板对应的附件");
-                }
-                BasicAttachment cardAttachment = basicAttachmentService.getById(attachmentId);
-                if (Objects.isNull(cardAttachment)) {
-                    throw ExceptionResultEnum.ERROR.exception("找不到附件");
-                }
-                JSONObject jsonObject = JSONObject.parseObject(cardAttachment.getPath());
-                String cardPath = firstPath + File.separator + "题卡" + File.separator + cardAttachment.getName() + cardAttachment.getType();
-                ossUtil.ossDownload((String) jsonObject.get(SystemConstant.PATH), cardPath);
+                htmlContent = createPdfUtil.replaceHtmlTemplete(examCardDetail);
             } else {
-                List<ExamCardDetail> examCardDetailList = examCardDetailService.list(new QueryWrapper<ExamCardDetail>().lambda().eq(ExamCardDetail::getCardId, cardId));
-                if (examCardDetailList.size() != 1) {
-                    throw ExceptionResultEnum.ERROR.exception("题卡明细信息异常");
-                }
-                ExamCardDetail examCardDetail = examCardDetailService.getByCardId(cardId);
-                String htmlContent = examCardDetail.getHtmlContent();
-                byte[] bytes = htmlContent.getBytes();
-                String cardPath = firstPath + File.separator + "题卡" + File.separator + examCard.getTitle() + SystemConstant.HTML_PREFIX;
-                File localFile = new File(cardPath);
-                if (!localFile.getParentFile().exists()) {
-                    localFile.getParentFile().mkdirs();
-                }
-                FileCopyUtils.copy(bytes, localFile);
+                BasicCardRule basicCardRule = basicCardRuleService.getById(examTask.getCardRuleId());
+                htmlContent = createPdfUtil.replaceHtmlCard(examCardDetail, basicCardRule);
+            }
+            // html
+            File localFile = new File(cardHtmlPath);
+            if (!localFile.getParentFile().exists()) {
+                localFile.getParentFile().mkdirs();
             }
+            // 生成html文件
+            FileCopyUtils.copy(htmlContent.getBytes(), localFile);
+            // 转pdf文件
+            File file = new File(cardPdfPath);
+            if(!file.exists()){
+                file.createNewFile();
+            }
+            HtmlToPdfUtil.convert(cardHtmlPath, cardPdfPath, PageSizeEnum.A3);
         }
 
         File zipFile = new File(zipJoiner.toString() + dirNameTmp);
         if (!zipFile.getParentFile().exists()) {
             zipFile.getParentFile().mkdirs();
+        }
+        if(!zipFile.exists()){
             zipFile.createNewFile();
         }
 
@@ -1084,6 +1040,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         tbTask.setResultFilePath(jsonObject.toJSONString());
         ConvertUtil.delFolder(zipLocalRootPath);
         zipFile.delete();
+        map.put("count", 1);
         return map;
     }
 }

+ 42 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -324,6 +324,48 @@ public class CreatePdfUtil {
         return content;
     }
 
+    /**
+     * 替换自定义题卡参数
+     * @param examCardDetail
+     * @return
+     * @throws IOException
+     */
+    public String replaceHtmlCard(ExamCardDetail examCardDetail, BasicCardRule basicCardRule) throws IOException {
+        //通用题卡
+        String cardTemp = examCardDetail.getHtmlContent();
+        cardTemp = cardTemp.replaceAll("\\$\\{paperTypeName\\}", "");
+        //随机生成试卷条码并将图片转成base64
+        cardTemp = cardTemp.replaceAll("\\$\\{paperType\\}", "");
+        cardTemp = cardTemp.replaceAll("<img src=\"data:image/png;base64,\\$\\{examNumber\\}\">", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{examNumberStr\\}", "");
+        if (Objects.nonNull(basicCardRule) && Objects.nonNull(basicCardRule.getExtendFields())) {
+            JSONArray jsonObjectExtend = (JSONArray) JSONArray.parse(basicCardRule.getExtendFields());//扩展字段
+            if (Objects.nonNull(jsonObjectExtend)) {
+                for (int i = 0; i < jsonObjectExtend.size(); i++) {
+                    JSONObject object = (JSONObject) jsonObjectExtend.get(i);
+                    cardTemp = cardTemp.replaceAll("\\$\\{" + object.get("code") + "\\}", "");
+                }
+            }
+        }
+        cardTemp = cardTemp.replaceAll("\\$\\{examDate\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{examTime\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{ticketNumber\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{siteNumber\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{paperTypeName\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{studentCode\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{studentName\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{courseName\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{courseCode\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{examPlace\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{examRoom\\}", "");
+        cardTemp = cardTemp.replaceAll("\\$\\{paperNumber\\}", "");
+
+        //通用题卡生成卷袋贴条码
+//        String packageCodeDiv = "<div class=\"page-box page-box-0\"><div class=\"package-number\" style=\"position: absolute;width: 200px;height: 40px;top: 10px;right: 25%;margin-left: -100px;text-align: center;z-index: 99;\"><img src=\"data:image/png;base64," + packageCodeImg + "\" style=\"display: block; height: 28px; width: 100%\" /><p style=\"line-height: 1; font-size: 12px; margin: 0;\">" + packageCode + "</p></div>";
+//        cardTemp = cardTemp.replaceAll("<div class=\"page-box page-box-0\">", packageCodeDiv);
+        return cardTemp;
+    }
+
     /**
      * 获取题卡attachmentId
      *

+ 0 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanController.java

@@ -319,7 +319,6 @@ public class ExamPrintPlanController {
     @ApiOperation(value = "同步失败-手动同步")
     @RequestMapping(value = "/sync_data_cloud", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    @Aac(auth = BOOL.FALSE)
     public Result syncDataCloud(@RequestParam(value = "printPlanId") Long printPlanId) throws Exception {
         examPrintPlanService.syncDataCloud(printPlanId);
         return ResultUtil.ok(true);

+ 6 - 29
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -3,6 +3,8 @@ package com.qmth.distributed.print.api;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.dto.*;
@@ -70,9 +72,6 @@ public class ExamTaskController {
     @Resource
     private BasicMessageService basicMessageService;
 
-    @Resource
-    AsyncPaperReviewPdfExportService asyncPaperReviewPdfExportService;
-
     /**
      * 查询
      *
@@ -524,35 +523,13 @@ public class ExamTaskController {
     }
 
     @ApiOperation(value = "卷库查询-批量下载试卷PDF、题卡")
-    @RequestMapping(value = "/task_download_pdf", method = RequestMethod.POST)
+    @RequestMapping(value = "/paper_card_download_pdf", method = RequestMethod.POST)
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
-    public Result taskDownloadPdf(@RequestParam(value = "courseCode", required = false) String courseCode,
+    public Result paperCardDownloadPdf(@RequestParam(value = "courseCode", required = false) String courseCode,
                                   @RequestParam(value = "paperNumber", required = false) String paperNumber,
                                   @RequestParam(value = "startTime", required = false) Long startTime,
-                                  @RequestParam(value = "endTime", required = false) Long endTime) throws Exception {
-        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
-        QueryWrapper<ExamTask> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(ExamTask::getSchoolId, schoolId).eq(ExamTask::getStatus, ExamStatusEnum.FINISH);
-        if(StringUtils.isNotBlank(courseCode)){
-            queryWrapper.lambda().eq(ExamTask::getCourseCode, courseCode);
-        }
-        if(StringUtils.isNotBlank(paperNumber)){
-            queryWrapper.lambda().eq(ExamTask::getPaperNumber, paperNumber);
-        }
-        if(startTime != null){
-            queryWrapper.lambda().ge(ExamTask::getCreateTime, startTime);
-        }
-        if(endTime != null){
-            queryWrapper.lambda().le(ExamTask::getCreateTime, endTime);
-        }
-        List<ExamTask> examTasks = examTaskService.list(queryWrapper);
-        if (CollectionUtils.isEmpty(examTasks)) {
-            throw ExceptionResultEnum.ERROR.exception("没有可导出数据");
-        }
-        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.PAPER_AND_CARD_PDF_DOWNLOAD, null, (SysUser) ServletUtil.getRequestUser());
-        map.put("examTasks", examTasks);
-        asyncPaperReviewPdfExportService.exportTask(map);
-        TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
+                                  @RequestParam(value = "endTime", required = false) Long endTime) {
+        TBTask tbTask = examTaskService.taskDownloadPdf(courseCode, paperNumber, startTime, endTime);
         return Objects.nonNull(tbTask) ? ResultUtil.ok(new EditResult(tbTask.getId())) : ResultUtil.error("创建任务失败");
     }
 }

+ 23 - 26
distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java

@@ -4,10 +4,7 @@ import com.qmth.distributed.print.business.service.OrgCenterDataDisposeService;
 import com.qmth.distributed.print.business.service.TBTaskService;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.task.enums.JobEnum;
-import com.qmth.distributed.print.task.job.ResendSmsJob;
-import com.qmth.distributed.print.task.job.ResetCreatePdfJob;
-import com.qmth.distributed.print.task.job.SendSmsExpireJob;
-import com.qmth.distributed.print.task.job.TimedSyncSchoolJob;
+import com.qmth.distributed.print.task.job.*;
 import com.qmth.distributed.print.task.service.QuartzService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,29 +59,29 @@ public class StartRunning implements CommandLineRunner {
 //        quartzService.addJob(ResetCreatePdfJob.class, JobEnum.RESET_CREATE_PDF_JOB.name(), JobEnum.RESET_CREATE_PDF_JOB_GROUP.name(), "0 0/1 * * * ?", taskJobMap);
 //        log.info("增加重新生成pdf定时任务 end");
 
-//        log.info("增加任务到期提醒定时任务 start");
-//        Map expireJobMap = new HashMap();
-//        expireJobMap.computeIfAbsent("name", v -> SendSmsExpireJob.class.getName());
-//        quartzService.deleteJob(JobEnum.SMS_NOTICE_TASK_EXPIRE_JOB.name(), JobEnum.SMS_NOTICE_TASK_EXPIRE_JOB_GROUP.name());
-//        // 每天15点定时任务
-//        quartzService.addJob(SendSmsExpireJob.class, JobEnum.SMS_NOTICE_TASK_EXPIRE_JOB.name(), JobEnum.SMS_NOTICE_TASK_EXPIRE_JOB_GROUP.name(), "0 0 15 * * ?", expireJobMap);
-//        log.info("增加任务到期提醒定时任务 end");
-//
-//        log.info("增加任务逾期提醒定时任务 start");
-//        Map orverdueJobMap = new HashMap();
-//        orverdueJobMap.computeIfAbsent("name", v -> SendSmsOverdueJob.class.getName());
-//        quartzService.deleteJob(JobEnum.SMS_NOTICE_TASK_OVERDUE_JOB.name(), JobEnum.SMS_NOTICE_TASK_OVERDUE_JOB_GROUP.name());
-//        // 每天9点定时任务
-//        quartzService.addJob(SendSmsOverdueJob.class, JobEnum.SMS_NOTICE_TASK_OVERDUE_JOB.name(), JobEnum.SMS_NOTICE_TASK_OVERDUE_JOB_GROUP.name(), "0 0 9 * * ?", orverdueJobMap);
-//        log.info("增加任务逾期提醒定时任务 end");
+        log.info("增加任务到期提醒定时任务 start");
+        Map expireJobMap = new HashMap();
+        expireJobMap.computeIfAbsent("name", v -> SendSmsExpireJob.class.getName());
+        quartzService.deleteJob(JobEnum.SMS_NOTICE_TASK_EXPIRE_JOB.name(), JobEnum.SMS_NOTICE_TASK_EXPIRE_JOB_GROUP.name());
+        // 每天15点定时任务
+        quartzService.addJob(SendSmsExpireJob.class, JobEnum.SMS_NOTICE_TASK_EXPIRE_JOB.name(), JobEnum.SMS_NOTICE_TASK_EXPIRE_JOB_GROUP.name(), "0 0 15 * * ?", expireJobMap);
+        log.info("增加任务到期提醒定时任务 end");
 
-//        log.info("增加短信发送失败重发定时任务 start");
-//        Map rensendJobMap = new HashMap();
-//        rensendJobMap.computeIfAbsent("name", v -> ResendSmsJob.class.getName());
-//        quartzService.deleteJob(JobEnum.SMS_NOTICE_TASK_RESEND_JOB.name(), JobEnum.SMS_NOTICE_TASK_RESEND_JOB_GROUP.name());
-//        // 每隔1小时定时任务
-//        quartzService.addJob(ResendSmsJob.class, JobEnum.SMS_NOTICE_TASK_RESEND_JOB.name(), JobEnum.SMS_NOTICE_TASK_RESEND_JOB_GROUP.name(), "0 */30 * * * ?", rensendJobMap);
-//        log.info("增加短信发送失败重发定时任务 end");
+        log.info("增加任务逾期提醒定时任务 start");
+        Map orverdueJobMap = new HashMap();
+        orverdueJobMap.computeIfAbsent("name", v -> SendSmsOverdueJob.class.getName());
+        quartzService.deleteJob(JobEnum.SMS_NOTICE_TASK_OVERDUE_JOB.name(), JobEnum.SMS_NOTICE_TASK_OVERDUE_JOB_GROUP.name());
+        // 每天9点定时任务
+        quartzService.addJob(SendSmsOverdueJob.class, JobEnum.SMS_NOTICE_TASK_OVERDUE_JOB.name(), JobEnum.SMS_NOTICE_TASK_OVERDUE_JOB_GROUP.name(), "0 0 9 * * ?", orverdueJobMap);
+        log.info("增加任务逾期提醒定时任务 end");
+
+        log.info("增加短信发送失败重发定时任务 start");
+        Map rensendJobMap = new HashMap();
+        rensendJobMap.computeIfAbsent("name", v -> ResendSmsJob.class.getName());
+        quartzService.deleteJob(JobEnum.SMS_NOTICE_TASK_RESEND_JOB.name(), JobEnum.SMS_NOTICE_TASK_RESEND_JOB_GROUP.name());
+        // 每隔1小时定时任务
+        quartzService.addJob(ResendSmsJob.class, JobEnum.SMS_NOTICE_TASK_RESEND_JOB.name(), JobEnum.SMS_NOTICE_TASK_RESEND_JOB_GROUP.name(), "0 0/30 * * * ?", rensendJobMap);
+        log.info("增加短信发送失败重发定时任务 end");
 
         log.info("服务器启动时执行 end");
     }