Ver Fonte

提前/延期消息

wangliang há 1 ano atrás
pai
commit
ed41716f8e

+ 2 - 2
sop-business/src/main/java/com/qmth/sop/business/activiti/listener/ProcessEventListener.java

@@ -75,8 +75,8 @@ public class ProcessEventListener implements ActivitiEventListener, Serializable
                             Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_NO_DATA.exception());
                         }
                         if (Objects.equals(h.getVariableName(), SystemConstant.FLOW_APPROVE_LOG)) {
-                            tfFlowApprove = (TFFlowApprove) h.getValue();
-                            Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_NO_DATA.exception());
+                            tfFlowLog = (TFFlowLog) h.getValue();
+                            Optional.ofNullable(tfFlowLog).orElseThrow(() -> ExceptionResultEnum.FLOW_APPROVE_LOG_NO_DATA.exception());
                         }
                     }
                     this.sendFlowFinishSms(tfCustomFlow.getType(), tfCustomFlowEntity, tfFlowApprove.getStatus(), tfFlowLog);

+ 8 - 1
sop-business/src/main/resources/db/log/wangliang_update_log.sql

@@ -660,4 +660,11 @@ ALTER TABLE t_s_job_remind CHANGE COLUMN receive_user_id receive_user_id BIGINT
     COMMENT '接收人id' NULL;
 
 ALTER TABLE t_b_project_exchange ADD exchange_no VARCHAR(100)
-    COMMENT '变更编号' NULL after crm_no;
+    COMMENT '变更编号' NULL after crm_no;
+
+INSERT INTO sys_config
+(id, org_id, config_key, config_name, config_value, remark, enable, sort, create_id, create_time, update_id, update_time)
+VALUES(23, NULL, 'remind.job.poll.time', '任务提醒轮询时间', '0 0/1 * * * ?', NULL, 1, 1, 1, NULL, NULL, NULL);
+INSERT INTO sys_config
+(id, org_id, config_key, config_name, config_value, remark, enable, sort, create_id, create_time, update_id, update_time)
+VALUES(24, NULL, 'remind.job.db.limit', '任务提醒查询条数', 'limit 0,100000', NULL, 1, 2, 1, NULL, NULL, NULL);

+ 2 - 0
sop-common/src/main/java/com/qmth/sop/common/contant/SystemConstant.java

