Bladeren bron

公告发送短信

wangliang 1 jaar geleden
bovenliggende
commit
b275ca0a86

+ 15 - 1
sop-task/src/main/java/com/qmth/sop/task/job/RemindTaskJob.java

@@ -1,7 +1,10 @@
 package com.qmth.sop.task.job;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.sop.business.bean.result.FlowTaskSmsResult;
+import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TSJobRemind;
+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;
@@ -17,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -36,6 +40,9 @@ public class RemindTaskJob extends QuartzJobBean {
     @Resource
     TSJobRemindService tsJobRemindService;
 
+    @Resource
+    SysUserService sysUserService;
+
     @Override
     @Transactional
     protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
@@ -59,7 +66,14 @@ public class RemindTaskJob extends QuartzJobBean {
                             }
                         }
                     } else if (tsJobRemind.getType() == JobQuartzTypeEnum.NOTICE) {//公告发送短信
-
+                        if (tsJobRemind.getRemindType() == JobTypeEnum.AFTER) {
+                            List<SysUser> sysUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda().isNotNull(SysUser::getMobileNumber).eq(SysUser::getEnable, true));
+                            for (SysUser s : sysUserList) {
+                                Map<String, Object> templateParam = new HashMap<>();
+                                templateParam.put("code", "test");
+                                smsSendUtil.sendSms(s.getMobileNumber(), SystemConstant.SMS_TPL_CODE, templateParam);
+                            }
+                        }
                     }
                 }
             }

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

@@ -49,7 +49,8 @@ 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));
+//        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"));
         if (!CollectionUtils.isEmpty(tsJobRemindList)) {
             List<TSJobRemind> tsJobRemindUpdateList = new ArrayList<>(tsJobRemindList.size());
             List<Long> tsJobRemindIdList = new ArrayList<>(tsJobRemindList.size());
@@ -59,7 +60,7 @@ public class JobServiceImpl implements JobService {
                         switch (t.getRemindType()) {
                             case BEFORE://提前提醒
                                 SysConfig sysConfigBefore = commonCacheService.addSysConfigCache(SystemConstant.FLOW_JOB_BEFORE_TIME);
-                                Optional.ofNullable(sysConfigBefore).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("提前提醒任务时间未设置"));
+                                Optional.ofNullable(sysConfigBefore).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程提前提醒任务时间未设置"));
                                 Long execTime = SystemConstant.processMiniuteMinus(t.getCreateTime(), Duration.ofMinutes(Long.parseLong(sysConfigBefore.getConfigValue())));
                                 if (Objects.nonNull(execTime) && execTime.longValue() < System.currentTimeMillis()) {
                                     t.setExecTime(execTime);
@@ -69,7 +70,7 @@ public class JobServiceImpl implements JobService {
                                 break;
                             case AFTER://超时提醒
                                 SysConfig sysConfigAfter = commonCacheService.addSysConfigCache(SystemConstant.FLOW_JOB_AFTER_TIME);
-                                Optional.ofNullable(sysConfigAfter).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("超时提醒任务时间未设置"));
+                                Optional.ofNullable(sysConfigAfter).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程超时提醒任务时间未设置"));
                                 execTime = SystemConstant.processMiniutePlus(t.getCreateTime(), Duration.ofMinutes(Long.parseLong(sysConfigAfter.getConfigValue())));
                                 if (Objects.nonNull(execTime) && execTime.longValue() > System.currentTimeMillis()) {
                                     t.setExecTime(execTime);
@@ -81,7 +82,20 @@ public class JobServiceImpl implements JobService {
                                 break;
                         }
                     } else if (t.getType() == JobQuartzTypeEnum.FLOW) {//通告
-
+                        switch(t.getRemindType()){
+                            case AFTER://超时提醒
+                                SysConfig sysConfigAfter = commonCacheService.addSysConfigCache(SystemConstant.NOTICE_JOB_AFTER_TIME);
+                                Optional.ofNullable(sysConfigAfter).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("公告超时提醒任务时间未设置"));
+                                Long execTime = SystemConstant.processMiniutePlus(t.getCreateTime(), Duration.ofMinutes(Long.parseLong(sysConfigAfter.getConfigValue())));
+                                if (Objects.nonNull(execTime) && execTime.longValue() > System.currentTimeMillis()) {
+                                    t.setExecTime(execTime);
+                                    this.setJobTime(execTime, t.getId().toString(), t, RemindTaskJob.class, JobEnum.REMIND_QUARTZ_JOB_GROUP);
+                                    tsJobRemindUpdateList.add(t);
+                                }
+                                break;
+                            default:
+                                break;
+                        }
                     }
                 } else if (Objects.nonNull(t.getEnable()) && !t.getEnable()) {
                     //禁用需删除定时任务

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

@@ -36,6 +36,7 @@ public class StartRunning implements CommandLineRunner {
         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);
         log.info("增加流程任务提醒定时任务 end");