[开源]一款仿钉钉工作流快速开发平台,实现流程设计和审批功能
![[开源]一款仿钉钉工作流快速开发平台,实现流程设计和审批功能](https://yy123.ink/api/img/1782596933357-gsbxap.jpg)
一、开源项目简介
seaflow 仿钉钉工作流快速开发平台
seaflow 是一款 开源仿钉钉工作流 平台, 前端使用 vue3+element plus , 实现 流程设计和审批功能, 后端基于国产工作流warm-flow 实现流程控制, 大大缩短了学习成本。
二、开源协议
使用Apache-2.0开源协议
三、界面展示
当前效果图













四、功能概述
seaflow 是一款 开源仿钉钉工作流 平台, 前端使用 vue3+element plus , 实现 流程设计和审批功能, 后端基于国产工作流warm-flow 实现流程控制, 大大缩短了学习成本。
功能介绍
-
系统模块
-
用户管理 [乄]
-
角色管理 [√]
-
菜单管理 [√]
-
部门管理 [√]
-
职位管理 [√]
-
oa办公
-
发起申请 [√]
-
我发起的 [√]
-
待办任务 [√]
-
已办任务 [√]
-
抄送任务 [-]
-
流程管理
-
流程分类 [√]
-
流程设计 [乄]
-
自定义表单 [√]
-
表单设计器 [-]
-
流程配置 [乄]
-
流程发布 [√]
-
版本管理 [-]
-
更多功能有序新增中...
工作流解析
工作流使用 warm-flow 框架,需要深入了解的同学,请先移步官网熟悉基本结构,下面为代码解析部分,如有错误请随时指正
1. 流程逻辑
流程设计 -> 流程json -> 转换为流程定义 -> 发布
2. 发起流程申请逻辑
-
提交申请流程
-
找到开始节点 和 下一个审批节点(非网关)
-
执行开始监听器
-
创建流程实例对象
-
执行权限监听器(官方不推荐使用了)
-
创建历史任务对象
-
创建下一个审批节点的task对象
-
替换task中的办理人变量(表单数据变量替换)
-
执行分派监听器(动态设置审批人的地方)
-
保存(流程实例, 任务(根据参数permissionlist创建任务办理人),历史任务)
-
执行结束监听器和下一个节点的创建监听器
审批逻辑
后续分析了再添加
五、技术选型
seaflow 是一款 开源仿钉钉工作流 平台, 前端使用 vue3+element plus , 实现 流程设计和审批功能, 后端基于国产工作流warm-flow 实现流程控制, 大大缩短了学习成本。
sealflow 现代化工作流搭建框架
-
基于 Warm-Flow国产工作流引擎 , 仿钉钉工作流, 纯个人爱好,开源分享, 请勿二开同类产品。
-
本项目很多地方只做了简单处理, 主要时间用于工作流程的功能开发
开发环境
springboot 2.7.18 , java 17 , warm-flow , satoken , hutool , mybatis-plus , easy-trans