浏览代码

bug修改

xiaof 4 年之前
父节点
当前提交
418eb29df2

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/CommonService.java

@@ -154,5 +154,5 @@ public interface CommonService {
      * @param courseCode
      * @param paperNumber
      */
-    public void checkData(Long schoolId, String courseCode, String paperNumber);
+    public void checkData(Long schoolId, String courseCode, String paperNumber) throws IOException;
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java

@@ -123,7 +123,7 @@ public interface ExamDetailService extends IService<ExamDetail> {
 
     boolean taskCancel(ExamDetail examDetail);
 
-    boolean resubmitTask(ExamDetail examDetail);
+    boolean resubmitTask(ExamDetail examDetail) throws IOException;
 
     /**
      * 根据考务数据Excel数据处理考务-场次表

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

@@ -49,7 +49,7 @@ public interface ExamTaskService extends IService<ExamTask> {
 
     IPage<ExamTaskDto> listTaskReviewAudited(String reviewStatus, String courseCode, String paperNumber, Long userId, Long cardRuleId, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
 
-    boolean taskReviewSave(ExamTaskReviewLog taskReviewLog);
+    boolean taskReviewSave(ExamTaskReviewLog taskReviewLog) throws IOException;
 
     boolean taskReviewSaveBatch(ExamTaskReviewLog taskReviewLog);
 
@@ -57,7 +57,7 @@ public interface ExamTaskService extends IService<ExamTask> {
 
     List<RelatePaperDto> listPaperTypes(String courseCode);
 
-    boolean saveExamTaskDetail(ExamTaskDetail examTaskDetail);
+    boolean saveExamTaskDetail(ExamTaskDetail examTaskDetail) throws IOException;
 
     boolean status(ExamTask examTask);
 

+ 12 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/CommonServiceImpl.java

@@ -14,6 +14,7 @@ import com.qmth.distributed.print.business.config.DictionaryConfig;
 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.execute.AsyncCreatePdfTempleteService;
 import com.qmth.distributed.print.business.util.OssUtil;
 import com.qmth.distributed.print.business.util.RedisUtil;
 import com.qmth.distributed.print.business.util.ServletUtil;
@@ -80,13 +81,13 @@ public class CommonServiceImpl implements CommonService {
     private ExamDetailService examDetailService;
 
     @Autowired
-    private ExamPrintPlanService examPrintPlanService;
+    private ExamDetailCourseService examDetailCourseService;
 
-    @Autowired
-    private BasicExamRuleService basicExamRuleService;
+    @Resource
+    TBTaskService tbTaskService;
 
-    @Autowired
-    private ExamDetailCourseService examDetailCourseService;
+    @Resource
+    AsyncCreatePdfTempleteService asyncCreatePdfTempleteService;
 
     /**
      * 新增用户权限
@@ -497,7 +498,7 @@ public class CommonServiceImpl implements CommonService {
     }
 
     @Override
-    public void checkData(Long schoolId, String courseCode, String paperNumber) {
+    public void checkData(Long schoolId, String courseCode, String paperNumber) throws IOException {
         // 校验命题任务是否提交
         ExamTask examTask = examTaskService.getByCourseCodeAndPaperNumber(schoolId, courseCode, paperNumber);
         if (examTask != null && !examTask.getEnable()) {
@@ -513,7 +514,11 @@ public class CommonServiceImpl implements CommonService {
                     List<ExamDetailCourse> examDetailCourses = examDetailCourseService.listByExamDetailId(examDetail.getId());
                     // 4.没有未完成的命题任务
                     if (examDetailCourses.isEmpty()) {
-                        // todo 调用生成pdf
+                        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, examDetail.getPrintPlanId());
+                        if (Objects.nonNull(examDetail.getId())) {
+                            map.computeIfAbsent("examDetailId", v -> examDetail.getId());
+                        }
+                        asyncCreatePdfTempleteService.createPdf(map);
                     }
                 }
             }

+ 16 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -17,8 +17,10 @@ import com.qmth.distributed.print.business.bean.result.SummarizedDataResult;
 import com.qmth.distributed.print.business.entity.*;
 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.mapper.ExamDetailMapper;
 import com.qmth.distributed.print.business.service.*;
+import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
 import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
@@ -65,6 +67,12 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Resource
     private CommonService commonService;
 
+    @Resource
+    TBTaskService tbTaskService;
+
+    @Resource
+    AsyncCreatePdfTempleteService asyncCreatePdfTempleteService;
+
     private final static Logger log = LoggerFactory.getLogger(ExamDetailServiceImpl.class);
 
     @Transactional(rollbackFor = Exception.class)
@@ -308,14 +316,19 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     }
 
     @Override
-    public boolean resubmitTask(ExamDetail examDetail) {
+    public boolean resubmitTask(ExamDetail examDetail) throws IOException {
         ExamDetail detail = this.getById(examDetail.getId());
         if (!detail.getStatus().name().equals(ExamDetailStatusEnum.PRINTING.name())
                 && !detail.getStatus().name().equals(ExamDetailStatusEnum.FINISH.name())) {
             throw ExceptionResultEnum.ERROR.exception("印刷状态为“印刷中”、“已完成”的任务可重新提交印刷");
         }
-        // todo 调用生成pdf方法
-        return false;
+        // 调用生成pdf方法
+        Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.CREATE_PDF, detail.getPrintPlanId());
+        if (Objects.nonNull(examDetail.getId())) {
+            map.computeIfAbsent("examDetailId", v -> detail.getId());
+        }
+        asyncCreatePdfTempleteService.createPdf(map);
+        return true;
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 17 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.business.service.impl;
 
-import cn.hutool.core.lang.UUID;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -12,6 +11,7 @@ import com.google.gson.Gson;
 import com.qmth.distributed.print.business.bean.dto.*;
 import com.qmth.distributed.print.business.bean.result.WorkResult;
 import com.qmth.distributed.print.business.entity.*;
+import com.qmth.distributed.print.business.enums.ExamCardStatusEnum;
 import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import com.qmth.distributed.print.business.enums.ReviewStatusEnum;
 import com.qmth.distributed.print.business.mapper.ExamTaskMapper;
@@ -21,7 +21,6 @@ import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.distributed.print.business.util.excel.ExcelError;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
-import com.qmth.distributed.print.common.util.ResultUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,7 +30,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import javax.websocket.RemoteEndpoint;
 import java.io.File;
 import java.io.IOException;
 import java.util.*;
@@ -75,6 +73,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Autowired
     private SysUserService sysUserService;
 
+    @Autowired
+    private ExamCardService examCardService;
+
     @Override
     public List<ExamTask> listByCourseCode(Long schoolId, String code) {
         QueryWrapper<ExamTask> queryWrapper = new QueryWrapper<>();
@@ -198,7 +199,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(file.getInputStream(), Lists.newArrayList(ExamTaskTempDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
             List<ExcelError> excelErrorTemp = new ArrayList<>();
             // 只允许导入一个sheet
-            if(finalExcelList.size() > 1){
+            if (finalExcelList.size() > 1) {
                 throw ExceptionResultEnum.ERROR.exception("excel中只允许有一个sheet");
             }
             for (int i = 0; i < finalExcelList.size(); i++) {
@@ -268,14 +269,14 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examTaskDto.setPaperNumber(examTaskTemp.getPaperNumber());
                 examTaskDto.setSpecialty(examTaskTemp.getSpecialty());
                 // 校验命题老师
-                if(StringUtils.isBlank(examTaskTemp.getUserAccount())){
+                if (StringUtils.isBlank(examTaskTemp.getUserAccount())) {
                     examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), null));
                 } else {
                     QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
                     queryWrapper.lambda().eq(SysUser::getLoginName, examTaskTemp.getUserAccount());
                     SysUser sysUser1 = sysUserService.getOne(queryWrapper);
-                    if(sysUser1 == null){
-                        examTaskDto.setUsers( listUsers(examTaskTemp.getCourseCode(), null));
+                    if (sysUser1 == null) {
+                        examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), null));
                     } else {
                         examTaskDto.setUsers(listUsers(examTaskTemp.getCourseCode(), String.valueOf(sysUser1.getId())));
                     }
@@ -287,7 +288,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         return examTaskImportDto;
     }
 
-    private List<BlurryUserDto> listUsers(String courseCode, String userId){
+    private List<BlurryUserDto> listUsers(String courseCode, String userId) {
         return sysUserService.listUser(courseCode, userId);
     }
 
@@ -365,7 +366,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Transactional
     @Override
-    public boolean taskReviewSave(ExamTaskReviewLog taskReviewLog) {
+    public boolean taskReviewSave(ExamTaskReviewLog taskReviewLog) throws IOException {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
         taskReviewLog.setOperateId(sysUser.getId());
@@ -440,7 +441,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Transactional
     @Override
-    public boolean saveExamTaskDetail(ExamTaskDetail examTaskDetail) {
+    public boolean saveExamTaskDetail(ExamTaskDetail examTaskDetail) throws IOException {
         if (examTaskDetail.getExamTaskId() == null) {
             throw ExceptionResultEnum.ERROR.exception("命题任务ID不能为空");
         }
@@ -461,6 +462,12 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             if (StringUtils.isBlank(examTaskDetail.getPaperConfirmAttachmentIds())) {
                 throw ExceptionResultEnum.ERROR.exception("入库审核ID不能为空");
             }
+
+            // 校验题卡是否提交
+            ExamCard examCard = examCardService.getById(examTaskDetail.getCardId());
+            if(!ExamCardStatusEnum.SUBMIT.name().equals(examCard.getStatus().name())){
+                throw ExceptionResultEnum.ERROR.exception("请先提交题卡");
+            }
         }
 
         // 更新examTask状态status

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

@@ -32,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -223,7 +224,7 @@ public class ExamPrintPlanController {
      */
     @ApiOperation(value = "印刷任务管理-重新提交")
     @RequestMapping(value = "/task_resubmit", method = RequestMethod.POST)
-    public Result taskResubmit(@RequestBody ExamDetail examDetail) {
+    public Result taskResubmit(@RequestBody ExamDetail examDetail) throws IOException {
         boolean isSuccess = examDetailService.resubmitTask(examDetail);
         return ResultUtil.ok(isSuccess);
     }

+ 3 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -30,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
@@ -266,7 +267,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "暂存/提交")
     @RequestMapping(value = "/apply_save", method = RequestMethod.POST)
-    public Result taskApplySave(@RequestBody ExamTaskDetail examTaskDetail) {
+    public Result taskApplySave(@RequestBody ExamTaskDetail examTaskDetail) throws IOException {
         boolean isSuccess = examTaskService.saveExamTaskDetail(examTaskDetail);
         return ResultUtil.ok(isSuccess);
     }
@@ -347,7 +348,7 @@ public class ExamTaskController {
      */
     @ApiOperation(value = "审核")
     @RequestMapping(value = "/review_save", method = RequestMethod.POST)
-    public Result taskReviewSave(@RequestBody ExamTaskReviewLog taskReviewLog) {
+    public Result taskReviewSave(@RequestBody ExamTaskReviewLog taskReviewLog) throws IOException {
         boolean isSuccess = examTaskService.taskReviewSave(taskReviewLog);
         return ResultUtil.ok(isSuccess);
     }