WiiCITMS/models/oa/approval_record.go

56 lines
2.8 KiB
Go
Raw Normal View History

2025-11-07 14:14:34 +08:00
package oa
import (
"WiiGoLibrary/framework/db/v1/utils/mssql/unique"
"WiiGoLibrary/framework/db/v1/utils/tool"
"WiiGoLibrary/framework/hub/v1/dblib"
"time"
)
// ApprovalRecordTable 审批记录表名
const ApprovalRecordTable = "oa_u_approval_record"
// ApprovalRecordModel 审批记录模型
type ApprovalRecordModel struct {
RecordGuid unique.UUID `gorm:"column:RecordGuid;type:UNIQUEIDENTIFIER;primaryKey;not null;default:newid();" json:"RecordGuid"`
ApprovalID int64 `gorm:"column:ApprovalID;type:BIGINT;not null;" json:"ApprovalID"`
InstanceGuid unique.UUID `gorm:"column:InstanceGuid;type:UNIQUEIDENTIFIER;index;not null;" json:"InstanceGuid"` // 工作流实例ID
NodeGuid unique.UUID `gorm:"column:NodeGuid;type:UNIQUEIDENTIFIER;index;not null;" json:"NodeGuid"` // 节点ID
ApproverGuid unique.UUID `gorm:"column:ApproverGuid;type:UNIQUEIDENTIFIER;not null;" json:"ApproverGuid"` // 审批人
Status int16 `gorm:"column:Status;type:SMALLINT;not null;default:0;" json:"Status"` // 状态: 0-待处理, 1-同意, 2-拒绝, 3-已转交, 4-已委托
Comment string `gorm:"column:Comment;type:NVARCHAR(1000);" json:"Comment"` // 审批意见
HandoverTo unique.UUID `gorm:"column:HandoverTo;type:UNIQUEIDENTIFIER;" json:"HandoverTo"` // 转交给谁
DelegateFrom unique.UUID `gorm:"column:DelegateFrom;type:UNIQUEIDENTIFIER;" json:"DelegateFrom"` // 委托来源
TaskReceiveTime time.Time `gorm:"column:TaskReceiveTime;type:DATETIME;default:CURRENT_TIMESTAMP;" json:"TaskReceiveTime"` // 任务接收时间
ActionTime time.Time `gorm:"column:ActionTime;type:DATETIME;" json:"ActionTime"` // 审批操作时间
RecordType int16 `gorm:"column:RecordType;not null;" json:"RecordType"`
RecordStatus int16 `gorm:"column:RecordStatus;not null;default:0;" json:"RecordStatus"`
CreateTime time.Time `gorm:"column:CreateTime;type:DATETIME;default:CURRENT_TIMESTAMP;<-:create;" json:"CreateTime"`
UpdateTime time.Time `gorm:"column:UpdateTime;type:DATETIME;default:CURRENT_TIMESTAMP;autoUpdateTime;" json:"UpdateTime"`
}
func init() {
dblib.DBIns.RegisterAutoMigrateModel(&ApprovalRecordModel{})
}
// TableName 返回表名
func (ar *ApprovalRecordModel) TableName() string {
return ApprovalRecordTable
}
// ApprovalRecordInstance 创建审批记录实例
func ApprovalRecordInstance() *ApprovalRecordModel {
now := time.Now()
return &ApprovalRecordModel{
RecordGuid: unique.NewV4(),
ApprovalID: tool.GenerateID(),
InstanceGuid: unique.NilUUID,
NodeGuid: unique.NilUUID,
ApproverGuid: unique.NilUUID,
Status: 0, // 待处理
TaskReceiveTime: now,
RecordType: 0,
RecordStatus: 0,
}
}