浏览代码

Merge branch 'dev' of http://git.qmth.com.cn/wangliang/distributed-print-service into dev

xiaof 4 年之前
父节点
当前提交
d552644b5a
共有 16 个文件被更改,包括 142 次插入75 次删除
  1. 21 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/domain/SmsDomain.java
  2. 3 14
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/MessageEnum.java
  3. 7 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TBTaskService.java
  4. 28 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMessageServiceImpl.java
  5. 6 8
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  6. 15 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBTaskServiceImpl.java
  7. 5 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncCreatePdfTempleteService.java
  8. 5 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncDownloadPdfTempleteService.java
  9. 5 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncExaminationExportTemplateService.java
  10. 5 7
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncExaminationImportTemplateService.java
  11. 5 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncTaskReviewSampleExportService.java
  12. 1 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java
  13. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java
  14. 10 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java
  15. 6 0
      distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java
  16. 18 24
      distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

+ 21 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/domain/SmsDomain.java

@@ -19,6 +19,10 @@ public class SmsDomain {
 
     String aliyunSMSTplCode;
 
+    String aliyunSMSAuditPassCode;
+
+    String aliyunSMSAuditNotPassCode;
+
     public String getSmsNormalCode() {
         return smsNormalCode;
     }
@@ -74,4 +78,21 @@ public class SmsDomain {
     public void setAliyunSMSTplCode(String aliyunSMSTplCode) {
         this.aliyunSMSTplCode = aliyunSMSTplCode;
     }
+
+    public String getAliyunSMSAuditPassCode() {
+        return aliyunSMSAuditPassCode;
+    }
+
+    public void setAliyunSMSAuditPassCode(String aliyunSMSAuditPassCode) {
+        this.aliyunSMSAuditPassCode = aliyunSMSAuditPassCode;
+    }
+
+    public String getAliyunSMSAuditNotPassCode() {
+        return aliyunSMSAuditNotPassCode;
+    }
+
+    public void setAliyunSMSAuditNotPassCode(String aliyunSMSAuditNotPassCode) {
+        this.aliyunSMSAuditNotPassCode = aliyunSMSAuditNotPassCode;
+    }
+
 }

+ 3 - 14
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/MessageEnum.java

@@ -7,29 +7,18 @@ package com.qmth.distributed.print.business.enums;
  */
 public enum MessageEnum {
 
-    NOTICE_OF_AUDIT_PASS("审核通过通知","SMS_1474165652","【审核通过】XX您好,【XXXX】(课程)、【XXXX】(试卷编号)试卷入库申请已通过,您可在卷库里进行查看已审核通过的试卷!"),
-    NOTICE_OF_AUDIT_NOT_PASS("审核不通过通知","SMS_147416565","【审核不通过】XX您好,【XXXX】(课程)、【XXXX】(试卷编号)试卷入库申请未通过,您可查看审核意见后重新提交入库申请!"),
+    NOTICE_OF_AUDIT_PASS("审核通过通知"),
+    NOTICE_OF_AUDIT_NOT_PASS("审核不通过通知"),
     ;
 
-    MessageEnum(String name, String templateCode, String templateContent) {
+    MessageEnum(String name) {
         this.name = name;
-        this.templateCode = templateCode;
-        this.templateContent = templateContent;
     }
 
     private final String name;
-    private final String templateCode;
-    private final String templateContent;
 
     public String getName() {
         return name;
     }
 
-    public String getTemplateCode() {
-        return templateCode;
-    }
-
-    public String getTemplateContent() {
-        return templateContent;
-    }
 }

+ 7 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TBTaskService.java

@@ -9,6 +9,7 @@ import com.qmth.distributed.print.business.entity.TBTask;
 import com.qmth.distributed.print.business.enums.TaskResultEnum;
 import com.qmth.distributed.print.business.enums.TaskStatusEnum;
 import com.qmth.distributed.print.business.enums.TaskTypeEnum;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -139,4 +140,10 @@ public interface TBTaskService extends IService<TBTask> {
      * @return
      */
     public boolean countByPrintPlanIdAndEntityId(Long schoolId, Long printPlanId, List<Long> entityIds);
+
+    /**
+     * 更新任务状态
+     */
+    @Async
+    public void updateStatus();
 }

+ 28 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMessageServiceImpl.java

@@ -25,6 +25,8 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @Description: 短信消息发送
@@ -45,8 +47,9 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
         this.checkData(userId,mobileNumber,businessId,variableParams,createId,messageType);
 
         // code和content
-        String templateCode = messageType.getTemplateCode();
-        String templateContent = messageType.getTemplateContent();
+        Map<String,String> enumInfo = this.getCodeAndContentByEnum(messageType);
+        String templateCode = enumInfo.get("templateCode");
+        String templateContent = enumInfo.get("templateContent");
 
 
         // 短信提示系统是否启用配置验证
@@ -107,7 +110,7 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
                 basicMessage.setBusinessOperate(messageType.getName());
                 basicMessage.setCreateTime(System.currentTimeMillis());
                 basicMessage.setTemplateCode(templateCode);
-                basicMessage.setTemplateContent(templateContent);
+//                basicMessage.setTemplateContent(templateContent);
                 basicMessage.setSendStatus(sendSmsResponse.getCode());
                 basicMessage.setSendResult(sendSmsResponse.getMessage());
                 this.save(basicMessage);
@@ -134,4 +137,26 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
             }
         }
     }
