简单来说工作流就是将一条信息根据角色、分工、条件不同进行固定的向上传递,数据是按照固定的流向进行传输,一级一级传递下去,这种场景在OA , CRM / ERP中应用得比较多。通常这种操作自己本身也可以通过逻辑来实现,但是复杂度很高。而且不方便维护。所以通常都采用第三方引擎框架来实现,除了引擎本身简化了操作以外。更重要的是维护起来很方便。
安装bpmn-js
绘制流程图
spring boot 2.54整合acticity7
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter</artifactId> <version>7.1.0.M6</version> <exclusions> <exclusion> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
spring.activiti.history-level=fullspring.activiti.db-history-used=truespring.activiti.check-process-definitions=falsespring.activiti.deployment-mode=never-fail
放入BPMN流程图(当前目录下流程会自动创建)
启动spring boot 生成表
手动部署流程BPMN
Deployment deployment=repositoryService.createDeployment()
.addClasspathResource("xx.bpmn")
//.addClasspathResource(pngname)//图片
.name("task")
.deploy();
查询流程部署
List<Deployment> list = repositoryService.createDeploymentQuery().list();
查询流程定义
List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery()
.list();
删除流程定义
repositoryService.deleteDeployment(pdID, true);
初始化流程实例
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("xxxx", "id");
删除流程实例
runtimeService.deleteProcessInstance("73f0fb9a-ce5b-11ea-bf67-dcfb4875e032", "xxxx");
执行任务
taskService.complete("d07d6026-cef8-11ea-a5f7-dcfb4875e032");
根据流程实例ID查询历史
List<HistoricTaskInstance> list = historyService
.createHistoricTaskInstanceQuery()
.orderByHistoricTaskInstanceEndTime().asc()
.processInstanceId("1f2314cb-cefa-11ea-84aa-dcfb4875e032")
.list();
和spring security整合自行实现
内容出处:,
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/tech/29128.html