فهرست منبع

增加生成pdf前校验

xiaof 4 سال پیش
والد
کامیت
13e135316d

+ 28 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/BasicMessage.java

@@ -81,6 +81,18 @@ public class BasicMessage extends BaseEntity implements Serializable {
     @TableField("send_result")
     @TableField("send_result")
     private String sendResult;
     private String sendResult;
 
 
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+
+    /**
+     * 失败重发次数
+     */
+    @TableField("resend_count")
+    private Integer resendCount;
+
     public Long getUserId() {
     public Long getUserId() {
         return userId;
         return userId;
     }
     }
@@ -160,4 +172,20 @@ public class BasicMessage extends BaseEntity implements Serializable {
     public void setSendResult(String sendResult) {
     public void setSendResult(String sendResult) {
         this.sendResult = sendResult;
         this.sendResult = sendResult;
     }
     }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getResendCount() {
+        return resendCount;
+    }
+
+    public void setResendCount(Integer resendCount) {
+        this.resendCount = resendCount;
+    }
 }
 }

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

@@ -19,13 +19,13 @@ public enum MessageEnum {
     NOTICE_OF_EXAM_TASK_CREATED("命题任务待办生成通知","${userName}您好,您有${count}条新命题待办生成,请您处理!"),
     NOTICE_OF_EXAM_TASK_CREATED("命题任务待办生成通知","${userName}您好,您有${count}条新命题待办生成,请您处理!"),
     // 定时任务查询触发,业务id为命题老师id,短信发送给命题老师
     // 定时任务查询触发,业务id为命题老师id,短信发送给命题老师
     NOTICE_OF_EXAM_TASK_WILL_EXPIRE("命题任务待办到期预警通知","${userName}您好,您还有${count}条命题待办即将逾期,请您尽快处理!"),
     NOTICE_OF_EXAM_TASK_WILL_EXPIRE("命题任务待办到期预警通知","${userName}您好,您还有${count}条命题待办即将逾期,请您尽快处理!"),
-    NOTICE_OF_EXAM_TASK_OVERDUE("命题任务待办逾期通知","${userName}您好,您有${count}条命题待办已逾期!"),
+    NOTICE_OF_EXAM_TASK_OVERDUE("命题任务待办逾期通知","${userName}您好,您今日新增${count}条命题待办逾期,请您尽快处理!"),
 
 
     /**
     /**
      * 命题分配待办提醒(定时任务查询触发,业务id为考务老师id,短信发送给考务老师)
      * 命题分配待办提醒(定时任务查询触发,业务id为考务老师id,短信发送给考务老师)
      */
      */
     NOTICE_OF_ALLOCATION_WILL_EXPIRE("命题分配待办到期预警通知","${userName}您好,您还有${count}条命题任务尚未分配命题老师,任务即将逾期,请您尽快处理!"),
     NOTICE_OF_ALLOCATION_WILL_EXPIRE("命题分配待办到期预警通知","${userName}您好,您还有${count}条命题任务尚未分配命题老师,任务即将逾期,请您尽快处理!"),
-    NOTICE_OF_ALLOCATION_OVERDUE("命题分配待办逾期通知","${userName}您好,您有${count}条命题分配待办已逾期!"),
+    NOTICE_OF_ALLOCATION_OVERDUE("命题分配待办逾期通知","${userName}您好,您今日新增${count}条命题分配待办逾期,请您尽快处理!"),
 
 
     /**
     /**
      * 审核待办提醒
      * 审核待办提醒

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

@@ -2,6 +2,7 @@ package com.qmth.distributed.print.business.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.entity.BasicMessage;
 import com.qmth.distributed.print.business.entity.BasicMessage;
+import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.entity.SysUser;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 
 
@@ -20,10 +21,9 @@ public interface BasicMessageService extends IService<BasicMessage> {
      * @param mobileNumber 接收人电话
      * @param mobileNumber 接收人电话
      * @param businessId 业务id
      * @param businessId 业务id
      * @param variableParams 变量参数
      * @param variableParams 变量参数
-     * @param createId 发送人id
      * @param messageType 消息类型
      * @param messageType 消息类型
      */
      */
-    void saveMessageSendLog(Long userId, String mobileNumber, Long businessId, String variableParams, Long createId, MessageEnum messageType);
+    void saveMessageSendLog(Long userId, String mobileNumber, Long businessId, String variableParams, MessageEnum messageType, String remark);
 
 
     /**
     /**
      * 命题任务审核消息处理
      * 命题任务审核消息处理
@@ -32,4 +32,10 @@ public interface BasicMessageService extends IService<BasicMessage> {
      * @param sysUser 发送信息的用户
      * @param sysUser 发送信息的用户
      */
      */
     void noticeOfExamTaskAudit(List<Long> examTaskIdList, MessageEnum messageType, SysUser sysUser);
     void noticeOfExamTaskAudit(List<Long> examTaskIdList, MessageEnum messageType, SysUser sysUser);
+
+    /**
+     * 发送给命题老师-待办提醒
+     * @param examTasks
+     */
+    void sendNoticeTaskCreate(ExamTask... examTasks);
 }
 }

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

