111 lines
3.2 KiB
Go
111 lines
3.2 KiB
Go
package common
|
||
|
||
import (
|
||
"WiiGoLibrary/apply/middle/process/v1"
|
||
"time"
|
||
)
|
||
|
||
// 工作流查询请求
|
||
type QueryWorkflowsRequest struct {
|
||
WorkflowName string // 工作流名称,模糊查询
|
||
WorkflowType int // 工作流类型,-1表示所有类型
|
||
IsActive bool // 是否只查询启用的工作流
|
||
Limit int // 分页参数,每页数量
|
||
Offset int // 分页参数,偏移量
|
||
}
|
||
|
||
// 工作流节点创建请求
|
||
type CreateNodeRequest struct {
|
||
WorkflowGuid string // 所属工作流ID
|
||
NodeName string // 节点名称
|
||
NodeType int // 节点类型
|
||
NodeOrder int // 节点顺序
|
||
ApproverType int // 审批人类型
|
||
ApproverValue string // 审批人值
|
||
ConditionExp string // 条件表达式
|
||
Description string // 节点描述
|
||
}
|
||
|
||
// 创建工作流请求
|
||
type CreateWorkflowRequest struct {
|
||
WorkflowName string // 工作流名称
|
||
WorkflowType int // 工作流类型
|
||
Description string // 工作流描述
|
||
CreatorGuid string // 创建人GUID
|
||
}
|
||
|
||
// 工作流实例查询请求
|
||
type QueryInstancesRequest struct {
|
||
WorkflowGuid string // 工作流ID,可选
|
||
BusinessType int // 业务类型,-1表示所有类型
|
||
BusinessID string // 业务ID,可选
|
||
InitiatorGuid string // 发起人ID,可选
|
||
Status int // 状态,-1表示所有状态
|
||
Limit int // 分页参数,每页数量
|
||
Offset int // 分页参数,偏移量
|
||
}
|
||
|
||
// WorkflowModel 简化接口
|
||
type WorkflowModel interface {
|
||
GetGuid() string
|
||
}
|
||
|
||
// WorkflowNodeModel 简化接口
|
||
type WorkflowNodeModel interface {
|
||
GetGuid() string
|
||
GetType() int16
|
||
GetApproverType() int16
|
||
GetApproverValue() string
|
||
}
|
||
|
||
// WorkflowInstanceModel 简化接口
|
||
type WorkflowInstanceModel interface {
|
||
GetGuid() string
|
||
GetWorkflowGuid() string
|
||
GetCurrentNodeID() string
|
||
GetInitiatorGuid() string
|
||
GetStatus() int16
|
||
GetCreateTime() time.Time
|
||
GetUpdateTime() time.Time
|
||
GetCompletionTime() time.Time
|
||
}
|
||
|
||
// ApprovalRecordModel 简化接口
|
||
type ApprovalRecordModel interface {
|
||
GetGuid() string
|
||
GetStatus() int16
|
||
GetComment() string
|
||
GetApproverGuid() string
|
||
GetCreateTime() time.Time
|
||
GetActionTime() time.Time
|
||
}
|
||
|
||
// WorkflowService 工作流服务接口
|
||
// 这个接口会由oa包实现,hr包通过这个接口调用oa包的功能
|
||
// 解除hr和oa包之间的循环依赖
|
||
type WorkflowService interface {
|
||
// 创建工作流
|
||
CreateWorkflow(params CreateWorkflowRequest) (WorkflowModel, *process.Process)
|
||
|
||
// 查询工作流列表
|
||
QueryWorkflows(params QueryWorkflowsRequest) ([]WorkflowModel, *process.Process)
|
||
|
||
// 创建工作流节点
|
||
CreateWorkflowNode(params CreateNodeRequest) (WorkflowNodeModel, *process.Process)
|
||
|
||
// 启动工作流实例
|
||
StartWorkflowInstance(params CreateInstanceRequest, checkPermission bool) (WorkflowInstanceModel, *process.Process)
|
||
|
||
// 查询工作流实例
|
||
QueryWorkflowInstances(params QueryInstancesRequest) ([]WorkflowInstanceModel, *process.Process)
|
||
|
||
// 查询审批历史
|
||
QueryApprovalHistory(instanceGuid string) ([]ApprovalRecordModel, *process.Process)
|
||
|
||
// 权限检查
|
||
CheckPermission(staffGuid string, operation string, instanceGuid string) *process.Process
|
||
}
|
||
|
||
// 全局工作流服务实例
|
||
var WorkflowSvc WorkflowService
|