@@ -123,6 +123,8 @@ public class SystemConstant {
     public static final String FLOW_JOB_BEFORE_TIME = "flow.job.before.time";
     public static final String FLOW_JOB_AFTER_TIME = "flow.job.after.time";
     public static final String NOTICE_JOB_AFTER_TIME = "notice.job.after.time";
+    public static final String REMIND_JOB_POLL_TIME = "remind.job.poll.time";
+    public static final String REMIND_JOB_DB_LIMIT = "remind.job.db.limit";
 
     /**
      * api前缀

+ 6 - 6
sop-common/src/main/java/com/qmth/sop/common/enums/MessageEnum.java

@@ -9,17 +9,17 @@ package com.qmth.sop.common.enums;
  */
 public enum MessageEnum {
 
-    NOTICE_OF_VIOLATION_REMIND("违规提醒通知", "${userName}您好,${serviceName}的${customName}SOP收到${createUserName}发出的“${violationType}”的违规登记,请及时处理!"),
+    NOTICE_OF_VIOLATION_REMIND("违规提醒通知", "${userName}您好,${serviceName}${customName}SOP收到${createUserName}发出的“${violationType}”的违规登记,请及时处理!"),
 
-    NOTICE_OF_DELAY_REMIND("延期提醒通知", "${userName}您好,${serviceName}的${customName}SOP有${flowName}待办任务已逾期,请及时处理!"),
+    NOTICE_OF_DELAY_REMIND("延期提醒通知", "${userName}您好,${serviceName}${customName}SOP有${flowName}待办任务已逾期,请及时处理!"),
 
-    NOTICE_OF_DING_EXCEPTION("异常审核通知", "${userName}您好,您提交的${dingDate}的考勤异常已完成审核,结果是${approveRemark}!"),
+    NOTICE_OF_DING_EXCEPTION("异常审核通知", "${userName}您好,您提交的${dingDate}的考勤异常已完成审核,结果是${approveRemark}!"),
 
-    NOTICE_OF_PROJECT_EXCHANGE("系统计划变更审核通知", "${userName}您好,您提交的${serviceName}的${customName}SOP,类型为“${exchangeType}”的系统计划变更申请已处理完成!"),
+    NOTICE_OF_PROJECT_EXCHANGE("系统计划变更审核通知", "${userName}您好,您提交的${serviceName}${customName}SOP,类型为“${exchangeType}”的系统计划变更申请已处理完成!"),
 
-    NOTICE_OF_SOP_DONE("教务处/研究生SOP节点负责人通知", "${userName}您好,您已收到${serviceName}的${customName}SOP的${flowName}的待办任务!"),
+    NOTICE_OF_SOP_DONE("教务处/研究生SOP节点负责人通知", "${userName}您好,您已收到${serviceName}${customName}SOP的${flowName}的待办任务!"),
 
-    NOTICE_OF_SOP_DONE_REMIND("教务处/研究生SOP提前提醒通知", "${userName}您好,${serviceName}的${customName}SOP有${flowName}待办任务即将到期,请及时处理!"),
+    NOTICE_OF_SOP_DONE_REMIND("教务处/研究生SOP提前提醒通知", "${userName}您好,${serviceName}${customName}SOP有${flowName}待办任务即将到期,请及时处理!"),
 
     NOTICE_OF_SYSTEM_REMIND("系统通知公告通知", "${userName}您好,您收到标题为“${title}”的通知公告,请及时上线查阅!");
 

+ 5 - 6
sop-task/src/main/java/com/qmth/sop/task/job/RemindTaskJob.java

@@ -10,10 +10,7 @@ import com.qmth.sop.business.service.SysUserService;
 import com.qmth.sop.business.service.TSJobRemindService;
 import com.qmth.sop.business.util.SmsSendUtil;
 import com.qmth.sop.common.contant.SystemConstant;
-import com.qmth.sop.common.enums.JobQuartzTypeEnum;
-import com.qmth.sop.common.enums.JobTypeEnum;
-import com.qmth.sop.common.enums.MessageEnum;
-import com.qmth.sop.common.enums.MessageTypeEnum;
+import com.qmth.sop.common.enums.*;
 import org.quartz.JobDataMap;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
@@ -59,6 +56,8 @@ public class RemindTaskJob extends QuartzJobBean {
                 if (Objects.nonNull(tsJobRemind)) {//数据还在则说明要发送提醒短信
                     if (tsJobRemind.getType() == JobQuartzTypeEnum.FLOW) {//流程发送短信
                         FlowTaskSmsResult flowTaskSmsResult = tsJobRemindService.getFlowTaskRemindSmsInfo(tsJobRemind.getId());
+                        Optional.ofNullable(flowTaskSmsResult).orElseThrow(() -> ExceptionResultEnum.USER_NO_EXISTS.exception());
+
                         Map<String, Object> templateParam = new HashMap<>();
                         templateParam.put("userName", flowTaskSmsResult.getRealName());
 
@@ -71,7 +70,7 @@ public class RemindTaskJob extends QuartzJobBean {
                                 content = content.replaceAll("\\$\\{userName\\}", flowTaskSmsResult.getRealName());
                                 content = content.replaceAll("\\$\\{serviceName\\}", flowTaskSmsResult.getServiceName());
                                 content = content.replaceAll("\\$\\{customName\\}", flowTaskSmsResult.getCustomName());
-                                content = content.replaceAll("\\$\\{flowName\\}", strs[0] + "【" + strs[1] + "】");
+                                content = content.replaceAll("\\$\\{flowName\\}", strs[0] + "[" + strs[1] + "]");
 
                                 configKey = SystemConstant.SMS_TPL_CODE;
                                 templateParam.put("serviceName", flowTaskSmsResult.getServiceName());
@@ -85,7 +84,7 @@ public class RemindTaskJob extends QuartzJobBean {
                                 content = content.replaceAll("\\$\\{userName\\}", flowTaskSmsResult.getRealName());
                                 content = content.replaceAll("\\$\\{serviceName\\}", flowTaskSmsResult.getServiceName());
                                 content = content.replaceAll("\\$\\{customName\\}", flowTaskSmsResult.getCustomName());
-                                content = content.replaceAll("\\$\\{flowName\\}", strs[0] + "【" + strs[1] + "】");
+                                content = content.replaceAll("\\$\\{flowName\\}", strs[0] + "[" + strs[1] + "]");
 
                                 configKey = SystemConstant.SMS_TPL_CODE;
                                 templateParam.put("serviceName", flowTaskSmsResult.getServiceName());

+ 4 - 2
sop-task/src/main/java/com/qmth/sop/task/job/service/impl/JobServiceImpl.java

@@ -49,8 +49,10 @@ public class JobServiceImpl implements JobService {
     @Transactional
     public void flowTaskRemindTask() {
         log.info("flowTaskRemindTask is come in");
-//        List<TSJobRemind> tsJobRemindList = tsJobRemindService.list(new QueryWrapper<TSJobRemind>().lambda().isNull(TSJobRemind::getExecTime).last("limit 0,100"));
-        List<TSJobRemind> tsJobRemindList = tsJobRemindService.list(new QueryWrapper<TSJobRemind>().lambda().isNull(TSJobRemind::getExecTime).last("limit 0,100"));
+//        List<TSJobRemind> tsJobRemindList = tsJobRemindService.list(new QueryWrapper<TSJobRemind>().lambda().isNull(TSJobRemind::getExecTime).last(" limit 0,100 "));
+        SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.REMIND_JOB_DB_LIMIT);
+        Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("任务提醒查询条数未设置"));
+        List<TSJobRemind> tsJobRemindList = tsJobRemindService.list(new QueryWrapper<TSJobRemind>().lambda().isNull(TSJobRemind::getExecTime).last(" " + sysConfig.getConfigValue() + " "));
         if (!CollectionUtils.isEmpty(tsJobRemindList)) {
             List<TSJobRemind> tsJobRemindUpdateList = new ArrayList<>(tsJobRemindList.size());
             List<Long> tsJobRemindIdList = new ArrayList<>(tsJobRemindList.size());

+ 11 - 1
sop-task/src/main/java/com/qmth/sop/task/start/StartRunning.java

@@ -1,6 +1,9 @@
 package com.qmth.sop.task.start;
 
+import com.qmth.sop.business.cache.CommonCacheService;
+import com.qmth.sop.business.entity.SysConfig;
 import com.qmth.sop.common.contant.SystemConstant;
+import com.qmth.sop.common.enums.ExceptionResultEnum;
 import com.qmth.sop.common.enums.JobEnum;
 import com.qmth.sop.task.job.FlowTaskRemindJob;
 import com.qmth.sop.task.service.QuartzService;
@@ -12,6 +15,7 @@ import org.springframework.stereotype.Component;
 import javax.annotation.Resource;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
 
 /**
  * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
@@ -27,17 +31,23 @@ public class StartRunning implements CommandLineRunner {
     @Resource
     QuartzService quartzService;
 
+    @Resource
+    CommonCacheService commonCacheService;
+
     @Override
     public void run(String... args) throws Exception {
         log.info("服务器启动时执行 start");
 
+        SysConfig sysConfig = commonCacheService.addSysConfigCache(SystemConstant.REMIND_JOB_POLL_TIME);
+        Optional.ofNullable(sysConfig).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("任务提醒轮询时间未设置"));
+
         log.info("增加流程任务提醒定时任务 start");
         Map flowTaskRemindJobMap = new HashMap();
         flowTaskRemindJobMap.computeIfAbsent(SystemConstant.NAME, v -> FlowTaskRemindJob.class.getName());
         quartzService.deleteJob(JobEnum.FLOW_TASK_REMIND_JOB.name(), JobEnum.FLOW_TASK_REMIND_JOB_GROUP.name());
         //每天0点定时任务
 //        quartzService.addJob(FlowTaskRemindJob.class, JobEnum.FLOW_TASK_REMIND_JOB.name(), JobEnum.FLOW_TASK_REMIND_JOB_GROUP.name(), "0 0/1 * * * ?", flowTaskRemindJobMap);
-        quartzService.addJob(FlowTaskRemindJob.class, JobEnum.FLOW_TASK_REMIND_JOB.name(), JobEnum.FLOW_TASK_REMIND_JOB_GROUP.name(), "0 0/1 * * * ?", flowTaskRemindJobMap);
+        quartzService.addJob(FlowTaskRemindJob.class, JobEnum.FLOW_TASK_REMIND_JOB.name(), JobEnum.FLOW_TASK_REMIND_JOB_GROUP.name(), sysConfig.getConfigValue(), flowTaskRemindJobMap);
         log.info("增加流程任务提醒定时任务 end");
 
         log.info("服务器启动时执行 end");