开源两个月,antflow后端项目全网获近100星

从六月初开源,转眼间AntFlow已经开源将近四个月了(前端比后端早了大约2个月,后端于8.18开源).(其实准备是重构以前开源版本.前年的时候我们已经将Vue2版的流程设计器开源了.后来由于疫情原因,没有再继续持续开发.)后来有一天再打开仓库的时候,发现虽然很久没有更新了,但是不断有用户点星(一共大约有20颗星,虽然对于一些明星项目不算什么,但是对我们来说确是很大的鼓励和支持.).还有一些用户提出issue,展示页打不开了,能否支持vue3…等.等看到时,问题已经很久了,感觉很对不起支持的用户.今年六月初和一个同在上海工作的朋友线下沟通了一下继续开发的意愿和未来的功能规划.然后各自到家后当天便开始投入研发了.

从开源到现在.前端项目AntFlow-Vue3 activiti工作流前端 获得了214颗星星.后端项目,AntFlow-activiti仿钉钉低代码工作流后端获得了53颗星星.(后端于8月18日正式开源).收获了两个企业级用户,大家放心,企业级用户也是免费的🙂‍↔️,其国为了支持一个企业用户用在saas系统了我们做了近一个月时间的功能改造,同时这位用户也加入了开发团队.将设计的功能回馈给AntFlow,大家双向奔赴,相互成就.一个用户对我们项目进行建议我们开通捐赠功能并进行首捐.