+
+    private Map<String,String> getCodeAndContentByEnum(MessageEnum messageEnum){
+        Map<String,String> result = new HashMap<>();
+        String templateContent;
+        String templateCode;
+        switch (messageEnum){
+            case NOTICE_OF_AUDIT_PASS:
+                // ${userName}您好,${courseName}、${paperNumber}试卷入库申请已通过,您可在卷库里进行查看已审核通过的试卷!
+                templateCode = dictionaryConfig.smsDomain().getAliyunSMSAuditPassCode();
+                templateContent = "${userName}您好,${courseName}、${paperNumber}试卷入库申请已通过,您可在卷库里进行查看已审核通过的试卷!";
+                break;
+            case NOTICE_OF_AUDIT_NOT_PASS:
+                templateCode = dictionaryConfig.smsDomain().getAliyunSMSAuditNotPassCode();
+                templateContent = "${userName}您好,${courseName}、${paperNumber}试卷入库申请未通过,您可查看审核意见后重新提交入库申请";
+                break;
+            default:
+                throw new IllegalStateException("Unexpected value: " + messageEnum);
+        }
+        result.put("templateContent",templateContent);
+        result.put("templateCode",templateCode);
+        return result;
+    }
 }

+ 6 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -1,9 +1,7 @@
 package com.qmth.distributed.print.business.service.impl;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -23,7 +21,6 @@ import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
-import io.swagger.annotations.Example;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,7 +28,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.io.File;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -67,6 +63,9 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
     @Resource
     private BasicExamRuleService basicExamRuleService;
 
+    @Resource
+    private TBTaskService tbTaskService;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public IPage<PrintPlanResult> printPlanPage(Long schoolId, Long printPlanId, PrintPlanStatusEnum status, Long startTime, Long endTime, int pageNumber, int pageSize) {
@@ -246,13 +245,12 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
         if (examPrintPlan == null) {
             throw ExceptionResultEnum.ERROR.exception("要删除的项目计划不存在");
         }
-        // TODO: 2021/4/23 只有新建能删除  && !PrintPlanStatusEnum.READY.equals(examPrintPlan.getStatus())
         if (!PrintPlanStatusEnum.NEW.equals(examPrintPlan.getStatus())) {
             throw ExceptionResultEnum.ERROR.exception("只有'新建'状态的项目计划可以被删除");
         }
-//        if (!PrintPlanStatusEnum.NEW.equals(examPrintPlan.getStatus()) && !PrintPlanStatusEnum.READY.equals(examPrintPlan.getStatus())){
-//            throw ExceptionResultEnum.ERROR.exception("只有'新建'和就绪状态的项目计划可以被删除");
-//        }
+        if (!tbTaskService.countByPrintPlanIdAndEntityId(examPrintPlan.getSchoolId(),id,null)){
+            throw ExceptionResultEnum.ERROR.exception("要删除的印刷计划正在生成pdf中,无法删除");
+        }
         examDetailService.deleteExaminationData(id);
         return this.removeById(id);
     }

