实例: 员工请假 分为 直接通过和部门领导审批
部署流程
/**
* 流程部署
*/
public static void deployment() {
Deployment deployment = processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("diagrams/user.bpmn")
.name("user_leave")
.deploy();
System.out.println("流程部署ID:" + deployment.getId());
System.out.println("流程部署Name:" + deployment.getName());
}
启动流程
/**
* 流程启动
*/
public static void startDepleyment() {
ProcessInstance processInstance = processEngine.getRuntimeService()
.startProcessInstanceByKey("myProcess_1");
System.out.println("流程实例ID:" + processInstance.getId());
System.out.println("流程定义ID:" + processInstance.getProcessDefinitionId());
}
查看任务
/**
* 查看任务
*/
public static void selectTack() {
List<Task> list = processEngine.getTaskService()
.createTaskQuery()
.taskAssignee("zhangsan")
.list();
for (Task task : list) {
System.out.println("任务ID:" + task.getId());
System.out.println("任务名称:" + task.getName());
System.out.println("任务创建时间:" + task.getCreateTime());
System.out.println("任务委派人:" + task.getAssignee());
System.out.println("流程实例ID:" + task.getProcessInstanceId());
}
}
完成任务 (带流程变量)
/**
* 完成任务
*/
public static void closeTask(){
Map<String,Object>map=new HashMap<String, Object>();
map.put("msg","一般情况");
processEngine.getTaskService()
. complete("12504",map);
}