SpringBoot+Flowable 流程任务操作全景:通过拒绝转办委派加签退回抄送异同,与 operation-button 封装落地
SpringBootFlowable 流程任务操作全景通过拒绝转办委派加签退回抄送异同与 operation-button 封装落地演示地址http://ruoyioffice.com | 源码1·GitHubruoyi-office | 源码2·GitCoderuoyi-office | 源码3·Giteeruoyi-office | 微信17156169080备注「RuoYi Office」产品说「加个撤回」业务说「先转给财务再委派给外包」研发在详情页堆了十个按钮——然后发现财务节点不该有拒绝发起人节点文案必须是「提交」。任务操作不是按钮列表而是「设计时开关 运行时语义 端上组件」三层契约。本文按 RuoYi OfficeSpring Boot Flowable Vben UniApp把七类操作画清异同并拆开operation-button封装如何落地。▲ 全景七类操作对比卡 buttonsSetting 管道设计器 → BPMN 扩展 → 详情聚合 → 端上组件引言先分清「改结果」和「改责任」类别操作一句话改结果通过 / 拒绝推进或终止本节点乃至整单改责任转办 / 委派 / 加签 / 减签换谁办、临时插人、去掉加签人改路径退回跳到上游节点重办改知情抄送知会不挡待办上一篇《审批任务协作》深挖了加签方向、转办/委派 owner、退回moveActivity本文补齐全景对比 按钮组件封装——解决「模型里关了拒绝前端为什么还显示」这类工程问题。一、七类操作对比图产品 / 测试可用枚举与设计器一致OperationButtonType/BpmTaskOperationButtonTypeEnumAPPROVE1// 通过REJECT2// 拒绝TRANSFER3// 转办DELEGATE4// 委派ADD_SIGN5// 加签RETURN6// 退回COPY7// 抄送操作引擎侧核心动作责任链是否需要选人/节点典型误用通过approveTask完成当前 UserTask当前办理人完成本节点意见可配签名/下一审批人自选和「办理人节点」文案混用拒绝rejectTask按拒绝策略结束或驳回节点常导致实例 REJECT意见必填常见想「退回改单」却点了拒绝转办setAssignee换处理人彻底交给对方选用户想「代批后还要自己看」却用了转办委派delegateTask保留 owner代办完回到原人选用户和转办口头混称加签前后插子任务BEFORE/AFTER临时扩大审批圈选人 方向用加签代替模型会签退回moveActivityIdsToSingleActivityId回到指定历史节点选可退回节点 意见退到不可达节点 / 子流程乱跳抄送写抄送台账通常无 UserTask 完成知会不审批选被抄送人把抄送配成审批人卡流程另外还有运行时衍生能力不在七键枚举里但详情页常出现减签有加签子任务时可删未完成的子任务发起人取消 / 撤回 / 已办取回 / 重提属于实例级「反悔」态见《审批反悔三态》文┌──────── 改结果 ────────┐ │ 通过 ──► 下一节点/结束 │ │ 拒绝 ──► 结束或驳回策略 │ └────────────────────────┘ 当前任务 ──► ┌──────── 改责任 ────────┐ │ 转办assignee 换人 │ │ 委派代办后回 owner │ │ 加签插子任务再汇合 │ └────────────────────────┘ ┌──────── 改路径/知情 ───┐ │ 退回跳上游节点 │ │ 抄送台账知会 │ └────────────────────────┘▲ 待办是所有操作的统一入口点「办理」进详情后底栏按钮由节点 buttonsSetting 决定而不是写死「永远有七个键」二、设计时三种默认按钮包简单流程设计器里不是每个节点同一套开关// 审批人节点默认通过/拒绝/转办/委派/加签/退回 全开抄送可另配DEFAULT_BUTTON_SETTING// 办理人节点通过文案改「办理」拒绝/转办等默认关TRANSACTOR_DEFAULT_BUTTON_SETTING// 发起人节点通过文案改「提交」其它协作键关死START_USER_BUTTON_SETTING产品含义发起人节点点的是「提交/重新提交」不是「审批通过」。办理人节点偏事务闭环填还车里程、确认到货常不需要拒绝/加签。每个审批节点仍可改displayName如「同意付款」与enable。配置写入模型后编译进 FlowableUserTask扩展元素buttonsSettingid / displayName / enable。三、运行时parseButtonsSetting → todoTask// BpmTaskServiceImpl#getTodoTaskBpmnModelbpmnModel...;MapInteger,OperationButtonSettingbuttonsSettingBpmnModelUtils.parseButtonsSetting(bpmnModel,todoTask.getTaskDefinitionKey());returnbuildTodoTask(...).setButtonsSetting(buttonsSetting).setSignEnable(...).setReasonRequire(...);get-approval-detail聚合详情时带上todoTask前端只认这一份开关——PC 与 App 同源避免两端各写一套 if。写入侧SIMPLE 编译addButtonsSetting(node.getButtonsSetting(),userTask);// → UserTask extensionElements.buttonsSetting没有扩展元素时前端isShowButton默认true兼容旧定义有配置则以enable为准。四、PC 封装operation-button.vue做了什么路径apps/web-antd/src/views/bpm/processInstance/detail/modules/operation-button.vue职责可以概括成四件事4.1 显示门禁functionisShowButton(btnType:BpmTaskOperationButtonTypeEnum):boolean{if(runningTask?.buttonsSetting?.[btnType]){returnrunningTask.buttonsSetting[btnType].enable;}returntrue;}functiongetButtonDisplayName(btnType){returnrunningTask?.buttonsSetting?.[btnType]?.displayName??OPERATION_BUTTON_NAME.get(btnType);}4.2 交互容器统一用 Popover通过 / 拒绝 / 转办 / 委派 / 加签 / 退回 / 抄送 / 取消 / 减签每个键打开独立气泡表单意见、选人、选退回节点、签名板避免详情主区被 Modal 堆满。4.3 审批前钩子beforeApproval注入业务表单校验CUSTOM 单据先存再批通过后才调TaskApi.approveTask等接口。4.4 衍生能力签名signEnable意见必填reasonRequire下一节点自选审批人getNextApprovalNodes减签runningTask.children.length 0时出现▲ PC 待办进入详情后底栏即 operation-button主操作 协作操作均受节点配置约束五、移动端封装同一契约不同布局UniApppages-bpm/processInstance/detail/components/operation-button.vue维度PCUniApp布局底栏横向 Button Popover左图标最多 2 右主按钮 「更多」ActionSheet复杂表单气泡内完成拆到独立操作页意见/选人/退回节点开关来源buttonsSetting同源与反悔态详情壳另处理撤回/重提viewType门禁互斥渲染移动端右侧通常固定「拒绝 通过」槽位其余进左侧/更多——小屏优先主路径协作操作降级入口但不丢能力。六、落地清单新增一种操作按钮要改哪若业务要加第八种键示例仅财务节点「挂起」推荐按现有管道扩展而不是详情页写死前后端枚举各加一个 idOPERATION_BUTTON_NAME/ 设计器DEFAULT_BUTTON_SETTINGaddButtonsSetting/parseButtonsSetting已泛化 Map一般不用改结构BpmTaskService增加引擎语义实现 ControllerPCoperation-button增加 Popover APIUniApp 增加图标映射 操作页评论类型 / 消息模板补审计文案禁止只在某一个 Vue 里v-ifnodeName财务——换流程 key 就失效且 App 不同步。七、选型与配置建议给实施节点类型建议开启建议关闭普通审批通过、拒绝、退回按需转办全员加签易变成会签旁路财务付款通过改名、退回签名随意转办到外包账号办理/确认「办理」必要时退回拒绝、加签知会领导用抄送节点或办理中抄送配成审批人法务会审模型会签/或签运行时连环加签代替模型测试矩阵至少覆盖关拒绝后两端都不显示改 displayName 两端一致委派完成后待办回 owner退回后上游可编辑字段权限正确。八、端到端体验打开流程模型 SIMPLE 设计器点开某审批节点「操作按钮」面板关掉拒绝并改通过文案。发布定义发起一单用审批人进待办详情确认底栏变化。分别点转办与委派看时间线评论与后续待办归属差异。手机端同一账号打开确认「更多」里能力与 PC 对齐。在线演示http://ruoyioffice.com源码仓库GitHub | GitCode | Gitee常见问题FAQ转办和委派到底选哪个出差「这单以后你负责」→ 转办。请假「你先代看回来我还要确认」→ 委派。看责任要不要回到自己。为什么设计器关了加签详情还有减签减签依赖「当前是否已有加签子任务」不是buttonsSetting七键之一有子任务才露避免误操作。buttonsSetting 为空时按钮全开安全吗兼容旧流程。新项目建议节点显式落默认包并在关键流程关掉不需要的协作键。拒绝和退回可以合成一个按钮吗不建议。拒绝常走结束/驳回策略退回是路径回跳。合成后审计与业务状态机都会糊。和《任务协作》《反悔三态》《移动审批》怎么分工协作文讲引擎细节反悔文讲撤回/取回/重提移动文讲 viewType 壳本文讲操作全景 按钮组件管道。结语流程任务操作的工程正解不是在详情页堆按钮而是设计器声明 → BPMN 扩展沉淀 → 待办聚合下发 → PC/App 组件按契约渲染与调 API。RuoYi Office 用同一套buttonsSetting把七类操作和端上operation-button拴在一起实施才能按节点裁剪能力研发才能按管道扩展第八键。你们现在是「全公司统一七键」还是已经按财务/法务节点裁过按钮欢迎评论区交流。想要体验 RuoYi Office 的强大功能在线演示http://ruoyioffice.com/web/账号 admin / admin123源码仓库GitHub | GitCode | Gitee技术咨询添加微信17156169080备注「RuoYi Office」⭐如果觉得不错请给个 Star 支持一下

