approval

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2026 License: GPL-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// 待审批
	FinalAwaitStatus = 0
	// 审批通过
	FinalPassStatus = 1
	// 审批拒绝
	FinalRejectStatus = 2
)
View Source
var (
	// 开始节点
	NodeTypeStart = 1
	// 结束节点
	NodeTypeEnd = 2
	// 其他节点
	NodeTypeOther = 3
)
View Source
var (
	// 员工转移审批
	FlowStaffTransfer = 101
)

Functions

This section is empty.

Types

type Approval

type Approval struct {
	// 编号
	Id int `json:"id" db:"id" gorm:"column:id" pk:"yes" auto:"yes" bson:"id"`
	// 审批流水号
	ApprovalNo string `json:"approvalNo" db:"approval_no" gorm:"column:approval_no" bson:"approvalNo"`
	// 工作流编号
	FlowId int `json:"flowId" db:"flow_id" gorm:"column:flow_id" bson:"flowId"`
	// 业务ID
	BizId int `json:"bizId" db:"biz_id" gorm:"column:biz_id" bson:"bizId"`
	// 当前节点编号
	NodeId int `json:"nodeId" db:"node_id" gorm:"column:node_id" bson:"nodeId"`
	// 审批人
	AssignUid int `json:"assignUid" db:"assign_uid" gorm:"column:assign_uid" bson:"assignUid"`
	// 审批人名称
	AssignName string `json:"assignName" db:"assign_name" gorm:"column:assign_name" bson:"assignName"`
	// 最终状态,  0: 审核中  1: 已通过  2:不通过
	FinalStatus int `json:"finalStatus" db:"final_status" gorm:"column:final_status" bson:"finalStatus"`
	// 创建时间
	CreateTime int `json:"createTime" db:"create_time" gorm:"column:create_time" bson:"createTime"`
	// 更新时间
	UpdateTime int `json:"updateTime" db:"update_time" gorm:"column:update_time" bson:"updateTime"`
}

Approval 审批表

func (Approval) TableName

func (a Approval) TableName() string

type ApprovalFlow

type ApprovalFlow struct {
	// Id
	Id int `json:"id" db:"id" gorm:"column:id" pk:"yes" auto:"yes" bson:"id"`
	// 工作流名称
	FlowName string `json:"flowName" db:"flow_name" gorm:"column:flow_name" bson:"flowName"`
	// 工作流描述
	FlowDesc string `json:"flowDesc" db:"flow_desc" gorm:"column:flow_desc" bson:"flowDesc"`
	// 交易号前缀
	TxPrefix string `json:"txPrefix" db:"tx_prefix" gorm:"column:tx_prefix" bson:"txPrefix"`
	// 节点
	Nodes []*ApprovalFlowNode `json:"nodes" db:"-" gorm:"-:all" bson:"nodes"`
}

ApprovalFlow ApprovalFlow

func (ApprovalFlow) TableName

func (a ApprovalFlow) TableName() string

type ApprovalFlowNode

type ApprovalFlowNode struct {
	// Id
	Id int `json:"id" db:"id" gorm:"column:id" pk:"yes" auto:"yes" bson:"id"`
	// 工作流编号
	FlowId int `json:"flowId" db:"flow_id" gorm:"column:flow_id" bson:"flowId"`
	// 节点KEY
	NodeKey string `json:"nodeKey" db:"node_key" gorm:"column:node_key" bson:"nodeKey"`
	// 节点类型 1:起始节点   2: 结束节点   3: 其他节点
	NodeType int `json:"nodeType" db:"node_type" gorm:"column:node_type" bson:"nodeType"`
	// 节点名称
	NodeName string `json:"nodeName" db:"node_name" gorm:"column:node_name" bson:"nodeName"`
	// 节点描述
	NodeDesc string `json:"nodeDesc" db:"node_desc" gorm:"column:node_desc" bson:"nodeDesc"`
}

ApprovalFlowNode ApprovalFlowNode

func (ApprovalFlowNode) TableName

func (a ApprovalFlowNode) TableName() string

type ApprovalLog

type ApprovalLog struct {
	// 编号
	Id int `json:"id" db:"id" gorm:"column:id" bson:"id"`
	// 审批编号
	ApprovalId int `json:"approvalId" db:"approval_id" gorm:"column:approval_id" bson:"approvalId"`
	// 节点编号
	NodeId int `json:"nodeId" db:"node_id" gorm:"column:node_id" bson:"nodeId"`
	// 节点名称
	NodeName string `json:"nodeName" db:"node_name" gorm:"column:node_name" bson:"nodeName"`
	// 审批人编号
	AssignUid int `json:"assignUid" db:"assign_uid" gorm:"column:assign_uid" bson:"assignUid"`
	// 审批人名称
	AssignName string `json:"assignName" db:"assign_name" gorm:"column:assign_name" bson:"assignName"`
	// 审核状态
	ApprovalStatus int `json:"approvalStatus" db:"approval_status" gorm:"column:approval_status" bson:"approvalStatus"`
	// 审核备注
	ApprovalRemark string `json:"approvalRemark" db:"approval_remark" gorm:"column:approval_remark" bson:"approvalRemark"`
	// 审核时间
	ApprovalTime int `json:"approvalTime" db:"approval_time" gorm:"column:approval_time" bson:"approvalTime"`
	// 创建时间
	CreateTime int `json:"createTime" db:"create_time" gorm:"column:create_time" bson:"createTime"`
}

ApprovalLog 审核日志

func (ApprovalLog) TableName

func (a ApprovalLog) TableName() string

type ApprovalProcessEvent

type ApprovalProcessEvent struct {
	// 审批聚合根
	Approval IApprovalAggregateRoot
	// 当前审核节点Key
	NodeKey string
	// 当前审核节点
	Tx *ApprovalLog
}

ApprovalProcessEvent 审批处理事件

type IApprovalAggregateRoot

type IApprovalAggregateRoot interface {
	domain.IAggregateRoot
	// Save 保存审批
	Save() error
	// FlowId 获取工作流编号
	FlowId() int
	// 获取审批
	GetApproval() *Approval
	// 通过
	Approve() error
	// 拒绝
	Reject(remark string) error
	// 是否最终状态
	IsFinal() bool
	// 获取工作流
	Flow() *ApprovalFlow
	// 处理节点,在审批后会进行自动调用, 实现审批业务需重写
	Process(nodeKey string, tx *ApprovalLog) error
	// 分配审批人,当节点审批后切换到下个节点, 需分配审批人
	Assign(uid int, name string) error
}

IApprovalAggregateRoot 审批聚合根

type IApprovalRepository

type IApprovalRepository interface {
	fw.Repository[Approval]
	// GetApproval 获取审批聚合根
	GetApproval(id int) IApprovalAggregateRoot
	// GetLogRepo 获取审核日志仓储
	GetLogRepo() fw.Repository[ApprovalLog]
	// Create 创建审批单, 传入[flowId] 工作流ID, [bizId] 业务ID, 返回审批聚合根
	Create(flowId int, bizId int) IApprovalAggregateRoot
	// FlowManager 工作流管理器
	FlowManager() IFlowManager
	// GetCurrentNodeLog 获取当前节点审核日志
	GetCurrentNodeLog(approvalId int) *ApprovalLog
}

IApprovalRepository 审批表仓储

type IFlowManager

type IFlowManager interface {
	// GetFlow 获取工作流
	GetFlow(id int) *ApprovalFlow
	// CreateFlow 创建工作流
	CreateFlow(name, desc string, nodes []*ApprovalFlow) (int, error)
}

IFlowManager 工作流管理器

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL