|
@@ -8,6 +8,7 @@ import com.qmth.sop.business.service.TSJobRemindService;
|
|
|
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.common.enums.JobQuartzTypeEnum;
|
|
|
import com.qmth.sop.task.job.FlowTaskQuartzJob;
|
|
|
import com.qmth.sop.task.job.service.JobService;
|
|
|
import com.qmth.sop.task.service.QuartzService;
|
|
@@ -47,31 +48,36 @@ public class JobServiceImpl implements JobService {
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void flowTaskRemindTask() {
|
|
|
- List<TSJobRemind> tsJobRemindList = tsJobRemindService.list(new QueryWrapper<TSJobRemind>().lambda().eq(TSJobRemind::getExec, false).last("limit 0,100"));
|
|
|
+ log.info("flowTaskRemindTask is come in");
|
|
|
+ List<TSJobRemind> tsJobRemindList = tsJobRemindService.list(new QueryWrapper<TSJobRemind>().lambda().isNull(TSJobRemind::getExecTime));
|
|
|
if (!CollectionUtils.isEmpty(tsJobRemindList)) {
|
|
|
List<TSJobRemind> tsJobRemindUpdateList = new ArrayList<>(tsJobRemindList.size());
|
|
|
List<Long> tsJobRemindIdList = new ArrayList<>(tsJobRemindList.size());
|
|
|
for (TSJobRemind t : tsJobRemindList) {
|
|
|
if (Objects.nonNull(t.getEnable()) && t.getEnable()) {//新建定时任务
|
|
|
- switch (t.getRemindType()) {
|
|
|
- case BEFORE://提前提醒
|
|
|
- SysConfig sysConfigBefore = commonCacheService.addSysConfigCache(SystemConstant.JOB_BEFORE_TIME);
|
|
|
- Optional.ofNullable(sysConfigBefore).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("提前提醒任务时间未设置"));
|
|
|
- Long execTime = SystemConstant.processMiniuteMinus(Duration.ofHours(Long.parseLong(sysConfigBefore.getConfigValue())));
|
|
|
- t.updateExecInfo(execTime);
|
|
|
- this.setJobTime(execTime, t.getObjId().toString(), t, FlowTaskQuartzJob.class, JobEnum.FLOW_TASK_REMIND_QUARTZ_JOB_GROUP);
|
|
|
- tsJobRemindUpdateList.add(t);
|
|
|
- break;
|
|
|
- case AFTER://超时提醒
|
|
|
- SysConfig sysConfigAfter = commonCacheService.addSysConfigCache(SystemConstant.JOB_AFTER_TIME);
|
|
|
- Optional.ofNullable(sysConfigAfter).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("超时提醒任务时间未设置"));
|
|
|
- execTime = SystemConstant.processMiniutePlus(Duration.ofHours(Long.parseLong(sysConfigAfter.getConfigValue())));
|
|
|
- t.updateExecInfo(execTime);
|
|
|
- this.setJobTime(execTime, t.getObjId().toString(), t, FlowTaskQuartzJob.class, JobEnum.FLOW_TASK_REMIND_QUARTZ_JOB_GROUP);
|
|
|
- tsJobRemindUpdateList.add(t);
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
+ if (t.getType() == JobQuartzTypeEnum.FLOW) {//流程
|
|
|
+ switch (t.getRemindType()) {
|
|
|
+ case BEFORE://提前提醒
|
|
|
+ SysConfig sysConfigBefore = commonCacheService.addSysConfigCache(SystemConstant.FLOW_JOB_BEFORE_TIME);
|
|
|
+ Optional.ofNullable(sysConfigBefore).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("提前提醒任务时间未设置"));
|
|
|
+ Long execTime = SystemConstant.processMiniuteMinus(t.getCreateTime(), Duration.ofMinutes(Long.parseLong(sysConfigBefore.getConfigValue())));
|
|
|
+ t.setExecTime(execTime);
|
|
|
+ this.setJobTime(execTime, t.getId().toString(), t, FlowTaskQuartzJob.class, JobEnum.FLOW_TASK_REMIND_QUARTZ_JOB_GROUP);
|
|
|
+ tsJobRemindUpdateList.add(t);
|
|
|
+ break;
|
|
|
+ case AFTER://超时提醒
|
|
|
+ SysConfig sysConfigAfter = commonCacheService.addSysConfigCache(SystemConstant.FLOW_JOB_AFTER_TIME);
|
|
|
+ Optional.ofNullable(sysConfigAfter).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("超时提醒任务时间未设置"));
|
|
|
+ execTime = SystemConstant.processMiniutePlus(t.getCreateTime(), Duration.ofMinutes(Long.parseLong(sysConfigAfter.getConfigValue())));
|
|
|
+ t.setExecTime(execTime);
|
|
|
+ this.setJobTime(execTime, t.getId().toString(), t, FlowTaskQuartzJob.class, JobEnum.FLOW_TASK_REMIND_QUARTZ_JOB_GROUP);
|
|
|
+ tsJobRemindUpdateList.add(t);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } else if (t.getType() == JobQuartzTypeEnum.FLOW) {//通告
|
|
|
+
|
|
|
}
|
|
|
} else if (Objects.nonNull(t.getEnable()) && !t.getEnable()) {
|
|
|
//禁用需删除定时任务
|