Idea 安装activit插件
https://blog.csdn.net/weixin_44467567/article/details/103876746
解决乱码
https://blog.csdn.net/minkeyto/article/details/100707951
画一个简单的请假流程
创建test.bpmn
设置填写请假单节点审批人
同样设置领导审批人节点 审批人
将test.bpmn改名test.xml,然后右键选择
生成图片并保存在项目资源路径下
将test.xml重新改为test.bpmn
工作流部署
@Test
public void repository() {
//1.创建processEngine对象
//ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.得到RepositoryService实例
RepositoryService repositoryService = processEngine.getRepositoryService();
//3.进行部署
Deployment deployment = repositoryService.createDeployment()//创建deploment对象
.disableSchemaValidation() //禁用架构验证
.addClasspathResource("test.bpmn")//添加资源
.addClasspathResource("test.png")//添加ziyuan
.name("测试请假流程")//流程名字
.deploy();//流程的部署
//4.输出部署的一些信息
System.out.println(deployment.getId());
System.out.println(deployment.getName());
}
ad66d251-a104-11eb-a01c-7670fd4fc2ca
测试请假流程
根据流程编号KEY_启动流程实例
@Test
public void ActivitiStartInstance(){
//获取RuntimrService 对象
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance myTest = runtimeService.startProcessInstanceByKey("myProcess_1");
//输出实例相关信息
System.out.println(myTest.getProcessInstanceId());
}
73173046-a105-11eb-a609-7670fd4fc2ca
查询当前待办的任务
@Test
public void ActicitiTaskQueryId(){
//得到TaskService对象
TaskService taskService = processEngine.getTaskService();
//根据流程定义的key,负责人assignee来实现当前用户的任务列表查询
List<Task> taskList = taskService.createTaskQuery()
// .taskId(assignee)
// .taskAssignee("赵虎")
.processInstanceId("73173046-a105-11eb-a609-7670fd4fc2ca")
.list();
//任务列表展示
for (Task task:taskList) {
System.out.println("流程实例id:"+task.getProcessInstanceId());
System.out.println("任务id:"+task.getId());
System.out.println("任务负责人:"+task.getAssignee());
System.out.println("任务名称:"+task.getName());
}
}
流程实例id:73173046-a105-11eb-a609-7670fd4fc2ca
任务id:7319ef6a-a105-11eb-a609-7670fd4fc2ca
任务负责人:张三
任务名称:填写请假单
根据任务id完成当前待办任务
@Test
public void completeTask(){
taskService.complete("7319ef6a-a105-11eb-a609-7670fd4fc2ca");
}
查询当前待办任务
流程实例id:73173046-a105-11eb-a609-7670fd4fc2ca
任务id:3cf61d26-a106-11eb-847b-7670fd4fc2ca
任务负责人:李四
任务名称:领带审批
可以看到填写请假单任务已完成,当前流程进入领导审批节点,完成当前节点任务,该流程结束。
判断当前流程是否已结束
@Test
public void test6() {
ProcessInstance pri = processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId("73173046-a105-11eb-a609-7670fd4fc2ca").singleResult();
if(pri == null){
System.out.println("流程已结束");
}else{
System.out.println("流程未结束");
}
}
流程已结束
删除流程部署
@Test
public void test4() {
String deploymentId = "cd655d07-9379-11eb-8e8f-7670fd4fc2ca";
processEngine.getRepositoryService().deleteDeployment(deploymentId,true);
}
删除流程实例
@Test
public void deleteProcessInstance(){
String processInstanceId = "ce948298-92bf-11eb-bcc3-7670fd4fc2ca";
processEngine.getRuntimeService().deleteProcessInstance(processInstanceId , "启动失败删除");
}