代码:
/** * 分配任务负责的组<br> * 可以分配给多个角色<br> * 三种方式都可 * * @author Jamin * @date 2019年7月18日上午8:28:12 * @return void */ @org.junit.Test public void four() { // 部署 Deployment deploy = repositoryService.createDeployment().addClasspathResource("group/four.bpmn") .addClasspathResource("group/four.png").deploy(); IdentityService identityService = processEngine.getIdentityService(); // 创建组与用户并关联 /* * identityService.saveGroup(new GroupEntity("部门经理")); identityService.saveGroup(new * GroupEntity("总经理")); identityService.saveUser(new UserEntity("张三")); * identityService.saveUser(new UserEntity("李四")); identityService.createMembership("张三", * "部门经理"); identityService.createMembership("李四", "总经理"); */ // 使用流程变量设置角色 /* * HashMap<String, Object> map = new HashMap<String, Object>(); map.put("group", "部门经理,总经理"); */ // 启动 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("four"); // 查询个人任务 Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()) .taskCandidateUser("李四").singleResult(); System.out.println(task.getName()); } // 查询执行任务的组 List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId()); for (IdentityLink identityLink : identityLinksForTask) { System.out.println(identityLink.getGroupId());总结:
流程步骤
bpmn
使用bpmn图或zip部署
启动流程
查询个人任务或组任务
实现办理人的三种方式:
直接指定
使用流程变量,启动时指定
使用监听器