1.自动工单非重复任务保存优化

main
yitonglei 3 years ago
parent 2b64bc4b8a
commit 704be43d48
  1. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/AsyncPoolConfig.java
  2. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/config/TaskConfig.java
  3. 35
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/listener/FormEndListener.java
  4. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/listener/ProcessEndListener.java

@ -19,8 +19,8 @@ public class AsyncPoolConfig {
@Bean("taskExecutor")
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(50);
executor.setCorePoolSize(1);
executor.setMaxPoolSize(1);
executor.setQueueCapacity(200);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("taskExecutor-");

@ -78,6 +78,7 @@ public class TaskConfig {
//修改nextFlag = 1,表示已经生成新工单了
autoStartModel.setNextFlag(1);
autoStartModelService.updateById(autoStartModel);
System.out.println("生成结束时间为:" + autoStartModel.getNextEndTime() + "的工单结束");
}
}
@ -87,7 +88,7 @@ public class TaskConfig {
/**
* 自动计算下一次的开始和结束时间,next_flag = 1 status = 10 is_delete = 0
*/
@Scheduled(fixedDelay = 90*1000)
@Scheduled(fixedRate = 90*1000)
@Transactional(rollbackFor = Exception.class)
@Async("taskExecutor")
public void computerNextDateOfOrder(){
@ -120,6 +121,7 @@ public class TaskConfig {
}
autoStartModel.setNextFlag(0);
autoStartModelService.updateById(autoStartModel);
System.out.println("修改工单的下次结束时间:" + DateUtil.plusMinutes(autoStartModel.getNextEndTime(),1) + "的工单结束");
});
}
}

@ -1,35 +0,0 @@
package org.springblade.plugin.listener;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import org.springblade.plugin.config.SpringContextHolder;
import org.springblade.plugin.workbench.service.IAutoStartModelService;
import org.springblade.plugin.workbench.service.impl.AutoStartModelServiceImpl;
import org.springframework.stereotype.Component;
/**
* @Description
* @Author ytl
* @Date 2023/3/2 0002 15:52
*/
@Component
public class FormEndListener implements ExecutionListener{
@Override
public void notify(DelegateExecution delegateExecution) {
String event = delegateExecution.getEventName();
String processInstanceId = delegateExecution.getProcessInstanceId();
switch (event) {
case "start" :
System.out.println("FormEndListener--start event-------------------");
break;
case "end" :
System.out.println("FormEndListener--end event----------------------");
// IAutoStartModelService autoStartModelService = (IAutoStartModelService)SpringContextHolder.getBean(AutoStartModelServiceImpl.class);
// autoStartModelService.saveStartProcess(processInstanceId,delegateExecution.getVariables());
break;
case "take" :
System.out.println("FormEndListener--take event---------------------");
break;
}
}
}

@ -37,7 +37,7 @@ public class ProcessEndListener implements ExecutionListener {
System.out.println("ProcessEndListener-start event-------------------");
//判断工作流的的重复模式
if(Func.isNotEmpty(variablesMap.get("chongfumoshi")) && !StringUtils.equals(RepeatEnum.不重复.getCode(),variablesMap.get("chongfumoshi").toString())){
//保存任务信息使任务工单可以被自动创建
//保存任务信息使任务工单可以被自动创建,测试一下是不是跟预想的一样是第一个执行的时候,第二个任务还有
autoStartModelService.saveStartProcess(processInstanceId,variablesMap);
//使任务可以自动开启,这里不用新建工单,因为TaskConfig会自动创建
// autoStartModelService.updateAutoStartModel(processInstanceId,variables);

Loading…
Cancel
Save