← 全部文档

工作流

从模板创建审批、检查或入职办理,待办推到该办的人,可选发布到应用桌面。

来源 docs/core-mechanisms/工作流.md

文档版本:2.5 状态:流程定义 + 发布可用 + 可选上应用桌面 + 检查/审批模板可用(Web + 移动端待办) 表述:面向产品、运营与对接。

关联:工作流与合规.md、工作区应用.md、服务通知.md、人力资源平台插件


1. 结论先说

Cadau 提供 工作流 顶栏模块(与智能体、技能中心同级),用于:

  1. 从 平台模板 创建工作区内的 流程定义,或在电脑上 用说明新建(把谁填、谁批写成几句话,生成未发布草稿,在流程设计里补红点后保存);
  2. 发布 表示流程可用:工作区成员从「已发布」点进去即可发起;业务挂钩、插件发起、调用其它流程也须已发布。不必放到应用桌面;
  3. 放到应用桌面 是另一步,只为桌面图标;
  4. 管理 实例 与 我的待办(含服务通知触达、移动端办理)。

推荐模板:IWAY 工厂审核、空白流程、简易审批。经典「现场合规检查」仍可用,建议迁移到通用引擎模板。


2. 四层模型

层用户表达存储
模板从模板创建 → IWAY / 空白 / 简易审批代码 workflow/templates.go
流程定义我的流程workflow_definitions
流程分组顺序我的流程里命名分组的上下顺序(工作区共享)workspace_workflow_group_order
已发布可供发起 / 挂钩workflow_definitions.released
已发布应用应用桌面图标(可选)workspace_apps(app_kind=workflow)
实例 / 待办一次检查、审批、整改workflow_instances / workflow_tasks

3. 用户路径

  1. 顶栏 功能菜单 → 工作流
  2. 从模板创建 → 填名称 → 可选「创建后发布」(默认不发布、不上桌面);或 我的流程 → 用说明新建(Web,对话框):写几句话生成审批类草稿,在 流程设计 里补红点后保存。手机上请到电脑操作。
  3. 程序集 / 分组 用于「我的流程」;放到应用桌面时再用同名程序集
  4. 工作区成员从 已发布 点流程即可发起;设计与试跑在 我的流程
  5. 发布 / 取消发布;需要桌面入口时再 放到应用桌面 / 从桌面拿下;归档;未发布可删除
  6. 一线人员从 已发布、应用 桌面(若已上桌面)、我的待办、我参与的(默认全部,可筛进行中 / 已完成)或 服务通知 进入办理(Web / 手机)

发起页文案与字段均来自 流程设计(开始表单节点的标题/说明/提交按钮文案与字段列表)。平台模板(如工厂审核、简易审批)只在创建时预填这些参数,不在运行时按模板写死界面。

组织数据约定:

  • 部门、员工 以 人力资源 系统级插件为准;不再新建「部门 / 厂区」工作区应用,发起侧也不再使用「厂区」概念。
  • 办理人解析仍为 Cadau user_id:界面从 HR 员工选择,写入其 mindlink_user_id。
  • 旧流程若仍带历史 departments_app_id,仅在人力资源不可用时回退读取。

4. HTTP API(/workspaces/{id}/workflows)

