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