Activiti7开发(一)
0.前言
开发背景
项目开发设计审批工作流,企业微信的审批不错,但是下拉列表不支持后期添加,所以只能自己实现,通过gitee查找相关工作流的开源项目,参考有
- 闲鹿(RuoYi+Activiti6) https://gitee.com/calvinhwang123/RuoYi-Process?_from=gitee_search ;前后端未分离,功能完善。画图使用Activiti Modeler,bilibili有教程
- 蜜獾工作流(基于闲鹿的,前后端分离) https://gitee.com/laya1989/ruo-yi-vue-process-3.4.0?_from=gitee_search
- 基于RuoYi分离版的工作流 https://gitee.com/smell2/ruoyi-vue-activiti?_from=gitee_search ; 功能不完善,需要自己完善,画图使用的是Bpmn.js+Activiti7 [目前开发是基于该版本的]
1.版本依赖
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M4</version>
</dependency>
<dependency>
<groupId>org.activiti.dependencies</groupId>
<artifactId>activiti-dependencies</artifactId>
<version>7.1.0.M4</version>
<type>pom</type>
</dependency>
2.解除Activiti7与SpringSecurity的强耦合
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})
3.功能介绍
- 流程模型:创建、删除、通过bpmn文件导入、导出、部署模型转成定义、修改模型
- 流程定义:转模型、挂起(比如说财务每个月15-30号处理报销,在此之前不能报销,就不能创建根据定义创建流程实例)、激活(与挂起正好相反)、删除
- 流程实例:创建、撤销申请(有两种,根据业务而定。1.删除流程实例 2.将流程实例挂起 )、修改(如果流程图有调整申请这个节点的话)、查看审批历史、查看进度图(走过的节点高亮显示)
- 我的待办:审批(同意/驳回,如果是驳回是直接流程结束还是走向调整申请根据业务而定 [如果调整申请确认重新申请是回到最初的审批还是拒绝的上一层审批也看业务要求] )、查看审批历史、查看进度图(走过的节点高亮显示)
- 我的已办:这个和审批历史不同,该功能是说该审批人审批过哪些审批事件(一对多个流程实例),审批历史是针对一个流程实例而言
- 委托:这个功能有待商榷,不能委托给一个普通用户,假设这个用户没有我的代办的菜单权限,那么他也无法看到,还需要联系管理员开通菜单权限,如果是委托给和自己相同角色的用户又没有必要,因为这个审批必定是一个变量比如
${region},只要是经理都可以看到,而且是或签。 - 或签:只要有一人同意即可
- 会签:有多种情况:全员同意,一人拒绝,审批结束;指定具体审批数量,大于该数量则通过;百分比,自定义多少百分比等等。(项目中未用到)
- 抄送:这个需要在画模型图时调用系统的用户接口,因为抄送的人可能是不同角色、不同用户。百度有网友实现,在任务的下面创建子任务,然后
setAssignee=xx,yy,zz,必须在bpmnjs额外添加搜索用户列表功能,暂未实现该功能
Activiti7开发(一)的更多相关文章
- Activiti7新的API介绍
一.Activiti7 的组成部分 Activiti Core 作为Activiti 的核心部分,Activiti Cloud 主要是利用云服务来实现分布式业务流程开发. 二.Activiti 新的 ...
- Activiti7整合SpringBoot(十二)
1 SpringBoot 整合 Activiti7 的配置 为了能够实现 SpringBoot 与 Activiti7 整合开发,首先我们要引入相关的依赖支持.所以,我们在工程的 pom.xml 文件 ...
- Activiti7工作流+SpringBoot
文章目录 一. Activiti相关概念 1. Activiti介绍 2. 核心类 2.1 ProcessEngine 2.2 服务(Service)类 2.2.1 TaskService 2.2.2 ...
- SpringBoot系列——Activiti7工作流引擎
前言 工作流程是我们日常开发项目中常见的功能,本文记录springboot整合activiti7. Activiti介绍 官网:https://www.activiti.org 数据库表 act_hi ...
- Activiti7 入门篇
1. 工作流 简单地来讲,工作流就是在计算机的协助下实现流程的自动化控制.目前,笔者熟知的主流的框架有:Camunda .Flowable .Activiti .jBPM.还有我们国产的盘古BPM. ...
- Spring-boot整合Activiti7
Spring-boot整合Activiti7 pom.xml <properties> <maven.compiler.source>15</mave ...
- Activiti7基本介绍
官方地址 官方地址 官方最新用户文档-V6.0.0 码云镜像-activiti-7-developers-guide 关于BPMN BPMN(Business Process Model AndNot ...
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 使用HTML5开发Kinect体感游戏
一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...
随机推荐
- 使用logback需要导入的jar包
jar包名 logback-access-1.1.2.jar logback-classic-1.1.2.jar logback-core-1.1.2.jar slf4j-api-1.7.25.jar ...
- HCIA-ICT实战基础08-访问控制列表ACL原理与配置
HCIA-ICT实战基础-访问控制列表ACL原理与配置 目录 ACL技术概述 ACL的基本概念及其工作原理 ACL的基础配置及应用 ACL技术概述 技术背景: 需要一个工具实现流量过滤 ACL是由一系 ...
- Linux 服务器配置。
关于防火墙 1.首先不管防火墙有没有关 都使用systemctl stop firewalld 关闭防火墙 2.然后使用 yum install iptables-services 安装或更新服务 3 ...
- Ribbon源码
主要功能分析: Ribbon的负载均衡主要通过LoadBalancerClient来实现的,而LoadBalanceClient具体交给了ILoadBalancer来处理,ILoadBalancer通 ...
- tomcat 重启脚本
1 创建脚本后将脚本放到tomcat/bin目录下并授权,就可以通过此脚本一键重启拉! #!/bin/bash tomcat_path1="$( cd "$( dirname &q ...
- c# 串口 转发到 TCP 客户端
前言 对于数据流Stream的转发.在.net 3.5之后的版本只需要 stream.CopyTo(stream). 目前只是为了方便调用测试,花了一点点时间做了一个简单的调用demo 完整代码 us ...
- Array 方法总结
会改变自身的方法: 返回新数组的长度,改变原数组 1.push 2.pop 3.shift 4.unshif 返回新数组,改变原数组 5.reverse 6.sort 按字符串在字典中的顺序排序 自定 ...
- Django框架搭建web项目(一)
建议查看官方文档:https://docs.djangoproject.com/zh-hans/4.0/intro/tutorial01/ 1.本地安装python环境(略) 2.本地安装Django ...
- Topsis法的python实现
TOPSIS (Technique for Order Preference by Similarity to an Ideal Solution )法是C.L.Hwang和K.Yoon于1981年首 ...
- core程序实现文件下载
已知本地文件名,返回给前台流 string filepath = path +"/" + filename +".txt"; if(System.IO.File ...