『7x24小时有问必答』

前言

政务数据协同从来都不是一件轻松的事。跨系统、跨部门、跨网络的数据交换场景中,流程不透明、节点僵化、数据割裂这三个老问题反复出现。每次对接新系统,都要重新写一遍接口、调一遍流程、改一遍代码——这种低效的重复劳动,正是我们尝试解决的核心痛点。
它不是一个通用的工作流平台,而是专门面向政务数据交换场景设计的协同中枢。核心思路很简单:让数据像河水一样,沿着可视化的河道自然流动,而不是靠硬编码的管道强行泵送。

项目介绍

RiverFlow 是一套可视化流程编排与数据交换平台,围绕"事项"这个政务核心概念来组织所有能力。一个事项对应一项具体的政务服务或数据协同任务,围绕它配置数据源、注册第三方接口、设计工作流,最终实现跨系统的自动化数据流转。
项目采用 Spring Boot + Vue 3 的经典前后端分离架构,数据库使用 MySQL 8.0,缓存层用 Redis。后端以模块化方式组织,核心引擎独立于业务模块,方便后续扩展。

项目功能

功能模块
具体能力
事项管理
行政区划维护、事项录入与绑定、事项与流程/接口/数据表的关联配置
数据源管理
支持 MySQL、Oracle、SQL Server、PostgreSQL 注册,在线连接测试,密码加密存储
动态表设计器
可视化配置字段、类型、索引、约束,后端自动生成 DDL 并创建表,同时自动生成 RESTful CRUD 接口
接口注册与调试
统一管理第三方 HTTP 接口,支持嵌套参数树配置(Header/Query/Body),内置 Groovy 脚本做请求前处理和响应后处理,提供在线调试面板
工作流设计器
基于 LogicFlow 的拖拽式画布,支持开始/结束、接口调用、数据库操作、脚本执行、条件分支、定时等待六类节点
流程执行引擎
上下文驱动的节点串联执行,支持 SpEL 条件判断、数据映射(输入/输出)、失败快照记录与单节点重试
内置调度引擎
基于 Spring 线程池的定时调度,支持 Cron 触发、事件触发、手动触发,集群下通过 Redis 分布式锁防重复
运行监控大盘
流程实例状态追踪、节点执行日志、上下文快照查看、异常告警提示

项目特点

配置代替编码:新增流程、接口、表结构都通过前端界面配置完成,不需要额外编写 Java 代码,降低了后续维护成本。
数据驱动流转:流程的推进由上下文数据状态决定,每个节点的输出自动写入上下文,下游节点按需取用,实现了松耦合的数据传递。
流程即文档:可视化的流程图本身就是最直观的文档,业务人员和开发人员看同一张图,沟通成本明显降低。
执行透明可观测:每个节点的输入输出都有记录,流程卡住时能快速定位到具体节点和上下文快照,支持人工介入或定点重试。
插件化扩展:基于 Java SPI 机制,支持运行时热加载插件,已内置 MinIO 文件推送和华为云 Token 认证插件,新增能力无需改动主工程。
安全兜底:JWT 无状态认证 + RBAC 权限控制,动态 SQL 全部采用 MyBatis 参数化,Groovy 脚本运行在受限沙箱中,敏感配置用 Jasypt 加密。

项目技术

层级
技术选型
用途说明
后端框架
Spring Boot 2.7.18
基础容器与自动配置
ORM 层
MyBatis-Plus 3.5.5 + dynamic-datasource 3.6.1
多数据源动态切换与 ORM 增强
连接池
Druid 1.2.21
数据库连接管理与监控
安全框架
Spring Security 5.7.x + JJWT 0.11.x
认证授权与 Token 管理
表达式引擎
Spring SpEL(内置)
流程条件分支判断
脚本引擎
Groovy 3.0.x
节点动态脚本执行,运行于沙箱环境
缓存与锁
Redis + Lettuce
分布式缓存、Token 黑名单、分布式锁
HTTP 客户端
自定义执行器工厂(支持重试、超时、熔断配置)
第三方接口调用
API 文档
Knife4j 4.3.0
接口文档在线查看与调试
前端框架
Vue 3.4.x + Vite 5.x
响应式界面与快速构建
UI 组件库
Element Plus 2.5.x
后台管理界面组件
流程画布
LogicFlow 1.2.x
工作流可视化拖拽设计
状态管理
Pinia 2.1.x
跨组件状态共享
代码编辑器
Monaco Editor
Groovy/SpEL 脚本在线编辑

项目代码

后端代码按模块拆分,riverflow-common  提供基础工具类和统一响应体,riverflow-api  定义实体、DTO 和枚举,riverflow-admin  是主服务模块,包含所有业务逻辑和引擎实现。
引擎部分的核心接口是NodeExecutor,六类节点各自实现自己的执行逻辑:
public  interface  NodeExecutor  {

       NodeResult  execute(Node node, FlowContext context);

}

上下文FlowContext  承载了整个流程运行时的数据,采用 Map 结构存储键值对,节点间通过输入输出映射与之交互:
public  class  FlowContext  {

       private  Map<string, object=""> data;

       private  Map<string, object=""> nodeOutputs;

       // 提供 get/set 以及路径表达式取值方法

}

前端工作流设计器基于 LogicFlow 封装,节点拖拽、连线、属性配置都在画布上完成,保存时将流程图结构序列化为 JSON 格式的定义数据提交给后端。
数据库表结构以riverflow_init.sql  初始化,包含事项表、数据源表、动态表元数据、接口注册表、流程定义表、流程实例表、节点执行记录表等核心表。

项目效果

流程设计器界面采用左侧节点工具栏、中间画布、右侧属性面板的三栏布局。从左侧拖拽节点到画布,连线后即可形成完整的流程链路。点击节点可在右侧配置输入映射、输出映射、条件表达式或脚本内容。
接口调试面板提供类似 Postman 的操作体验,填写 URL、选择 Method、配置 Headers 和 Body,点击发送即可看到响应结果,同时支持将调试通过的接口直接注册到接口目录。
动态表设计器以表单方式配置字段信息,点击"生成表"后端自动执行建表语句,并返回自动生成的 API 地址,可以直接在接口管理模块中引用。
监控大盘展示了所有运行中的流程实例,点击任意实例可以下钻查看每个节点的执行详情、输入输出数据快照和执行耗时。

项目源码

https://github.com/your-org/riverflow.git
克隆后按 README 指引初始化数据库、修改配置即可启动。

总结

解决政务数据协同中的流程黑盒、节点僵化和数据孤岛问题。通过可视化的工作流设计、可配置的节点执行器和上下文驱动的数据流转,让跨系统的数据交换变得透明且易于维护。它不是要取代现有的业务系统,而是在系统之间搭建一条看得见、摸得着、改得动的数据河道。
目前项目已在部分政务数据交换场景中落地应用,支撑了数十个事项的自动化流程运行。后续规划的方向包括:流程版本管理、更丰富的条件分支算子、与 RPA 工具的对接,以及流程执行效率的持续优化。

关键词

数据协同流程编排、可视化设计、政务数据、工作流引擎、Spring Boot、Vue 3、LogicFlow、SpEL、Groovy、多数据源、数据映射、分布式调度、插件化、可观测性
作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

END

Vue前后端分离的企业办公OA审批管理系统

备注【开源
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码

有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力

点分享
点收藏
点在看
点点赞
</string,></string,>

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码