|
@@ -2,7 +2,6 @@ package com.qmth.distributed.print.business.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
@@ -24,8 +23,6 @@ import com.qmth.distributed.print.business.service.*;
|
|
import com.qmth.distributed.print.business.util.CreatePrintPdfUtil;
|
|
import com.qmth.distributed.print.business.util.CreatePrintPdfUtil;
|
|
import com.qmth.distributed.print.business.util.PdfUtil;
|
|
import com.qmth.distributed.print.business.util.PdfUtil;
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
|
|
-import com.qmth.teachcloud.common.bean.dto.MqDto;
|
|
|
|
-import com.qmth.teachcloud.common.bean.params.ArraysParams;
|
|
|
|
import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
|
|
import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
|
|
import com.qmth.teachcloud.common.bean.vo.FilePathVo;
|
|
import com.qmth.teachcloud.common.bean.vo.FilePathVo;
|
|
import com.qmth.teachcloud.common.bean.vo.PrintPathVo;
|
|
import com.qmth.teachcloud.common.bean.vo.PrintPathVo;
|
|
@@ -1033,80 +1030,6 @@ public class PrintCommonServiceImpl implements PrintCommonService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * 更新任务状态
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- @Transactional
|
|
|
|
- public void updateStatus() throws IOException {
|
|
|
|
- //不是自动生成pdf的全部改为失败
|
|
|
|
-// UpdateWrapper<TBTask> tbTaskUpdateWrapper = new UpdateWrapper<>();
|
|
|
|
-// tbTaskUpdateWrapper.lambda().set(TBTask::getStatus, TaskStatusEnum.FINISH)
|
|
|
|
-// .set(TBTask::getSummary, "系统提交:网络异常或程序异常中断!")
|
|
|
|
-// .set(TBTask::getResult, TaskResultEnum.ERROR)
|
|
|
|
-// .isNotNull(TBTask::getStatus).ne(TBTask::getStatus, TaskStatusEnum.FINISH)
|
|
|
|
-// .ne(TBTask::getType, TaskTypeEnum.CREATE_PDF);
|
|
|
|
-// this.update(tbTaskUpdateWrapper);
|
|
|
|
-
|
|
|
|
- QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
|
|
|
|
- tbTaskQueryWrapper.lambda().eq(TBTask::getType, TaskTypeEnum.CREATE_PDF)
|
|
|
|
- .ne(TBTask::getStatus, TaskStatusEnum.FINISH)
|
|
|
|
- .ne(TBTask::getResult, TaskResultEnum.SUCCESS).or().isNull(TBTask::getResult)
|
|
|
|
- .orderByDesc(TBTask::getStatus);
|
|
|
|
- List<TBTask> tbTasks = tbTaskService.list(tbTaskQueryWrapper);
|
|
|
|
- if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
|
|
|
|
- for (TBTask tbTask : tbTasks) {
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
- if (Objects.nonNull(tbTask.getRemark())) {
|
|
|
|
- JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
|
|
|
|
- ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
|
|
|
|
- map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
|
|
|
|
- }
|
|
|
|
- map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
|
|
|
|
- map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
|
|
|
|
-// asyncCreatePdfTempleteService.createPdf(map, null);
|
|
|
|
- MqDto mqDto = new MqDto(MqTagEnum.PDF.getCode(), map, String.valueOf(tbTask.getId()));
|
|
|
|
- redisUtil.sendMessage(mqDto.getTopic(), mqDto);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 重新生成pdf失败任务
|
|
|
|
- *
|
|
|
|
- * @throws IOException
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- @Transactional
|
|
|
|
- public void resetCreatePdfTask() throws IOException {
|
|
|
|
- QueryWrapper<TBTask> tbTaskQueryWrapper = new QueryWrapper<>();
|
|
|
|
- tbTaskQueryWrapper.lambda().eq(TBTask::getType, TaskTypeEnum.CREATE_PDF)
|
|
|
|
- .eq(TBTask::getStatus, TaskStatusEnum.FINISH).isNotNull(TBTask::getStatus)
|
|
|
|
- .eq(TBTask::getResult, TaskResultEnum.ERROR).last("limit 0,100");
|
|
|
|
- List<TBTask> tbTasks = tbTaskService.list(tbTaskQueryWrapper);
|
|
|
|
- if (Objects.nonNull(tbTasks) && tbTasks.size() > 0) {
|
|
|
|
- for (TBTask tbTask : tbTasks) {
|
|
|
|
- SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.AUTO_CREATE_PDF_RESET_MAX_COUNT);
|
|
|
|
- Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未配置自动重试生成pdf失败最大次数"));
|
|
|
|
- Integer maxResetCount = Integer.parseInt(sysConfig.getConfigValue());
|
|
|
|
- if (tbTask.getResetCount() < maxResetCount.intValue()) {
|
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
|
-// tbTask.setVersion(new AtomicInteger(tbTask.getVersion()).incrementAndGet());
|
|
|
|
- if (Objects.nonNull(tbTask.getRemark())) {
|
|
|
|
- JSONArray jsonArray = JSONArray.parseArray(tbTask.getRemark());
|
|
|
|
- ArraysParams arraysParams = new ArraysParams(jsonArray.toArray(new Long[jsonArray.size()]));
|
|
|
|
- map.computeIfAbsent("examDetailCourseIds", v -> Arrays.asList(arraysParams.getIds()));
|
|
|
|
- }
|
|
|
|
- map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
|
|
|
|
- map.computeIfAbsent(SystemConstant.USER, v -> sysUserService.getById(tbTask.getCreateId()));
|
|
|
|
-// asyncCreatePdfTempleteService.createPdf(map, null);
|
|
|
|
- MqDto mqDto = new MqDto(MqTagEnum.PDF.getCode(), map, String.valueOf(tbTask.getId()));
|
|
|
|
- redisUtil.sendMessage(mqDto.getTopic(), mqDto);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 保存任务
|
|
* 保存任务
|
|
*
|
|
*
|
|
@@ -1347,7 +1270,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
|
|
// 所有考场都撤回,印刷任务状态改为就绪
|
|
// 所有考场都撤回,印刷任务状态改为就绪
|
|
examPrintPlanService.updateStatusById(examDetail.getPrintPlanId(), PrintPlanStatusEnum.READY);
|
|
examPrintPlanService.updateStatusById(examDetail.getPrintPlanId(), PrintPlanStatusEnum.READY);
|
|
TbTaskDetailResult tbTaskDetailResult = examDetailCourseService.getByExamDetailId(examDetail.getId());
|
|
TbTaskDetailResult tbTaskDetailResult = examDetailCourseService.getByExamDetailId(examDetail.getId());
|
|
- tbTaskPdfService.saveTask(tbTaskDetailResult, TaskTypeEnum.CREATE_PDF, examDetail.getPrintPlanId(), user, examDetail.getId());
|
|
|
|
|
|
+ tbTaskPdfService.saveTask(tbTaskDetailResult, examDetail.getPrintPlanId(), user, examDetail.getId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -1361,7 +1284,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
|
|
// 所有考场都撤回,印刷任务状态改为就绪
|
|
// 所有考场都撤回,印刷任务状态改为就绪
|
|
examPrintPlanService.updateStatusById(examDetail.getPrintPlanId(), PrintPlanStatusEnum.READY);
|
|
examPrintPlanService.updateStatusById(examDetail.getPrintPlanId(), PrintPlanStatusEnum.READY);
|
|
TbTaskDetailResult tbTaskDetailResult = examDetailCourseService.getByExamDetailId(examDetail.getId());
|
|
TbTaskDetailResult tbTaskDetailResult = examDetailCourseService.getByExamDetailId(examDetail.getId());
|
|
- tbTaskPdfService.saveTask(tbTaskDetailResult, TaskTypeEnum.CREATE_PDF, examDetail.getPrintPlanId(), user, examDetail.getId());
|
|
|
|
|
|
+ tbTaskPdfService.saveTask(tbTaskDetailResult, examDetail.getPrintPlanId(), user, examDetail.getId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1410,7 +1333,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
|
|
examPrintPlanService.updateStatusById(examDetail.getPrintPlanId(), PrintPlanStatusEnum.READY);
|
|
examPrintPlanService.updateStatusById(examDetail.getPrintPlanId(), PrintPlanStatusEnum.READY);
|
|
//创建pdf生成任务
|
|
//创建pdf生成任务
|
|
TbTaskDetailResult tbTaskDetailResult = examDetailCourseService.getByExamDetailId(examDetail.getId());
|
|
TbTaskDetailResult tbTaskDetailResult = examDetailCourseService.getByExamDetailId(examDetail.getId());
|
|
- tbTaskPdfService.saveTask(tbTaskDetailResult, TaskTypeEnum.CREATE_PDF, examDetail.getPrintPlanId(), user, examDetail.getId());
|
|
|
|
|
|
+ tbTaskPdfService.saveTask(tbTaskDetailResult, examDetail.getPrintPlanId(), user, examDetail.getId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|