# AntFlow
**Repository Path**: ethanlab/Antflow
## Basic Information
- **Project Name**: AntFlow
- **Description**: 🐜 AntFlow是一款采用Springboot+Mybatis+activiti+ruoyi+vue3等主流前后端技术开发的仿钉钉工作流引擎,结合中国式办公特点深度定制,可以作为钉钉工作流的开源替代。致力解决传统activiti/flowable流程图必须由专业程序员绘制,学习曲线陡峭,上手demo容易使用难、排查问题难、维护成本高等问题。如果喜欢请给颗⭐️。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 343
- **Created**: 2024-08-22
- **Last Updated**: 2024-09-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 简介
AntFlow 是一款基于activiti的、✈久经生产环境考验的、企业级低代码工作流引擎平台。可独立部署,也可以做为模块嵌入到现有系统中。使用简单,易于维护,前端只需要简单点击和选择即可完成流程配置,后端只需要实现一个接口即可新开发出一条业务流程!
### 核心技术栈
* Java8-21 (main分支为java8版本,如果使用较新java版本,请切换到java17_support分支)
* Activiti 5.23
* Spring Boot 2.7.17
* MybatisPlus 3.5.1
* MySql 5.7+
### 界面一览
>本项目是后端,前端完整功能请移步[gitee地址](https://gitee.com/ldhnet/AntFlow-Vue3)

添加节点

属性配置面板

审批节点属性面板

参数校验

管理界面

### 核心特性:
1. **开源,完全免费**,没有任何收费功能,无付费引导。(如果您的企业使用了,麻烦让作者知道,帮助作者推广开源项目,作者也会帮您进行技术支持,帮您在企业快速落地)
2. 久经生产检验的:AntFlow经历了多个版本的迭代更新.在某大中型客服公司、某中型互联网公司、某大型快递公司落地使用,经受住了复杂业务场景海量数据压力的考验。
3. 流程开发简单,对开发者友好,即便没有工作流基础,也能够快速手上,后端只需要实现`FormOperationAdaptor` 填充样板方法即可快速开发一个审批流业务
>在企业内部只需要有一个人对工作流比较熟悉(主要是维护流程引擎,有问题能够快速定位解决)便可以带整个团队开发工作流业务,开发者只要懂编程即可并且了解业务即可(可以使用任意编程语言,由于项目是Java语言写的,java开发更为方便),不需要写任何和工作流相关的代码,只需要专注业务curd即可
4. 流程设计简单,流程设计器用户友好,人人可用:AntFlow提供了一个简洁的流程设计器,摒弃了传统设计工具的复杂性,使得用户能够直观、轻松地设计和管理工作流程。
> 传统流程设计器往往需要在页面上配置脚本,监听器、流程变量、表达式...随着公司流程增加多,传统模式维护成本剧增,最主要的是往往需要程序员来绘制流程图,对于有成千上万并且流程变更频繁的企业对开发维护者简单是噩梦。AntFlow致力于解决流程设计器的复杂性,使流程设计更简单,更易用。不需要程序员介入,流程运营人员即可搞定流程配置
5. 流程可调试:AntFlow 提供了一个管理流程调试界面,同样不需要程序员介入,流程管理员便可通过流程调试界面解决大部分日常常见流程问题。把程序员解决出来专注于解决更有价值的问题。
6. 引擎设计优秀,完全透明化,流程所有节点、任意属性都是可追溯的,出了问题心里有底。
> 如果您使用了AntFlow,很多使用中的很多问题大都能被流程管理员解决,一部分确实属于业务bug开发者自己便可解决。到了引擎层的问题几乎很少了,如果您刚刚使用对引擎不熟悉,可以和作者保持沟通交流。
7.流程引擎和业务解耦:AntFlow的流程引擎和审批业务耦合低,编写审批业务时无需关注流程引擎的实现细节,不需要写与流程引擎调度相关的代码,只需要专注审批的业务代码编写即可.正是由于这种低耦合性,使得AntFlow引擎可以作为独立的工作流平台部署,接入公司的任何业务系统.
8.流程引擎和用户角色系统解耦,AntFlow摒弃了activiti自带的用户角色系统,完全使用企业自己的用户角色和组织系统,这使得AntFlow可以快速到企业自己的各种系统中,如OA,CRM,ERP,CMS等系统.结合自己系统的用户组织系统特点扩展适合于自己企业的审批流程.
> Activiti7版本也摒弃了使用多年的用户角色系统,设计上不谋而合.Activiti自身的用户角色系统为了通用设计的比较简单,无法满足企业的个性化需求,另一方面将企业的用户组织系统导入到Activiti里面是一件非常麻烦的事,尤其是对不熟悉Activiti的用户,还会导致数据不一致等问题.
### 快速开始
1. git clone 本项目
2. 打开 **web模块**下resources目录下的**resources**目录,修改数据库连接信息,新建一个名为**antflow**的数据库
3. 打开里面**web**模块resources目录下的scripts文件夹,执行里面的**act_init_db.sql**和**bpm_init_db.sql**
4. 启动项目,如果一切顺利,这时候后端就启动起来了
5. [前端设计器地址](https://gitee.com/ldhnet/AntFlow-Vue3)
6. 前端ruoyi演示项目尚在开发中...