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