FeiLong工作流是Mybatis-plus的作者开源的一个很好的工作流项目,可以合理的嵌入到业务系统中,实现业务逻辑中的审批,比如订单审批、活动审批等都可以用到。下面我们来了解一下作者的设计思路。与之类似的开源项目还有warm-flow,设计的思路都是类似的。
除此之外,可视化编辑界面查看流程图和编辑流程图、权限对接流程审批。
启动会进行自动装配:FlowLongAutoConfiguration。主要做的事情是配置飞龙上下文。如下图所示:
可以看到很多都和工作流的主流程有关。
最终完成对上下文的设置,将主流程的操作逻辑都放到FlowLongEngineImpl:
1)发布工作流的流程
通常发布的流程信息采用的为json文件、流文件。
2)实例化
3)task的相关操作
如果想要增加节点,此时可以基于追加节点模型:
executeAppendNodeModel
完成上面的操作基本上,是完成工作流程的主流程。
通常,设计流程图,需要基于前端实现业务的配置,将配置的业务调用审批流的发布接口,来实现对流程图或者json文件等,方便查询审批流程图的效果和编辑。
通常业务系统需要对接工作流需要实现对权限的控制,比如基于用户权限控制,来实现对审批流的可视化和审批。此时通常会对接CAS或者OAuth2等。这个通常是针对特定的权限系统进行集成,属于二次开发的工作。同时针对不同的权限查询对应的审批流接口开发等。