diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java index 4c35171..cb91e15 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java @@ -3,6 +3,7 @@ package org.springblade.plugin.config; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.DateUtil; @@ -32,6 +33,7 @@ import java.util.List; @Component @EnableScheduling @AllArgsConstructor +@Slf4j public class TaskConfig { private final IAutoStartModelService autoStartModelService; private final IWorkOrderService workOrderService; @@ -48,7 +50,7 @@ public class TaskConfig { LocalDate nowDay = LocalDate.now(); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.eq(AutoStartModel::getNextFlag, 0).eq(AutoStartModel::getIsBreak,0).eq(AutoStartModel::getStatus,10); + wrapper.eq(AutoStartModel::getIsBreak,0).eq(AutoStartModel::getStatus,10); List list = autoStartModelService.list(wrapper); if(list.size() > 0){ @@ -76,9 +78,34 @@ public class TaskConfig { //新增 workOrderService.save(workOrder); //修改nextFlag = 1,表示已经生成新工单了 - autoStartModel.setNextFlag(1); +// autoStartModel.setNextFlag(1); + //计算下一次的执行时间 + Long repeatMode = autoStartModel.getRepeatMode(); + if(StringUtils.equals(RepeatEnum.每周.getCode(),repeatMode.toString())){ + autoStartModel.setNextStartTime(DateUtil.plusWeeks(autoStartModel.getNextStartTime(),1)); + autoStartModel.setNextEndTime(DateUtil.plusWeeks(autoStartModel.getNextEndTime(),1)); + }else if(StringUtils.equals(RepeatEnum.每月.getCode(),repeatMode.toString())){ + autoStartModel.setNextStartTime(DateUtil.plusMonths(autoStartModel.getNextStartTime(),1)); + autoStartModel.setNextEndTime(DateUtil.plusMonths(autoStartModel.getNextEndTime(),1)); + }else if(StringUtils.equals(RepeatEnum.每季度.getCode(),repeatMode.toString())){ + autoStartModel.setNextStartTime(DateUtil.plusMonths(autoStartModel.getNextStartTime(),1)); + autoStartModel.setNextEndTime(DateUtil.plusMonths(autoStartModel.getNextEndTime(),1)); + }else if(StringUtils.equals(RepeatEnum.每天.getCode(),repeatMode.toString())){ + autoStartModel.setNextStartTime(DateUtil.plusDays(autoStartModel.getNextStartTime(),1)); + autoStartModel.setNextEndTime(DateUtil.plusDays(autoStartModel.getNextEndTime(),1)); + }else if(StringUtils.equals(RepeatEnum.每分钟.getCode(),repeatMode.toString())){ + autoStartModel.setNextStartTime(DateUtil.plusMinutes(autoStartModel.getNextStartTime(),1)); + autoStartModel.setNextEndTime(DateUtil.plusMinutes(autoStartModel.getNextEndTime(),1)); + } + else{ + return; + } + autoStartModelService.updateById(autoStartModel); - System.out.println("生成结束时间为:" + autoStartModel.getNextEndTime() + "的工单结束"); + + log.info("TaskConfig生成新工单的流程id:{},生成时间是:{}",autoStartModel.getProcessInstanceId(),autoStartModel.getNextEndTime()); + + } } @@ -88,9 +115,9 @@ public class TaskConfig { /** * 自动计算下一次的开始和结束时间,next_flag = 1 status = 10 is_delete = 0 */ - @Scheduled(fixedRate = 90*1000) - @Transactional(rollbackFor = Exception.class) - @Async("taskExecutor") +// @Scheduled(fixedDelay = 90*1000) +// @Transactional(rollbackFor = Exception.class) +// @Async("taskExecutor") public void computerNextDateOfOrder(){ LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); @@ -121,7 +148,8 @@ public class TaskConfig { } autoStartModel.setNextFlag(0); autoStartModelService.updateById(autoStartModel); - System.out.println("修改工单的下次结束时间:" + DateUtil.plusMinutes(autoStartModel.getNextEndTime(),1) + "的工单结束"); + + log.info("TaskConfig修改工单的下次结束时间{},流程id:{}",autoStartModel.getNextEndTime(),autoStartModel.getProcessInstanceId()); }); } }