WiiCITMS/process/oa/workflow_nodes.go
2025-11-07 14:14:34 +08:00

58 lines
1.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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())
}