方法路径说明
GET/templates平台模板列表
GET/hr/org-units发起用:人力资源部门列表
GET/hr/employees发起/设计用:人力资源员工列表(含 mindlink_user_id)
GET/hr/positions设计用:岗位职级目录(部门岗位编制办理人)
GET/step-catalog流程设计器节点目录(核心 ∪ 已启用插件)
GET/compliance/surveys流程设置:默认检查方案列表(从工作流直接发起时用;从检查计划发起时以该套为准)
GET/POST/definitions流程定义列表 / 创建;列表可带 `?status=active\archived\all`(默认 active)
POST/nl-preview根据说明预览审批草稿(不写入)
POST/nl-create按说明新建未发布草稿(对话框「用说明新建」)
POST/definitions/{defId}/nl-generate空画布(或 replace=true 清空重来)按说明写入草稿
GET/definitions/{defId}定义详情
PATCH/definitions/{defId}更新名称、说明、关联应用等
DELETE/definitions/{defId}删除未发布流程(已发布须先取消发布;有进行中的办理须先取消)
POST/definitions/{defId}/release发布为可用(不上桌面)
POST/definitions/{defId}/unrelease取消发布(同时从桌面拿下)
POST/definitions/{defId}/publish放到应用桌面(同时视为已发布)
POST/definitions/{defId}/unpublish从应用桌面拿下(仍可保持已发布)
POST/definitions/{defId}/archive归档(软归档,默认列表隐藏;可恢复)
POST/definitions/{defId}/unarchive取消归档,恢复为可用
POST/definitions/{defId}/start发起实例;body 可选 is_test: true 标记为测试单(标题加「[测试]」前缀)。「我的流程」里试跑可不发布;「已发布」、插件 / 业务挂钩 / 调用其它流程须已发布
POST/definitions/{defId}/cleanup-test-instances硬删除该定义下可清理的测试实例(本人发起;管理员可清全部)及其待办/工作票/智能体任务
GET/instances?definition_id=&is_test=实例列表;is_test 为 all(默认)/ 0(仅正式)/ 1(仅测试)
GET/instances/{instanceId}实例详情(含 is_test)
POST/instances/{instanceId}/cancel取消进行中实例(同时取消排队/执行中的智能体任务)
GET/tasks/mine我的待办(含代理期内代办他人的待办、业务职责可领取)
GET`/mine?kind=todo\submitted\handled\involved`办理箱:待办 / 我提交的 / 我已办 / 我参与的(kind=involved 可带 `phase=all\active\ended`,缺省按进行中;跨流程;点开即可看单据;有单号时列表带出)
POST/tasks/{taskId}/complete完成待办
POST/tasks/{taskId}/reassign转交待办(body: to_user_id)
GET/PUT/DELETE/assignee-delegate本人办理代理(请假/外出期间代收待办)
GET/PUT/group-order「我的流程」命名分组顺序(工作区共享;body { group_keys: string[] })

工作区业务职责(协作 API,非 /workflows 前缀):GET/POST /workspaces/{id}/duties,以及 …/duties/{dutyId} 的 PATCH/DELETE、成员与 pack-grants。

合规专用:/frameworks、/compliance/knowledge-status 仍在。

对话 tools(工作智能体):workflow_list / workflow_create / workflow_generate_from_description / workflow_start。帮助智能体不代建流程;问「如何」时说明去电脑「用说明新建」或从模板创建。


5. 实现对照

用户概念实现
模板internal/workflow/templates.go
定义 CRUD / 发布 / 归档definitions.go、lifecycle.go、store/workflow_definition.go
通用引擎runner.go(含 human.approve、办理人解析、会签/或签)
HR 部门/员工/岗位 BFFhandlers/workflows_hr.go → platformplugin.InvokeOperation
业务职责store/workspace_duty.go、handlers/workspace_duties.go;待办 assignee_role=duty:<key>
部门岗位编制HR lib/staffing.ts;办理人 type=hr_dept_position(dept_position_id 或 部门变量×岗位)
指定多人会签/或签办理人 type=users + `config.approval_mode=allany;countersign.go`
智能体判定办理人type=agent;同步执行智能体,结果可落用户/职责/编制/身份;理由变量 assignee_agent_reason
待办通知notify/workflow.go → module.workflows
Web 工作流模块WorkflowPanel.tsx,路由 /workflows
流程分组顺序store/workflow_group_order.go;GET/PUT …/workflows/group-order
移动端client/mobile/app/(app)/workflows/
合规运行时ComplianceWorkflowPanel.tsx + internal/compliance/

6. 后续(P3)

  • [ ] 待办到期提醒(定时扫描)
  • [x] 会签 / 或签(设计时固定名单,并行发给每人;会签全部通过才过、一人驳回即停)
  • [ ] 多级审批链与工作区角色自动路由
  • [ ] 归档后硬删除 / 导出审计包