xiaofei пре 1 година
родитељ
комит
c1515d9029
19 измењених фајлова са 154 додато и 38 уклоњено
  1. 5 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamDetail.java
  2. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailCourseMapper.java
  3. 4 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCoursePaperTypeService.java
  4. 3 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCourseService.java
  5. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java
  6. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ClientServiceImpl.java
  7. 11 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCoursePaperTypeServiceImpl.java
  8. 11 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java
  9. 48 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java
  10. 32 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  11. 8 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java
  12. 0 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  13. 1 1
      distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml
  14. 2 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskQueryController.java
  15. 0 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  16. 4 8
      distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java
  17. BIN
      distributed-print/src/main/resources/temps/user.xlsx
  18. 3 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/TBTaskService.java
  19. 17 5
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TBTaskServiceImpl.java

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamDetail.java

@@ -81,7 +81,7 @@ public class ExamDetail extends BaseEntity implements Serializable {
     @TableField("package_code")
     private String packageCode;
 
-    @TableField("paper_pages")
+    @TableField(value = "paper_pages", updateStrategy = FieldStrategy.IGNORED)
     private Integer paperPages;
 
     @TableField("card_pages")
@@ -94,18 +94,18 @@ public class ExamDetail extends BaseEntity implements Serializable {
 
     private ExamDetailStatusEnum status;
 
-    @TableField("print_start_time")
+    @TableField(value = "print_start_time", updateStrategy = FieldStrategy.IGNORED)
     private Long printStartTime;
 
-    @TableField("print_end_time")
+    @TableField(value = "print_end_time", updateStrategy = FieldStrategy.IGNORED)
     private Long printEndTime;
 
     @ApiModelProperty(value = "合成pdf的A3附件id")
-    @TableField(value = "attachment_id")
+    @TableField(value = "attachment_id", updateStrategy = FieldStrategy.IGNORED)
     private Long attachmentId;
 
     @ApiModelProperty(value = "题卡合成pdf的A3附件id")
-    @TableField(value = "card_attachment_id")
+    @TableField(value = "card_attachment_id", updateStrategy = FieldStrategy.IGNORED)
     private Long cardAttachmentId;
 
     @ApiModelProperty(value = "印品附件路径")

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamDetailCourseMapper.java

@@ -27,7 +27,7 @@ import java.util.Set;
 public interface ExamDetailCourseMapper extends BaseMapper<ExamDetailCourse> {
 
     @SuppressWarnings("MybatisXMapperMethodInspection")
-    List<Map<String, Object>> listByExamDetailId(@Param("examDetailId") Long examDetailId, @Param("status") String status);
+    List<Map<String, Object>> listClientByExamDetailIdAndStatus(@Param("examDetailId") Long examDetailId, @Param("status") String status);
 
     List<ExamDetailCourse> listByExamDetailIdAndStatus(@Param("examDetailId") Long examDetailId, @Param("status") String status);
 

+ 4 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailCoursePaperTypeService.java

@@ -3,6 +3,8 @@ package com.qmth.distributed.print.business.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.entity.ExamDetailCoursePaperType;
 
+import java.util.List;
+
 /**
  * <p>
  * 考务数据(考场关联科目对应卷型) 服务类
@@ -14,4 +16,6 @@ import com.qmth.distributed.print.business.entity.ExamDetailCoursePaperType;
 public interface ExamDetailCoursePaperTypeService extends IService<ExamDetailCoursePaperType> {
 
     void deleteByExamDetailCourseId(Long examDetailCourseId);
+
+    void removeByExamDetailCourseIds(List<Long> examDetailCourseIds);
 }

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

@@ -24,7 +24,7 @@ import java.util.Set;
  */
 public interface ExamDetailCourseService extends IService<ExamDetailCourse> {
 
-    List<Map<String, Object>> listByExamDetailId(Long examDetailId);
+    List<Map<String, Object>> listClientByExamDetailIdAndStatus(Long examDetailId);
 
     void updatePaperNumber(List<Long> examDetailCourseIds, String paperNumber, String relatePaperType);
 
@@ -47,4 +47,6 @@ public interface ExamDetailCourseService extends IService<ExamDetailCourse> {
     TbTaskDetailResult getByExamDetailId(Long examDetailId);
 
     List<String> listPaperNumberByPrintPlanId(String param, List<Long> printPlanIdList, Set<Long> orgIds);
+
+    List<ExamDetailCourse> listByExamDetailId(Long examDetailId);
 }

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

@@ -242,4 +242,6 @@ public interface ExamDetailService extends IService<ExamDetail> {
     void startInitTask(Long schoolId) throws Exception;
 
     void deleteExaminationDataByExamDetailIds(List<Long> examDetailIdList);
+
+    void resetExamDetail(Long entityId);
 }

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

@@ -129,7 +129,7 @@ public class ClientServiceImpl implements ClientService {
         ExamPrintPlan examPrintPlan = examPrintPlanService.getById(examDetail.getPrintPlanId());
         String printContent = examPrintPlan.getPrintContent();
         // 取试卷
-        List<Map<String, Object>> examDetailCourses = examDetailCourseService.listByExamDetailId(examDetailId);
+        List<Map<String, Object>> examDetailCourses = examDetailCourseService.listClientByExamDetailIdAndStatus(examDetailId);
         Map<String, Map<String, String>> map = mapCourseUrl(examDetailCourses);
         // 生成试卷List
         if (printContent.contains("PAPER")) {
@@ -196,7 +196,7 @@ public class ClientServiceImpl implements ClientService {
             }
 
             // 课程、试卷信息
-            List<Map<String, Object>> examDetailCourses = examDetailCourseService.listByExamDetailId(examDetailId);
+            List<Map<String, Object>> examDetailCourses = examDetailCourseService.listClientByExamDetailIdAndStatus(examDetailId);
 
             Map<String, Object> finalMap = new HashMap<>();
             ExamPrintPlan examPrintPlan = examPrintPlanService.getById(examDetail.getPrintPlanId());

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCoursePaperTypeServiceImpl.java

@@ -2,11 +2,15 @@ package com.qmth.distributed.print.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamDetailCoursePaperType;
 import com.qmth.distributed.print.business.mapper.ExamDetailCoursePaperTypeMapper;
 import com.qmth.distributed.print.business.service.ExamDetailCoursePaperTypeService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Queue;
+
 /**
  * <p>
  * 考务数据(考场关联科目对应卷型) 服务实现类
@@ -24,4 +28,11 @@ public class ExamDetailCoursePaperTypeServiceImpl extends ServiceImpl<ExamDetail
         updateWrapper.lambda().eq(ExamDetailCoursePaperType::getExamDetailCourseId, examDetailCourseId);
         this.remove(updateWrapper);
     }
+
+    @Override
+    public void removeByExamDetailCourseIds(List<Long> examDetailCourseIds) {
+        UpdateWrapper<ExamDetailCoursePaperType> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().in(ExamDetailCoursePaperType::getExamDetailCourseId, examDetailCourseIds);
+        this.remove(updateWrapper);
+    }
 }

+ 11 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java

@@ -58,8 +58,8 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     private TeachcloudCommonService teachcloudCommonService;
 
     @Override
-    public List<Map<String, Object>> listByExamDetailId(Long examDetailId) {
-        return this.baseMapper.listByExamDetailId(examDetailId, ExamDetailStatusEnum.FINISH.name());
+    public List<Map<String, Object>> listClientByExamDetailIdAndStatus(Long examDetailId) {
+        return this.baseMapper.listClientByExamDetailIdAndStatus(examDetailId, ExamDetailStatusEnum.FINISH.name());
     }
 
     @Override
@@ -181,4 +181,13 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
     public List<String> listPaperNumberByPrintPlanId(String param, List<Long> printPlanIdList, Set<Long> orgIds) {
         return this.baseMapper.listPaperNumberByPrintPlanId(SystemConstant.translateSpecificSign(param), printPlanIdList, orgIds);
     }
+
+    @Override
+    public List<ExamDetailCourse> listByExamDetailId(Long examDetailId) {
+        Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        QueryWrapper<ExamDetailCourse> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ExamDetailCourse::getSchoolId, schoolId)
+                .eq(ExamDetailCourse::getExamDetailId, examDetailId);
+        return this.list(queryWrapper);
+    }
 }

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

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.Update;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -72,6 +73,9 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Resource
     private ExamDetailCourseService examDetailCourseService;
 
+    @Resource
+    private ExamDetailCoursePaperTypeService examDetailCoursePaperTypeService;
+
     @Resource
     private BasicExamRuleService basicExamRuleService;
 
@@ -114,9 +118,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Resource
     ExamTaskService examTaskService;
 
-    @Resource
-    ExamTaskDetailService examTaskDetailService;
-
     @Resource
     RedisUtil redisUtil;
 
@@ -1134,6 +1135,50 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         examStudentService.remove(new QueryWrapper<ExamStudent>().lambda().in(ExamStudent::getId, examStudentIds));
     }
 
+    @Transactional
+    @Override
+    public void resetExamDetail(Long entityId) {
+        // 清掉客户端产生的数据,包含缓存状态、校验状态
+        ExamDetail examDetail = this.getById(entityId);
+        QueryWrapper<ClientStatus> clientStatusQueryWrapper = new QueryWrapper<>();
+        clientStatusQueryWrapper.lambda().eq(ClientStatus::getSchoolId, examDetail.getSchoolId())
+                .eq(ClientStatus::getExamDetailId, entityId);
+        List<ClientStatus> clientStatusList = clientStatusService.list(clientStatusQueryWrapper);
+        if (!CollectionUtils.isEmpty(clientStatusList)) {
+            for (ClientStatus clientStatus : clientStatusList) {
+                clientStatus.setPass(false);
+                clientStatus.setDownload(false);
+            }
+            clientStatusService.updateBatchById(clientStatusList);
+        }
+
+        // 清掉客户端产生的数据和考场文件,包含状态、校验状态,pdf文件路径,打印信息
+        UpdateWrapper<ExamDetail> examDetailUpdateWrapper = new UpdateWrapper<>();
+        examDetailUpdateWrapper.lambda().set(ExamDetail::getStatus, ExamDetailStatusEnum.NEW)
+                .set(ExamDetail::getValidate, false)
+                .set(ExamDetail::getAttachmentId, null)
+                .set(ExamDetail::getCardAttachmentId, null)
+                .set(ExamDetail::getAttachmentPath, null)
+                .set(ExamDetail::getPrintProgress, null)
+                .set(ExamDetail::getPrintStartTime, null)
+                .set(ExamDetail::getPrintEndTime, null)
+                .eq(ExamDetail::getId, entityId);
+        this.update(examDetailUpdateWrapper);
+
+        // 清掉考场-课程表中关联的试卷编号
+        List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.listByExamDetailId(entityId);
+        if (!CollectionUtils.isEmpty(examDetailCourseList)) {
+            for (ExamDetailCourse examDetailCourse : examDetailCourseList) {
+                examDetailCourse.setPaperType(null);
+            }
+            examDetailCourseService.updateBatchById(examDetailCourseList);
+
+            List<Long> examDetailCourseIds = examDetailCourseList.stream().map(ExamDetailCourse::getId).collect(Collectors.toList());
+            examDetailCoursePaperTypeService.removeByExamDetailCourseIds(examDetailCourseIds);
+        }
+
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void deleteExaminationData(Long printPlanId, ExamDataSourceEnum source) {

+ 32 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -477,6 +477,36 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         ExamTask examTask = examTaskService.getById(examTaskDetail.getExamTaskId());
         List<ExamDetail> examDetails = examDetailService.listByCourseCodeAndPaperNumber(examTask.getSchoolId(), examTask.getExamId(), examTask.getCourseCode(), examTask.getPaperNumber());
         if (!CollectionUtils.isEmpty(examDetails)) {
+            ExamTaskDetail taskDetail = this.getByExamTaskId(examTaskDetail.getExamTaskId());
+            if (StringUtils.isNotBlank(taskDetail.getExposedPaperType())) {
+                List<Long> examDetailIds = examDetails.stream().map(ExamDetail::getId).collect(Collectors.toList());
+                QueryWrapper<ExamDetailCourse> queryWrapper = new QueryWrapper<>();
+                queryWrapper.lambda().in(ExamDetailCourse::getExamDetailId, examDetailIds);
+                List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.list(queryWrapper);
+                Set<String> paperTypeSet = new HashSet<>();
+                for (ExamDetailCourse examDetailCourse : examDetailCourseList) {
+                    if (StringUtils.isNotBlank(examDetailCourse.getPaperType())) {
+                        paperTypeSet.addAll(Arrays.asList(examDetailCourse.getPaperType().split(",")));
+                    }
+                }
+                // 修改已曝光和未曝光类型
+                List<String> exposedPaperTypeList = new ArrayList<>(Arrays.asList(taskDetail.getExposedPaperType().split(",")));
+                List<String> unexposedPaperTypeList = StringUtils.isNotBlank(taskDetail.getUnexposedPaperType()) ? new ArrayList<>(Arrays.asList(taskDetail.getUnexposedPaperType().split(","))) : new ArrayList<>();
+                for (String exposePaperType : paperTypeSet) {
+                    if (exposedPaperTypeList.contains(exposePaperType)) {
+                        exposedPaperTypeList.remove(exposePaperType);
+                        unexposedPaperTypeList.add(exposePaperType);
+                    }
+                }
+                exposedPaperTypeList.sort(Comparator.comparing(String::toString));
+                unexposedPaperTypeList.sort(Comparator.comparing(String::toString));
+                taskDetail.setExposedPaperType(String.join(",", exposedPaperTypeList));
+                taskDetail.setUnexposedPaperType(String.join(",", unexposedPaperTypeList));
+                taskDetail.setRelatePaperType(null);
+                this.updateById(taskDetail);
+            }
+
+
             StringJoiner stringJoiner = new StringJoiner("_");
             stringJoiner.add(String.valueOf(examDetails.get(0).getSchoolId()))
                     .add(String.valueOf(examDetails.get(0).getExamStartTime()))
@@ -485,11 +515,8 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
                     .add(examTask.getPaperNumber());
             String key = stringJoiner.toString();
             CreatePdfCacheUtil.deletePaperType(key);
-
-            List<ExamDetail> examDetailList = examDetails.stream().filter(m -> m.getStatus().equals(ExamDetailStatusEnum.WAITING)).collect(Collectors.toList());
-            for (ExamDetail examDetail : examDetailList) {
-                examDetail.setStatus(ExamDetailStatusEnum.NEW);
-                examDetailService.updateById(examDetail);
+            for (ExamDetail examDetail : examDetails) {
+                examDetailService.resetExamDetail(examDetail.getId());
             }
         }
 

+ 8 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -845,6 +845,14 @@ public class PrintCommonServiceImpl implements PrintCommonService {
                 map = new HashMap<>();
                 TBTask tbTask = tbTaskService.saveTaskCommon(basicAttachment, taskTypeEnum, map, null);
                 tbTask.setPrintPlanId(printPlanId);
+                ExamPrintPlan examPrintPlan = examPrintPlanService.getById(printPlanId);
+                if (examPrintPlan != null) {
+                    BasicExam basicExam = basicExamService.getById(examPrintPlan.getExamId());
+                    if (basicExam != null) {
+                        tbTask.setSemesterId(Long.valueOf(basicExam.getSemesterId()));
+                        tbTask.setExamId(basicExam.getId());
+                    }
+                }
                 tbTaskService.save(tbTask);
             }
         } catch (Exception e) {

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

@@ -201,7 +201,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 .set(ExamDetail::getAttachmentPath, null);
         examDetailService.update(examDetailQueryWrapper);
 
-        // todo 是否在这里校验???
         //所有考场都撤回,印刷任务状态改为就绪
         QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamDetail::getPrintPlanId, tbTask.getPrintPlanId())

+ 1 - 1
distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml

@@ -17,7 +17,7 @@
         id,
         school_id, exam_detail_id, course_code, course_name, paper_number
     </sql>
-    <select id="listByExamDetailId" resultType="java.util.Map">
+    <select id="listClientByExamDetailIdAndStatus" resultType="java.util.Map">
         SELECT
             ed.id examDetailId,
             ed.school_id schoolId,

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

@@ -192,10 +192,10 @@ public class ExamTaskQueryController {
         return ResultUtil.ok(isSuccess);
     }
 
-    @ApiOperation(value = "卷库查询-重启流程")
+    @ApiOperation(value = "卷库查询-重启流程(打回)")
     @RequestMapping(value = "/restart", method = RequestMethod.POST)
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.UPDATE)
-    public Result taskFlowRestart(@RequestBody ExamTaskDetail examTaskDetail) throws IOException {
+    public Result taskFlowRestart(@RequestBody ExamTaskDetail examTaskDetail) {
         Map<String, Object> map = examTaskDetailService.taskRestart(examTaskDetail);
         Boolean isSuccess = (Boolean) map.get(SystemConstant.SUCCESS);
         if (isSuccess) {

+ 0 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -851,9 +851,7 @@ public class SysController {
         if (!templateEnums.contains(type)) {
             throw ExceptionResultEnum.ERROR.exception("不支持的模板类型");
         }
-
         ImportTemplateEnum importTemplateEnum = ImportTemplateEnum.valueOf(type);
-
         InputStream inputStream = this.getClass().getResourceAsStream(File.separator + "temps" + File.separator + importTemplateEnum.getTemplateName());
         // 导出
         FileUtil.outputFile(response, inputStream, importTemplateEnum.getFileName());

+ 4 - 8
distributed-print/src/main/java/com/qmth/distributed/print/api/TBTaskController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.EditResult;
+import com.qmth.distributed.print.business.service.ExamDetailService;
 import com.qmth.teachcloud.common.bean.dto.MqDto;
 import com.qmth.teachcloud.common.bean.result.TaskListResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -48,7 +49,7 @@ public class TBTaskController {
     TBTaskService tbTaskService;
 
     @Resource
-    RedisUtil redisUtil;
+    ExamDetailService examDetailService;
 
     @ApiOperation(value = "任务管理查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
@@ -90,13 +91,8 @@ public class TBTaskController {
     public Result resetCreatePdf(@ApiParam(value = "任务id", required = true) @RequestParam String id) {
         Long taskId = Long.parseLong(id);
         TBTask tbTask = tbTaskService.getById(taskId);
-        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Map<String, Object> map = new HashMap<>();
-        map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
-        map.computeIfAbsent(SystemConstant.USER, v -> sysUser);
-        map.putIfAbsent(SystemConstant.MANUAL, true);
-        MqDto mqDto = new MqDto(MqTagEnum.PDF.getCode(), map, String.valueOf(tbTask.getId()));
-        redisUtil.sendMessage(mqDto.getTopic(), mqDto);
+        examDetailService.resetExamDetail(tbTask.getEntityId());
+        tbTaskService.resetCreatePdf(tbTask);
         return ResultUtil.ok(new EditResult());
     }
 

BIN
distributed-print/src/main/resources/temps/user.xlsx


+ 3 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/TBTaskService.java

@@ -12,6 +12,7 @@ import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.util.Result;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -140,4 +141,6 @@ public interface TBTaskService extends IService<TBTask> {
     public TBTask saveTaskCommon(BasicAttachment basicAttachment, TaskTypeEnum taskTypeEnum, Map map, SysUser sysUser);
 
     IPage<TaskListResult> queryResult(Page<Map> iPage, Long semesterId, Long examId, String courseCode, String paperNumber, TaskStatusEnum status, TaskTypeEnum type, TaskResultEnum result);
+
+    void resetCreatePdf(TBTask tbTask);
 }

+ 17 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TBTaskServiceImpl.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.api.exception.ApiException;
 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.TaskListResult;
 import com.qmth.teachcloud.common.bean.result.TbTaskDetailResult;
@@ -13,6 +14,7 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
+import com.qmth.teachcloud.common.enums.MqTagEnum;
 import com.qmth.teachcloud.common.enums.TaskResultEnum;
 import com.qmth.teachcloud.common.enums.TaskStatusEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
@@ -20,9 +22,7 @@ import com.qmth.teachcloud.common.mapper.TBTaskMapper;
 import com.qmth.teachcloud.common.service.BasicRoleDataPermissionService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
-import com.qmth.teachcloud.common.util.JacksonUtil;
-import com.qmth.teachcloud.common.util.ResultUtil;
-import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.common.util.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -47,14 +47,15 @@ import java.util.Objects;
 public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> implements TBTaskService {
     private final static Logger log = LoggerFactory.getLogger(TBTaskServiceImpl.class);
 
-    @Resource
-    private TeachcloudCommonService teachcloudCommonService;
     @Resource
     private BasicRoleDataPermissionService basicRoleDataPermissionService;
 
     @Resource
     TBTaskMapper tbTaskMapper;
 
+    @Resource
+    RedisUtil redisUtil;
+
     /**
      * 保存任务
      *
@@ -280,4 +281,15 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
         DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(schoolId, sysUser.getId(), ServletUtil.getRequest().getServletPath());
         return tbTaskMapper.query(iPage, schoolId, semesterId, examId, courseCode, paperNumber, null, Objects.nonNull(status) ? status.name() : null, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(result) ? result.name() : null, dpr);
     }
+
+    @Override
+    public void resetCreatePdf(TBTask tbTask) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Map<String, Object> map = new HashMap<>();
+        map.computeIfAbsent(SystemConstant.TASK, v -> tbTask);
+        map.computeIfAbsent(SystemConstant.USER, v -> sysUser);
+        map.putIfAbsent(SystemConstant.MANUAL, true);
+        MqDto mqDto = new MqDto(MqTagEnum.PDF.getCode(), map, String.valueOf(tbTask.getId()));
+        redisUtil.sendMessage(mqDto.getTopic(), mqDto);
+    }
 }