[开源]一款仿钉钉工作流快速开发平台,实现流程设计和审批功能

科技一飞开源 2024-10-26 04:58:41

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介seaflow 仿钉钉工作流快速开发平台

seaflow 是一款 开源仿钉钉工作流 平台, 前端使用 vue3+element plus , 实现 流程设计和审批功能, 后端基于国产工作流warm-flow 实现流程控制, 大大缩短了学习成本。

二、开源协议

使用Apache-2.0开源协议

三、界面展示当前效果图

四、功能概述

seaflow 是一款 开源仿钉钉工作流 平台, 前端使用 vue3+element plus , 实现 流程设计和审批功能, 后端基于国产工作流warm-flow 实现流程控制, 大大缩短了学习成本。

围绕 工作流功能, 实现 流程设计, oa审批, 系统管理 三大部分,从 0到1 , 部分界面借鉴优秀项目的布局 能力时间有限,未做太多封装,介意划走! 后端代码往下看 ↓功能介绍系统模块用户管理 [乄]角色管理 [√]菜单管理 [√]部门管理 [√]职位管理 [√]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

六、源码地址

访问一飞开源:https://code.exmay.com/

0 阅读:1