+ 15 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TBTaskServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.business.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.api.exception.ApiException;
@@ -294,6 +295,20 @@ public class TBTaskServiceImpl extends ServiceImpl<TBTaskMapper, TBTask> impleme
         return this.count(tbTaskQueryWrapper) == 0 ? true : false;
     }
 
+    /**
+     * 更新任务状态
+     */
+    @Override
+    @Transactional
+    public void updateStatus() {
+        UpdateWrapper<TBTask> tbTaskQueryWrapper = new UpdateWrapper<>();
+        tbTaskQueryWrapper.lambda().set(TBTask::getStatus, TaskStatusEnum.FINISH)
+                .set(TBTask::getSummary, "系统提交:网络异常或程序异常中断!")
+                .set(TBTask::getResult, TaskResultEnum.ERROR)
+                .isNotNull(TBTask::getStatus).ne(TBTask::getStatus, TaskStatusEnum.FINISH);
+        this.update(tbTaskQueryWrapper);
+    }
+
     /**
      * 保存task
      *

+ 5 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncCreatePdfTempleteService.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.templete.execute;
 
+import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.TBTask;
 import com.qmth.distributed.print.business.enums.TaskResultEnum;
@@ -18,6 +19,7 @@ import org.springframework.stereotype.Service;
 
 import java.io.IOException;
 import java.text.MessageFormat;
+import java.util.Date;
 import java.util.Map;
 import java.util.Objects;
 import java.util.StringJoiner;
@@ -46,18 +48,18 @@ public class AsyncCreatePdfTempleteService extends AsyncCreateTaskTemplete {
     @Override
     public Result createPdf(Map<String, Object> map, CallbackCreatePdf callbackCreatePdf) throws IOException {
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
-        StringJoiner stringJoinerSummary = new StringJoiner("\n").add(MessageFormat.format("{0}{1}{2}", FORMAT_TIME, BEGIN_TITLE, OBJ_TITLE));
+        StringJoiner stringJoinerSummary = new StringJoiner("\n").add(MessageFormat.format("{0}{1}{2}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), BEGIN_TITLE, OBJ_TITLE));
         tbTask.setStatus(TaskStatusEnum.RUNNING);
         TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
         tbTaskService.updateById(tbTask);
         try {
             TaskLogicService taskLogicService = SpringContextHolder.getBean(TaskLogicService.class);
             taskLogicService.executeCreatePdfLogic(map);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, FINISH_TITLE, map.get("size"), FINISH_SIZE));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), FINISH_TITLE, map.get("size"), FINISH_SIZE));
             tbTask.setResult(TaskResultEnum.SUCCESS);
         } catch (Exception e) {
             log.error("请求出错", e);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
             tbTask.setResult(TaskResultEnum.ERROR);
             if (e instanceof ApiException) {
                 ResultUtil.error((ApiException) e, e.getMessage());

+ 5 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncDownloadPdfTempleteService.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.templete.execute;
 
+import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.TBTask;
 import com.qmth.distributed.print.business.enums.TaskResultEnum;
@@ -16,6 +17,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import java.text.MessageFormat;
+import java.util.Date;
 import java.util.Map;
 import java.util.Objects;
 import java.util.StringJoiner;
@@ -43,18 +45,18 @@ public class AsyncDownloadPdfTempleteService extends AsyncExportTaskTemplete {
     @Override
     public Result exportTask(Map<String, Object> map) throws Exception {
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
-        StringJoiner stringJoinerSummary = new StringJoiner("\n").add(MessageFormat.format("{0}{1}{2}", FORMAT_TIME, BEGIN_TITLE, OBJ_TITLE));
+        StringJoiner stringJoinerSummary = new StringJoiner("\n").add(MessageFormat.format("{0}{1}{2}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), BEGIN_TITLE, OBJ_TITLE));
         tbTask.setStatus(TaskStatusEnum.RUNNING);
         TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
         tbTaskService.updateById(tbTask);
         try {
             TaskLogicService taskLogicService = SpringContextHolder.getBean(TaskLogicService.class);
             taskLogicService.executeDownloadPdfLogic(map);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, FINISH_TITLE, map.get("size"), FINISH_SIZE));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), FINISH_TITLE, map.get("size"), FINISH_SIZE));
             tbTask.setResult(TaskResultEnum.SUCCESS);
         } catch (Exception e) {
             log.error("请求出错", e);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
             tbTask.setResult(TaskResultEnum.ERROR);
             if (e instanceof ApiException) {
                 ResultUtil.error((ApiException) e, e.getMessage());

+ 5 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncExaminationExportTemplateService.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.templete.execute;
 
+import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.TBTask;
 import com.qmth.distributed.print.business.enums.TaskResultEnum;
@@ -18,6 +19,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.text.MessageFormat;
+import java.util.Date;
 import java.util.Map;
 import java.util.StringJoiner;
 
@@ -37,14 +39,14 @@ public class AsyncExaminationExportTemplateService extends AsyncExportTaskTemple
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
 
         StringJoiner stringJoinerSummary = new StringJoiner("\n")
-                .add(MessageFormat.format("{0}{1}{2}", FORMAT_TIME, BEGIN_TITLE, OBJ_TITLE));
+                .add(MessageFormat.format("{0}{1}{2}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), BEGIN_TITLE, OBJ_TITLE));
         tbTask.setStatus(TaskStatusEnum.RUNNING);
         TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
         tbTaskService.updateById(tbTask);
         try {
             TaskLogicService taskLogicService = SpringContextHolder.getBean(TaskLogicService.class);
             Map<String, Object> result = taskLogicService.executeExaminationLogic(map);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, FINISH_TITLE, result.size(), FINISH_SIZE));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), FINISH_TITLE, result.size(), FINISH_SIZE));
             String path = String.valueOf(result.get(SystemConstant.PATH));
             System.out.println("path = " + path);
             tbTask.setImportFileName(TaskTypeEnum.EXAMINATION_EXPORT.getTitle());
@@ -53,7 +55,7 @@ public class AsyncExaminationExportTemplateService extends AsyncExportTaskTemple
 
         } catch (Exception e) {
             log.error("请求出错", e);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
             tbTask.setResult(TaskResultEnum.ERROR);
             if (e instanceof ApiException) {
                 ResultUtil.error((ApiException) e, e.getMessage());

+ 5 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncExaminationImportTemplateService.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.templete.execute;
 
+import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.entity.TBTask;
@@ -23,10 +24,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.InputStream;
 import java.text.MessageFormat;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.StringJoiner;
+import java.util.*;
 
 /**
  * @Description: 考务数据导入模板
@@ -49,7 +47,7 @@ public class AsyncExaminationImportTemplateService extends AsyncImportTaskTemple
         map.put("inputStream", inputStream);
 
         StringJoiner stringJoinerSummary = new StringJoiner("\n")
-                .add(MessageFormat.format("{0}{1}{2}", FORMAT_TIME, BEGIN_TITLE, OBJ_TITLE));
+                .add(MessageFormat.format("{0}{1}{2}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), BEGIN_TITLE, OBJ_TITLE));
         tbTask.setStatus(TaskStatusEnum.RUNNING);
         TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
         tbTaskService.updateById(tbTask);
@@ -70,11 +68,11 @@ public class AsyncExaminationImportTemplateService extends AsyncImportTaskTemple
                 examTaskService.checkDataByExamination(examDetailId, user);
             }
 
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, FINISH_TITLE, Long.valueOf(String.valueOf(result.get("dataCount"))), FINISH_SIZE));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), FINISH_TITLE, Long.valueOf(String.valueOf(result.get("dataCount"))), FINISH_SIZE));
             tbTask.setResult(TaskResultEnum.SUCCESS);
         } catch (Exception e) {
             log.error("请求出错", e);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
             tbTask.setResult(TaskResultEnum.ERROR);
             if (e instanceof ApiException) {
                 ResultUtil.error((ApiException) e, e.getMessage());

+ 5 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/AsyncTaskReviewSampleExportService.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.templete.execute;
 
+import cn.hutool.core.date.DateUtil;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.TBTask;
 import com.qmth.distributed.print.business.enums.TaskResultEnum;
@@ -18,6 +19,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.text.MessageFormat;
+import java.util.Date;
 import java.util.Map;
 import java.util.StringJoiner;
 
@@ -39,18 +41,18 @@ public class AsyncTaskReviewSampleExportService extends AsyncExportTaskTemplete
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
 
         StringJoiner stringJoinerSummary = new StringJoiner("\n")
-                .add(MessageFormat.format("{0}{1}{2}", FORMAT_TIME, BEGIN_TITLE, OBJ_TITLE));
+                .add(MessageFormat.format("{0}{1}{2}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), BEGIN_TITLE, OBJ_TITLE));
         tbTask.setStatus(TaskStatusEnum.RUNNING);
         TBTaskService tbTaskService = SpringContextHolder.getBean(TBTaskService.class);
         tbTaskService.updateById(tbTask);
         try {
             TaskLogicService taskLogicService = SpringContextHolder.getBean(TaskLogicService.class);
             Map<String, Object> result = taskLogicService.executeExportSampleLogic(map);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, FINISH_TITLE, Long.valueOf(String.valueOf(result.get("count"))), FINISH_SIZE));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), FINISH_TITLE, Long.valueOf(String.valueOf(result.get("count"))), FINISH_SIZE));
             tbTask.setResult(TaskResultEnum.SUCCESS);
         } catch (Exception e) {
             log.error("请求出错", e);
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_TITLE, EXCEPTION_DATA, e.getMessage()));
             tbTask.setResult(TaskResultEnum.ERROR);
             if (e instanceof ApiException) {
                 ResultUtil.error((ApiException) e, e.getMessage());

+ 1 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java

@@ -38,7 +38,6 @@ import java.util.StringJoiner;
 public abstract class AsyncExportTaskTemplete {
     private final static Logger log = LoggerFactory.getLogger(AsyncImportTaskTemplete.class);
     public static final String BEGIN_TITLE = "->开始准备处理导出的";
-    public static final String FORMAT_TIME = DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN);
     public static final String FINISH_TITLE = "->数据处理结束,共处理了";
     public static final String FINISH_SIZE = "条数据";
     public static final String EXCEPTION_TITLE = "->数据处理发生异常!";
@@ -101,7 +100,7 @@ public abstract class AsyncExportTaskTemplete {
         } catch (Exception e) {
             log.error("请求出错", e);
             StringJoiner stringJoinerSummary = new StringJoiner("").add(tbTask.getSummary()).add("\n");
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, EXCEPTION_CREATE_TXT_TITLE, EXCEPTION_DATA, e.getMessage()));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_CREATE_TXT_TITLE, EXCEPTION_DATA, e.getMessage()));
             tbTask.setSummary(stringJoinerSummary.toString());
             tbTask.setResult(TaskResultEnum.ERROR);
             if (e instanceof ApiException) {

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -15,6 +15,7 @@ import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.util.Result;
 import com.qmth.distributed.print.common.util.ResultUtil;
 import org.apache.commons.io.FileUtils;
+import org.apache.velocity.runtime.directive.contrib.For;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.scheduling.annotation.Async;
@@ -45,7 +46,6 @@ public abstract class AsyncImportTaskTemplete {
     public static final String FINISH_SIZE = "条数据";
     public static final String TXT_PREFIX = ".txt";
     public static final String EXCEPTION_CREATE_TXT_TITLE = "->创建导出日志时发生异常!";
-    public static final String FORMAT_TIME = DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN);
 
     /**
      * 异步导入任务
@@ -137,7 +137,7 @@ public abstract class AsyncImportTaskTemplete {
         } catch (Exception e) {
             log.error("请求出错", e);
             StringJoiner stringJoinerSummary = new StringJoiner("").add(tbTask.getSummary()).add("\n");
-            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", FORMAT_TIME, EXCEPTION_CREATE_TXT_TITLE, EXCEPTION_DATA, e.getMessage()));
+            stringJoinerSummary.add(MessageFormat.format("{0}{1}{2}{3}", DateUtil.format(new Date(), SystemConstant.DEFAULT_DATE_PATTERN), EXCEPTION_CREATE_TXT_TITLE, EXCEPTION_DATA, e.getMessage()));
             tbTask.setSummary(stringJoinerSummary.toString());
             tbTask.setResult(TaskResultEnum.ERROR);
             if (e instanceof ApiException) {

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

@@ -112,6 +112,9 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     @Resource
     BasicExamRuleService basicExamRuleService;
 
+    @Resource
+    TBTaskService tbTaskService;
+
     /**
      * 创建pdf逻辑
      *
@@ -231,7 +234,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                             examCardDetailQueryWrapper.lambda().eq(ExamCardDetail::getCardId, examCard.getId());
                             List<ExamCardDetail> examCardDetailList = examCardDetailService.list(examCardDetailQueryWrapper);
 
-                            //抽取卷型
+                            //拼装key
                             String key = examDetail.getSchoolId()
                                     + "_" + examDetail.getExamStartTime()
                                     + "_" + examDetail.getExamEndTime()
@@ -242,7 +245,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                                 paperType = paperTypeParam;
                                 CreatePdfCacheUtil.setPaperType(key, paperType);
                             } else {
-                                paperType = createPdfUtil.getPaperType(examPrintPlan, examTaskDetail, key);
+                                paperType = createPdfUtil.getPaperType(examPrintPlan, examTaskDetail, key);//抽取卷型
                             }
                             examTaskDetail.setRelatePaperType(paperType);
                             examDetailCourse.setPaperType(paperType);
@@ -380,6 +383,10 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         TBTask tbTask = (TBTask) map.get(SystemConstant.TASK);
         InputStream inputStream = (InputStream) map.get("inputStream");
         Long printPlanId = tbTask.getPrintPlanId();
+        Long schoolId = tbTask.getSchoolId();
+        if (!tbTaskService.countByPrintPlanIdAndEntityId(schoolId,printPlanId,null)){
+            throw ExceptionResultEnum.ERROR.exception("当前印刷计划正在生成pdf,无法导入考务数据");
+        }
         Long userId = tbTask.getCreateId();
         ExamPrintPlan examPrintPlan = examPrintPlanService.getById(printPlanId);
 
@@ -393,7 +400,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         }
 
         String printPlanName = examPrintPlan.getName();
-        Long schoolId = tbTask.getSchoolId();
+
         // 该学校有效考务数据
         List<FieldsDto> fieldsDtoList = examDetailService.findExaminationFields(schoolId);
         if (fieldsDtoList.size() == 0) {

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/start/StartRunning.java

@@ -1,6 +1,7 @@
 package com.qmth.distributed.print.start;
 
 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.TimedSyncSchoolJob;
@@ -31,12 +32,17 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     private OrgCenterDataDisposeService orgCenterDataDisposeService;
 
+    @Resource
+    TBTaskService taskService;
+
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
         SystemConstant.initTempFiles();
         orgCenterDataDisposeService.updateSchoolInfo();
 
+        taskService.updateStatus();
+
         log.info("增加学校信息同步定时任务 start");
         Map schoolJobMap = new HashMap();
         schoolJobMap.computeIfAbsent("name", v -> TimedSyncSchoolJob.class.getName());

+ 18 - 24
distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

@@ -1,11 +1,10 @@
 package com.qmth.distributed.print;
 
-import com.qmth.distributed.print.api.ExamDetailController;
+import com.alibaba.fastjson.JSON;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.util.ConvertUtil;
-import com.qmth.distributed.print.business.util.OssUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -13,6 +12,7 @@ import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -31,22 +31,18 @@ public class ServiceTest {
     @Resource
     private ExamDetailService examDetailService;
     @Resource
-    private ExamDetailController examDetailController;
-    @Resource
-    OssUtil ossUtil;
-    @Resource
     private BasicMessageService basicMessageService;
     @Resource
     private BasicVerifyCodeService basicVerifyCodeService;
 
 
     @Test
-    public void printPlanTemplateDatasource(){
-        examPrintPlanService.printPlanTemplateDatasource(1L,2L);
+    public void printPlanTemplateDatasource() {
+        examPrintPlanService.printPlanTemplateDatasource(1L, 2L);
     }
 
     @Test
-    public void mapper(){
+    public void mapper() {
         List<Long> ids = new ArrayList<>();
         ids.add(1L);
         ids.add(9L);
@@ -57,16 +53,16 @@ public class ServiceTest {
     }
 
     @Test
-    public void readExcelTest(){
+    public void readExcelTest() {
         examDetailService.findExaminationFields(101L);
     }
 
     @Test
-    public void date(){
+    public void date() {
         Long startTime = 1618308000000L;
         Long endTime = 1618315200000L;
 
-        Map<String,Object> map = ConvertUtil.analyzeDateAndTime(startTime,endTime);
+        Map<String, Object> map = ConvertUtil.analyzeDateAndTime(startTime, endTime);
         String date = String.valueOf(map.get("date"));
         String time = String.valueOf(map.get("time"));
         System.out.println("date = " + date);
@@ -75,27 +71,25 @@ public class ServiceTest {
     }
 
     @Test
-    public void uploadOss(){
-//        String pdfDirName = "upload/2021/04/20/test1.pdf";
-//        String pdfFilePath = "E:\\qiming\\qiming_dev\\distribution-print\\v2.0\\dev\\pdf-temp\\upload/2021/04/20/1eacef5479f74d72ab4a924468e80d73.pdf"
-//        ossUtil.ossUpload(pdfDirName, pdfFile, BinaryUtil.toBase64String(HexUtils.decodeHex(fileMd5)));
-    }
-
-    @Test
-    public void sendMessage(){
+    public void sendMessage() {
         Long userId = 1L;
         String mobileNumber = "18903719928";
         Long businessId = 1L;
-        String variableParams = "{\"code\":\"" + "123456" + "\"}";
+        Map<String, String> jsonMap = new HashMap<>();
+        jsonMap.put("name", "张三");
+        jsonMap.put("courseName", "数学");
+        jsonMap.put("paperNumber", "SX001");
+        String variableParams = JSON.toJSONString(jsonMap);
+//        String variableParams = "{\"code\":\"" + "123456" + "\"}";
         Long createId = 1L;
         MessageEnum messageType = MessageEnum.NOTICE_OF_AUDIT_NOT_PASS;
 
-        basicMessageService.saveMessageSendLog(userId,mobileNumber,businessId,variableParams,createId,messageType);
+        basicMessageService.saveMessageSendLog(userId, mobileNumber, businessId, variableParams, createId, messageType);
     }
 
     @Test
-    public void sendVerifyCode(){
-        basicVerifyCodeService.sendVeirfyCode("18903719928",1L);
+    public void sendVerifyCode() {
+        basicVerifyCodeService.sendVeirfyCode("18903719928", 1L);
     }
 
 }