58 lines
1.7 KiB
Go
58 lines
1.7 KiB
Go
|
|
package oa
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"WiiCITMS/models/oa"
|
|||
|
|
"WiiGenerates/WiiCITMS/generates/v1/go/types"
|
|||
|
|
"WiiGoLibrary/apply/middle/process/v1"
|
|||
|
|
"errors"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// GetWorkflowNodes 根据工作流ID获取其所有节点
|
|||
|
|
// 这是对QueryWorkflowNodes的封装,简化调用参数
|
|||
|
|
func GetWorkflowNodes(workflowGuid string) ([]*oa.WorkflowNodeModel, *process.Process) {
|
|||
|
|
// 使用QueryWorkflowNodes查询所有节点
|
|||
|
|
return QueryWorkflowNodes(QueryNodesRequest{
|
|||
|
|
WorkflowGuid: workflowGuid,
|
|||
|
|
NodeType: -1, // 查询所有类型的节点
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// GetWorkflowNode 根据节点ID获取单个节点
|
|||
|
|
// 对GetWorkflowNodeByID的简单封装,保持命名一致性
|
|||
|
|
func GetWorkflowNode(nodeGuid string) (*oa.WorkflowNodeModel, *process.Process) {
|
|||
|
|
return GetWorkflowNodeByID(nodeGuid)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// GetNodeApprover 获取节点的审批人GUID
|
|||
|
|
func GetNodeApprover(nodeGuid string) (string, *process.Process) {
|
|||
|
|
// 获取节点信息
|
|||
|
|
node, proc := GetWorkflowNodeByID(nodeGuid)
|
|||
|
|
if proc.IsError() {
|
|||
|
|
return "", proc
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 检查是否是审批节点
|
|||
|
|
if node.NodeType != 2 { // 2 - 审批节点
|
|||
|
|
return "", process.FailError(types.InvalidWorkflowStatusError, errors.New("非审批节点"))
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 检查是否是指定审批人类型
|
|||
|
|
if node.ApproverType != 1 { // 1 - 指定审批人
|
|||
|
|
return "", process.FailError(types.UnsupportedApproverTypeError, nil)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return node.ApproverValue, process.Success(200)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// GetWorkflowNodesByInstance 根据工作流实例获取其所有节点
|
|||
|
|
func GetWorkflowNodesByInstance(instanceGuid string) ([]*oa.WorkflowNodeModel, *process.Process) {
|
|||
|
|
// 获取工作流实例
|
|||
|
|
instance, proc := GetWorkflowInstance(instanceGuid)
|
|||
|
|
if proc.IsError() {
|
|||
|
|
return nil, proc
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 获取工作流的所有节点
|
|||
|
|
return GetWorkflowNodes(instance.WorkflowGuid.String())
|
|||
|
|
}
|