博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activiti的简单入门样例(经典的请假样例)
阅读量:5065 次
发布时间:2019-06-12

本文共 3927 字,大约阅读时间需要 13 分钟。

经典的请假样例:

流程例如以下,首先须要部门经理审批。假设请假天数大于2天,则须要总经理审批,否则HR审批就可以

一:创建maven项目,项目结构例如以下:

增加依赖

pom.xml

org.activiti
activiti-engine
5.17.0
org.activiti
activiti-bpmn-layout
5.17.0
org.postgresql
postgresql
9.3-1103-jdbc41
org.slf4j
slf4j-log4j12
1.7.12
activiti.cfg.xml 

数据库使用postgresql

xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <property name="databaseSchemaUpdate" value="drop-create"/> <property name="jdbcUrl" value="jdbc:postgresql://127.0.0.1/db_cloud"/> <property name="jdbcDriver" value="org.postgresql.Driver"/> <property name="jdbcUsername" value="admin"/> <property name="jdbcPassword" value="root"/> <property name="jobExecutorActivate" value="true"/> </bean> </beans>

流程文件leave.bpmn20.xml

= 3}]]>
流程图例如以下:

二:代码演示

Leave.java

package com.lala.activiti;import java.util.HashMap;import java.util.List;import java.util.Map;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngineConfiguration;import org.activiti.engine.RepositoryService;import org.activiti.engine.RuntimeService;import org.activiti.engine.TaskService;import org.activiti.engine.task.Task;import org.activiti.engine.task.TaskQuery;public class Leave{	static void log(Object obj)    {    	System.out.println(obj);    }		static void run(ProcessEngine processEngine) throws Exception	{		RepositoryService repositoryService = processEngine.getRepositoryService();		        repositoryService.createDeployment().addClasspathResource("leave.bpmn20.xml").deploy();                RuntimeService runtimeService = processEngine.getRuntimeService();                Map
variables = new HashMap<>(); variables.put("userid", "10010"); variables.put("day", 3); runtimeService.startProcessInstanceByKey("leave_process", variables); TaskService taskService = processEngine.getTaskService(); TaskQuery query = taskService.createTaskQuery(); List
tasks = query.list(); for(Task task : tasks) { log(task.getId() + "," + task.getName()); taskService.complete(task.getId(), variables); } log("--------------------"); tasks = query.list(); for(Task task : tasks) { log(task.getId() + "," + task.getName()); taskService.complete(task.getId(), variables); } log("--------------------"); tasks = query.list(); for(Task task : tasks) { log(task.getId() + "," + task.getName()); taskService.complete(task.getId(), variables); } } public static void main(String[] args) { ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml").buildProcessEngine(); try { run(processEngine); } catch (Exception e) { e.printStackTrace(); } processEngine.close(); }}

variables.put("day", 3);

大于等于3的时候,输出

9,部门经理审批

--------------------
11,总经理审批
--------------------
13,HR审批

否则,输出

9,部门经理审批

--------------------
11,HR审批

转载于:https://www.cnblogs.com/yangykaifa/p/6941601.html

你可能感兴趣的文章
上海行政区域规划图
查看>>
HDU-4417 Super Mario
查看>>
ptmalloc内存分配释放
查看>>
通过Url网络编程实现下载
查看>>
@RequestParam 绑定List参数
查看>>
poj 2195Going Home
查看>>
伪元素消除浮动
查看>>
HttpClient的几个实现类
查看>>
关于对接保税仓物流系统或支付系统推送报关单的一些琐碎的问题
查看>>
mysql将一个库中表的某几个字段插入到另一个库中的表
查看>>
mysql 索引长度tips innodb和myisam引擎
查看>>
[转]Spark能否取代Hadoop?
查看>>
Stack Pointer Tracker
查看>>
IIC原理及简单流程
查看>>
适用于单片机的数据加密算法:xxtea
查看>>
iframe框架
查看>>
CSS标签详解
查看>>
图片随鼠标渐动或者倾斜
查看>>
swiper轮播后hover无效问题解决案例
查看>>
第九周学习进度条
查看>>