相关新闻

为什么懂行的人,一定要穿 PATRONI 启航者 SF2540BLK 安全鞋?

为什么懂行的人,一定要穿 PATRONI 启航者 SF2540BLK 安全鞋?

内行挑选安全鞋,从来不只看能不能防砸,而是结合工况需求、安全性、舒适度与售后保障综合考量,电工、厂区安检、电子加工厂、仓储运维从业者偏爱 PATRONI 启航者 SF2540BLK,正是因为它精准拿捏多行业作业痛点,做到安全实…

2026/10/13 13:07:48 阅读更多 →
Claude Code:轻量级AI编程工具的高效配置指南

Claude Code:轻量级AI编程工具的高效配置指南

1. 插件泛滥时代的开发困境最近在技术社区看到一个很有意思的现象:不少开发者都在疯狂收集各种VS Code插件,仿佛插件数量成了衡量开发效率的标尺。我的一个同事甚至炫耀他的插件列表超过了200个,结果每次启动编辑器都要等上半分钟。这让我开始…

2026/10/9 23:09:18 阅读更多 →
员工风险评估治理指南:风险维度与事实指标

员工风险评估治理指南:风险维度与事实指标

员工风险评估中的风险维度与事实指标,不能停留在风险清单或一次性会议纪要,而应形成包含责任、指标、阈值、抽检、分级、整改、验证和复盘的持续管理闭环。直接答案员工风险评估中的“风险维度与事实指标”应转化为可持续运行的管理闭环:明确…