@@ -38,11 +38,11 @@ public interface ExamTaskService extends IService<ExamTask> {
 
 
     boolean enable(ExamTask examTask);
     boolean enable(ExamTask examTask);
 
 
-    boolean saveExamTask(ExamTask examTask);
+    ExamTask saveExamTask(ExamTask examTask);
 
 
     ExamTaskImportDto importFile(MultipartFile file) throws IOException, NoSuchFieldException;
     ExamTaskImportDto importFile(MultipartFile file) throws IOException, NoSuchFieldException;
 
 
-    boolean saveBatch(ExamTask task);
+    List<ExamTask> saveBatch(ExamTask task);
 
 
     IPage<ExamTaskDto> listTaskApply(String auditStatus, String reviewStatus, Long cardRuleId, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
     IPage<ExamTaskDto> listTaskApply(String auditStatus, String reviewStatus, Long cardRuleId, String courseCode, String paperNumber, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
 
 

+ 54 - 24
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicMessageServiceImpl.java

@@ -20,17 +20,18 @@ import com.qmth.distributed.print.business.service.BasicMessageService;
 import com.qmth.distributed.print.business.service.CacheService;
 import com.qmth.distributed.print.business.service.CacheService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.SysConfigService;
 import com.qmth.distributed.print.business.service.SysConfigService;
+import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.distributed.print.common.contant.SpringContextHolder;
 import com.qmth.distributed.print.common.contant.SpringContextHolder;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.text.MessageFormat;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * @Description: 短信消息发送
  * @Description: 短信消息发送
@@ -48,7 +49,8 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
 
 
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     @Override
     @Override
-    public void saveMessageSendLog(Long userId,String mobileNumber,Long businessId,String variableParams,Long createId,MessageEnum messageType) {
+    public void saveMessageSendLog(Long userId, String mobileNumber, Long businessId, String variableParams, MessageEnum messageType, String remark) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         BasicMessage basicMessage = new BasicMessage();
         BasicMessage basicMessage = new BasicMessage();
         // code和content
         // code和content
         Map<String, String> enumInfo = this.getCodeAndContentByEnum(messageType);
         Map<String, String> enumInfo = this.getCodeAndContentByEnum(messageType);
@@ -59,11 +61,11 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
 
 
         try {
         try {
             // 其他方法调用所传入的参数,必须校验有值
             // 其他方法调用所传入的参数,必须校验有值
-            this.checkData(userId, mobileNumber, businessId, variableParams, createId, messageType);
+            this.checkData(userId, mobileNumber, variableParams, messageType);
 
 
             // 短信提示系统是否启用配置验证
             // 短信提示系统是否启用配置验证
             SysConfig sysConfig = sysConfigService.getByKey("sys.message.enable");
             SysConfig sysConfig = sysConfigService.getByKey("sys.message.enable");
-            if (sysConfig == null){
+            if (sysConfig == null) {
                 throw ExceptionResultEnum.ERROR.exception("未找到短信配置");
                 throw ExceptionResultEnum.ERROR.exception("未找到短信配置");
             }
             }
             if (sysConfig.getConfigValue() == null) {
             if (sysConfig.getConfigValue() == null) {
@@ -115,22 +117,24 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
                 throw ExceptionResultEnum.ERROR.exception(sendSmsResponse.getMessage());
                 throw ExceptionResultEnum.ERROR.exception(sendSmsResponse.getMessage());
             }
             }
         } catch (Exception e) {
         } catch (Exception e) {
-            errorMessage  = e.getMessage();
+            errorMessage = e.getMessage();
         } finally {
         } finally {
             // 传入的必填字段
             // 传入的必填字段
             basicMessage.setUserId(userId);
             basicMessage.setUserId(userId);
             basicMessage.setMobileNumber(mobileNumber);
             basicMessage.setMobileNumber(mobileNumber);
             basicMessage.setBusinessId(businessId);
             basicMessage.setBusinessId(businessId);
             basicMessage.setVariableParams(variableParams);
             basicMessage.setVariableParams(variableParams);
-            basicMessage.setCreateId(createId);
+            basicMessage.setCreateId(sysUser.getId());
             basicMessage.setMessageType(messageType);
             basicMessage.setMessageType(messageType);
+            basicMessage.setRemark(remark);
+            basicMessage.setResendCount(0);
 
 
             // 经过处理的新字段
             // 经过处理的新字段
             basicMessage.setId(SystemConstant.getDbUuid());
             basicMessage.setId(SystemConstant.getDbUuid());
             basicMessage.setBusinessOperate(messageType.getName());
             basicMessage.setBusinessOperate(messageType.getName());
             basicMessage.setCreateTime(System.currentTimeMillis());
             basicMessage.setCreateTime(System.currentTimeMillis());
             basicMessage.setTemplateCode(templateCode);
             basicMessage.setTemplateCode(templateCode);
-            if (errorMessage != null && errorMessage.length() > 0){
+            if (errorMessage != null && errorMessage.length() > 0) {
                 basicMessage.setSendStatus("SYSTEM_ERROR");
                 basicMessage.setSendStatus("SYSTEM_ERROR");
                 basicMessage.setSendResult(errorMessage);
                 basicMessage.setSendResult(errorMessage);
             }
             }
@@ -142,16 +146,15 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
     @Override
     @Override
     public void noticeOfExamTaskAudit(List<Long> examTaskIdList, MessageEnum messageType, SysUser sysUser) {
     public void noticeOfExamTaskAudit(List<Long> examTaskIdList, MessageEnum messageType, SysUser sysUser) {
         ExamTaskService examTaskService = SpringContextHolder.getBean(ExamTaskService.class);
         ExamTaskService examTaskService = SpringContextHolder.getBean(ExamTaskService.class);
-        Long createId = sysUser.getId();
         for (Long examTaskId : examTaskIdList) {
         for (Long examTaskId : examTaskIdList) {
             ExamTask examTask = examTaskService.getById(examTaskId);
             ExamTask examTask = examTaskService.getById(examTaskId);
-            if (Objects.nonNull(examTask)){
+            if (Objects.nonNull(examTask)) {
                 String courseName = examTask.getCourseName();
                 String courseName = examTask.getCourseName();
                 String paperNumber = examTask.getPaperNumber();
                 String paperNumber = examTask.getPaperNumber();
                 // 获取短信接收对象的信息
                 // 获取短信接收对象的信息
                 Long userId = examTask.getUserId();
                 Long userId = examTask.getUserId();
                 SysUser user = cacheService.userCache(userId);
                 SysUser user = cacheService.userCache(userId);
-                if (Objects.nonNull(user)){
+                if (Objects.nonNull(user)) {
                     String userName = user.getRealName();
                     String userName = user.getRealName();
                     String mobileNumber = user.getMobileNumber();
                     String mobileNumber = user.getMobileNumber();
 
 
@@ -160,34 +163,61 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
                     jsonMap.put("courseName", courseName);
                     jsonMap.put("courseName", courseName);
                     jsonMap.put("paperNumber", paperNumber);
                     jsonMap.put("paperNumber", paperNumber);
                     String variableParams = JSON.toJSONString(jsonMap);
                     String variableParams = JSON.toJSONString(jsonMap);
-                    this.saveMessageSendLog(userId,mobileNumber, examTaskId,variableParams,createId,messageType);
+                    this.saveMessageSendLog(userId, mobileNumber, examTaskId, variableParams, messageType, null);
                 }
                 }
             }
             }
         }
         }
 
 
     }
     }
 
 
-    private void checkData(Object ... objects){
+    /**
+     * 发送给命题老师-待办提醒
+     *
+     * @param examTasks
+     */
+    @Override
+    public void sendNoticeTaskCreate(ExamTask... examTasks) {
+        // 指派命题老师的命题任务
+        Map<Long, List<String>> collects = Arrays.stream(examTasks).filter(m -> m.getUserId() != null).collect(Collectors.groupingBy(ExamTask::getUserId, Collectors.mapping(m -> String.valueOf(m.getId()), Collectors.toList())));
+        for (Map.Entry<Long, List<String>> longListEntry : collects.entrySet()) {
+            Long userId = longListEntry.getKey();
+            List<String> ids = longListEntry.getValue();
+            SysUser user = cacheService.userCache(userId);
+            if (Objects.nonNull(user)) {
+                String userName = user.getRealName();
+                String mobileNumber = user.getMobileNumber();
+
+                Map<String, Object> jsonMap = new HashMap<>();
+                jsonMap.put("userName", userName);
+                jsonMap.put("count", ids.size());
+                String variableParams = JSON.toJSONString(jsonMap);
+                String remark = String.format("命题任务ID:s%", String.join(",", ids));
+                this.saveMessageSendLog(userId, mobileNumber, null, variableParams, MessageEnum.NOTICE_OF_AUDIT_CREATED, remark);
+            }
+        }
+    }
+
+    private void checkData(Object... objects) {
         for (Object object : objects) {
         for (Object object : objects) {
-            if (object instanceof String){
+            if (object instanceof String) {
                 String param = String.valueOf(object);
                 String param = String.valueOf(object);
-                if (param.length() == 0 || param.equals("null")){
+                if (param.length() == 0 || param.equals("null")) {
                     throw ExceptionResultEnum.ERROR.exception("调用发送短信方法时必传参数缺失");
                     throw ExceptionResultEnum.ERROR.exception("调用发送短信方法时必传参数缺失");
                 }
                 }
-            }else if (object instanceof Long){
+            } else if (object instanceof Long) {
                 Long param = SystemConstant.convertIdToLong(String.valueOf(object));
                 Long param = SystemConstant.convertIdToLong(String.valueOf(object));
-                if (param == null || param == 0){
+                if (param == null || param == 0) {
                     throw ExceptionResultEnum.ERROR.exception("调用发送短信方法时必传参数缺失");
                     throw ExceptionResultEnum.ERROR.exception("调用发送短信方法时必传参数缺失");
                 }
                 }
             }
             }
         }
         }
     }
     }
 
 
-    private Map<String,String> getCodeAndContentByEnum(MessageEnum messageEnum){
-        Map<String,String> result = new HashMap<>();
+    private Map<String, String> getCodeAndContentByEnum(MessageEnum messageEnum) {
+        Map<String, String> result = new HashMap<>();
         String templateContent;
         String templateContent;
         String templateCode;
         String templateCode;
-        switch (messageEnum){
+        switch (messageEnum) {
             case NOTICE_OF_AUDIT_PASS:
             case NOTICE_OF_AUDIT_PASS:
                 templateCode = dictionaryConfig.smsDomain().getAliyunSMSAuditPassCode();
                 templateCode = dictionaryConfig.smsDomain().getAliyunSMSAuditPassCode();
                 templateContent = messageEnum.getTemplate();
                 templateContent = messageEnum.getTemplate();
@@ -199,8 +229,8 @@ public class BasicMessageServiceImpl extends ServiceImpl<BasicMessageMapper, Bas
             default:
             default:
                 throw new IllegalStateException("Unexpected value: " + messageEnum);
                 throw new IllegalStateException("Unexpected value: " + messageEnum);
         }
         }
-        result.put("templateContent",templateContent);
-        result.put("templateCode",templateCode);
+        result.put("templateContent", templateContent);
+        result.put("templateCode", templateCode);
         return result;
         return result;
     }
     }
 }
 }

+ 25 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -72,11 +72,20 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     @Transactional
     @Transactional
     @Override
     @Override
     public boolean enable(ExamTaskDetail examTaskDetail) {
     public boolean enable(ExamTaskDetail examTaskDetail) {
+        ExamTask examTask = examTaskService.getById(examTaskDetail.getId());
+        List<ExamDetail> examDetails = examDetailService.listByCourseCodeAndPaperNumber(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber());
+        if (examDetails != null && examDetails.size() > 0) {
+            Map<Long, List<Long>> map = examDetails.stream().collect(Collectors.groupingBy(ExamDetail::getPrintPlanId, Collectors.mapping(ExamDetail::getId, Collectors.toList())));
+            for (Map.Entry<Long, List<Long>> listEntry : map.entrySet()) {
+                boolean b = tbTaskService.countByPrintPlanIdAndEntityId(examTask.getSchoolId(), listEntry.getKey(), listEntry.getValue());
+                if (!b) {
+                    throw ExceptionResultEnum.ERROR.exception("有关联该任务的考场正在生成打印pdf,不能启用/禁用卷库");
+                }
+            }
+        }
         // 禁用,解决试卷关联关系,并且解除生成pdf绑定
         // 禁用,解决试卷关联关系,并且解除生成pdf绑定
         if (!examTaskDetail.getEnable()) {
         if (!examTaskDetail.getEnable()) {
             // 正在生成pdf不能禁用
             // 正在生成pdf不能禁用
-            ExamTask examTask = examTaskService.getById(examTaskDetail.getId());
-            List<ExamDetail> examDetails = examDetailService.listByCourseCodeAndPaperNumber(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber());
             if (examDetails != null && examDetails.size() > 0) {
             if (examDetails != null && examDetails.size() > 0) {
                 Map<Long, List<Long>> map = examDetails.stream().collect(Collectors.groupingBy(ExamDetail::getPrintPlanId, Collectors.mapping(ExamDetail::getId, Collectors.toList())));
                 Map<Long, List<Long>> map = examDetails.stream().collect(Collectors.groupingBy(ExamDetail::getPrintPlanId, Collectors.mapping(ExamDetail::getId, Collectors.toList())));
                 for (Map.Entry<Long, List<Long>> listEntry : map.entrySet()) {
                 for (Map.Entry<Long, List<Long>> listEntry : map.entrySet()) {
@@ -144,6 +153,12 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
             throw ExceptionResultEnum.ERROR.exception("有考场已开始打印,不能修改");
             throw ExceptionResultEnum.ERROR.exception("有考场已开始打印,不能修改");
         }
         }
 
 
+        List<Long> entityIds = examDetails.stream().map(m->m.getId()).collect(Collectors.toList());
+        boolean b = tbTaskService.countByPrintPlanIdAndEntityId(examTask.getSchoolId(), paperParam.getPrintPlanId(), entityIds);
+        if (!b) {
+            throw ExceptionResultEnum.ERROR.exception("有关联该任务的考场正在生成打印pdf,不能修改关联类型");
+        }
+
         // 更新关联卷型
         // 更新关联卷型
         ExamTask newExamTask = examTaskService.getByCourseCodeAndPaperNumber(examTask.getSchoolId(), examTask.getCourseCode(), paperParam.getPaperNumber());
         ExamTask newExamTask = examTaskService.getByCourseCodeAndPaperNumber(examTask.getSchoolId(), examTask.getCourseCode(), paperParam.getPaperNumber());
         UpdateWrapper<ExamTaskDetail> updateWrapper = new UpdateWrapper<>();
         UpdateWrapper<ExamTaskDetail> updateWrapper = new UpdateWrapper<>();
@@ -250,7 +265,14 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         if (examDetails != null && examDetails.size() > 0) {
         if (examDetails != null && examDetails.size() > 0) {
             examDetails = examDetails.stream().filter(m -> !ExamDetailStatusEnum.NEW.equals(m.getStatus()) && !ExamDetailStatusEnum.READY.equals(m.getStatus())).collect(Collectors.toList());
             examDetails = examDetails.stream().filter(m -> !ExamDetailStatusEnum.NEW.equals(m.getStatus()) && !ExamDetailStatusEnum.READY.equals(m.getStatus())).collect(Collectors.toList());
             if (!examDetails.isEmpty()) {
             if (!examDetails.isEmpty()) {
-                throw ExceptionResultEnum.ERROR.exception("有考场已开始打印,不能修改");
+                throw ExceptionResultEnum.ERROR.exception("有考场已开始打印,不能修改卷库");
+            }
+            Map<Long, List<Long>> map = examDetails.stream().collect(Collectors.groupingBy(ExamDetail::getPrintPlanId, Collectors.mapping(ExamDetail::getId, Collectors.toList())));
+            for (Map.Entry<Long, List<Long>> listEntry : map.entrySet()) {
+                boolean b = tbTaskService.countByPrintPlanIdAndEntityId(examTask.getSchoolId(), listEntry.getKey(), listEntry.getValue());
+                if (!b) {
+                    throw ExceptionResultEnum.ERROR.exception("有关联该任务的考场正在生成打印pdf,不能修改卷库");
+                }
             }
             }
         }
         }
 
 

+ 9 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -221,7 +221,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     }
     }
 
 
     @Override
     @Override
-    public boolean saveExamTask(ExamTask examTask) {
+    public ExamTask saveExamTask(ExamTask examTask) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         examTask.setSchoolId(schoolId);
         examTask.setSchoolId(schoolId);
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
@@ -254,7 +254,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         examTask.setCreateId(sysUser.getId());
         examTask.setCreateId(sysUser.getId());
         examTask.setCreateTime(System.currentTimeMillis());
         examTask.setCreateTime(System.currentTimeMillis());
         examTask.setReview(basicExamRule.getReview());
         examTask.setReview(basicExamRule.getReview());
-        return this.save(examTask);
+        this.save(examTask);
+        return examTask;
     }
     }
 
 
     @Override
     @Override
@@ -416,7 +417,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     }
     }
 
 
     @Override
     @Override
-    public boolean saveBatch(ExamTask task) {
+    public List<ExamTask> saveBatch(ExamTask task) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         task.setSchoolId(schoolId);
         task.setSchoolId(schoolId);
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
@@ -485,7 +486,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             examTask.setReview(basicExamRule.getReview());
             examTask.setReview(basicExamRule.getReview());
             list.add(examTask);
             list.add(examTask);
         }
         }
-        return this.saveBatch(list);
+        this.saveBatch(list);
+        return list;
     }
     }
 
 
 //    @Override
 //    @Override
@@ -636,7 +638,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             this.update(updateWrapper);
             this.update(updateWrapper);
         } else {
         } else {
             // 更新记录表状态
             // 更新记录表状态
-            taskAfterPass(taskReviewLog.getReviewStatus(), taskReviewLog.getExamTaskId() , examTaskPaperLog, sysUser);
+            taskAfterPass(taskReviewLog.getReviewStatus(), taskReviewLog.getExamTaskId(), examTaskPaperLog, sysUser);
         }
         }
         return true;
         return true;
     }
     }
