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
|