在这里插入图片描述
从最初无人问津,再到后面零零星零有些赞,再到后面开始有人加入群问各种问题…一路走来,用户数量越来越多,使用深度不断增加.我们倍感鼓舞,同时也感觉责任重大.一定要让用户都用起来.(目前项目虽然下载来来就能跑起来没什么问题.但是生产上很多用户需要将工作流集成到自己的系统里.结合支持情况来看,在和已有系统集成上还是有不少麻烦.这是我们的问题,在没解决之前,我们就人肉支持,一定要让关注的,想用的用户都用起来!

在这里插入图片描述

Antflow是什么

antflow目前并不是明星项目,知明度也不是很大.这里就再次介绍一下.

AntFlow是一款采用Springboot+Mybatis+activiti+ruoyi+vue3等主流前后端技术开发的仿钉钉工作流引擎,结合中国式办公特点深度定制,可以作为钉钉工作流的开源替代。致力解决传统activiti/flowable流程图必须由专业程序员绘制,学习曲线陡峭,上手难、排查问题难、维护成本高等问题

系统架构图

在这里插入图片描述

核心技术栈

Java8-21 (main分支为java8版本,如果使用较新java版本,请切换到java17_support分支)
Activiti 5.23
Spring Boot 2.7.17
MybatisPlus 3.5.1
MySql 5.7+

界面一览

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

功能一览

功能功能解释&场景示例完成情况
审批人前去重不同节点都需要同一个审批人审批时,审批人只在最前面节点出现(可能刚接触流程业务的人不理解为什么要去重,如果审批流每个节点都是固定人员,当然不需
,实际情况是复杂的办公流程很多节点都不是指定的人,而是根据规则带出来的.比如一个报销流程需要直属领导和部门负责人审批,有的员工的直属领导就是
部门负责人(比如你是研发组长))
审批人后去重不同节点都需要同一个审批人审批时,审批人只在最后面节点出现.前去重还是后去重是根据实际业务决定的.比如在一个财务流程中需要资金经理和财务总监
都审核。财务总监可能也是资金经理(资金经理有多个),这时候流程对他后去重比较合理,流程先让其它资金经理把关,没问题了再到他那里(
审批人不去重审批人前去重后去重都是针对流程整体而言的,针对流程的某个节点,有需要不去重的场景(即去重逻辑对它失效)。比如某个大额打款流程需要出纳在
特定的机器上操作(可以实现对流程特定节点控制)。如果他在打款节点被去重掉了,则将导致打款行为无法进行(流程设计时是对打款这个节点进行控制)
会签流程某个节点需要多人审批时(通常是一类角色,会有多个人),需要所有人都审核通过流程才能继续进行。比如一个项目立项流程需有个审批节点是副总
经理审批,可能公司有多个副总经理,需要他们都同意流程才继续
顺序会签上面的会签是不分顺序的,强调需要审批节点上的人都需要同意方可继续。顺序会签则是流程到了这个审批节点,需要按预先设计好的顺序依次审批通过
还以上面项目立项流程为例。假如多个副总经理有一个是起决定作用,其它人都是象征性同意。则可以将流程设计为他最先执行,然后再到到其它人审批
具体需要不需要顺序,要结合具体的业务设计。总体上而言,不需要依次审批的效率会高一些(这里批审批的流转效率,技术上没有区别)
或签流程某个节点是多人审批节点,但是只需要一个人审批通过流程就可以继续向下执行。比如一个财务报销流程,到了出纳审批的环节公司可能有多个出纳,
但是只需要任意一个出纳审核票据无误就可以继续向下进行
打回修改AntFlow的特色功能(市面上一些竞品也有这项功能),流程发起后,由于表单字段填写错误,这时候让发起人重新填写显然效率非常低,也容易让人暴躁,
AntFlow支持将流程打回到发起人重新修改后再提交,然后流程继续
流程同意、拒绝审批流的基本功能
流程加批流程加批用在一些组织角色不明确的流程中,比如一个开发人员发起了一个数据库变更流程,需要他对应的产品同意,公司中一般可能没有开发对应的产品
是谁这样的划分,这时候流程可以设计为允许加批,开发在发起流程时选择自己的产品进行审批。
流程作废在流程还没有审批完成时,流程发起人对流程执行作废操作,终结掉当前流程
变更当前处理人变更流程当前正在执行节点。使用场景:正常离职需要办理离职交接手续,其中有一步是交接手上正在处理的流程给别人,但是有些
特殊关系户,他在离职的时候只需要找个招呼就行了。这个时候需要他审核的流程就会卡住进行不下去,这时候可以向领导请求他手里的流程可以交接给谁
然后把处理人变更为指定的人。变更处理人直接更改引擎中当前节点的处理人,是危险操作,可能会查看审批路径人审批人看起来不对
变更未来节点处理人有些流程由于开发时存在逻辑bug或者运营人员在配置时候配置错了,导致不应该出现在当前审批流中的人出现了。比如加班餐20元报销流程不一般不需要
老板亲自审批,但是走到老板那里了。一大早上老板的OA系统出现一堆加班餐报销流程,想想老板会是什么心情💀。这时候如果流程还没到老板那里,可以变
更一下流程处理人。注意,变更未来节点处理人是一补救措施。和变更当前处理人的区别第一点当然是节点状态不同。第二点就是变更处当前处理人一般针
单个具体流程实例(通俗讲就是有流程编号的一个流程),变更未来处理人一般为整个流程级别的。比如所有的已发起的加班餐报销流程
流程委托处理人将自己需要处理的流程转交给别人代处理的过程称作流程委托。比如为了感谢你对公司辛勤付出,领导给你放一个月假让你到三亚旅游一圈,此间你
不想处理任何与工作相关的事务(那是不可能的),这时候可以发起一个流程委托申请流程,被委托人和相关负责人都审批通过后流程就自动委托给指定的
人处理了(流程委托也是危险操作,不能轻易开放。比如一个百万级别的采购流程公司副总擅自委托给一个不知明喽啰审批显然是不合适的😄)
流程限时制委托流程处理人将自己需要处理的流程在指定时间段内委托给指定人代处理的过程叫作限时委托。有些委托是永久性的,比如老板会将一些非必要自己审批的流程
委托给自己的秘书(老板委托自己的流程也要发起流程申请?are you kidding me?其实要看怎么设计的,如果老板会严格遵守公司规范没问题,如果不是则
就需要特殊考虑,比如给管理员增加一个手动修改流程委托人权限,这也可以防止程序出现意外情况有补救措施。比如别人流程委托申请的流程走完了,结果
逻辑没生效。你让别人再重新发起一个流程?这个时候自己手动私下处理掉得了🙄。回到正题,实际工作中很多流程委托都不是永久性的,比如上面的你到三
亚旅旅游的案例。你只需要在这段时间内将流程委托出去,你回来了还得继续当牛做马干活🤐
定时流程工作中有很些场景流程并不会是由用户手动发起的,有的是系统以指定用户的名义发起的。比如员工试用期转正申请。如果让员工自己来关注会比较累,让hr
来提醒hr也会比较累。这时候可以制定一些定时流程,在员工试用期到的时候自动以他的名义发起一个试用期转正申请流程(流程节点上要把他设置为审批人
不然他自己都不知道,一脸蒙蔽🥴)
流程灰度在日常开发中,有些比较规范的团队会有灰度发版操作。同样,在重度依赖审批流的公司中,审批流出错可能会导致严重的问题,轻则批评责备,重则相应
开发负责人员卷铺盖走人。为了将新上线的流程可能的bug导致的风险降到最低。可以对流程进行灰度试点。灰度的策略有很多,比如指定人员使用,指定
角色使用,指定部门使用等。线上运营一段时间没有问题时再放开给整个公司使用。(看到这里你是不是感觉可能会非常困难,其实使用起来非常简单。这也
是AntFlow的追求,让流程尽量简单,流程开发完成以后运营能做的事尽量不让开发来做。后面会出教程详细介绍
流程遇到指定人结束这是流程设计时的一种功能,非运行时的。比如一个按公司部门组织层层审批的流程,有时候不知道需要向上审批多少层结束,但是可以在有某个人出现的时候
终止。
超时自动审批目前尚不支持,开发起来没有太大技术难度。但是作者一直坚持流程同意应当是审批人的真实意愿,可以结合oa系统站内信提醒,IM工具发消息提配,线下电
话沟通等方式让他同意掉。而不仅仅是为了时效性通过技术手段让流程自动通过。(AntFlow有很多中国式办公的功能,比如某个人不在了导致流程无法进行
这时候可以变更处理人来处理。总之有很多方法)。当然如果大家觉得这个功能很必要,出可以开发
流程抄送审批流的基本功能,将流程抄送给指定的人方便他查阅、归档管理。
流程自定义条件流程设计的时候往往会根据不同的条件决定执行不同的流程分支。条件也多种多样,和公司业务有密切关系。也是AntFlow中为数不多需要自己开发定制的功能
当然开发起来也非常简单。只需要实现一个接口构造一个返回true或者false的函数即可。剩下的交给引擎来完成。
流程执行运作流程在审批某个特定节点\审批完成时执行一个运作。比如一个用户发起一个腾讯云账号申请流程。有的公司是流程完成之后负责这个流程的人手动给员工开通
账号,对于大型企业每天有成千上百的人需要申请各自云平台账号,这样显然是低效的,可以更进一步,流程完成以后会发起回调事件,在回调事件里写上特定
的和云平台对接开通账号的逻辑即可。流程执行运作也是危险行为,需要注意设计逻辑的完整性
流程完结后自动发起
新流程
比如在一些公司有着复杂的离职流程,一般公为几个有先后顺序的流程,最后一个流程走完了才算离职完成。这里可以通过流程运作来完成,单独拎出来说是因
为作者觉得这个功能非常基础。也是为了帮助大家拓宽思路。结果流程引擎的现有某项或者某几项能力来完成一项功能
外部流程接入外部流程接入是指公司内以OA系统为核心,将流程引擎做为基础组件提供给公司其它业务系统来使用。比如果Devops系统,CRM系统,WMS系统等。这些外部
系统接入了之后便可以使用OA流程引擎的基础功能,一方面便于流程集中管理,另一方面减少研发资源的浪费。很多团队比如Devops团队做流程引擎自然没有做
OA系统的人专业。他们随便在网上找个组件使用一面方存可能存在能力不足问题,另一方面可能存在各种bug需要处理,他们可能处理不了。这些专业的事情应该交
给一个专业的团队来做(这块功能作者在做企业级开发的时候做过,但是效果不是很满意,这块功能正在重新规划中)
🕘

后续规划

  • 进一步优化现有系统代码,提升用户集成便捷性
  • SaaS化进一步完善
  • 完善流程通知系统
  • 完善使用文档
  • TIDB支持
  • 历史数据同步支持
  • 流程手签支持
  • 流程表单打印支持
  • 集成拖拽表单

开源地址

  • RuoYi集成版地址
  • 独立设计器地址
  • 项目后端gitee地址
  • 项目后端github地址

Ruoyi集成版方便快速了解功能,流程设计器独立版便于集成已有系统
开源不易,喜欢的大佬烦请抽出时间看一看项目,如果认为值得点赞可以给一颗星星🥰🥰🥰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893533.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在算家云搭建Video-Infinity(视频生成)

一、模型介绍 Video-Infinity是一个先进的视频生成模型,使用多个 GPU 快速生成长视频,无需额外训练。它能够基于用户提供的文本或图片提示,创造出高质量、多样化的视频内容。 二、模型搭建流程 1.大模型 Video-Infinity 一键使用 基础环境…

应用商店上新:MainConcept Transcoder和Live Streaming Software App

在Akamai云计算平台上运行工作负载的你也许还不知道,为了帮助用户更容易地找到并快速部署各类解决方案,Akamai提供了一个丰富的应用商店(Marketplace),其中包含各类经过验证,可以在Akamai云计算平台上轻松部…

MoeCTF 2024 ---Misc方向WP

安全杂项 signin 题目描述: xdsec的小伙伴们和参赛者来上课,碰巧这一天签到系统坏了,作为老师的你,要帮他们 教师代签。 特殊提醒:luo同学今天好像在宿舍打游戏,不想来上课,这是严重的缺勤行为…

react18中如何监听localstorage的变化获取最新的本地缓存

有时候业务中会需要监听缓存的变化,实时更新页面的内容获取发送接口请求。这就要我们来监听对localstorage的修改,实时响应变化!!一下方法同样实用于vue项目。 同一个项目中不同页面的实现 实现效果 代码分析 修改localstoare的…

「漏洞复现」英飞达医学影像存档与通信系统 WebUserLogin.asmx 信息泄露漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

Redis中String类型常见的应用场景

目录 一. 缓存功能什么是缓存?Redis的工作原理热点数据的过期策略是什么? 二. 计数功能三. 会话(session)共享Session会话是用来解决什么问题的使用Redis集中管理Session 一. 缓存功能 什么是缓存? 缓存是一种用于存储数据的计算机硬件或软件组件. 缓存核心功能是加快数据…

Android上的AES加密

基础算法说明 https://www.youtube.com/watch?vlnKPoWZnNNM 虽然这个视频讲的非常详细,但是涉及到具体底层算法,大致流程 1. 将数据转成HEX或者byte array 2.将数据分层一块块等大小的数据 3.将数据和key 进行一次混合,加密之后的输出&…

AI让企业知识管理与设计产出更智序

AI与各行各业的融合程度正在不断加深。 从医疗健康到金融服务,从教育到制造业,从零售到物流,AI的应用正在推动这些行业的转型升级,提高效率,降低成本,创造新的增长点。一家专注于显示制造的企业就遇到了这…

SpringBoot技术的车辆管理系统集成

3系统分析 3.1可行性分析 通过对本车辆管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本车辆管理系统采用Spring Boot框架,JAVA作为开发语…

破局汽车基础软件发展丨昂辉科技亮相2024芜湖新能源汽车零部件和后市场生态博览会

10月14—17日,2024芜湖新能源汽车零部件和后市场生态博览会在芜湖市宜居国际博览中心盛大开幕。昂辉科技携新一代EasySAR车载基础软件工具链产品亮相核心零部件展区。 作为新能源汽车行业的一次盛会,本届博览会以“会议论坛展区展示”为特色&#xff0c…

开源限流组件分析(一):juju/ratelimit

文章目录 前言数据结构对外提供接口初始化令牌桶获取令牌 核心方法adjustavailableTokenscurrentTicktakeTakeAvailableWait系列 前言 这篇文章分析下go开源限流组件juju-ratelimit的使用方式和源码实现细节 源码地址:https://github.com/juju/ratelimit 版本&…

非常漂亮html公告弹窗代码

非常漂亮html公告弹窗代码 <style>.act-user-modal[data-v-627ce64e] {width: 900px;height: 570px;position: fixed;left: 50%;top: 50%;z-index: 9000;background: url(https://pic1.zhimg.com/80/v2-39b2a0ea3f338776b81d760e67d56027.png)no-repeat 50%;margin: -285…

[已解决] pycharm添加本地conda虚拟环境 + 配置解释器 - pycharm找不到conda可执行文件

目录 问题&#xff1a; 方法&#xff1a; 补充&#xff1a;创建conda虚拟环境 参考文档&#xff1a;pycharm找不到conda可执行文件怎么办&#xff1f;-CSDN 问题&#xff1a; 1.显示&#xff1a;未为项目配置 Python 解释器 2.想在pycharm中使用本地创建的虚拟环境 方法&a…

关于MyBatis-Plus 提供Wrappers.lambdaQuery()的方法

实例&#xff1a; private LambdaQueryWrapper<XXX> buildQueryWrapper(XXXBo bo) { Map<String, Object> params bo.getParams(); LambdaQueryWrapper<XXX> lqw Wrappers.lambdaQuery(); lqw.eq(bo.getOrgId() ! null, XXX::getOrgId, bo.getOrgId()); lq…

搭建Elasticsearch集群

一. 集群的结构 1.单点的问题 单点的Elasticsearch存在哪些可能出现的问题呢? 单台机器存储容量有限,无法实现高存储。容易出现单点故障,无法实现高可用。单服务的并发处理能力有限,无法实现高并发所以,为了应对这些问题,我们需要对Elasticsearch搭建集群。 2.数据分片…

芯课堂 | 使用 SWM341 系列 MCU 环境配置

SWM341系列MCU调试环境配置 SWM341 是华芯微特的其中一款 MCU&#xff0c;341 和 341内置 SDRAM 的 34S 系列&#xff0c;其内核相同。 芯片使用安谋科技“星辰”STAR-MC1 内核,基于 Arm-V8 指令集架构&#xff0c;下载烧录选 M33&#xff0c;对应的工具需要升级; 1、使用 KE…

【踩坑随笔】Tensorflow-GPU训练踩坑

一个无语的坑&#xff0c;4060单卡训练&#xff0c;8G内存本来就不够&#xff0c;还没开始训练就已经爆内存了&#xff0c;但是居然正常跑完了训练&#xff0c;然后一推理发现结果就是一坨。。。往回翻日志才发现原来中间有异常。 首先解决第一个问题&#xff1a;Could not lo…

阴盘奇门月将查法排法以及php的实现的部分代码

vvvvv绿泡泡: lsk9479 月将查法&#xff0c;是根据二十四节气来查询的&#xff0c;查法表如下&#xff1a; ‌雨水至春分‌&#xff1a;月将为亥‌春分至谷雨‌&#xff1a;月将为戌‌谷雨至小满‌&#xff1a;月将为酉‌小满至夏至‌&#xff1a;月将为申‌夏至至大暑‌&am…

基于SpringBoot+Vue大学生创业就业智慧导航服务平台【提供源码+答辩PPT+参考文档+项目部署】

&#x1f4a5; 这两年毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的JavaWeb项目缺少创新和亮点&#xff0c;往往达不到毕业答辩的要求&#xff01; ❗如何解决这类问题&#xff1f; 让我们能够顺利通过毕业&#xff0c;我也一直在不断思考、努力、精进。通过2024年…

SVN——常见问题

基本操作 检出 提交 更新 显示日志 撤销本地修改 撤销已提交内容 恢复到指定版本 添加忽略 修改同一行 修改二进制文件