activiti 配置监听器 流程启动/结束 任务创建/结束

activiti 配置监听器 流程启动/结束 任务创建/结束

监听的作用

比如流程启动的时候更改一些单据的单据由待提交-》提交

流程结束更改其审批状态

任务创建的时候需要给待办推送信息

任务结束的需要处理一些逻辑等等

创建这4个监听器

流程创建监听器

package com.example.activiti.listener;

import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener;

/**
 * @date 2019/11/21 19:54
 * @description: 流程启动监听器
 */
public class ActivitiProcessStartedListener implements ActivitiEventListener {


    /**
     * @Param [activitiEvent]
     * @return void
     **/
    @Override
    public void onEvent(ActivitiEvent activitiEvent) {
        //todo
    }

    @Override
    public boolean isFailOnException() {
        return false;
    }
}

任务创建监听器

package com.example.activiti.listener;

import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener;

/**
 * @description 任务创建监听器
 */
public class ActivitiTaskCreateListener implements ActivitiEventListener {


    /**
     * @Author Pan Weilong
     * @Description 存储节点任务
     * @Date 18:35 2019/12/5
     * @Param [activitiEvent]
     * @return void
     **/
    @Override
    public void onEvent(ActivitiEvent activitiEvent) {
        //todo
    }

    @Override
    public boolean isFailOnException() {
        return false;
    }
}

任务结束监听器

package com.example.activiti.listener;

import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener;

/** 任务完成的需要处理的逻辑
 */
public class ActivitiTaskCompleteListener implements ActivitiEventListener {


    @Override
    public void onEvent(ActivitiEvent activitiEvent) {
        //todo
    }

    @Override
    public boolean isFailOnException() {
        return false;
    }
}

流程结束监听器

package com.example.activiti.listener;

import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener;

/**
 * @Description 流程结束监听器
 * @Date 22:44 2019/11/27
 * @Param
 * @return
 **/
public class ActivitiProcessCompleteListener implements ActivitiEventListener {

    @Override
    public void onEvent(ActivitiEvent activitiEvent) {
        //todo
    }

    @Override
    public boolean isFailOnException() {
        return false;
    }
}

 

然后配置到activiti配置文件中



package com.example.activiti.config;

import com.example.activiti.listener.ActivitiProcessCompleteListener;
import com.example.activiti.listener.ActivitiProcessStartedListener;
import com.example.activiti.listener.ActivitiTaskCompleteListener;
import com.example.activiti.listener.ActivitiTaskCreateListener;
import org.activiti.engine.delegate.event.ActivitiEventListener;
import org.activiti.spring.SpringProcessEngineConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.task.TaskExecutor;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.transaction.PlatformTransactionManager;

import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


@Configuration
public class ActivitiConfig {
	@Autowired
	private  DataSource dataSource;
	@Autowired
	private PlatformTransactionManager transactionManager;

	@Bean
	public SpringProcessEngineConfiguration getProcessEngineConfiguration() {
		SpringProcessEngineConfiguration config =
				new SpringProcessEngineConfiguration();
		// 流程图字体设置
		config.setActivityFontName("宋体");
		config.setAnnotationFontName("宋体");
		config.setLabelFontName("黑体");
		config.setDataSource(dataSource);
		config.setTransactionManager(transactionManager);
		config.setDatabaseType("mysql");
		//设置自动创建表
		config.setDatabaseSchemaUpdate("true");
		//springboot中配置全局监听类
		//流程启动监听器
		Map<String, List<ActivitiEventListener>> typedListeners = new HashMap<>();
		List<ActivitiEventListener> activitiEventListener =new ArrayList<>();
		activitiEventListener.add(getActivitiProcessStartedListener());
		typedListeners.put("PROCESS_STARTED", activitiEventListener);
		//任务创建监听
		List<ActivitiEventListener> activitiTaskCreateEventListener = new ArrayList<>();
		activitiTaskCreateEventListener.add(getActivitiTaskCreateListener());
		typedListeners.put("TASK_CREATED", activitiTaskCreateEventListener);
		//任务完成监听
		List<ActivitiEventListener> activitiTaskCompletedEventListener = new ArrayList<>();
		activitiTaskCompletedEventListener.add(getActivitiTaskCompleteListener());
		typedListeners.put("TASK_COMPLETED", activitiTaskCompletedEventListener);
		//流程结束监听
		List<ActivitiEventListener> activitiProcessCompletedEventListener = new ArrayList<>();
		activitiProcessCompletedEventListener.add(getActivitiProcessCompleteListener());
		typedListeners.put("PROCESS_COMPLETED", activitiProcessCompletedEventListener);
		config.setTypedEventListeners(typedListeners);
		return config;
	}

	@Bean
	@Primary
	public TaskExecutor primaryTaskExecutor() {
		return new ThreadPoolTaskExecutor();
	}

	@Bean
	public ActivitiProcessStartedListener getActivitiProcessStartedListener(){
		return new ActivitiProcessStartedListener();
	}

	@Bean
	public ActivitiTaskCreateListener getActivitiTaskCreateListener(){
		return new ActivitiTaskCreateListener();
	}

	@Bean
	public ActivitiTaskCompleteListener getActivitiTaskCompleteListener(){
		return new ActivitiTaskCompleteListener();
	}

	@Bean
	public ActivitiProcessCompleteListener getActivitiProcessCompleteListener(){
		return new ActivitiProcessCompleteListener();
	}

}

 

当流程启动时就会执行对应的监听器

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值