wangliang 4 年之前
父節點
當前提交
46d312ecef

+ 14 - 2
distributed-print-task/src/main/java/com/qmth/distributed/print/task/job/service/impl/JobServiceImpl.java

@@ -1,8 +1,10 @@
 package com.qmth.distributed.print.task.job.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
+import com.qmth.distributed.print.business.service.ExamDetailService;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
 import com.qmth.distributed.print.business.service.OrgCenterDataDisposeService;
 import com.qmth.distributed.print.task.job.service.JobService;
@@ -13,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -33,6 +36,9 @@ public class JobServiceImpl implements JobService {
     @Resource
     ExamPrintPlanService examPrintPlanService;
 
+    @Resource
+    ExamDetailService examDetailService;
+
     @Override
     public void updateSchoolInfo() throws IOException {
         orgCenterDataDisposeService.updateSchoolInfo();
@@ -49,8 +55,14 @@ public class JobServiceImpl implements JobService {
         List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(examPrintPlanQueryWrapper);
         if (Objects.nonNull(examPrintPlanList) && examPrintPlanList.size() > 0) {
             for (ExamPrintPlan examPrintPlan : examPrintPlanList) {
-                if (Objects.nonNull(examPrintPlan.getExamEndTime()) && System.currentTimeMillis() >= examPrintPlan.getExamEndTime()) {
-                    examPrintPlan.setStatus(PrintPlanStatusEnum.END);
+                QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
+                examDetailQueryWrapper.lambda().eq(ExamDetail::getPrintPlanId, examPrintPlan.getId());
+                List<ExamDetail> examDetailList = examDetailService.list(examDetailQueryWrapper);
+                if (Objects.nonNull(examDetailList) && examDetailList.size() > 0) {
+                    Long maxEndTime = examDetailList.stream().mapToLong(i -> i.getExamEndTime()).max().getAsLong();
+                    if (System.currentTimeMillis() >= maxEndTime.longValue()) {
+                        examPrintPlan.setStatus(PrintPlanStatusEnum.END);
+                    }
                 }
             }
         }

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

@@ -306,8 +306,8 @@ public class ExamPrintPlanController {
         }
         List<ExamDetail> examDetailList = examDetailService.listByIds(Arrays.asList(arraysParams.getIds()));
         for (ExamDetail ExamDetail : examDetailList) {
-            if (ExamDetail.getStatus() != ExamDetailStatusEnum.READY && ExamDetail.getStatus() != ExamDetailStatusEnum.PRINTING) {
-                throw ExceptionResultEnum.ERROR.exception("状态只能为就绪或印刷中才能下载");
+            if (ExamDetail.getStatus() == ExamDetailStatusEnum.NEW) {
+                throw ExceptionResultEnum.ERROR.exception("状态为新建不能下载");
             }
         }
         Map<String, Object> map = tbTaskService.saveTask(TaskTypeEnum.PRINT_PDF_DOWNLOAD, arraysParams, (SysUser) ServletUtil.getRequestUser());