Documentation
¶
Overview ¶
Package api 定义流程引擎的公共类型与服务接口。
Package api — workflow.go 定义 workflow 二次封装的门面接口与线上协议类型。
本文件对位 Java 侧工作流业务 API:StartProcessInstanceVo / CompleteTaskVo / NextActivityRequest / R 等协议类型与 Dubbo 门面 ProcessesService 的方法分组,全部为嵌入业务系统直接依赖的公共契约。 字段命名与 005 接口清单 §4、006 流程变量与意见类型约定保持逐字兼容。
Index ¶
- Variables
- type ActivityInstance
- type AddSignRequest
- type AsyncVariableRequest
- type Attachment
- type AuditEvent
- type BackTaskVo
- type BaseProcessVo
- type Batch
- type BatchPart
- type Comment
- type CompleteTaskRequest
- type CompleteTaskVo
- type CreateModelRequest
- type CreateTaskRequest
- type DMNEngine
- type DMNService
- type DecisionDefinition
- type DecisionTableDefinition
- type DecisionTableInput
- type DecisionTableOutput
- type DelSignRequest
- type Deployment
- type DeploymentRequest
- type Engine
- type Error
- type EventSubscription
- type ExecutionInfo
- type ExecutionListenerHook
- type ExecutionListenerRegistrar
- type FormData
- type FormDefinition
- type FormProperty
- type FormService
- type FormValue
- type Group
- type HistoricActivityInstance
- type HistoricActivityInstanceFilter
- type HistoricDetail
- type HistoricProcessInstance
- type HistoricProcessInstanceFilter
- type HistoricTaskInstance
- type HistoricTaskInstanceFilter
- type HistoricTaskLog
- type HistoricVariableInstance
- type HistoricVariableInstanceFilter
- type HistoryService
- type HookControl
- type IdentityLink
- type IdentityService
- type InjectRequest
- type InsertUserTaskRequest
- type JobInfo
- type ListenerControl
- type ListenerExecution
- type ManagementService
- type MigrationRequest
- type Model
- type ModelUpdate
- type NextActivityRequest
- type NextActivityVo
- type Page
- type PageQuery
- type ProcessDefinition
- type ProcessInstance
- type ProcessInstanceFilter
- type ProcessInstanceUpdate
- type R
- type RepositoryService
- type Role
- type RuntimeService
- type StartProcessInstanceVo
- type StartRequest
- type TableInfo
- type TableMetaData
- type Task
- type TaskEvent
- type TaskFilter
- type TaskHook
- type TaskListener
- type TaskService
- type TaskUpdate
- type User
- type Variable
- type VariableConflictError
- type VariableInstance
- type VariableInstanceFilter
- type WorkflowExtService
- type WorkflowFacade
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNotFound 表示资源不存在。 ErrNotFound = errors.New("资源不存在") // ErrConflict 表示并发冲突或状态冲突。 ErrConflict = errors.New("状态冲突") // ErrBadRequest 表示请求参数非法。 ErrBadRequest = errors.New("请求参数非法") ErrUnauthorized = errors.New("未认证") // ErrTooManyRequests 表示请求过多。 ErrTooManyRequests = errors.New("请求过多") // ErrForbidden 表示无权限。 ErrForbidden = errors.New("无权限") // ErrEngineClosed 表示引擎已关闭。 ErrEngineClosed = errors.New("引擎已关闭") )
公共错误哨兵,调用方可用 errors.Is 判断错误类别。
Functions ¶
This section is empty.
Types ¶
type ActivityInstance ¶
type ActivityInstance struct {
ID string `json:"id"` // 活动实例 ID
ActivityID string `json:"activityId"` // 活动 ID
ActivityName string `json:"activityName,omitempty"` // 活动名称
ActivityType string `json:"activityType,omitempty"` // 活动类型
ProcessDefinitionID string `json:"processDefinitionId,omitempty"` // 流程定义 ID
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
TaskID string `json:"taskId,omitempty"` // 任务 ID
Assignee string `json:"assignee,omitempty"` // 处理人
TenantID string `json:"tenantId,omitempty"` // 租户
StartTime *time.Time `json:"startTime,omitempty"` // 开始时间
EndTime *time.Time `json:"endTime,omitempty"` // 结束时间
DurationInMillis *int64 `json:"durationInMillis,omitempty"` // 持续时间
}
ActivityInstance 是运行中活动实例。
type AddSignRequest ¶
type AddSignRequest struct {
TaskID string `json:"taskId"` // 当前任务 Id(必填;首层加签时改造为父任务)
Operator string `json:"operator"` // 操作人(加签人身份 Id,必填)
Assignees []string `json:"assignees"` // 被加签人身份 Id 列表(必填,至少一人)
ScopeType string `json:"scopeType,omitempty"` // 作用域:后加签 "after" / 前加签 "before"(必填)
Message string `json:"message,omitempty"` // 加签意见(域服务意见留痕约束)
}
AddSignRequest 是前后加签请求。 对应 Java AddSignTaskVo(taskId/userCode/signPersoneds/flag/message)。
type AsyncVariableRequest ¶
type AsyncVariableRequest struct {
ProcessInstanceID string // 实例标识,变量写入实例根作用域并忽略变量 scope
ExecutionID string // 执行标识,支持统一的 local 或 global 作用域
Variables []Variable // 同一作业原子更新的变量
CreateOnly bool // 排队前拒绝已存在的变量,对应集合 POST
RequireExisting bool // 排队前要求变量存在,对应单变量 PUT
}
AsyncVariableRequest 是事务内持久排队的变量更新请求;实例和执行标识必须二选一。
type Attachment ¶
type Attachment struct {
ID string `json:"id"` // 附件 ID
TaskID string `json:"taskId,omitempty"` // 任务 ID
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
Name string `json:"name"` // 名称
Description string `json:"description,omitempty"` // 描述
Type string `json:"type,omitempty"` // 类型
URL string `json:"url,omitempty"` // URL
ContentURL string `json:"contentUrl,omitempty"` // 内容下载地址
Time time.Time `json:"time"` // 创建时间
}
Attachment 是任务附件。
type AuditEvent ¶
type AuditEvent struct {
ID int64 `json:"id"` // 事件 ID
Time time.Time `json:"time"` // 时间
UserID string `json:"userId,omitempty"` // 用户
TenantID string `json:"tenantId,omitempty"` // 租户
Method string `json:"method"` // HTTP 方法
Path string `json:"path"` // 路径
Status int `json:"status"` // 状态码
DurationMillis int64 `json:"durationMillis"` // 耗时
RemoteAddr string `json:"remoteAddr,omitempty"` // 客户端地址
}
AuditEvent 是 HTTP 审计事件。
type BackTaskVo ¶
type BackTaskVo struct {
TaskID string `json:"taskId"` // 当前任务 ID(必填)
TargetActivityID string `json:"targetActivityId,omitempty"` // 退回目标节点 ID(空时由服务端计算可退节点)
UserCode string `json:"userCode"` // 操作人身份 Id(必填)
Message string `json:"message,omitempty"` // 退回意见
Type string `json:"type,omitempty"` // 意见类型,退回场景通常为 TH
}
BackTaskVo 是任务退回请求。 对应 Java BackTaskVo.java(退回入参:taskId、targetActivityId 等)。
type BaseProcessVo ¶
type BaseProcessVo struct {
TaskID string `json:"taskId"` // 任务 ID(必填)
UserCode string `json:"userCode"` // 操作人身份 Id(必填)
Message string `json:"message"` // 审批意见内容(必填)
ProcessInstanceID string `json:"processInstanceId"` // 流程实例 ID(必填)
Type string `json:"type"` // 意见类型 CommentTypeEnum 代码(必填,如 SP/TH/CH)
}
BaseProcessVo 是流程办结类操作的基础请求。 对应 Java BaseProcessVo.java,Type 取意见类型常量(见 internal/workflow 的 CommentType* 常量)。
type Batch ¶
type Batch struct {
ID string `json:"id"` // 批次 ID
Type string `json:"type"` // 批次类型
Total int `json:"total"` // 分片总数
Completed int `json:"completed"` // 已完成分片数
Status string `json:"status"` // 批次状态
StartTime time.Time `json:"startTime"` // 开始时间
EndTime *time.Time `json:"endTime,omitempty"` // 结束时间
TenantID string `json:"tenantId,omitempty"` // 租户
Document []byte `json:"document,omitempty"` // 批次文档,旧快照可为空
}
Batch 是批处理作业。 对应 Flowable 的 ACT_RU_BATCH 表,但仅保存内存快照所需的字段。
type BatchPart ¶
type BatchPart struct {
ID string `json:"id"` // 分片 ID
BatchID string `json:"batchId"` // 所属批次 ID
Type string `json:"type"` // 分片类型
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
Status string `json:"status"` // 分片状态
StartTime time.Time `json:"startTime"` // 开始时间
EndTime *time.Time `json:"endTime,omitempty"` // 结束时间
ErrorMessage string `json:"errorMessage,omitempty"` // 失败原因
Document []byte `json:"document,omitempty"` // 分片文档,旧快照可为空
}
BatchPart 是批处理分片。
type Comment ¶
type Comment struct {
ID string `json:"id"` // 评论 ID
TaskID string `json:"taskId,omitempty"` // 任务 ID
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
Type string `json:"type"` // 评论类型
Action string `json:"action,omitempty"` // 动作,事件型记录使用
Message string `json:"message"` // 内容
FullMessage string `json:"fullMessage,omitempty"` // 完整内容
UserID string `json:"userId,omitempty"` // 作者
Time time.Time `json:"time"` // 创建时间
}
Comment 是任务评论。
type CompleteTaskRequest ¶
type CompleteTaskRequest struct {
UserID string // 操作人
Variables []Variable // 流程变量
LocalVariables []Variable // 任务局部变量
TransientVariables []Variable // 瞬态变量,仅完成命令内可见
}
CompleteTaskRequest 是完成任务请求。
type CompleteTaskVo ¶
type CompleteTaskVo struct {
BaseProcessVo // 继承基础字段
Variables map[string]any `json:"variables,omitempty"` // 流程变量
TargetActivityID string `json:"targetActivityId,omitempty"` // 直送目标节点 ID(流程结束时为保留代号 end)
CountersignResult int `json:"countersignResult,omitempty"` // 会签结论:0 否决 / 1 通过
// CountersignResultSet 标记 countersignResult 是否由调用方显式设置。
// Java CompleteTaskVo 该字段为 Integer,null 时抛"未知会签任务执行结果";
// Go 裸 int 无法区分"未传"与"显式 0(否决)",016 号审计引入本标记补齐语义:
// 未设置时权重会签节点按 Java 抛 WORKFLOW-2010,而非静默记为否决并扣 rejectWeight。
CountersignResultSet bool `json:"-"`
SenderStepCode string `json:"senderStepCode,omitempty"` // 发送方步骤代号
SenderStepName string `json:"senderStepName,omitempty"` // 发送方步骤名称
Request *NextActivityRequest `json:"request,omitempty"` // 下一步预存请求(目标为 end 时可省略)
}
CompleteTaskVo 是办结任务请求,继承 BaseProcessVo。 对应 Java CompleteTaskVo.java;TargetActivityID 非空时语义为直送目标节点。
func (*CompleteTaskVo) UnmarshalJSON ¶
func (v *CompleteTaskVo) UnmarshalJSON(data []byte) error
UnmarshalJSON 解析办结请求并标记 countersignResult 是否显式出现。 与 Java Integer 为 null 可区分的语义对齐:JSON 中缺省或显式 null 时 CountersignResultSet 为 false,服务层据此抛出"未知会签任务执行结果"。 @param data JSON 原始字节 @return 解析错误
type CreateModelRequest ¶
type CreateModelRequest struct {
Name string // 名称
Key string // Key
Category string // 分类
MetaInfo string // 元信息
TenantID string // 租户
Version int // 版本,0 使用默认值
}
CreateModelRequest 是模型创建请求。
type CreateTaskRequest ¶
type CreateTaskRequest struct {
Name string // 名称
Description string // 描述
Assignee string // 处理人
Owner string // 所有者
Priority int // 优先级,0 使用默认值
DueDate *time.Time // 到期时间
Category string // 分类
FormKey string // 表单 Key
ParentTaskID string // 父任务 ID
TenantID string // 租户
}
CreateTaskRequest 是独立任务创建请求。
type DMNEngine ¶
type DMNEngine interface {
Engine // 聚合全部基础服务
// DMNService 返回 DMN 服务。
// @return DMN 服务
DMNService() DMNService
}
DMNEngine 是可选 DMN 能力引擎接口。 独立定义该接口可避免在 Engine 门面中强制增加 DMN 依赖,调用方可用类型断言探测能力。
type DMNService ¶
type DMNService interface {
// ListDecisionDefinitions 返回流程定义所在部署的决策定义。
// @param ctx 上下文
// @param processDefinitionID 流程定义 ID
// @return 决策定义列表,按资源名与决策 ID 排序
// @return 查询错误
ListDecisionDefinitions(ctx context.Context, processDefinitionID string) ([]DecisionDefinition, error)
// ListDecisionTables 返回流程定义所在部署的决策表定义。
// @param ctx 上下文
// @param processDefinitionID 流程定义 ID
// @return 决策表定义列表,按资源名与决策 ID 排序
// @return 查询错误
ListDecisionTables(ctx context.Context, processDefinitionID string) ([]DecisionTableDefinition, error)
}
DMNService 提供部署内 DMN 决策定义与决策表元数据查询。 该接口只读取元数据,不执行决策表达式求值。
type DecisionDefinition ¶
type DecisionDefinition struct {
ID string `json:"id"` // 决策定义 ID,取 decision 的 id
Key string `json:"key"` // 决策 Key,取 decision 的 id
Name string `json:"name"` // 决策名称,取 decision 的 name
DeploymentID string `json:"deploymentId"` // 所在部署 ID
ResourceName string `json:"resourceName"` // 部署资源名
TenantID string `json:"tenantId"` // 租户,沿用流程定义
Version int `json:"version,omitempty"` // 版本,沿用所查询流程定义的版本
}
DecisionDefinition 是部署内 .dmn 资源解析出的决策定义元数据。
type DecisionTableDefinition ¶
type DecisionTableDefinition struct {
ID string `json:"id"` // 决策表 ID,取 decisionTable 的 id,缺失时回退 decision 的 id
Key string `json:"key"` // 决策 Key,取 decision 的 id
Name string `json:"name"` // 决策名称,取 decision 的 name
DeploymentID string `json:"deploymentId"` // 所在部署 ID
ResourceName string `json:"resourceName"` // 部署资源名
TenantID string `json:"tenantId"` // 租户,沿用流程定义
HitPolicy string `json:"hitPolicy"` // 命中策略,取 decisionTable 的 hitPolicy
Inputs []DecisionTableInput `json:"inputs"` // 输入列,按文档顺序
Outputs []DecisionTableOutput `json:"outputs"` // 输出列,按文档顺序
RuleCount int `json:"ruleCount"` // 规则数量
}
DecisionTableDefinition 是部署内决策表元数据,不包含表达式求值结果。
type DecisionTableInput ¶
type DecisionTableInput struct {
ID string `json:"id"` // 输入 ID
Label string `json:"label,omitempty"` // 输入显示名
Expression string `json:"expression,omitempty"` // 输入表达式文本
}
DecisionTableInput 是决策表输入列元数据。
type DecisionTableOutput ¶
type DecisionTableOutput struct {
ID string `json:"id"` // 输出 ID
Name string `json:"name,omitempty"` // 输出名称
Type string `json:"type,omitempty"` // 输出类型,兼容 type 与 typeRef 属性
}
DecisionTableOutput 是决策表输出列元数据。
type DelSignRequest ¶
type DelSignRequest struct {
ParentTaskID string `json:"parentTaskId"` // 父任务 Id(必填)
SubTaskID string `json:"subTaskId"` // 待减掉的子任务 Id(必填)
Operator string `json:"operator"` // 操作人身份 Id(必填)
Message string `json:"message,omitempty"` // 减签意见,空时使用默认文案
}
DelSignRequest 是减签请求(对位任务级减签语义;Java 无任务级减签对位源码, 行为按加签的逆操作定义:删子任务 + 意见 + 剩余为空时恢复父任务)。
type Deployment ¶
type Deployment struct {
ID string `json:"id"` // 部署 ID
Name string `json:"name"` // 部署名称
TenantID string `json:"tenantId"` // 租户
DeployTime time.Time `json:"deployTime"` // 部署时间
}
Deployment 是部署信息。
type DeploymentRequest ¶
type DeploymentRequest struct {
Name string // 部署名称
TenantID string // 租户
Resources map[string][]byte // 资源名到内容
}
DeploymentRequest 是部署请求。
type Engine ¶
type Engine interface {
// RepositoryService 返回仓库服务。
// @return 仓库服务
RepositoryService() RepositoryService
// RuntimeService 返回运行时服务。
// @return 运行时服务
RuntimeService() RuntimeService
// TaskService 返回任务服务。
// @return 任务服务
TaskService() TaskService
// HistoryService 返回历史服务。
// @return 历史服务
HistoryService() HistoryService
// ManagementService 返回管理服务。
// @return 管理服务
ManagementService() ManagementService
// IdentityService 返回身份服务。
// @return 身份服务
IdentityService() IdentityService
// FormService 返回表单服务。
// @return 表单服务
FormService() FormService
// WorkflowExtService 返回 workflow 二次封装扩展服务(任意退回/撤回/直送/重置/软终止/重激活)。
// @return 扩展服务
WorkflowExtService() WorkflowExtService
// AddTaskCreatedHook 注册任务创建全局钩子(TASK_CREATED),按注册顺序在创建任务的命令内同步执行。
// @param hook 钩子函数
AddTaskCreatedHook(hook TaskHook)
// AddTaskCompletedHook 注册任务完成全局钩子(TASK_COMPLETED),按注册顺序在完成任务的命令内同步执行。
// @param hook 钩子函数
AddTaskCompletedHook(hook TaskHook)
// Close 关闭引擎。
// @param ctx 关闭上下文
// @return 关闭错误
Close(ctx context.Context) error
}
Engine 是流程引擎门面,聚合全部服务。
type Error ¶
type Error struct {
Code string // 稳定错误码,如 ENGINE-0404
Message string // 中文说明
Cause error // 底层错误,可为空
}
Error 是引擎统一错误类型,携带稳定错误码与底层原因。
type EventSubscription ¶
type EventSubscription struct {
ID string `json:"id"` // 订阅 ID
URL string `json:"url,omitempty"` // 资源地址
EventType string `json:"eventType"` // 事件类型
EventName string `json:"eventName"` // 事件名
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
ActivityID string `json:"activityId,omitempty"` // 活动 ID
ProcessDefinitionID string `json:"processDefinitionId,omitempty"` // 流程定义 ID
TenantID string `json:"tenantId,omitempty"` // 租户
Created time.Time `json:"created"` // 创建时间
}
EventSubscription 是消息/信号事件订阅。
type ExecutionInfo ¶
type ExecutionInfo struct {
ProcessDefinitionKey string `json:"processDefinitionKey"` // 流程定义 Key
ID string `json:"id"` // 执行 ID
ProcessInstanceID string `json:"processInstanceId"` // 流程实例 ID
ProcessDefinitionID string `json:"processDefinitionId"` // 流程定义 ID
ParentID string `json:"parentId,omitempty"` // 父执行 ID
SuperExecutionID string `json:"superExecutionId,omitempty"` // 父调用活动执行 ID
TenantID string `json:"tenantId,omitempty"` // 租户标识
Suspended bool `json:"suspended,omitempty"` // 是否挂起
ActivityID string `json:"activityId,omitempty"` // 当前活动 ID
Active bool `json:"active"` // 是否活跃
Ended bool `json:"ended"` // 是否结束
Waiting bool `json:"waiting"` // 是否等待
}
ExecutionInfo 是执行实例信息。
type ExecutionListenerHook ¶
type ExecutionListenerHook func(ctx context.Context, execution ListenerExecution, ctl ListenerControl) error
ExecutionListenerHook 是扩展执行监听器(控制接口版)。 在引擎命令事务内同步执行,返回错误使整个命令回滚(与 BPMN 执行监听器语义一致)。 @param ctx 命令上下文(与所在引擎命令共用,命令失败会整体回滚) @param execution 执行上下文快照 @param ctl 监听器控制(命令内变量改写 + 命令后延迟动作) @return 错误(非空则当前引擎命令失败并整体回滚)
type ExecutionListenerRegistrar ¶
type ExecutionListenerRegistrar interface {
// RegisterExecutionListenerHook 注册扩展执行监听器。
// @param name 监听器名(BPMN class/delegateExpression 注册名)
// @param hook 监听器钩子
RegisterExecutionListenerHook(name string, hook ExecutionListenerHook)
}
ExecutionListenerRegistrar 是支持注册扩展执行监听器的引擎能力(由 *engine.Engine 实现)。 workflow 门面按 BPMN flowable:executionListener 的 class 名分发注册。
type FormData ¶
type FormData struct {
FormKey string `json:"formKey,omitempty"` // 表单 Key
Properties []FormProperty `json:"formProperties"` // 字段列表
}
FormData 是表单数据。
type FormDefinition ¶
type FormDefinition struct {
Key string `json:"key"` // 表单 Key
Name string `json:"name"` // 表单名称
DeploymentID string `json:"deploymentId"` // 所在部署 ID
ResourceName string `json:"resourceName"` // 部署资源名
TenantID string `json:"tenantId"` // 租户
Fields []FormProperty `json:"fields"` // 字段列表
}
FormDefinition 是部署内 .form 资源解析出的表单定义。
type FormProperty ¶
type FormProperty struct {
ID string `json:"id"` // 字段 ID
Name string `json:"name,omitempty"` // 显示名
Type string `json:"type,omitempty"` // 类型
Required bool `json:"required"` // 是否必填
Readable bool `json:"readable"` // 是否可读
Writable bool `json:"writable"` // 是否可写
Value any `json:"value,omitempty"` // 当前值
EnumValues []FormValue `json:"enumValues,omitempty"` // 枚举值
}
FormProperty 是表单字段。
type FormService ¶
type FormService interface {
// GetStartFormData 返回流程启动表单。
// @param ctx 上下文
// @param processDefinitionID 流程定义 ID
// @return 表单数据
// @return 查询错误
GetStartFormData(ctx context.Context, processDefinitionID string) (FormData, error)
// GetTaskFormData 返回任务表单。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 表单数据
// @return 查询错误
GetTaskFormData(ctx context.Context, taskID string) (FormData, error)
// ListFormDefinitions 返回流程定义所在部署的表单定义。
// @param ctx 上下文
// @param processDefinitionID 流程定义 ID
// @return 表单定义列表,按资源名排序
// @return 查询错误
ListFormDefinitions(ctx context.Context, processDefinitionID string) ([]FormDefinition, error)
// SubmitTaskFormData 提交任务表单并完成任务。
// @param ctx 上下文
// @param taskID 任务 ID
// @param values 字段值
// @return 提交错误
SubmitTaskFormData(ctx context.Context, taskID string, values map[string]any) error
}
FormService 提供启动表单与任务表单。
type Group ¶
type Group struct {
ID string `json:"id"` // 组 ID
Name string `json:"name,omitempty"` // 组名
Type string `json:"type,omitempty"` // 组类型
TenantID string `json:"tenantId,omitempty"` // 租户
}
Group 是身份组。
type HistoricActivityInstance ¶
type HistoricActivityInstance struct {
ID string `json:"id"` // 历史记录 ID
Revision int `json:"revision,omitempty"` // 乐观锁版本
ProcessDefinitionID string `json:"processDefinitionId,omitempty"` // 流程定义 ID
ProcessInstanceID string `json:"processInstanceId"` // 流程实例 ID
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
ActivityID string `json:"activityId"` // 活动 ID
TaskID string `json:"taskId,omitempty"` // 对应用户任务 ID
CallProcessInstanceID string `json:"callProcessInstanceId,omitempty"` // 调用活动实例 ID
ActivityName string `json:"activityName"` // 活动名称
ActivityType string `json:"activityType"` // 活动类型
Assignee string `json:"assignee,omitempty"` // 处理人
CompletedBy string `json:"completedBy,omitempty"` // 完成人
StartTime time.Time `json:"startTime"` // 开始时间
EndTime *time.Time `json:"endTime,omitempty"` // 结束时间
TransactionOrder int `json:"transactionOrder,omitempty"` // 事务顺序
DurationMillis int64 `json:"durationMillis"` // 持续时间毫秒
DeleteReason string `json:"deleteReason,omitempty"` // 删除原因
TenantID string `json:"tenantId,omitempty"` // 租户
}
HistoricActivityInstance 是历史活动实例。 字段与 ACT_HI_ACTINST 列一一对应,转换 Java 存量数据时不能因查询层未使用而丢失原始列。
type HistoricActivityInstanceFilter ¶
type HistoricActivityInstanceFilter struct {
ID string // 历史活动 ID
ProcessInstanceID string // 流程实例 ID
ProcessDefinitionID string // 流程定义 ID
ProcessDefinitionKey string // 流程定义 Key
ActivityID string // 活动 ID
ActivityName string // 活动名称
ActivityType string // 活动类型
Assignee string // 处理人
TenantID string // 租户,空表示不过滤
StartedAfter *time.Time // 开始时间下界,含边界
StartedBefore *time.Time // 开始时间上界,含边界
FinishedAfter *time.Time // 结束时间下界,含边界
FinishedBefore *time.Time // 结束时间上界,含边界
Finished *bool // 是否已结束,空表示不过滤
Start int // 偏移量
Size int // 每页数量
}
HistoricActivityInstanceFilter 是历史活动的查询条件。 仅包含可下推 SQL 的字段;模糊匹配等仍由调用方在内存过滤。
type HistoricDetail ¶
type HistoricDetail struct {
ID string `json:"id"` // 明细 ID
Type string `json:"type"` // 类型
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
TaskID string `json:"taskId,omitempty"` // 任务 ID
ActivityID string `json:"activityId,omitempty"` // 活动 ID
Name string `json:"name"` // 变量名
Revision int `json:"revision"` // 变量修订号
VariableType string `json:"variableType,omitempty"` // 变量类型
Value any `json:"value,omitempty"` // 变量值
Time time.Time `json:"time"` // 记录时间
}
HistoricDetail 是历史变量明细。
type HistoricProcessInstance ¶
type HistoricProcessInstance struct {
ID string `json:"id"` // 实例 ID
Revision int `json:"revision,omitempty"` // 乐观锁版本
ProcessDefinitionID string `json:"processDefinitionId"` // 流程定义 ID
ProcessDefinitionKey string `json:"processDefinitionKey"` // 流程定义 Key
BusinessKey string `json:"businessKey"` // 业务键
Name string `json:"name"` // 名称
TenantID string `json:"tenantId"` // 租户
StartTime time.Time `json:"startTime"` // 开始时间
EndTime *time.Time `json:"endTime,omitempty"` // 结束时间
DurationMillis int64 `json:"durationMillis,omitempty"` // 持续时间毫秒
StartUserID string `json:"startUserId,omitempty"` // 发起人
StartActivityID string `json:"startActivityId,omitempty"` // 开始活动
EndActivityID string `json:"endActivityId,omitempty"` // 结束活动
SuperProcessInstanceID string `json:"superProcessInstanceId,omitempty"` // 父流程实例
CallbackID string `json:"callbackId,omitempty"` // 回调标识
CallbackType string `json:"callbackType,omitempty"` // 回调类型
ReferenceID string `json:"referenceId,omitempty"` // 外部引用
ReferenceType string `json:"referenceType,omitempty"` // 外部引用类型
PropagatedStageInstanceID string `json:"propagatedStageInstanceId,omitempty"` // 传播阶段实例
BusinessStatus string `json:"businessStatus,omitempty"` // 业务状态
DueDate *time.Time `json:"dueDate,omitempty"` // 到期时间
ClaimTime *time.Time `json:"claimTime,omitempty"` // 签收时间
ClaimedBy string `json:"claimedBy,omitempty"` // 签收人
EndUserID string `json:"endUserId,omitempty"` // 结束操作人
State string `json:"state,omitempty"` // 实例状态
DeleteReason string `json:"deleteReason,omitempty"` // 删除原因
Ended bool `json:"ended"` // 是否结束
}
HistoricProcessInstance 是历史流程实例。
type HistoricProcessInstanceFilter ¶
type HistoricProcessInstanceFilter struct {
ID string // 流程实例 ID
ProcessDefinitionID string // 流程定义 ID
ProcessDefinitionKey string // 流程定义 Key
BusinessKey string // 业务键
TenantID string // 租户,空表示不过滤
StartedAfter *time.Time // 开始时间下界,含边界
StartedBefore *time.Time // 开始时间上界,含边界
FinishedAfter *time.Time // 结束时间下界,含边界
FinishedBefore *time.Time // 结束时间上界,含边界
Finished *bool // 是否已结束,空表示不过滤
Start int // 偏移量
Size int // 每页数量
}
HistoricProcessInstanceFilter 是历史流程实例的查询条件。 仅包含可下推 SQL 的字段;名称、模糊匹配、键集合与删除原因等仍由调用方在内存过滤。
type HistoricTaskInstance ¶
type HistoricTaskInstance struct {
ID string `json:"id"` // 任务 ID
Revision int `json:"revision,omitempty"` // 乐观锁版本
ProcessDefinitionID string `json:"processDefinitionId,omitempty"` // 流程定义 ID
TaskDefinitionID string `json:"taskDefinitionId,omitempty"` // 任务定义 ID
Name string `json:"name"` // 名称
ProcessInstanceID string `json:"processInstanceId"` // 流程实例 ID
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
ScopeID string `json:"scopeId,omitempty"` // 作用域 ID
SubScopeID string `json:"subScopeId,omitempty"` // 子作用域 ID
ScopeType string `json:"scopeType,omitempty"` // 作用域类型
ScopeDefinitionID string `json:"scopeDefinitionId,omitempty"` // 作用域定义 ID
PropagatedStageInstanceID string `json:"propagatedStageInstanceId,omitempty"` // 传播阶段实例 ID
State string `json:"state,omitempty"` // 任务状态
TaskDefinitionKey string `json:"taskDefinitionKey"` // 任务定义 Key
ParentTaskID string `json:"parentTaskId,omitempty"` // 父任务 ID
Description string `json:"description,omitempty"` // 描述
Owner string `json:"owner,omitempty"` // 所有者
Assignee string `json:"assignee,omitempty"` // 处理人
FormKey string `json:"formKey,omitempty"` // 表单 Key
TenantID string `json:"tenantId,omitempty"` // 租户
DeleteReason string `json:"deleteReason,omitempty"` // 删除原因
StartTime time.Time `json:"startTime"` // 开始时间
InProgressTime *time.Time `json:"inProgressTime,omitempty"` // 开始处理时间
InProgressStartedBy string `json:"inProgressStartedBy,omitempty"` // 开始处理人
ClaimTime *time.Time `json:"claimTime,omitempty"` // 签收时间
ClaimedBy string `json:"claimedBy,omitempty"` // 签收人
SuspendedTime *time.Time `json:"suspendedTime,omitempty"` // 挂起时间
SuspendedBy string `json:"suspendedBy,omitempty"` // 挂起操作人
EndTime *time.Time `json:"endTime,omitempty"` // 结束时间
CompletedBy string `json:"completedBy,omitempty"` // 完成人
DurationMillis int64 `json:"durationMillis"` // 持续时间毫秒
Priority int `json:"priority,omitempty"` // 优先级
InProgressDueDate *time.Time `json:"inProgressDueDate,omitempty"` // 处理截止时间
DueDate *time.Time `json:"dueDate,omitempty"` // 截止时间
Category string `json:"category,omitempty"` // 分类
LastUpdatedTime *time.Time `json:"lastUpdatedTime,omitempty"` // 最后更新时间
}
HistoricTaskInstance 是历史任务实例。 字段与 ACT_HI_TASKINST 列一一对应,保证 Java 存量任务在离线转换后仍可无损写回。
type HistoricTaskInstanceFilter ¶
type HistoricTaskInstanceFilter struct {
ID string // 历史/任务 ID
Name string // 任务名称
Assignee string // 处理人
TaskDefinitionKey string // 任务定义 Key
ProcessInstanceID string // 流程实例 ID
ProcessDefinitionID string // 流程定义 ID
ProcessDefinitionKey string // 流程定义 Key
TenantID string // 租户,空表示不过滤
StartedAfter *time.Time // 开始时间下界,含边界
StartedBefore *time.Time // 开始时间上界,含边界
FinishedAfter *time.Time // 结束时间下界,含边界
FinishedBefore *time.Time // 结束时间上界,含边界
Finished *bool // 是否已结束,空表示不过滤
Start int // 偏移量
Size int // 每页数量
}
HistoricTaskInstanceFilter 是历史任务的查询条件。 仅包含可下推 SQL 的字段;模糊匹配等仍由调用方在内存过滤。
type HistoricTaskLog ¶
type HistoricTaskLog struct {
ID int64 `json:"id"` // 日志 ID
Type string `json:"type"` // 事件类型
TaskID string `json:"taskId,omitempty"` // 任务 ID
Time time.Time `json:"time"` // 时间
UserID string `json:"userId,omitempty"` // 操作人
Data string `json:"data,omitempty"` // 附加数据
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 实例 ID
ProcessDefinitionID string `json:"processDefinitionId,omitempty"` // 定义 ID
TenantID string `json:"tenantId,omitempty"` // 租户
}
HistoricTaskLog 是任务生命周期日志。
type HistoricVariableInstance ¶
type HistoricVariableInstance struct {
ID string `json:"id"` // 历史变量 ID
Name string `json:"name"` // 变量名
Type string `json:"type,omitempty"` // 变量类型
ProcessInstanceID string `json:"processInstanceId"` // 流程实例 ID
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
TaskID string `json:"taskId,omitempty"` // 任务 ID
Value any `json:"value,omitempty"` // 变量值
CreateTime time.Time `json:"createTime"` // 创建时间
LastUpdatedTime time.Time `json:"lastUpdatedTime"` // 最后更新时间
}
HistoricVariableInstance 是历史变量实例。
type HistoricVariableInstanceFilter ¶
type HistoricVariableInstanceFilter struct {
ID string // 历史/变量 ID
Name string // 变量名
ProcessInstanceID string // 流程实例 ID
ExecutionID string // 执行 ID
TaskID string // 任务 ID
VariableType string // 变量类型
Start int // 偏移量
Size int // 每页数量
}
HistoricVariableInstanceFilter 是历史变量的查询条件。 仅包含可下推 SQL 的字段;模糊匹配与租户等仍由调用方在内存过滤。
type HistoryService ¶
type HistoryService interface {
// ListHistoricProcessInstances 返回历史流程实例。
// @param ctx 上下文
// @return 历史实例列表
// @return 查询错误
ListHistoricProcessInstances(ctx context.Context) ([]HistoricProcessInstance, error)
// QueryHistoricProcessInstances 按条件分页查询历史实例;行模式下等值与时间条件可下推 SQL。
// @param ctx 上下文
// @param filter 查询条件
// @return 分页历史实例
// @return 查询错误
QueryHistoricProcessInstances(ctx context.Context, filter HistoricProcessInstanceFilter) (Page[HistoricProcessInstance], error)
// QueryHistoricTaskInstances 按条件分页查询历史任务;行模式下等值与时间条件可下推 SQL。
// @param ctx 上下文
// @param filter 查询条件
// @return 分页历史任务
// @return 查询错误
QueryHistoricTaskInstances(ctx context.Context, filter HistoricTaskInstanceFilter) (Page[HistoricTaskInstance], error)
// QueryHistoricActivityInstances 按条件分页查询历史活动;行模式下等值与时间条件可下推 SQL。
// @param ctx 上下文
// @param filter 查询条件
// @return 分页历史活动
// @return 查询错误
QueryHistoricActivityInstances(ctx context.Context, filter HistoricActivityInstanceFilter) (Page[HistoricActivityInstance], error)
// QueryHistoricVariableInstances 按条件分页查询历史变量;行模式下等值条件可下推 SQL。
// @param ctx 上下文
// @param filter 查询条件
// @return 分页历史变量
// @return 查询错误
QueryHistoricVariableInstances(ctx context.Context, filter HistoricVariableInstanceFilter) (Page[HistoricVariableInstance], error)
// ListHistoricActivityInstances 返回指定实例的历史活动。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 历史活动列表
// @return 查询错误
ListHistoricActivityInstances(ctx context.Context, processInstanceID string) ([]HistoricActivityInstance, error)
// ListHistoricTaskInstances 返回历史任务。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 历史任务列表
// @return 查询错误
ListHistoricTaskInstances(ctx context.Context, processInstanceID string) ([]HistoricTaskInstance, error)
// DeleteHistoricProcessInstance 删除历史流程实例及其关联记录。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 删除错误
DeleteHistoricProcessInstance(ctx context.Context, processInstanceID string) error
// DeleteHistoricTaskInstance 删除历史任务。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 删除错误
DeleteHistoricTaskInstance(ctx context.Context, taskID string) error
// DeleteHistoricDetail 删除历史变量明细。
// @param ctx 上下文
// @param detailID 明细 ID
// @return 删除错误
DeleteHistoricDetail(ctx context.Context, detailID string) error
// DeleteHistoricTaskLog 删除任务日志。
// @param ctx 上下文
// @param logID 日志 ID
// @return 删除错误
DeleteHistoricTaskLog(ctx context.Context, logID int64) error
// GetHistoricProcessInstance 查询历史流程实例。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 历史实例
// @return 查询错误
GetHistoricProcessInstance(ctx context.Context, processInstanceID string) (HistoricProcessInstance, error)
// GetHistoricActivityInstance 查询历史活动。
// @param ctx 上下文
// @param activityID 历史活动 ID
// @return 历史活动
// @return 查询错误
GetHistoricActivityInstance(ctx context.Context, activityID string) (HistoricActivityInstance, error)
// GetHistoricVariableInstance 查询历史变量。
// @param ctx 上下文
// @param variableID 历史变量 ID
// @return 历史变量
// @return 查询错误
GetHistoricVariableInstance(ctx context.Context, variableID string) (HistoricVariableInstance, error)
// DeleteHistoricVariableInstance 删除历史变量。
// @param ctx 上下文
// @param variableID 历史变量 ID
// @return 删除错误
DeleteHistoricVariableInstance(ctx context.Context, variableID string) error
// GetHistoricTaskInstance 查询历史任务。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 历史任务
// @return 查询错误
GetHistoricTaskInstance(ctx context.Context, taskID string) (HistoricTaskInstance, error)
// ListHistoricTaskLogs 返回任务生命周期日志。
// @param ctx 上下文
// @param taskID 任务 ID,空串表示全部
// @return 日志列表
// @return 查询错误
ListHistoricTaskLogs(ctx context.Context, taskID string) ([]HistoricTaskLog, error)
// ListHistoricDetails 返回历史变量明细。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 明细列表
// @return 查询错误
ListHistoricDetails(ctx context.Context, processInstanceID string) ([]HistoricDetail, error)
// GetHistoricDetail 查询历史变量明细。
// @param ctx 上下文
// @param detailID 明细 ID
// @return 明细
// @return 查询错误
GetHistoricDetail(ctx context.Context, detailID string) (HistoricDetail, error)
// GetHistoricVariableByName 按实例与变量名查询历史变量。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param name 变量名
// @return 历史变量
// @return 查询错误
GetHistoricVariableByName(ctx context.Context, processInstanceID, name string) (HistoricVariableInstance, error)
// GetHistoricTaskVariableByName 按任务与变量名查询历史变量。
// @param ctx 上下文
// @param taskID 任务 ID
// @param name 变量名
// @return 历史变量
// @return 查询错误
GetHistoricTaskVariableByName(ctx context.Context, taskID, name string) (HistoricVariableInstance, error)
// GetHistoricTaskFormData 返回历史任务表单。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 表单数据
// @return 查询错误
GetHistoricTaskFormData(ctx context.Context, taskID string) (FormData, error)
// ListHistoricIdentityLinks 返回历史身份链接。
// @param ctx 上下文
// @param taskID 任务 ID,空串表示全部
// @return 链接列表
// @return 查询错误
ListHistoricIdentityLinks(ctx context.Context, taskID string) ([]IdentityLink, error)
// ListHistoricProcessIdentityLinks 返回流程实例的历史身份链接。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 链接列表
// @return 查询错误
ListHistoricProcessIdentityLinks(ctx context.Context, processInstanceID string) ([]IdentityLink, error)
// ListHistoricVariableInstances 返回历史变量。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 历史变量列表
// @return 查询错误
ListHistoricVariableInstances(ctx context.Context, processInstanceID string) ([]HistoricVariableInstance, error)
}
HistoryService 提供历史查询。
type HookControl ¶
type HookControl interface {
// SetAssignee 命令内改写任务办理人(执行人重写入口)。
// @param taskID 任务 ID
// @param userID 用户 ID,空串表示清空办理人
// @return 错误(任务不存在等)
SetAssignee(taskID, userID string) error
// SetCandidateUsers 命令内整体重写任务候选用户。
// @param taskID 任务 ID
// @param ids 候选用户 ID 列表,空列表表示清空
// @return 错误(任务不存在等)
SetCandidateUsers(taskID string, ids []string) error
// SetCandidateGroups 命令内整体重写任务候选组。
// @param taskID 任务 ID
// @param ids 候选组 ID 列表,空列表表示清空
// @return 错误(任务不存在等)
SetCandidateGroups(taskID string, ids []string) error
// SetVariable 设置流程实例级变量(写入实例根执行作用域)。
// @param name 变量名
// @param value 变量值
// @return 错误(实例不存在等)
SetVariable(name string, value any) error
// Defer 登记命令提交成功后顺序执行的延迟动作(新命令上下文,锁外执行)。
// 动作内可安全调用引擎公有 API(如 CompleteTask 驱动相邻同人自动办结);
// 命令失败回滚时不执行;动作 panic 或返回错误仅记录日志,不影响已完成的命令。
// @param action 延迟动作,入参为原命令上下文
Defer(action func(ctx context.Context) error)
}
HookControl 钩子控制接口,提供给钩子在命令内同步改写引擎状态、登记命令后延迟动作。 各改写方法针对当前命令上下文生效:钩子返回错误时,命令回滚,全部改写一并失效。
type IdentityLink ¶
type IdentityLink struct {
ID string `json:"id,omitempty"` // 关联 ID
Type string `json:"type"` // 类型
UserID string `json:"userId,omitempty"` // 用户 ID
GroupID string `json:"groupId,omitempty"` // 组 ID
TaskID string `json:"taskId,omitempty"` // 任务 ID
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
ProcessDefinitionID string `json:"processDefinitionId,omitempty"` // 流程定义 ID
CreateTime time.Time `json:"createTime,omitempty"` // 创建时间
}
IdentityLink 是任务/流程参与者关联。
type IdentityService ¶
type IdentityService interface {
// CreateUser 创建用户。
// @param ctx 上下文
// @param user 用户
// @return 用户
// @return 创建错误
CreateUser(ctx context.Context, user User) (User, error)
// GetUser 查询用户。
// @param ctx 上下文
// @param userID 用户 ID
// @return 用户
// @return 查询错误
GetUser(ctx context.Context, userID string) (User, error)
// ListUsers 返回全部用户。
// @param ctx 上下文
// @return 用户列表
// @return 查询错误
ListUsers(ctx context.Context) ([]User, error)
// UpdateUser 更新用户资料与角色。
// @param ctx 上下文
// @param user 用户
// @return 用户
// @return 更新错误
UpdateUser(ctx context.Context, user User) (User, error)
// GetUserInfo 返回用户信息键值。
// @param ctx 上下文
// @param userID 用户 ID
// @return 信息映射
// @return 查询错误
GetUserInfo(ctx context.Context, userID string) (map[string]string, error)
// GetUserInfoEntries 返回包含原版空值键的用户信息,并复制可空值。
// @param ctx 上下文
// @param userID 用户标识
// @return 包含空值键的信息映射
// @return 查询错误
GetUserInfoEntries(ctx context.Context, userID string) (map[string]*string, error)
// GetUserInfoValue 返回单个用户信息。
// @param ctx 上下文
// @param userID 用户 ID
// @param key 键
// @return 值
// @return 查询错误
GetUserInfoValue(ctx context.Context, userID, key string) (string, error)
// SetUserInfo 设置用户信息。
// @param ctx 上下文
// @param userID 用户 ID
// @param key 键
// @param value 值
// @return 设置错误
SetUserInfo(ctx context.Context, userID, key, value string) error
// DeleteUserInfo 删除用户信息。
// @param ctx 上下文
// @param userID 用户 ID
// @param key 键
// @return 删除错误
DeleteUserInfo(ctx context.Context, userID, key string) error
// GetUserPicture 返回用户头像。
// @param ctx 上下文
// @param userID 用户 ID
// @return 图片数据
// @return MIME 类型
// @return 查询错误
GetUserPicture(ctx context.Context, userID string) ([]byte, string, error)
// SetUserPicture 设置用户头像。
// @param ctx 上下文
// @param userID 用户 ID
// @param data 图片数据
// @param mimeType MIME 类型
// @return 设置错误
SetUserPicture(ctx context.Context, userID string, data []byte, mimeType string) error
// SetUserRoles 设置用户角色。
// @param ctx 上下文
// @param userID 用户 ID
// @param roles 角色列表
// @return 设置错误
SetUserRoles(ctx context.Context, userID string, roles []string) error
// DeleteUser 删除用户。
// @param ctx 上下文
// @param userID 用户 ID
// @return 删除错误
DeleteUser(ctx context.Context, userID string) error
// CreateRole 创建角色。
// @param ctx 上下文
// @param role 角色
// @return 角色
// @return 创建错误
CreateRole(ctx context.Context, role Role) (Role, error)
// GetRole 查询角色。
// @param ctx 上下文
// @param roleID 角色 ID
// @return 角色
// @return 查询错误
GetRole(ctx context.Context, roleID string) (Role, error)
// ListRoles 返回全部角色。
// @param ctx 上下文
// @return 角色列表
// @return 查询错误
ListRoles(ctx context.Context) ([]Role, error)
// UpdateRole 更新角色。
// @param ctx 上下文
// @param role 角色
// @return 角色
// @return 更新错误
UpdateRole(ctx context.Context, role Role) (Role, error)
// DeleteRole 删除角色。
// @param ctx 上下文
// @param roleID 角色 ID
// @return 删除错误
DeleteRole(ctx context.Context, roleID string) error
// CreateGroup 创建组。
// @param ctx 上下文
// @param group 组
// @return 组
// @return 创建错误
CreateGroup(ctx context.Context, group Group) (Group, error)
// UpdateGroup 更新组。
// @param ctx 上下文
// @param group 组
// @return 组
// @return 更新错误
UpdateGroup(ctx context.Context, group Group) (Group, error)
// GetGroup 查询组。
// @param ctx 上下文
// @param groupID 组 ID
// @return 组
// @return 查询错误
GetGroup(ctx context.Context, groupID string) (Group, error)
// ListGroups 返回全部组。
// @param ctx 上下文
// @return 组列表
// @return 查询错误
ListGroups(ctx context.Context) ([]Group, error)
// DeleteGroup 删除组。
// @param ctx 上下文
// @param groupID 组 ID
// @return 删除错误
DeleteGroup(ctx context.Context, groupID string) error
// AddMembership 添加成员关系。
// @param ctx 上下文
// @param userID 用户 ID
// @param groupID 组 ID
// @return 添加错误
AddMembership(ctx context.Context, userID, groupID string) error
// RemoveMembership 移除成员关系。
// @param ctx 上下文
// @param userID 用户 ID
// @param groupID 组 ID
// @return 移除错误
RemoveMembership(ctx context.Context, userID, groupID string) error
// UpdatePassword 重置用户密码。
// @param ctx 上下文
// @param userID 用户 ID
// @param newPassword 新密码
// @return 更新错误
UpdatePassword(ctx context.Context, userID, newPassword string) error
// ChangePassword 修改用户密码。
// @param ctx 上下文
// @param userID 用户 ID
// @param oldPassword 旧密码
// @param newPassword 新密码
// @return 修改错误
ChangePassword(ctx context.Context, userID, oldPassword, newPassword string) error
// CheckPassword 校验用户密码。
// @param ctx 上下文
// @param userID 用户 ID
// @param password 密码
// @return 校验错误
CheckPassword(ctx context.Context, userID, password string) error
// ListUserGroups 返回用户所属组。
// @param ctx 上下文
// @param userID 用户 ID
// @return 组列表
// @return 查询错误
ListUserGroups(ctx context.Context, userID string) ([]Group, error)
// ListMembers 返回组成员。
// @param ctx 上下文
// @param groupID 组 ID
// @return 用户列表
// @return 查询错误
ListMembers(ctx context.Context, groupID string) ([]User, error)
}
IdentityService 提供用户、组与成员关系管理。
type InjectRequest ¶
type InjectRequest struct {
InjectionType string `json:"injectionType,omitempty"` // 注入类型,当前仅支持 task
ID string `json:"id,omitempty"` // 动态任务 ID
Name string `json:"name"` // 任务名称
Assignee string `json:"assignee,omitempty"` // 处理人
TaskID string `json:"taskId,omitempty"` // 并行注入的参考任务 ID
}
InjectRequest 是动态活动注入请求。
type InsertUserTaskRequest ¶ added in v0.1.2
type InsertUserTaskRequest struct {
AfterActivityID string `json:"afterActivityId"` // 原用户任务节点ID
ID string `json:"id,omitempty"` // 新节点ID,留空自动生成
Name string `json:"name"` // 新节点名称
Assignee string `json:"assignee"` // 新节点办理人或表达式
ProcessDefinitionID string `json:"processDefinitionId,omitempty"` // 可选预期定义,防止在旧版本上误操作
}
InsertUserTaskRequest 是在实例专用派生定义中追加用户节点的请求,不会立即创建运行任务。
type JobInfo ¶
type JobInfo struct {
ID string `json:"id"` // 作业 ID
Type string `json:"type,omitempty"` // 作业类型
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
ActivityID string `json:"activityId,omitempty"` // 活动 ID
Retries int `json:"retries"` // 剩余重试次数
Exception string `json:"exception,omitempty"` // 最近异常
DueDate time.Time `json:"dueDate"` // 到期时间
Executable bool `json:"executable,omitempty"` // 是否已被移入可执行作业桶
}
JobInfo 是作业信息。
type ListenerControl ¶
type ListenerControl interface {
// SetVariable 设置流程实例级变量(写入最近已存在作用域,语义与引擎 Execution.SetVariable 一致)。
// @param name 变量名
// @param value 变量值
// @return 错误(实例不存在等)
SetVariable(name string, value any) error
// SetVariableLocal 设置当前执行作用域变量。
// @param name 变量名
// @param value 变量值
// @return 错误(执行不存在等)
SetVariableLocal(name string, value any) error
// Defer 登记命令提交成功后顺序执行的延迟动作(新命令上下文,锁外执行)。
// 命令失败回滚时不执行;动作 panic 或返回错误仅记录日志,不影响已完成的命令。
// @param action 延迟动作,入参为原命令上下文
Defer(action func(ctx context.Context) error)
}
ListenerControl 监听器控制接口,提供给执行监听器在命令内同步改写引擎状态、 登记命令后延迟动作。对位 api.HookControl 模式:命令内改写在监听器返回错误时随命令整体回滚。
type ListenerExecution ¶
type ListenerExecution struct {
ExecutionID string // 执行 ID
ActivityID string // 当前活动 ID(活动结束监听器下为离开的节点 ID)
ProcessInstanceID string // 流程实例 ID
ProcessDefinitionID string // 流程定义 ID
TenantID string // 租户
MIChild bool // 是否多实例子执行(会签监听器区分根执行与实例执行用)
Variables map[string]any // 执行可见变量快照(含作用域链继承值)
}
ListenerExecution 是扩展执行监听器可见的执行上下文快照。 对位 Flowable DelegateExecution 的只读面:变量为监听器触发时刻的可见快照, 监听器内的状态改写必须经 ListenerControl(改写快照无效)。
type ManagementService ¶
type ManagementService interface {
// EngineInfo 返回引擎版本与配置摘要。
// @param ctx 上下文
// @return 引擎信息
// @return 查询错误
EngineInfo(ctx context.Context) (map[string]any, error)
// RunDueJobs 执行全部到期定时器作业。
// @param ctx 上下文
// @return 执行数量
// @return 执行错误
RunDueJobs(ctx context.Context) (int, error)
// ListJobs 返回可执行作业。
// @param ctx 上下文
// @return 作业列表
// @return 查询错误
ListJobs(ctx context.Context) ([]JobInfo, error)
// GetJob 查询可执行作业。
// @param ctx 上下文
// @param jobID 作业 ID
// @return 作业信息
// @return 查询错误
GetJob(ctx context.Context, jobID string) (JobInfo, error)
// GetDeadLetterJob 查询死信作业。
// @param ctx 上下文
// @param jobID 作业 ID
// @return 作业信息
// @return 查询错误
GetDeadLetterJob(ctx context.Context, jobID string) (JobInfo, error)
// SetJobRetries 设置作业重试次数。
// @param ctx 上下文
// @param jobID 作业 ID
// @param retries 重试次数
// @return 设置错误
SetJobRetries(ctx context.Context, jobID string, retries int) error
// ListDeadLetterJobs 返回死信作业。
// @param ctx 上下文
// @return 死信作业列表
// @return 查询错误
ListDeadLetterJobs(ctx context.Context) ([]JobInfo, error)
// MoveDeadLetterJobToExecutable 将死信作业恢复为可执行作业。
// @param ctx 上下文
// @param jobID 作业 ID
// @param retries 恢复后的重试次数
// @return 恢复错误
MoveDeadLetterJobToExecutable(ctx context.Context, jobID string, retries int) error
// DeleteJob 删除可执行作业。
// @param ctx 上下文
// @param jobID 作业 ID
// @return 删除错误
DeleteJob(ctx context.Context, jobID string) error
// DeleteTimerJob 删除定时器作业。
// @param ctx 上下文
// @param jobID 作业 ID
// @return 删除错误
DeleteTimerJob(ctx context.Context, jobID string) error
// DeleteSuspendedJob 删除挂起作业。
// @param ctx 上下文
// @param jobID 作业 ID
// @return 删除错误
DeleteSuspendedJob(ctx context.Context, jobID string) error
// DeleteDeadLetterJob 删除死信作业。
// @param ctx 上下文
// @param jobID 作业 ID
// @return 删除错误
DeleteDeadLetterJob(ctx context.Context, jobID string) error
// MoveTimerJobToExecutable 将定时器作业移入可执行作业桶。
// @param ctx 上下文
// @param jobID 作业 ID
// @return 移动错误
MoveTimerJobToExecutable(ctx context.Context, jobID string) error
// RescheduleTimerJob 修改定时器作业的到期时间。
// @param ctx 上下文
// @param jobID 作业 ID
// @param dueDate RFC3339 到期时间
// @return 修改错误
RescheduleTimerJob(ctx context.Context, jobID, dueDate string) error
// CreateProperty 创建自定义引擎属性。
// @param ctx 上下文
// @param name 名称
// @param value 值
// @return 创建错误
CreateProperty(ctx context.Context, name, value string) error
// UpdateProperty 更新自定义引擎属性。
// @param ctx 上下文
// @param name 名称
// @param value 值
// @return 更新错误
UpdateProperty(ctx context.Context, name, value string) error
// DeleteProperty 删除自定义引擎属性。
// @param ctx 上下文
// @param name 名称
// @return 删除错误
DeleteProperty(ctx context.Context, name string) error
// Properties 返回引擎属性键值。
// @param ctx 上下文
// @return 属性映射
// @return 查询错误
Properties(ctx context.Context) (map[string]string, error)
// TableCount 返回各 ACT_* 表的行数。
// @param ctx 上下文
// @return 表名到行数
// @return 查询错误
TableCount(ctx context.Context) (map[string]int64, error)
// GetTableMetaData 返回表的列元数据。
// @param ctx 上下文
// @param tableName 表名
// @return 列元数据
// @return 查询错误
GetTableMetaData(ctx context.Context, tableName string) (TableMetaData, error)
// QueryTableData 分页查询表数据。
// @param ctx 上下文
// @param tableName 表名
// @param start 偏移
// @param size 每页数量
// @param sortColumn 排序列,空串表示默认顺序
// @param order 排序方向,asc 或 desc
// @return 分页数据
// @return 查询错误
QueryTableData(ctx context.Context, tableName string, start, size int, sortColumn, order string) (Page[map[string]any], error)
// ListBatches 返回全部批处理作业。
// @param ctx 上下文
// @return 批次列表
// @return 查询错误
ListBatches(ctx context.Context) ([]Batch, error)
// GetBatch 查询批处理作业。
// @param ctx 上下文
// @param batchID 批次 ID
// @return 批次
// @return 查询错误
GetBatch(ctx context.Context, batchID string) (Batch, error)
// ListBatchParts 返回批次的分片列表。
// @param ctx 上下文
// @param batchID 批次 ID
// @return 分片列表
// @return 查询错误
ListBatchParts(ctx context.Context, batchID string) ([]BatchPart, error)
// GetBatchPart 查询批处理分片。
// @param ctx 上下文
// @param partID 分片 ID
// @return 分片
// @return 查询错误
GetBatchPart(ctx context.Context, partID string) (BatchPart, error)
// DeleteBatch 删除批次及其全部分片。
// @param ctx 上下文
// @param batchID 批次 ID
// @return 删除错误
DeleteBatch(ctx context.Context, batchID string) error
// GetBatchDocument 返回批次文档。
// @param ctx 上下文
// @param batchID 批次 ID
// @return 文档字节
// @return 查询错误
GetBatchDocument(ctx context.Context, batchID string) ([]byte, error)
// GetBatchPartDocument 返回批次分片文档。
// @param ctx 上下文
// @param partID 分片 ID
// @return 文档字节
// @return 查询错误
GetBatchPartDocument(ctx context.Context, partID string) ([]byte, error)
// BatchMigrateProcessInstances 批量迁移流程实例并记录批次与分片。
// @param ctx 上下文
// @param targetDefinitionID 目标流程定义 ID
// @param instanceIDs 流程实例 ID 列表
// @param activityMappings 源活动 ID 到目标活动 ID
// @return 最终批次
// @return 迁移错误
BatchMigrateProcessInstances(ctx context.Context, targetDefinitionID string, instanceIDs []string, activityMappings map[string]string) (Batch, error)
}
ManagementService 提供引擎管理信息。
type MigrationRequest ¶
type MigrationRequest struct {
ProcessInstanceID string // 源实例 ID
TargetProcessDefinitionID string // 目标流程定义 ID
ActivityMappings map[string]string // 源活动 ID 到目标活动 ID
}
MigrationRequest 是流程实例迁移请求。
type Model ¶
type Model struct {
ID string `json:"id"` // 模型 ID
Name string `json:"name"` // 名称
Key string `json:"key"` // Key
Category string `json:"category,omitempty"` // 分类
Version int `json:"version"` // 版本
MetaInfo string `json:"metaInfo,omitempty"` // 元信息
DeploymentID string `json:"deploymentId,omitempty"` // 部署 ID
TenantID string `json:"tenantId,omitempty"` // 租户
CreateTime time.Time `json:"createTime"` // 创建时间
LastUpdateTime time.Time `json:"lastUpdateTime"` // 最后更新时间
}
Model 是流程模型元数据。
type ModelUpdate ¶
type ModelUpdate struct {
Name *string // 名称
Key *string // Key
Category *string // 分类
MetaInfo *string // 元信息
DeploymentID *string // 部署 ID
TenantID *string // 租户
Version *int // 版本
}
ModelUpdate 是模型更新,nil 表示不修改。
type NextActivityRequest ¶
type NextActivityRequest struct {
TaskID string `json:"taskId"` // 当前任务 ID(必填)
NextActivityList []*NextActivityVo `json:"nextActivityList"` // 下一步节点与处理人列表(必填)
SendIdentityID string `json:"sendIdentityId,omitempty"` // 发送人身份 Id
SendUserName string `json:"sendUserName,omitempty"` // 发送人姓名
}
NextActivityRequest 是下一步节点与处理人预存请求。 对应 Java model/request/NextActivityRequest.java,用于发起/办结前的"下一步预生成-消耗"模型。
type NextActivityVo ¶
type NextActivityVo struct {
ActivityID string `json:"activityId"` // 目标节点 ID(流程结束填保留代号 end)
ActivityName string `json:"activityName,omitempty"` // 目标节点名称
ExecutorIDs []string `json:"executorIds,omitempty"` // 处理人身份 Id 列表
ExecutorNames []string `json:"executorNames,omitempty"` // 处理人姓名列表(展示用)
}
NextActivityVo 描述单个下一步节点及其处理人。
type Page ¶
type Page[T any] struct { Data []T `json:"data"` // 数据 Total int64 `json:"total"` // 总数 Start int `json:"start"` // 偏移 Size int `json:"size"` // 每页数量 Sort string `json:"sort,omitempty"` // 排序字段 Order string `json:"order,omitempty"` // 排序方向 }
Page 是通用分页结果。
type ProcessDefinition ¶
type ProcessDefinition struct {
ID string `json:"id"` // 流程定义 ID
Key string `json:"key"` // 流程定义 Key
Name string `json:"name"` // 名称
Description string `json:"description,omitempty"` // 流程说明
Version int `json:"version"` // 版本
DeploymentID string `json:"deploymentId"` // 部署 ID
ResourceName string `json:"resourceName"` // 资源名
TenantID string `json:"tenantId"` // 租户
Suspended bool `json:"suspended"` // 是否挂起
DerivedFrom string `json:"derivedFrom,omitempty"` // 直接来源定义,非空表示实例专用派生定义
DerivedFromRoot string `json:"derivedFromRoot,omitempty"` // 最初来源定义
DerivedVersion int `json:"derivedVersion,omitempty"` // 派生次数,不参与普通定义版本选择
}
ProcessDefinition 是流程定义。
type ProcessInstance ¶
type ProcessInstance struct {
ID string `json:"id"` // 实例 ID
ProcessDefinitionID string `json:"processDefinitionId"` // 流程定义 ID
ProcessDefinitionKey string `json:"processDefinitionKey"` // 流程定义 Key
BusinessKey string `json:"businessKey"` // 业务键
Name string `json:"name"` // 实例名称
ActivityID string `json:"activityId,omitempty"` // 根执行当前活动
StartUserID string `json:"startUserId,omitempty"` // 发起人
BusinessStatus string `json:"businessStatus,omitempty"` // 业务状态
DueDate *time.Time `json:"dueDate,omitempty"` // 截止时间
ClaimTime *time.Time `json:"claimTime,omitempty"` // 签收时间
ClaimedBy string `json:"claimedBy,omitempty"` // 签收人
CallbackID string `json:"callbackId,omitempty"` // 回调标识
CallbackType string `json:"callbackType,omitempty"` // 回调类型
ReferenceID string `json:"referenceId,omitempty"` // 关联标识
ReferenceType string `json:"referenceType,omitempty"` // 关联类型
PropagatedStageInstanceID string `json:"propagatedStageInstanceId,omitempty"` // 传播阶段标识
SuperProcessInstanceID string `json:"superProcessInstanceId,omitempty"` // 父流程实例标识
TenantID string `json:"tenantId"` // 租户
StartTime time.Time `json:"startTime"` // 开始时间
EndTime *time.Time `json:"endTime,omitempty"` // 结束时间
Ended bool `json:"ended"` // 是否结束
Suspended bool `json:"suspended"` // 是否挂起
Variables map[string]any `json:"variables,omitempty"` // 变量快照
}
ProcessInstance 是流程实例。
type ProcessInstanceFilter ¶
type ProcessInstanceFilter struct {
ID string // 流程实例 ID
ProcessDefinitionID string // 流程定义 ID
ProcessDefinitionKey string // 流程定义 Key
BusinessKey string // 业务键
TenantID string // 租户,空表示不过滤
Suspended *bool // 是否挂起,空表示不过滤
StartedAfter *time.Time // 开始时间下界,含边界
StartedBefore *time.Time // 开始时间上界,含边界
Start int // 偏移量
Size int // 每页数量
}
ProcessInstanceFilter 是运行中实例的查询条件。 仅包含可下推 SQL 的字段;名称、模糊匹配与键集合等仍由调用方在内存过滤。
type ProcessInstanceUpdate ¶
type ProcessInstanceUpdate struct {
Name *string // 实例名称
BusinessKey *string // 业务键
BusinessStatus *string // 业务状态
DueDate *time.Time // 截止时间
ClaimUserID *string // 签收人,空字符串表示取消签收
}
ProcessInstanceUpdate 是单次事务内的实例属性更新或签收请求,空指针表示保持原值。
type R ¶
type R struct {
Code string `json:"code"` // 状态码:"200" 成功 / "500" 失败
Msg string `json:"msg,omitempty"` // 成功消息
ErrorMessage string `json:"ErrorMessage,omitempty"` // 失败消息(字段名大写 E 兼容 Java 协议)
Data any `json:"data,omitempty"` // 业务数据
Success bool `json:"success"` // 是否成功
}
R 是 workflow 门面统一返回结构。 对应 Java api 模块 enm/R.java:code 取 "200"/"500";出错时不填 Msg, 只填 ErrorMessage(兼容 Java @JsonProperty("ErrorMessage") 的大写字段名)与 Success=false。
type RepositoryService ¶
type RepositoryService interface {
// Deploy 部署 BPMN 资源。
// @param ctx 上下文
// @param req 部署请求
// @return 部署信息
// @return 部署错误
Deploy(ctx context.Context, req DeploymentRequest) (Deployment, error)
// ListProcessDefinitions 返回全部流程定义。
// @param ctx 上下文
// @return 流程定义列表
// @return 查询错误
ListProcessDefinitions(ctx context.Context) ([]ProcessDefinition, error)
// GetProcessDefinition 按 ID 查询流程定义。
// @param ctx 上下文
// @param id 流程定义 ID
// @return 流程定义
// @return 查询错误
GetProcessDefinition(ctx context.Context, id string) (ProcessDefinition, error)
// GetProcessDefinitionByKey 按 Key 查询最新流程定义。
// @param ctx 上下文
// @param key 流程定义 Key
// @return 流程定义
// @return 查询错误
GetProcessDefinitionByKey(ctx context.Context, key string) (ProcessDefinition, error)
// GetBpmnModel 返回流程定义对应的 BPMN 模型。
// @param ctx 上下文
// @param definitionID 流程定义 ID
// @return BPMN 模型
// @return 查询错误
GetBpmnModel(ctx context.Context, definitionID string) (*model.BpmnModel, error)
// GetProcessDefinitionXML 返回流程定义原始 XML。
// @param ctx 上下文
// @param definitionID 流程定义 ID
// @return XML 内容
// @return 查询错误
GetProcessDefinitionXML(ctx context.Context, definitionID string) ([]byte, error)
// ListDeployments 返回全部部署。
// @param ctx 上下文
// @return 部署列表
// @return 查询错误
ListDeployments(ctx context.Context) ([]Deployment, error)
// GetDeployment 查询部署。
// @param ctx 上下文
// @param deploymentID 部署 ID
// @return 部署信息
// @return 查询错误
GetDeployment(ctx context.Context, deploymentID string) (Deployment, error)
// ListDeploymentResources 返回部署资源名列表。
// @param ctx 上下文
// @param deploymentID 部署 ID
// @return 资源名列表
// @return 查询错误
ListDeploymentResources(ctx context.Context, deploymentID string) ([]string, error)
// GetDeploymentResource 返回部署资源内容。
// @param ctx 上下文
// @param deploymentID 部署 ID
// @param resourceName 资源名
// @return 资源内容
// @return 查询错误
GetDeploymentResource(ctx context.Context, deploymentID, resourceName string) ([]byte, error)
// DeleteDeployment 删除部署。
// @param ctx 上下文
// @param deploymentID 部署 ID
// @param cascade 是否级联删除流程定义
// @return 删除错误
DeleteDeployment(ctx context.Context, deploymentID string, cascade bool) error
// SuspendProcessDefinition 挂起流程定义。
// @param ctx 上下文
// @param definitionID 流程定义 ID
// @param includeInstances 是否同时挂起实例
// @return 挂起错误
SuspendProcessDefinition(ctx context.Context, definitionID string, includeInstances bool) error
// ActivateProcessDefinition 激活流程定义。
// @param ctx 上下文
// @param definitionID 流程定义 ID
// @param includeInstances 是否同时激活实例
// @return 激活错误
ActivateProcessDefinition(ctx context.Context, definitionID string, includeInstances bool) error
// ListModels 返回全部流程模型。
// @param ctx 上下文
// @return 模型列表
// @return 查询错误
ListModels(ctx context.Context) ([]Model, error)
// GetModel 查询流程模型。
// @param ctx 上下文
// @param modelID 模型 ID
// @return 模型
// @return 查询错误
GetModel(ctx context.Context, modelID string) (Model, error)
// CreateModel 创建流程模型。
// @param ctx 上下文
// @param req 创建请求
// @return 模型
// @return 创建错误
CreateModel(ctx context.Context, req CreateModelRequest) (Model, error)
// UpdateModel 更新流程模型。
// @param ctx 上下文
// @param modelID 模型 ID
// @param update 更新内容
// @return 更新后的模型
// @return 更新错误
UpdateModel(ctx context.Context, modelID string, update ModelUpdate) (Model, error)
// DeleteModel 删除流程模型。
// @param ctx 上下文
// @param modelID 模型 ID
// @return 删除错误
DeleteModel(ctx context.Context, modelID string) error
// GetModelSource 返回模型编辑源。
// @param ctx 上下文
// @param modelID 模型 ID
// @return 源内容
// @return 查询错误
GetModelSource(ctx context.Context, modelID string) ([]byte, error)
// SetModelSource 设置模型编辑源。
// @param ctx 上下文
// @param modelID 模型 ID
// @param source 源内容
// @return 设置错误
SetModelSource(ctx context.Context, modelID string, source []byte) error
// GetModelSourceExtra 返回模型扩展源码。
// @param ctx 上下文
// @param modelID 模型 ID
// @return 扩展源
// @return 查询错误
GetModelSourceExtra(ctx context.Context, modelID string) ([]byte, error)
// SetModelSourceExtra 设置模型扩展源码。
// @param ctx 上下文
// @param modelID 模型 ID
// @param source 扩展源
// @return 设置错误
SetModelSourceExtra(ctx context.Context, modelID string, source []byte) error
// ListDefinitionIdentityLinks 返回流程定义候选发起人。
// @param ctx 上下文
// @param definitionID 流程定义 ID
// @return 链接列表
// @return 查询错误
ListDefinitionIdentityLinks(ctx context.Context, definitionID string) ([]IdentityLink, error)
// GetDefinitionIdentityLink 查询单个候选发起人。
// @param ctx 上下文
// @param definitionID 流程定义 ID
// @param family users 或 groups
// @param identityID 用户或组 ID
// @return 链接
// @return 查询错误
GetDefinitionIdentityLink(ctx context.Context, definitionID, family, identityID string) (IdentityLink, error)
// AddDefinitionIdentityLink 添加候选发起人。
// @param ctx 上下文
// @param definitionID 流程定义 ID
// @param link 链接
// @return 创建后的链接
// @return 创建错误
AddDefinitionIdentityLink(ctx context.Context, definitionID string, link IdentityLink) (IdentityLink, error)
// DeleteDefinitionIdentityLink 删除候选发起人。
// @param ctx 上下文
// @param definitionID 流程定义 ID
// @param family users 或 groups
// @param identityID 用户或组 ID
// @return 删除错误
DeleteDefinitionIdentityLink(ctx context.Context, definitionID, family, identityID string) error
}
RepositoryService 提供部署与流程定义查询。
type Role ¶
type Role struct {
ID string `json:"id"` // 角色 ID
Name string `json:"name,omitempty"` // 名称
Permissions []string `json:"permissions,omitempty"` // 权限
TenantID string `json:"tenantId,omitempty"` // 租户
}
Role 是角色与权限。
type RuntimeService ¶
type RuntimeService interface {
// UpdateProcessInstance 在单次事务中更新流程实例属性或签收状态。
// @param ctx 请求上下文
// @param id 实例标识
// @param update 属性更新或签收请求
// @return 更新后的实例
// @return 更新错误
UpdateProcessInstance(ctx context.Context, id string, update ProcessInstanceUpdate) (ProcessInstance, error)
// SetVariablesAsync 在命令事务中排队变量更新,由作业执行器异步应用。
// @param ctx 上下文
// @param request 变量更新及请求阶段校验条件
// @return 排队错误
SetVariablesAsync(ctx context.Context, request AsyncVariableRequest) error
// StartProcessInstance 启动流程实例。
// @param ctx 上下文
// @param req 启动请求
// @return 流程实例
// @return 启动错误
StartProcessInstance(ctx context.Context, req StartRequest) (ProcessInstance, error)
// GetProcessInstance 查询流程实例。
// @param ctx 上下文
// @param id 实例 ID
// @return 流程实例
// @return 查询错误
GetProcessInstance(ctx context.Context, id string) (ProcessInstance, error)
// ListExecutions 返回指定实例的执行树。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID,空串表示全部
// @return 执行列表
// @return 查询错误
ListExecutions(ctx context.Context, processInstanceID string) ([]ExecutionInfo, error)
// GetExecutionVariables 返回执行可见变量。
// @param ctx 上下文
// @param executionID 执行 ID
// @return 变量快照
// @return 查询错误
GetExecutionVariables(ctx context.Context, executionID string) (map[string]any, error)
// GetExecutionVariable 返回执行可见变量。
// @param ctx 上下文
// @param executionID 执行 ID
// @param name 变量名
// @return 变量值
// @return 查询错误
GetExecutionVariable(ctx context.Context, executionID, name string) (any, error)
// SetExecutionVariable 设置执行局部变量。
// @param ctx 上下文
// @param executionID 执行 ID
// @param name 变量名
// @param value 变量值
// @return 设置错误
SetExecutionVariable(ctx context.Context, executionID, name string, value any) error
// DeleteExecutionVariable 删除执行局部变量。
// @param ctx 上下文
// @param executionID 执行 ID
// @param name 变量名
// @return 删除错误
DeleteExecutionVariable(ctx context.Context, executionID, name string) error
// DeleteAllExecutionVariables 清空执行局部变量。
// @param ctx 上下文
// @param executionID 执行 ID
// @return 删除错误
DeleteAllExecutionVariables(ctx context.Context, executionID string) error
// DeleteAllInstanceVariables 清空流程实例变量。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 删除错误
DeleteAllInstanceVariables(ctx context.Context, processInstanceID string) error
// GetExecution 查询执行。
// @param ctx 上下文
// @param executionID 执行 ID
// @return 执行信息
// @return 查询错误
GetExecution(ctx context.Context, executionID string) (ExecutionInfo, error)
// ListProcessInstances 返回全部运行中实例。
// @param ctx 上下文
// @return 实例列表
// @return 查询错误
ListProcessInstances(ctx context.Context) ([]ProcessInstance, error)
// QueryProcessInstances 按条件分页查询运行中实例;行模式下等值与时间条件可下推 SQL。
// @param ctx 上下文
// @param filter 查询条件
// @return 分页实例
// @return 查询错误
QueryProcessInstances(ctx context.Context, filter ProcessInstanceFilter) (Page[ProcessInstance], error)
// DeleteProcessInstance 删除流程实例。
// @param ctx 上下文
// @param id 实例 ID
// @param reason 删除原因
// @return 删除错误
DeleteProcessInstance(ctx context.Context, id, reason string) error
// GetVariables 返回实例可见变量。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 变量快照
// @return 查询错误
GetVariables(ctx context.Context, processInstanceID string) (map[string]any, error)
// GetVariable 返回流程实例变量。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param name 变量名
// @return 变量值
// @return 查询错误
GetVariable(ctx context.Context, processInstanceID, name string) (any, error)
// SetVariable 设置流程实例变量。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param name 变量名
// @param value 变量值
// @return 设置错误
SetVariable(ctx context.Context, processInstanceID, name string, value any) error
// DeleteVariable 删除流程实例变量。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param name 变量名
// @return 删除错误
DeleteVariable(ctx context.Context, processInstanceID, name string) error
// MessageEventReceived 投递消息,触发一个匹配订阅。
// @param ctx 上下文
// @param messageName 消息名
// @param variables 变量
// @return 触发数量
// @return 投递错误
MessageEventReceived(ctx context.Context, messageName string, variables []Variable) (int, error)
// SignalEventReceived 广播信号,触发全部匹配订阅。
// @param ctx 上下文
// @param signalName 信号名
// @param variables 变量
// @return 触发数量
// @return 投递错误
SignalEventReceived(ctx context.Context, signalName string, variables []Variable) (int, error)
// MessageEventReceivedForExecution 向指定执行投递消息。
// @param ctx 上下文
// @param executionID 执行 ID
// @param messageName 消息名
// @param variables 变量
// @return 投递错误
MessageEventReceivedForExecution(ctx context.Context, executionID, messageName string, variables []Variable) error
// SignalEventReceivedForExecution 向指定执行投递信号。
// @param ctx 上下文
// @param executionID 执行 ID
// @param signalName 信号名
// @param variables 变量
// @return 投递错误
SignalEventReceivedForExecution(ctx context.Context, executionID, signalName string, variables []Variable) error
// TriggerExecution 触发等待中的执行。
// @param ctx 上下文
// @param executionID 执行 ID
// @param variables 写入变量
// @return 触发错误
TriggerExecution(ctx context.Context, executionID string, variables []Variable) error
// TriggerExecutionWithTransient 触发等待中的执行并写入瞬态变量。
// @param ctx 上下文
// @param executionID 执行 ID
// @param variables 持久变量
// @param transientVariables 瞬态变量
// @return 触发错误
TriggerExecutionWithTransient(ctx context.Context, executionID string, variables, transientVariables []Variable) error
// SuspendProcessInstance 挂起流程实例。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 挂起错误
SuspendProcessInstance(ctx context.Context, processInstanceID string) error
// ActivateProcessInstance 激活流程实例。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 激活错误
ActivateProcessInstance(ctx context.Context, processInstanceID string) error
// MigrateProcessInstance 将运行中实例迁移到目标流程定义。
// @param ctx 上下文
// @param req 迁移请求
// @return 迁移错误
MigrateProcessInstance(ctx context.Context, req MigrationRequest) error
// ValidateMigration 校验实例迁移,不修改状态。
// @param ctx 上下文
// @param req 迁移请求
// @return 校验消息
// @return 查询错误
ValidateMigration(ctx context.Context, req MigrationRequest) ([]string, error)
// ChangeActivityState 将执行移动到新的活动。
// @param ctx 上下文
// @param executionID 执行 ID
// @param activityIDs 目标活动 ID 列表
// @return 迁移错误
ChangeActivityState(ctx context.Context, executionID string, activityIDs []string) error
// DoMoveActivity 普通节点跳转(对位 Java moveActivity:按来源活动定位执行并迁移到目标活动;
// 挂起实例拒绝,多条并行分支收拢显式拒绝)。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param fromActivityID 来源活动 ID
// @param toActivityID 目标活动 ID
// @return 迁移错误
DoMoveActivity(ctx context.Context, processInstanceID, fromActivityID, toActivityID string) error
// DoMoveExecution 执行迁移(对位 Java moveExecution:无来源节点,把实例根执行迁移到目标活动)。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param toActivityID 目标活动 ID
// @return 迁移错误
DoMoveExecution(ctx context.Context, processInstanceID, toActivityID string) error
// ChangeProcessInstanceState 将实例根执行移动到新的活动。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param activityIDs 目标活动 ID 列表
// @return 迁移错误
ChangeProcessInstanceState(ctx context.Context, processInstanceID string, activityIDs []string) error
// ListInstanceIdentityLinks 返回流程实例身份链接。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 链接列表
// @return 查询错误
ListInstanceIdentityLinks(ctx context.Context, processInstanceID string) ([]IdentityLink, error)
// AddInstanceIdentityLink 添加流程实例身份链接。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param link 链接
// @return 创建后的链接
// @return 创建错误
AddInstanceIdentityLink(ctx context.Context, processInstanceID string, link IdentityLink) (IdentityLink, error)
// DeleteInstanceIdentityLink 删除流程实例身份链接。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param family users 或 groups
// @param identityID 用户或组 ID
// @param linkType 链接类型
// @return 删除错误
DeleteInstanceIdentityLink(ctx context.Context, processInstanceID, family, identityID, linkType string) error
// ListEventSubscriptions 返回事件订阅。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID,空串表示全部
// @return 订阅列表
// @return 查询错误
ListEventSubscriptions(ctx context.Context, processInstanceID string) ([]EventSubscription, error)
// ListActivityInstances 返回运行中活动实例。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID,空串表示全部
// @return 活动实例列表
// @return 查询错误
ListActivityInstances(ctx context.Context, processInstanceID string) ([]ActivityInstance, error)
// GetActiveActivityIDs 返回执行及子执行的活动 ID。
// @param ctx 上下文
// @param executionID 执行 ID
// @return 活动 ID 列表
// @return 查询错误
GetActiveActivityIDs(ctx context.Context, executionID string) ([]string, error)
// ListVariableInstances 返回运行时变量实例。
// @param ctx 上下文
// @param filter 查询条件
// @return 变量实例列表
// @return 查询错误
ListVariableInstances(ctx context.Context, filter VariableInstanceFilter) ([]VariableInstance, error)
// GetVariableInstance 查询运行时变量实例。
// @param ctx 上下文
// @param variableID 变量实例 ID
// @return 变量实例
// @return 查询错误
GetVariableInstance(ctx context.Context, variableID string) (VariableInstance, error)
// GetEventSubscription 查询事件订阅。
// @param ctx 上下文
// @param subscriptionID 订阅 ID
// @return 订阅
// @return 查询错误
GetEventSubscription(ctx context.Context, subscriptionID string) (EventSubscription, error)
// EvaluateConditions 显式求值流程实例的全部条件事件订阅。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @return 求值错误
EvaluateConditions(ctx context.Context, processInstanceID string) error
// InjectUserTask 在流程实例中注入动态用户任务。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param req 注入请求
// @return 任务
// @return 注入错误
InjectUserTask(ctx context.Context, processInstanceID string, req InjectRequest) (Task, error)
// InjectUserTaskAfter 为指定实例派生定义,在用户节点后插入新用户节点。
// @param ctx 上下文
// @param processInstanceID 运行实例ID
// @param req 节点及预期定义
// @return 实例专用派生定义
// @return 校验或持久化错误
InjectUserTaskAfter(ctx context.Context, processInstanceID string, req InsertUserTaskRequest) (ProcessDefinition, error)
}
RuntimeService 提供流程实例与变量操作。
type StartProcessInstanceVo ¶
type StartProcessInstanceVo struct {
ProcessDefinitionKey string `json:"processDefinitionKey"` // 流程定义 Key(必填)
Title string `json:"title"` // 实例标题(必填,同时写入实例名)
Operator string `json:"operator"` // 发起人身份 Id(必填)
TenantID string `json:"tenantId"` // 租户 = 业务系统代号 systemSymbol(必填)
BusinessKey string `json:"businessKey"` // 业务单据 ID(必填)
Remark string `json:"remark,omitempty"` // 备注
Variables map[string]any `json:"variables,omitempty"` // 附加流程变量(entity/tableName 等由业务方注入)
}
StartProcessInstanceVo 是发起流程实例请求。 对应 Java model/entity/process/StartProcessInstanceVo.java,必填字段: ProcessDefinitionKey、Title、Operator、TenantID、BusinessKey。
type StartRequest ¶
type StartRequest struct {
ProcessDefinitionKey string // 流程定义 Key
ProcessDefinitionID string // 流程定义 ID,优先于 Key
MessageName string // 消息开始事件名称,无定义 ID 或 Key 时使用
BusinessKey string // 业务键
Name string // 实例名称
TenantID string // 租户
UserID string // 发起人,用于参与者身份链接
Variables []Variable // 启动变量
TransientVariables []Variable // 瞬态变量,仅启动命令内可见
}
StartRequest 是启动流程实例的请求。
type TableInfo ¶
type TableInfo struct {
Name string `json:"name"` // 表名
Count int64 `json:"count"` // 行数
URL string `json:"url,omitempty"` // 资源地址
}
TableInfo 描述一张 ACT_* 表及当前行数。
type TableMetaData ¶
type TableMetaData struct {
TableName string `json:"tableName"` // 表名
ColumnNames []string `json:"columnNames"` // 列名
ColumnTypes []string `json:"columnTypes"` // 列类型
}
TableMetaData 描述表的列元数据。
type Task ¶
type Task struct {
ID string `json:"id"` // 任务 ID
ExecutionID string `json:"executionId,omitempty"` // 所属执行 ID
ClaimTime *time.Time `json:"claimTime,omitempty"` // 最近签收时间
Suspended bool `json:"suspended,omitempty"` // 所属实例是否挂起
Name string `json:"name"` // 任务名称
Description string `json:"description"` // 描述
ProcessInstanceID string `json:"processInstanceId"` // 流程实例 ID
ProcessDefinitionID string `json:"processDefinitionId"` // 流程定义 ID
TaskDefinitionKey string `json:"taskDefinitionKey"` // BPMN 任务 ID
Assignee string `json:"assignee,omitempty"` // 处理人
Owner string `json:"owner,omitempty"` // 所有者
DelegationState string `json:"delegationState,omitempty"` // 委派状态:PENDING/RESOLVED
Priority int `json:"priority"` // 优先级
FormKey string `json:"formKey,omitempty"` // 表单 Key
Category string `json:"category,omitempty"` // 分类
ParentTaskID string `json:"parentTaskId,omitempty"` // 父任务 ID
TenantID string `json:"tenantId,omitempty"` // 租户
CreateTime time.Time `json:"createTime"` // 创建时间
DueDate *time.Time `json:"dueDate,omitempty"` // 到期时间
CandidateUsers []string `json:"candidateUsers,omitempty"` // 候选用户
CandidateGroups []string `json:"candidateGroups,omitempty"` // 候选组
Variables map[string]any `json:"variables,omitempty"` // 任务变量
}
Task 是用户任务。
type TaskEvent ¶
type TaskEvent struct {
ID int64 `json:"id"` // 事件 ID
Action string `json:"action"` // 动作
Timestamp time.Time `json:"timestamp"` // 发生时间
UserID string `json:"userId,omitempty"` // 操作人
TaskID string `json:"taskId,omitempty"` // 任务 ID
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
ProcessDefinitionID string `json:"processDefinitionId,omitempty"` // 流程定义 ID
TenantID string `json:"tenantId,omitempty"` // 租户
Data string `json:"data,omitempty"` // 附加数据
}
TaskEvent 是任务事件。
type TaskFilter ¶
type TaskFilter struct {
Assignee string // 处理人
Owner string // 所有者
ProcessInstanceID string // 流程实例 ID
ProcessDefinitionKey string // 流程定义 Key
CandidateUser string // 候选人
ParentTaskID string // 父任务 ID
DelegationState string // 委派状态
TenantID string // 租户
Start int // 偏移量
Size int // 每页数量
}
TaskFilter 是任务查询条件。
type TaskHook ¶
type TaskHook func(ctx context.Context, task *Task, ctl HookControl) error
TaskHook 任务生命周期全局钩子,对标 Flowable 全局事件监听(TASK_CREATED/TASK_COMPLETED)。 在创建/完成任务的引擎命令内同步调用:命令持有引擎互斥锁,钩子内禁止再调用引擎公有 API (会重入死锁),需要再次驱动引擎的联动必须通过 ctl.Defer 延迟到命令提交后执行。 @param ctx 命令上下文(与所在引擎命令共用,命令失败会整体回滚) @param task 任务快照(快照改写无效,改写任务状态必须经 ctl) @param ctl 钩子控制(命令内状态改写 + 命令后延迟动作) @return 错误(非空则当前引擎命令失败并整体回滚)
type TaskListener ¶
TaskListener 是 BPMN 任务监听器。
type TaskService ¶
type TaskService interface {
// ListTasks 按条件查询任务。
// @param ctx 上下文
// @param filter 查询条件
// @return 分页结果
// @return 查询错误
ListTasks(ctx context.Context, filter TaskFilter) (Page[Task], error)
// GetTask 查询任务。
// @param ctx 上下文
// @param id 任务 ID
// @return 任务
// @return 查询错误
GetTask(ctx context.Context, id string) (Task, error)
// CreateTask 创建独立任务。
// @param ctx 上下文
// @param req 创建请求
// @return 任务
// @return 创建错误
CreateTask(ctx context.Context, req CreateTaskRequest) (Task, error)
// UpdateTask 更新任务属性。
// @param ctx 上下文
// @param taskID 任务 ID
// @param update 更新内容
// @return 更新后的任务
// @return 更新错误
UpdateTask(ctx context.Context, taskID string, update TaskUpdate) (Task, error)
// DeleteTask 删除任务。
// @param ctx 上下文
// @param taskID 任务 ID
// @param cascadeHistory 是否级联删除历史
// @param deleteReason 删除原因
// @return 删除错误
DeleteTask(ctx context.Context, taskID string, cascadeHistory bool, deleteReason string) error
// ListSubTasks 返回子任务。
// @param ctx 上下文
// @param taskID 父任务 ID
// @return 子任务列表
// @return 查询错误
ListSubTasks(ctx context.Context, taskID string) ([]Task, error)
// Claim 签收任务。
// @param ctx 上下文
// @param taskID 任务 ID
// @param userID 签收人
// @return 签收错误
Claim(ctx context.Context, taskID, userID string) error
// Complete 完成任务。
// @param ctx 上下文
// @param taskID 任务 ID
// @param req 完成请求
// @return 完成错误
Complete(ctx context.Context, taskID string, req CompleteTaskRequest) error
// GetTaskVariable 返回任务变量。
// @param ctx 上下文
// @param taskID 任务 ID
// @param name 变量名
// @return 变量值
// @return 查询错误
GetTaskVariable(ctx context.Context, taskID, name string) (any, error)
// GetTaskVariables 返回任务可见变量。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 变量快照
// @return 查询错误
GetTaskVariables(ctx context.Context, taskID string) (map[string]any, error)
// SetTaskVariable 设置任务局部变量。
// @param ctx 上下文
// @param taskID 任务 ID
// @param name 变量名
// @param value 变量值
// @return 设置错误
SetTaskVariable(ctx context.Context, taskID, name string, value any) error
// DeleteTaskVariable 删除任务局部变量。
// @param ctx 上下文
// @param taskID 任务 ID
// @param name 变量名
// @return 删除错误
DeleteTaskVariable(ctx context.Context, taskID, name string) error
// DeleteAllTaskVariables 清空任务局部变量。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 删除错误
DeleteAllTaskVariables(ctx context.Context, taskID string) error
// ListTaskEvents 返回任务事件。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 事件列表
// @return 查询错误
ListTaskEvents(ctx context.Context, taskID string) ([]TaskEvent, error)
// GetTaskEvent 查询单个任务事件。
// @param ctx 上下文
// @param taskID 任务 ID
// @param eventID 事件 ID
// @return 事件
// @return 查询错误
GetTaskEvent(ctx context.Context, taskID string, eventID int64) (TaskEvent, error)
// DeleteTaskEvent 删除任务事件。
// @param ctx 上下文
// @param taskID 任务 ID
// @param eventID 事件 ID
// @return 删除错误
DeleteTaskEvent(ctx context.Context, taskID string, eventID int64) error
// ListIdentityLinks 返回任务参与者关联。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 关联列表
// @return 查询错误
ListIdentityLinks(ctx context.Context, taskID string) ([]IdentityLink, error)
// AddCandidateUser 添加候选用户。
// @param ctx 上下文
// @param taskID 任务 ID
// @param userID 用户 ID
// @return 添加错误
AddCandidateUser(ctx context.Context, taskID, userID string) error
// DeleteCandidateUser 移除候选用户。
// @param ctx 上下文
// @param taskID 任务 ID
// @param userID 用户 ID
// @return 删除错误
DeleteCandidateUser(ctx context.Context, taskID, userID string) error
// AddCandidateGroup 添加候选组。
// @param ctx 上下文
// @param taskID 任务 ID
// @param groupID 组 ID
// @return 添加错误
AddCandidateGroup(ctx context.Context, taskID, groupID string) error
// DeleteCandidateGroup 移除候选组。
// @param ctx 上下文
// @param taskID 任务 ID
// @param groupID 组 ID
// @return 删除错误
DeleteCandidateGroup(ctx context.Context, taskID, groupID string) error
// Delegate 委派任务。
// @param ctx 上下文
// @param taskID 任务 ID
// @param userID 被委托人
// @return 委派错误
Delegate(ctx context.Context, taskID, userID string) error
// Resolve 处理委派任务,将处理人恢复为所有者。
// @param ctx 上下文
// @param taskID 任务 ID
// @param userID 操作人,非空时必须为所有者
// @return 处理错误
Resolve(ctx context.Context, taskID, userID string) error
// ResolveWithVariables 处理委派任务并同步写入任务局部变量(对位 Activiti resolveTask(taskId, variables),
// 供 Java 契约 ProcessesUtil#resolveTask:2318 使用;变量写入与归还状态变更在同一命令事务内生效)。
// @param ctx 上下文
// @param taskID 任务 ID
// @param userID 操作人,非空时必须为所有者
// @param variables 任务局部变量集合(可空)
// @return 处理错误
ResolveWithVariables(ctx context.Context, taskID, userID string, variables []Variable) error
// IsMultiInstanceLastPerson 判断任务是否为其节点的最后一名待办成员(对位 Java
// ProcessesUtil#isMultiInstanceLastPerson:非会签用户任务恒 true;会签按完成条件比例
// 以 (completed+1)/all 整数除法判定;无完成条件或非用户任务返回 false;任务不存在返回 false)。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 是否最后一名待办成员
// @return 查询错误
IsMultiInstanceLastPerson(ctx context.Context, taskID string) (bool, error)
// AddComment 添加任务评论。
// @param ctx 上下文
// @param taskID 任务 ID
// @param userID 作者
// @param message 内容
// @return 评论
// @return 添加错误
AddComment(ctx context.Context, taskID, userID, message string) (Comment, error)
// AddCommentDetail 添加评论并显式指定类型与完整原文(对位 Java AddHisCommentCmd:
// TYPE_ 缺省 SP、MESSAGE_ 存归一化内容、FULL_MSG_ 存原文、ACTION_='AddComment')。
// @param ctx 上下文
// @param taskID 任务 ID(任务级评论,可为空)
// @param processInstanceID 流程实例 ID(taskID 为空时必填)
// @param userID 作者
// @param typ 类型代码(空时默认 SP)
// @param message 归一化后的展示内容
// @param fullMessage 原始内容
// @return 评论
// @return 添加错误
AddCommentDetail(ctx context.Context, taskID, processInstanceID, userID, typ, message, fullMessage string) (Comment, error)
// AddProcessComment 添加流程实例评论。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param userID 作者
// @param message 内容
// @return 评论
// @return 添加错误
AddProcessComment(ctx context.Context, processInstanceID, userID, message string) (Comment, error)
// ListProcessComments 返回流程实例评论。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 评论列表
// @return 查询错误
ListProcessComments(ctx context.Context, processInstanceID string) ([]Comment, error)
// ListInstanceComments 返回流程实例下的全部评论,含任务评论。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 评论列表
// @return 查询错误
ListInstanceComments(ctx context.Context, processInstanceID string) ([]Comment, error)
// ListComments 返回任务评论。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 评论列表
// @return 查询错误
ListComments(ctx context.Context, taskID string) ([]Comment, error)
// GetComment 查询单条评论。
// @param ctx 上下文
// @param commentID 评论 ID
// @return 评论
// @return 查询错误
GetComment(ctx context.Context, commentID string) (Comment, error)
// DeleteComment 删除评论。
// @param ctx 上下文
// @param commentID 评论 ID
// @return 删除错误
DeleteComment(ctx context.Context, commentID string) error
// AddProcessAttachment 添加流程实例附件。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param attachment 附件
// @return 附件
// @return 添加错误
AddProcessAttachment(ctx context.Context, processInstanceID string, attachment Attachment) (Attachment, error)
// ListProcessAttachments 返回流程实例附件。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 附件列表
// @return 查询错误
ListProcessAttachments(ctx context.Context, processInstanceID string) ([]Attachment, error)
// AddAttachment 添加任务附件。
// @param ctx 上下文
// @param taskID 任务 ID
// @param attachment 附件
// @return 附件
// @return 添加错误
AddAttachment(ctx context.Context, taskID string, attachment Attachment) (Attachment, error)
// DeleteAttachment 删除附件。
// @param ctx 上下文
// @param attachmentID 附件 ID
// @return 删除错误
DeleteAttachment(ctx context.Context, attachmentID string) error
// ListAttachments 返回任务附件。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 附件列表
// @return 查询错误
ListAttachments(ctx context.Context, taskID string) ([]Attachment, error)
// GetAttachment 查询单个附件。
// @param ctx 上下文
// @param attachmentID 附件 ID
// @return 附件
// @return 查询错误
GetAttachment(ctx context.Context, attachmentID string) (Attachment, error)
// SetAttachmentContent 设置附件二进制内容。
// @param ctx 上下文
// @param attachmentID 附件 ID
// @param data 内容
// @return 设置错误
SetAttachmentContent(ctx context.Context, attachmentID string, data []byte) error
// GetAttachmentContent 返回附件二进制内容。
// @param ctx 上下文
// @param attachmentID 附件 ID
// @return 内容
// @return 查询错误
GetAttachmentContent(ctx context.Context, attachmentID string) ([]byte, error)
// RegisterTaskListener 注册 BPMN 任务监听器。
// @param name 监听器名(class/delegateExpression)
// @param listener 监听器
RegisterTaskListener(name string, listener TaskListener)
}
TaskService 提供用户任务操作。
type TaskUpdate ¶
type TaskUpdate struct {
Name *string // 名称
Description *string // 描述
Assignee *string // 处理人
Owner *string // 所有者
Priority *int // 优先级
DueDate *time.Time // 到期时间
ClearDueDate bool // 清空到期时间
Category *string // 分类
FormKey *string // 表单 Key
UserID string // 操作人,用于审计日志
}
TaskUpdate 是任务属性更新,nil 表示不修改。
type User ¶
type User struct {
ID string `json:"id"` // 用户 ID
FirstName string `json:"firstName,omitempty"` // 名
LastName string `json:"lastName,omitempty"` // 姓
DisplayName string `json:"displayName,omitempty"` // 显示名
Email string `json:"email,omitempty"` // 邮箱
Password string `json:"password,omitempty"` // 明文密码(仅写入)
PasswordHash string `json:"-"` // 密码哈希
Roles []string `json:"roles,omitempty"` // 角色
Disabled bool `json:"disabled,omitempty"` // 是否禁用
FailedAttempts int `json:"-"` // 连续失败次数
LockedUntil *time.Time `json:"-"` // 锁定截止时间
TenantID string `json:"tenantId,omitempty"` // 租户
}
User 是身份用户。
type Variable ¶
type Variable struct {
Name string `json:"name"` // 变量名
Type string `json:"type,omitempty"` // 类型,留空由引擎推断
Value any `json:"value"` // 变量值
Scope string `json:"scope,omitempty"` // global 或 local
}
Variable 表示一个流程变量。
type VariableConflictError ¶
VariableConflictError 提供变量创建冲突的结构化位置,供调用方生成对应协议的错误响应。
func (*VariableConflictError) Error ¶
func (e *VariableConflictError) Error() string
Error 返回变量冲突的中文说明。 @return 错误文本
func (*VariableConflictError) Unwrap ¶
func (e *VariableConflictError) Unwrap() error
Unwrap 保持公共冲突哨兵语义,便于跨协议判断错误类别。 @return 冲突错误哨兵
type VariableInstance ¶
type VariableInstance struct {
ID string `json:"id"` // 变量实例 ID
Name string `json:"name"` // 变量名
Type string `json:"type,omitempty"` // 变量类型
Value any `json:"value,omitempty"` // 变量值
ProcessInstanceID string `json:"processInstanceId,omitempty"` // 流程实例 ID
ExecutionID string `json:"executionId,omitempty"` // 执行 ID
TaskID string `json:"taskId,omitempty"` // 任务 ID
Scope string `json:"scope,omitempty"` // 作用域
}
VariableInstance 是运行时变量实例。
type VariableInstanceFilter ¶
type VariableInstanceFilter struct {
ProcessInstanceID string // 流程实例 ID
ExecutionID string // 执行 ID
TaskID string // 任务 ID
Name string // 变量名
NameLike string // 变量名模糊匹配
}
VariableInstanceFilter 是变量实例查询条件。
type WorkflowExtService ¶
type WorkflowExtService interface {
// BackUserTaskToActivity 任意退回:把当前任务退回到目标活动。
// @param ctx 上下文
// @param taskID 当前运行任务 ID
// @param targetActivityID 目标活动 ID
// @return 实际落位节点 ID
// @return 退回错误
BackUserTaskToActivity(ctx context.Context, taskID, targetActivityID string) (string, error)
// RollbackTask 撤回:把已完成的当前任务撤回到待办状态,删除其后继任务与历史。
// @param ctx 上下文
// @param taskID 已完成任务的 ID(历史任务 ID)
// @param assignee 撤回后任务的办理人,空串取历史任务办理人
// @return 撤回错误
RollbackTask(ctx context.Context, taskID, assignee string) error
// CompleteToTarget 直送:办结当前任务并把执行迁移到目标活动继续。
// @param ctx 上下文
// @param taskID 当前运行任务 ID
// @param targetActivityID 目标活动 ID
// @param variables 直送时写入的流程变量
// @return 直送错误
CompleteToTarget(ctx context.Context, taskID, targetActivityID string, variables map[string]any) error
// ResetProcess 重置流程:清场全部活动任务并把全部执行迁回开始事件的首个出线目标。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @param operator 操作人(业务操作记录由 workflow 层落库)
// @return 重置错误
ResetProcess(ctx context.Context, processInstanceID, operator string) error
// StopProcessToEvent 软终止:全部活动执行迁至首个正常结束事件走完,保留 end 事件历史。
// @param ctx 上下文
// @param processInstanceID 实例 ID
// @return 终止错误
StopProcessToEvent(ctx context.Context, processInstanceID string) error
// ReactivateProcessInstance 历史实例复活:按历史实例重建运行实例并可指定落位活动。
// @param ctx 上下文
// @param historicProcessInstanceID 历史实例 ID
// @param targetActivityID 落位活动 ID,空串表示回开始事件后首个用户任务
// @param operator 操作人(重写发起人)
// @return 复活错误
ReactivateProcessInstance(ctx context.Context, historicProcessInstanceID, targetActivityID, operator string) error
}
WorkflowExtService 提供 workflow 二次封装的引擎级扩展能力。 对位 Java BackUserTaskCmd / RollbackCmd / completeToTargetActivity / doResetProcess / doStopProcessByTaskId / ReactivateProcessInstanceCmd,全部在单条引擎命令内原子完成。
type WorkflowFacade ¶
type WorkflowFacade interface {
// StartProcess 发起流程实例(注入 initiator/businessKey/title 等协议变量)。
// @param ctx 上下文
// @param vo 发起请求
// @return 统一返回(data 含 processInstanceId)
// @return 错误
StartProcess(ctx context.Context, vo *StartProcessInstanceVo) (R, error)
// StartProcessAndFirstStep 发起流程并预存首步下一步信息。
// @param ctx 上下文
// @param vo 发起请求
// @return 统一返回
// @return 错误
StartProcessAndFirstStep(ctx context.Context, vo *StartProcessInstanceVo) (R, error)
// Complete 办结任务(写意见、表单状态,按 request 预存下一步)。
// @param ctx 上下文
// @param vo 办结请求
// @return 统一返回
// @return 错误
Complete(ctx context.Context, vo *CompleteTaskVo) (R, error)
// BackToStepTask 退回任务到指定步骤(任意节点退回)。
// @param ctx 上下文
// @param vo 退回请求
// @return 统一返回
// @return 错误
BackToStepTask(ctx context.Context, vo *BackTaskVo) (R, error)
// BackTask 退回任务到上一节点(仅串行流程)。
// @param ctx 上下文
// @param vo 退回请求
// @return 统一返回
// @return 错误
BackTask(ctx context.Context, vo *BackTaskVo) (R, error)
// DoRollbackTask 撤回任务(发起人/特权人撤回已办任务,策略族执行)。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param taskID 待撤回任务 ID
// @param operator 操作人身份 Id
// @return 统一返回
// @return 错误
DoRollbackTask(ctx context.Context, processInstanceID, taskID, operator string) (R, error)
// CompleteToTargetActivity 直送:办结并提交至指定目标节点。
// @param ctx 上下文
// @param vo 办结请求(TargetActivityID 必填)
// @return 统一返回
// @return 错误
CompleteToTargetActivity(ctx context.Context, vo *CompleteTaskVo) (R, error)
// DoResetProcess 重置流程实例(清空运行态回到发起节点)。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param operator 操作人身份 Id
// @return 统一返回
// @return 错误
DoResetProcess(ctx context.Context, processInstanceID, operator string) (R, error)
// GetTodoTaskListByIdentityID 按身份 Id 分页查询待办任务。
// @param ctx 上下文
// @param identityID 身份 Id
// @param query 分页参数
// @return 统一返回(data 为分页任务列表)
// @return 错误
GetTodoTaskListByIdentityID(ctx context.Context, identityID string, query PageQuery) (R, error)
// GetDoneTaskListByIdentityID 按身份 Id 分页查询已办任务。
// @param ctx 上下文
// @param identityID 身份 Id
// @param query 分页参数
// @return 统一返回(data 为分页任务列表)
// @return 错误
GetDoneTaskListByIdentityID(ctx context.Context, identityID string, query PageQuery) (R, error)
// GetNextUserTaskAndUserList 推演当前任务之后的节点与候选处理人。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 统一返回(data 为节点与用户列表)
// @return 错误
GetNextUserTaskAndUserList(ctx context.Context, taskID string) (R, error)
// SaveAgreeNextActivity 预存"同意"方向的下一步节点与处理人(目标为 end 时跳过)。
// @param ctx 上下文
// @param req 预存请求
// @return 统一返回
// @return 错误
SaveAgreeNextActivity(ctx context.Context, req *NextActivityRequest) (R, error)
// IsProcessDeployed 判断流程定义是否已部署。
// @param ctx 上下文
// @param tenantID 租户(业务系统代号)
// @param processDefinitionKey 流程定义 Key
// @return 统一返回(data 为 bool)
// @return 错误
IsProcessDeployed(ctx context.Context, tenantID, processDefinitionKey string) (R, error)
// IsExistRunningProcess 判断业务键下是否存在运行中实例。
// @param ctx 上下文
// @param tenantID 租户(业务系统代号)
// @param processDefinitionKey 流程定义 Key
// @param businessKey 业务单据 ID
// @return 统一返回(data 为 bool)
// @return 错误
IsExistRunningProcess(ctx context.Context, tenantID, processDefinitionKey, businessKey string) (R, error)
// GetWorkflowStatusByBusinessID 查询业务单据的流程状态。
// @param ctx 上下文
// @param tenantID 租户(业务系统代号)
// @param processDefinitionKey 流程定义 Key
// @param businessKey 业务单据 ID
// @return 统一返回(data 为状态描述)
// @return 错误
GetWorkflowStatusByBusinessID(ctx context.Context, tenantID, processDefinitionKey, businessKey string) (R, error)
// UpdateProcessGlobalVariable 更新流程实例全局变量。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param variables 变量名到值
// @return 统一返回
// @return 错误
UpdateProcessGlobalVariable(ctx context.Context, processInstanceID string, variables map[string]any) (R, error)
// GetProcessGlobalVariableByProcessInstanceID 按实例查询全局变量。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param names 变量名列表,nil 表示全部
// @return 统一返回(data 为变量映射)
// @return 错误
GetProcessGlobalVariableByProcessInstanceID(ctx context.Context, processInstanceID string, names []string) (R, error)
// GetProcessGlobalVariableByBusinessID 按业务键查询运行实例的全局变量。
// @param ctx 上下文
// @param tenantID 租户(业务系统代号)
// @param businessKey 业务单据 ID
// @param names 变量名列表,nil 表示全部
// @return 统一返回(data 为变量映射)
// @return 错误
GetProcessGlobalVariableByBusinessID(ctx context.Context, tenantID, businessKey string, names []string) (R, error)
// UpdateWorkflowDocumentByProcessInstanceIDOrTaskID 按实例 ID 或任务 ID 回写业务表单状态。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID(与 taskID 至少一个非空)
// @param taskID 任务 ID
// @param document 回写数据
// @return 统一返回
// @return 错误
UpdateWorkflowDocumentByProcessInstanceIDOrTaskID(ctx context.Context, processInstanceID, taskID string, document map[string]any) (R, error)
// DoTaskOwnerAdjustment 按节点调整运行中任务的处理人。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param taskKey 目标节点 Key
// @param fromOwner 原处理人,空表示不限
// @param toOwner 新处理人
// @param operator 操作人身份 Id
// @return 统一返回
// @return 错误
DoTaskOwnerAdjustment(ctx context.Context, processInstanceID, taskKey, fromOwner, toOwner, operator string) (R, error)
// DoTaskOwnerAdjustmentByID 按任务 ID 调整处理人。
// @param ctx 上下文
// @param taskID 任务 ID
// @param toOwner 新处理人
// @param operator 操作人身份 Id
// @return 统一返回
// @return 错误
DoTaskOwnerAdjustmentByID(ctx context.Context, taskID, toOwner, operator string) (R, error)
// GetTaskMessageListByBusinessID 按业务单据查询任务消息扩展列表。
// @param ctx 上下文
// @param tenantID 租户(业务系统代号)
// @param businessKey 业务单据 ID
// @return 统一返回(data 为消息列表)
// @return 错误
GetTaskMessageListByBusinessID(ctx context.Context, tenantID, businessKey string) (R, error)
// GetTaskHistoryListByProcessInstanceID 按实例查询任务历史扩展列表。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @return 统一返回(data 为历史列表)
// @return 错误
GetTaskHistoryListByProcessInstanceID(ctx context.Context, processInstanceID string) (R, error)
// GetTaskHistoryListByBusinessID 按业务单据查询任务历史扩展列表。
// @param ctx 上下文
// @param tenantID 租户(业务系统代号)
// @param businessKey 业务单据 ID
// @return 统一返回(data 为历史列表)
// @return 错误
GetTaskHistoryListByBusinessID(ctx context.Context, tenantID, businessKey string) (R, error)
// GetTaskHistoryListByTaskID 按任务查询历史扩展记录。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 统一返回(data 为历史记录)
// @return 错误
GetTaskHistoryListByTaskID(ctx context.Context, taskID string) (R, error)
// GetTaskInfoByTaskID 按任务 ID 查询任务详情(含 workflow 扩展列)。
// Java 方法名 geTaskInfoByTaskId(拼写保留)。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 统一返回(data 为任务详情)
// @return 错误
GetTaskInfoByTaskID(ctx context.Context, taskID string) (R, error)
// GetBackNodes 查询任务的可退回节点列表(前端"退回"按钮数据源)。
// @param ctx 上下文
// @param taskID 当前任务 ID
// @return 统一返回(data 为可退节点视图列表)
// @return 错误
GetBackNodes(ctx context.Context, taskID string) (R, error)
// DoStopProcessInstance 软终止流程实例(按实例 ID,写终态留痕)。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param operator 操作人身份 Id
// @param message 终止意见
// @return 统一返回
// @return 错误
DoStopProcessInstance(ctx context.Context, processInstanceID, operator, message string) (R, error)
// DoStopTaskByTaskID 按任务软终止其所在流程实例。
// @param ctx 上下文
// @param taskID 任务 ID
// @param operator 操作人身份 Id
// @return 统一返回
// @return 错误
DoStopTaskByTaskID(ctx context.Context, taskID, operator string) (R, error)
// DoDeleteProcessInstance 删除流程实例(运行态删除 + 历史留痕)。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param operator 操作人身份 Id
// @param reason 删除原因
// @return 统一返回
// @return 错误
DoDeleteProcessInstance(ctx context.Context, processInstanceID, operator, reason string) (R, error)
// DoDeleteProcessByBusinessID 按业务单据删除其流程实例。
// @param ctx 上下文
// @param tenantID 租户(业务系统代号)
// @param businessKey 业务单据 ID
// @param operator 操作人身份 Id
// @return 统一返回
// @return 错误
DoDeleteProcessByBusinessID(ctx context.Context, tenantID, businessKey, operator string) (R, error)
// DoSuspendProcessInstance 挂起流程实例。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param operator 操作人身份 Id
// @return 统一返回
// @return 错误
DoSuspendProcessInstance(ctx context.Context, processInstanceID, operator string) (R, error)
// DoActivateProcessInstance 恢复挂起的流程实例。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param operator 操作人身份 Id
// @return 统一返回
// @return 错误
DoActivateProcessInstance(ctx context.Context, processInstanceID, operator string) (R, error)
// DoReactivateProcess 重激活已结束实例到指定节点(原实例复活,ID 不变)。
// @param ctx 上下文
// @param historicProcessInstanceID 历史实例 ID
// @param targetActivityID 重激活目标节点 ID(空表示回开始事件后首个用户任务)
// @param operator 操作人身份 Id
// @return 统一返回(data 含 processInstanceId)
// @return 错误
DoReactivateProcess(ctx context.Context, historicProcessInstanceID, targetActivityID, operator string) (R, error)
// AddExecution 加签:为当前任务追加办理人(前加签/后加签)。
// @param ctx 上下文
// @param req 加签请求
// @return 统一返回(data 为加签结果)
// @return 错误
AddExecution(ctx context.Context, req AddSignRequest) (R, error)
// DelExecution 减签:移除被加签人子任务并按需恢复父任务。
// @param ctx 上下文
// @param req 减签请求
// @return 统一返回(data 为减签结果)
// @return 错误
DelExecution(ctx context.Context, req DelSignRequest) (R, error)
// AddMultiInstanceMember 向多实例(会签)活动动态追加一个实例成员。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param activityID 多实例活动 ID
// @param assignee 新成员身份 Id
// @return 统一返回
// @return 错误
AddMultiInstanceMember(ctx context.Context, processInstanceID, activityID, assignee string) (R, error)
// RemoveMultiInstanceMember 移除多实例(会签)活动的一个实例成员。
// @param ctx 上下文
// @param processInstanceID 流程实例 ID
// @param activityID 多实例活动 ID
// @param assignee 成员身份 Id
// @param executionID 被移除实例的执行 ID
// @param completed 移除时是否视作已完成
// @return 统一返回
// @return 错误
RemoveMultiInstanceMember(ctx context.Context, processInstanceID, activityID, assignee, executionID string, completed bool) (R, error)
// CompleteSign 会签比例结论:按已办比例判定会签是否通过。
// @param ctx 上下文
// @param taskID 会签任务 ID
// @param countersignResult 会签结论:0 否决 / 1 通过
// @return 统一返回(data 为是否达成比例)
// @return 错误
CompleteSign(ctx context.Context, taskID string, countersignResult int) (R, error)
// GetNextUserTaskAndUserListByKey 未发起实例按流程定义推演(不含办结伪节点)。
// @param ctx 上下文
// @param tenantID 租户(业务系统代号)
// @param processDefinitionKey 流程定义 Key(取最新版本)
// @param businessKey 业务单据 Id(预留透传)
// @param vars 表单/条件变量
// @return 统一返回(data 为节点与用户视图列表)
// @return 错误
GetNextUserTaskAndUserListByKey(ctx context.Context, tenantID, processDefinitionKey, businessKey string, vars map[string]any) (R, error)
// DoAddComment 写入审批意见(对位 Java addComment → AddHisCommentCmd:TYPE_ 缺省 SP、
// MESSAGE_ 压平截断 3900、FULL_MSG_ 存原文)。
// @param ctx 上下文
// @param taskID 任务 ID(可为空)
// @param userID 作者身份 Id
// @param processInstanceID 流程实例 ID(taskID 为空时必填)
// @param typ 意见类型代码(空时默认 SP)
// @param msg 意见内容
// @return 统一返回(data 为落库评论)
// @return 错误
DoAddComment(ctx context.Context, taskID, userID, processInstanceID, typ, msg string) (R, error)
// IsMultiInstanceLastPerson 判断会签任务是否为最后一名待办成员(对位
// ProcessesUtil#isMultiInstanceLastPerson:非会签用户任务恒 true;会签按完成条件比例整数除法判定)。
// @param ctx 上下文
// @param taskID 任务 ID
// @return 统一返回(data 为布尔值)
// @return 错误
IsMultiInstanceLastPerson(ctx context.Context, taskID string) (R, error)
// TriggerDelegateScan 触发一次定时委托扫描(对位 Java
// FlowableScheduleTask.scheduledDelegatedTask:扫描未委托活跃待办,getTaskConsignerId
// 三级命中后按 doTaskOwnerAdjustmentById 语义改派)。
// @param ctx 上下文
// @return 统一返回(data 为扫描汇总 scanned/adjusted/failed/errors)
// @return 错误
TriggerDelegateScan(ctx context.Context) (R, error)
}
WorkflowFacade 是 workflow 二次封装对外门面,两路复用: REST /workflow/{模块}/{方法}(D8 Java 兼容路径)与嵌入式 api.Engine 使用者。 对应 Java Dubbo 门面 ProcessesService(方法按 005 §2.2 分组裁剪:排除桩端点与 Dubbo 专属)。 全部方法返回协议层 R + Go 侧 error;未实现阶段统一返回 WORKFLOW-0501 错误。