approveflow/app/provider/flow_instance/contract.go

55 lines
3.0 KiB
Go

package flow_instance
import (
"approveflow/app/provider/flow_definition"
"approveflow/app/provider/flow_instance/model"
"context"
"github.com/Superdanda/hade/framework/gin"
)
const FlowInstanceKey = "flowInstance"
type Service interface {
// CreateInstance 功能:创建新的审批流程实例。
CreateInstance(ctx *gin.Context, approvalFlow *flow_definition.ApprovalFlow, data map[string]interface{}) (*model.ApprovalInstance, error)
// StartInstance 功能:启动新的审批流程实例。
StartInstance(ctx context.Context, instanceID int64) (*model.ApprovalInstance, error)
// GetInstance 功能:获取指定流程实例的详细信息。
GetInstance(ctx context.Context, instanceID int64) (*model.ApprovalInstance, error)
// GetInstancePage 功能:分页查询流程实例的详细信息。
GetInstancePage(ctx context.Context, pageNum, pageSize int, instance *model.ApprovalInstance) ([]*model.ApprovalInstance, int64, error)
// CancelInstance 功能:取消正在进行的流程实例。
CancelInstance(ctx context.Context, instanceID int64) error
// ApproveStep 功能:审批人批准当前步骤
ApproveStep(ctx context.Context, instanceID int64, stepID int64, comments string) error
// RejectStep 功能:审批人驳回当前步骤。
RejectStep(ctx context.Context, instanceID int64, stepID int64, comments string) error
// GetCurrentStep 功能:获取流程实例的当前审批步骤。
GetCurrentStep(ctx context.Context, instanceID int64) ([]*model.InstanceStep, error)
// AddCustomStep 功能:在流程实例中添加自定义审批步骤。
AddCustomStep(ctx context.Context, instanceID int64, step *model.InstanceStep, fromStepKey, toStepKey string) (*model.ApprovalInstance, error)
// GetCustomSteps 功能:获取流程实例中的所有自定义审批步骤。
GetCustomSteps(ctx context.Context, instanceID int64) ([]*model.InstanceStep, error)
// RemoveCustomStep 功能:移除流程实例中的自定义审批步骤。
RemoveCustomStep(ctx context.Context, instanceID int64, stepID int64) error
// PerformReversal 功能:执行回溯操作,将流程回退到指定步骤。
PerformReversal(ctx context.Context, instanceID int64, stepID int64, reason string) error
// GetReversalInfo 功能:获取流程实例的回溯信息。
GetReversalInfo(instanceID int64) (model.ApprovalReversal, error)
// CreateBatchApprovalTask 功能:创建批量审批任务。
CreateBatchApprovalTask(ctx context.Context, approverKey string, stepIDs []int64) (*model.BatchApprovalTask, error)
// ExecuteBatchApprovalTask 功能:执行批量审批任务。
ExecuteBatchApprovalTask(ctx context.Context, taskID int64, approverKey string, comments string) error
// GetBatchApprovalTasks 功能:获取审批人的所有批量审批任务。
GetBatchApprovalTasks(ctx context.Context, approverKey string) ([]model.BatchApprovalTask, error)
// GetApprovalRecords 功能:获取流程实例的所有审批记录。
GetApprovalRecords(ctx context.Context, instanceID int64) ([]*model.ApprovalRecord, error)
}