全部文档

工作流

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

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

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

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


1. 结论先说

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

  1. 平台模板 创建工作区内的 流程定义
  2. 发布应用桌面(可选);
  3. 管理 实例我的待办(含服务通知触达、移动端办理)。

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


2. 四层模型

用户表达存储
模板从模板创建 → IWAY / 空白 / 简易审批代码 workflow/templates.go
流程定义我的流程workflow_definitions
已发布应用应用桌面图标workspace_appsapp_kind=workflow
实例 / 待办一次检查、审批、整改workflow_instances / workflow_tasks

3. 用户路径

  1. 顶栏 功能菜单 → 工作流
  2. 从模板创建 → 填名称 → 可选「创建后发布到应用桌面」(默认不发布)
  3. 程序集仅在发布时选择:未分组(直接上桌面)、已有程序集,或新建程序集;可不发布,仅在工作流模块使用
  4. 我的流程打开 发起实例:按开始节点表单填写;若表单含 组织部门多选 字段则可勾选部门(来自人力资源);需要时选择 审批人/办理人(已绑定 Cadau 账号的员工)
  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)
GET/definitions/{defId}定义详情
PATCH/definitions/{defId}更新名称、说明、关联应用等
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_testall(默认)/ 0(仅正式)/ 1(仅测试)
GET/instances/{instanceId}实例详情(含 is_test
POST/instances/{instanceId}/cancel取消进行中实例(同时取消排队/执行中的智能体任务)
GET/tasks/mine我的待办(含代理期内代办他人的待办、业务职责可领取)
POST/tasks/{taskId}/complete完成待办
POST/tasks/{taskId}/reassign转交待办(body: to_user_id
GET/PUT/DELETE/assignee-delegate本人办理代理(请假/外出期间代收待办)

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

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

对话 tools(工作智能体):workflow_list / workflow_create / workflow_start


5. 实现对照

用户概念实现
模板internal/workflow/templates.go
定义 CRUD / 发布 / 归档definitions.golifecycle.gostore/workflow_definition.go
通用引擎runner.go(含 human.approve、办理人解析)
HR 部门/员工/岗位 BFFhandlers/workflows_hr.goplatformplugin.InvokeOperation
业务职责store/workspace_duty.gohandlers/workspace_duties.go;待办 assignee_role=duty:<key>
部门岗位编制HR lib/staffing.ts;办理人 type=hr_dept_positiondept_position_id 或 部门变量×岗位)
智能体判定办理人type=agent;同步执行智能体,结果可落用户/职责/编制/身份;理由变量 assignee_agent_reason
待办通知notify/workflow.gomodule.workflows
Web 工作流模块WorkflowPanel.tsx,路由 /workflows
移动端client/mobile/app/(app)/workflows/
合规运行时ComplianceWorkflowPanel.tsx + internal/compliance/

6. 后续(P3)

  • [ ] 待办到期提醒(定时扫描)
  • [ ] 多级审批链与工作区角色自动路由
  • [ ] 归档后硬删除 / 导出审计包