|
|
|
|
@ -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<AutoStartModel> 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<AutoStartModel> 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<AutoStartModel> 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()); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|