审批加签、减签
这篇解决什么
办理人把当前任务临时插进其他审批人:向前加签先让别人批,向后加签自己批完再让别人批。读完能对上 before / after、scopeType、子任务,以及减签为什么只能删加签出来的任务。
默认端口 48080,管理端前缀 /admin-api。PC 开发页 http://127.0.0.1:5800。按钮在待办详情,节点操作里要打开「加签」。和 转办、委派、抄送 不是同一套接口。
示意图:加签不改流程图。运行时在当前用户任务下挂子任务,用 scopeType 记住方向。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 加签接口 | PUT /bpm/task/create-sign | ruoyi-office/yudao-module-bpm/.../controller/admin/task/BpmTaskController.java |
| 减签接口 | DELETE /bpm/task/delete-sign | 同上 |
| 子任务列表 | GET /bpm/task/list-by-parent-task-id | 同上 |
| 实现 | createSignTask / deleteSignTask | .../service/task/BpmTaskServiceImpl.java |
| 方向枚举 | before / after | yudao-module-bpm-api/.../enums/task/BpmTaskSignTypeEnum.java |
| 入参 | id、type、userIds、reason | .../vo/task/BpmTaskSignCreateReqVO.java |
| 权限 | bpm:task:update 或当前任务参与人 | @PreAuthorize |
| PC 按钮 | 待办详情「加签」 | ruoyi-office-vben/apps/web-antd/src/views/bpm/processInstance/detail/modules/operation-button.vue |
| 前端 API | signCreateTask / signDeleteTask | .../src/api/bpm/task/index.ts |
| 操作开关 | OperationButtonType.ADD_SIGN | .../simple-process-design/consts.ts |
| 移动端 | 加签 / 减签页 | ruoyi-office-uniapp/src/pages-bpm/processInstance/detail/add-sign/ |
加签不是改模型
加签人不会写进 simpleModel 或 BPMN。下次再发起同一流程,不会自动带上这次加的人。要固定多一级审批,去设计器加节点。
向前和向后
BpmTaskSignTypeEnum 只有两个值。同一任务不能同时存在两种方向。
示意图:当前办理人是 A。向前插入 C;向后追加 B。节点要等整串子任务走完才算完成。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
before | 当前任务 assignee 清空、owner 记下原办理人,状态改 WAIT | createSignTask |
after | 当前人继续批;子任务先写 owner,状态 WAIT,等父任务通过再激活 | 同上 |
scopeType | 记在运行时任务上,完成时用来收口父任务 | ACT_RU_TASK |
| 评论 | BpmCommentTypeEnum.ADD_SIGN | 意见时间线 |
向前:子任务都通过后 resolveTask,把 owner 还回 assignee,A 才能继续批。向后:A 通过后,才轮到加签人;加签人都通过,父任务才真正完成。
校验失败:
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 人选不存在 | TASK_SIGN_CREATE_USER_NOT_EXIST | ErrorCodeConstants |
| 方向冲突 | 已有向前就不能向后,反之亦然 | TASK_SIGN_CREATE_TYPE_ERROR |
| 人重复 | 同一节点现有 assignee / owner 不能再加 | TASK_SIGN_CREATE_USER_REPEAT |
减签:TASK_SIGN_DELETE_NO_PARENT,只能删加签生成的子任务。详情里的 children 就是这层子任务。

本系统截图:用车申请待办详情。底栏在通过 / 不通过旁边就是加签;点开后选处理人和向前 / 向后。
按钮从哪来
SIMPLE 节点默认打开加签,办理人、抄送人默认关掉。BPMN 用户任务在「操作按钮」里同样有这一项。运行时详情按节点配置决定显不显示,不是所有待办都能加签。
加签人审批不通过,根任务也会标不通过,意见写成「加签任务不通过」,避免前端把取消态藏掉后看不出原因。
配置与操作
管理员在节点「操作按钮」打开加签,SIMPLE 默认开、办理人/抄送人默认关。发布后,办理人在待办详情选处理人和向前 / 向后。
减签只能删加签出来的子任务。同一节点不能先向前再向后。运行中加人用这一套,不要改模型 approveMethod 充数。
开启见 流程功能设计。截图见上文待办详情。