2026/10/11 17:15:14 阅读更多 →

最新新闻

机械臂运动规划实战:MoveIt!从入门到真机避障

机械臂运动规划实战:MoveIt!从入门到真机避障

搞机器人开发的人,大约都有过这么一段:URDF 建好了,模型在 RViz 里能拖能转,但真想让机械臂末端按指令走到某个位姿,才发现事情没那么简单。要算逆解、要躲开周围障碍物、要考虑关节限位和奇异点,还得把算出…

2026/10/13 13:08:20 阅读更多 →
HspiceToolbox:MATLAB读取HSPICE波形与信号后处理指南

HspiceToolbox:MATLAB读取HSPICE波形与信号后处理指南

简介:面向模拟电路设计、高速信号完整性分析与科研验证场景,MATLAB Hspice Toolbox 将 Hspice 仿真能力引入 MATLAB 环境,帮助工程师直接在脚本中完成电路仿真、波形读取、数据分析与优化,省去文件转换和外部程序切换。压缩包共47…

2026/10/13 13:08:20 阅读更多 →
UE5.1 数据可视化实战:SimpleCharts v4.0 集成、调用与避坑指南

UE5.1 数据可视化实战:SimpleCharts v4.0 集成、调用与避坑指南

简介:面向Unreal Engine 5.1开发者的图表可视化插件资源,SimpleCharts v4.0 5.1以即插即用方式提供柱状图、雷达图、漏斗图等常用组件,适用于游戏实时数据监控、战绩统计与UI信息展示场景。压缩包共214个文件,主体为96个C头文件与…

2026/10/13 13:08:20 阅读更多 →
责任链模式详解:从原理到Java工程实践与避坑指南

责任链模式详解:从原理到Java工程实践与避坑指南

责任链这个模式,我最早接触的时候觉得它挺“绕”的。明明一个 if-else 就能搞定的事情,非要搞出一串对象传来传去,图什么呢?后来在项目里被几个真实的业务场景反复“教育”之后,才慢慢咂摸出味道来。这篇东西&#xff…

2026/10/13 13:08:20 阅读更多 →
SpringBoot+Vue在线考试系统前后端分离开发实战教程

SpringBoot+Vue在线考试系统前后端分离开发实战教程

这次我们来看一个非常适合毕设、课设以及简历项目储备的完整系统:SpringBoot Vue 在线考试与学习测评系统。项目是典型的前后端分离架构,包含用户管理、题库管理、在线考试、自动评分、成绩统计、学习测评等核心模块,覆盖了从后端接口到前端…

2026/10/13 13:08:20 阅读更多 →
SpringBoot+Vue3+MyBatis众筹平台实战:前后端分离架构设计解析

SpringBoot+Vue3+MyBatis众筹平台实战:前后端分离架构设计解析

1. 项目概述与整体架构思路 1.1 这个项目到底解决什么问题 先说个很多人容易忽略的点。市面上能跑的众筹系统其实不少,但绝大多数是单体应用,或者只用模板引擎渲染页面,前后端代码搅在一起,改一行前端样式要重启整个后端服务。更…

2026/10/13 13:07:20 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →