1.首先再idea的file中选择setting,点击plugins,再搜索框中输入actiBPM,点击安装
2.新创建一个maven项目
3.pom.xml中添加如下依赖:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version><!--$NO-MVN-MAN-VER$--> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>6.0.0</version> </dependency>
4.编写代码
controller-----
@Controller() @RequestMapping("/act") public class ProcController { @Autowired ProcServiceImpl procService; /** * @Date 2019年5月15日 * @Description 1.部署审批流程 2.启动流程 * @return 用户发起流程申请 * @throws Exception */ @RequestMapping("/approvel") public String startProcess(String key, String ids){ //流程--部署 procService.deploy(key); //流程--启动 procService.startProcess(key,ids); return "result"; } /** * @Date 2019年5月15日 * @Description 我的代办任务列表 * @return 任务列表页面 * @throws Exception */ @RequestMapping("/taskAgents") public String taskAgents(Model model){ model.addAttribute("tasks",procService.taskList()); model.addAttribute("title","代办任务"); return "taskAgents"; } }
service-------
@Service public class ProcServiceImpl { @Autowired private ProcessEngine processEngine; @Autowired private RepositoryService repositoryService; @Autowired private RuntimeService runtimeService; @Autowired private TaskService taskService; @Autowired private HistoryService historyService; /* * 发布流程 * deploy 启动流程实例 * act_re_procdef act_re_deployment 查看这两张表数据 * 在classpath 根目录下获取流程图以及流程文件.bpmn **/ public void deploy(String keyName){ String path_bmpn= "processes/"+keyName+".bpmn"; String path_png="processes/"+keyName+".png"; //查询 流程定义;list.size()>0表示流程已经部署 List<ProcessDefinition> list = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service .createProcessDefinitionQuery().processDefinitionKey(keyName).list(); if(list.size()>0) return; processEngine.getRepositoryService() .createDeployment() .addClasspathResource(path_bmpn) .addClasspathResource(path_png) .name("deploy_classpathProcess")//给流程定义命名 .category("工作量预算")//设置流程类型 .deploy(); }
public List<Task> taskList(){ //usr:任务负责人 String usr=rs.get("approvel_usr_name"); //key:流程定义的标识 String key="bdgt"; List<Task> list=taskService.createTaskQuery().taskAssignee(usr) .processDefinitionKey(key).list(); return list; } }