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展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...
随机推荐
- vue 的生命周期
生命周期就是 vue 从开始创建到销毁的过程,分为四大步(创建,挂载, 更新,销毁),每一步又分为两小步,如 beforeCreate,created.beforeCreate 前,也就是 new V ...
- iOS开发之UIImage压缩处理
IOS中UIImage的数据量压缩有两种方式,一种是图片尺寸不变,降低图片分辨率,代码方法为: //1.0为压缩系数,介于0~1之间.压缩系数越小,会大大降低图片清晰度 NSData *data = ...
- 个人js基础知识及看js高级程序设计查漏 汇总
1.事件循环机制 js单线程操作. 1>主线程读取js代码 ,此时为同步环境,形成相应的堆和执行栈. 2>主线程遇到异步任务,指给对应的异步进程处理. 3>异步进程处理完毕后,将相应 ...
- java面经学习002
2. Java都有哪些map,分别怎么实现的,具体讲 3. 除了LinkedHashMap,你还知道哪些有序map 4. ConcurrentHashMap讲一讲 5. 为什么要有线程池 6. 线程池 ...
- Mysql学习:2、mysql基本命令
1.下载安装好的mysql分为两种数据库: a.系统自带: b.用户自己创建: 2.基本命令: create database 数据库名称; // 创建数据库:记住后面加 分号 drop databa ...
- HTTP和HTTPS的定义和区别
http是什么? 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上.它指定了客户端可能发送给服务器什么样的消息以及 ...
- not eligible for getting processed by all BeanPostProcessors
描述 这个BUG大的起源是我上线以后,在后台看日志的时候发现一行奇怪的INFO日志: 2022-06-09 23:34:24 [restartedMain] [org.springframework. ...
- hdu1710 二叉树(C/C++)
hdu1710 题目地址:https://acm.dingbacode.com/showproblem.php?pid=1710 (最近几天杭电原网址开不进去了,之后应该可以通..吧) Binary ...
- SpringCloud框架开发
1.是什么微服务 是一种架构模式,他提倡将单一应用程序划分一组小的服务,服务之间的相互配合.互相协调. 2.Spring Cloud简介 SpringClound等于分布式微服务架构的一站式解决方案, ...
- js 全屏显示指定区域
小猪最近使用vue开发项目的时候,需要实现将指定区域全拼展示的操作. 小猪选择使用js来实现,实现原理:使用requestFullscreen()方法将指定的dom元素在全屏模式下打开. 支持的部分浏 ...