@@ -678,7 +680,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
 
             if (taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
             if (taskReviewLog.getReviewStatus().name().equals(ReviewStatusEnum.PASS.name())) {
                 // 校验是否可以提交打印状态
                 // 校验是否可以提交打印状态
-                    ExamTask examTask = this.getById(examTaskId);
+                ExamTask examTask = this.getById(examTaskId);
                 try {
                 try {
                     commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
                     commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
                 } catch (IOException e) {
                 } catch (IOException e) {
@@ -689,7 +691,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         return true;
         return true;
     }
     }
 
 
-    private void taskAfterPass(ReviewStatusEnum statusEnum , Long examTaskId, ExamTaskPaperLog examTaskPaperLog, SysUser sysUser) {
+    private void taskAfterPass(ReviewStatusEnum statusEnum, Long examTaskId, ExamTaskPaperLog examTaskPaperLog, SysUser sysUser) {
         // 更新记录表状态
         // 更新记录表状态
         examTaskPaperLog.setReview(true);
         examTaskPaperLog.setReview(true);
         examTaskPaperLog.setReviewStatus(statusEnum);
         examTaskPaperLog.setReviewStatus(statusEnum);

+ 2 - 0
distributed-print-business/src/main/resources/db/init-table.sql

@@ -114,6 +114,8 @@ CREATE TABLE `basic_message`  (
     `message_type` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息类型',
     `message_type` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息类型',
     `send_status` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息发送状态',
     `send_status` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息发送状态',
     `send_result` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息发送结果',
     `send_result` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '消息发送结果',
+    `remark` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '备注',
+    `resend_count` INT CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '失败重发次数',
     `create_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
     `create_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
     `create_time` bigint(20) NULL DEFAULT NULL COMMENT '创建时间',
     `create_time` bigint(20) NULL DEFAULT NULL COMMENT '创建时间',
     `update_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
     `update_id` bigint(20) NULL DEFAULT NULL COMMENT '更新人',

+ 18 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -161,8 +161,12 @@ public class ExamTaskController {
     @ApiOperation(value = "新建")
     @ApiOperation(value = "新建")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     @RequestMapping(value = "/save", method = RequestMethod.POST)
     public Result save(@RequestBody ExamTask examTask) {
     public Result save(@RequestBody ExamTask examTask) {
-        boolean isSuccess = examTaskService.saveExamTask(examTask);
-        return ResultUtil.ok(isSuccess);
+        ExamTask task = examTaskService.saveExamTask(examTask);
+        // todo 发送短信
+        if(task.getId() != null){
+//            basicMessageService.sendNoticeTaskCreate(task);
+        }
+        return ResultUtil.ok(true);
     }
     }
 
 
     /**
     /**
@@ -205,8 +209,13 @@ public class ExamTaskController {
     @ApiOperation(value = "批量保存")
     @ApiOperation(value = "批量保存")
     @RequestMapping(value = "/save_batch", method = RequestMethod.POST)
     @RequestMapping(value = "/save_batch", method = RequestMethod.POST)
     public Result saveBatch(@RequestBody ExamTask task) {
     public Result saveBatch(@RequestBody ExamTask task) {
-        boolean isSuccess = examTaskService.saveBatch(task);
-        return ResultUtil.ok(isSuccess);
+        List<ExamTask> examTasks = examTaskService.saveBatch(task);
+        if(examTasks != null && examTasks.size() > 0){
+            // todo 发送短信
+            ExamTask[] tasks = examTasks.toArray(new ExamTask[examTasks.size()]);
+//            basicMessageService.sendNoticeTaskCreate(tasks);
+        }
+        return ResultUtil.ok(true);
     }
     }
 
 
 
 
@@ -285,6 +294,11 @@ public class ExamTaskController {
             // 校验是否可以提交打印状态
             // 校验是否可以提交打印状态
             commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), (SysUser) ServletUtil.getRequestUser());
             commonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), (SysUser) ServletUtil.getRequestUser());
         }
         }
+        // todo 待审核状态,发送短信
+        if(ExamStatusEnum.SUBMIT.name().equals(examTask.getStatus())){
+//            basicMessageService.sendNoticeTaskCreate(tasks);
+        }
+
         return ResultUtil.ok(isSuccess);
         return ResultUtil.ok(isSuccess);
     }
     }