53 lines
2.7 KiB
Go
53 lines
2.7 KiB
Go
|
|
package oa
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"WiiGoLibrary/framework/db/v1/utils/mssql/unique"
|
|||
|
|
"WiiGoLibrary/framework/db/v1/utils/tool"
|
|||
|
|
"WiiGoLibrary/framework/hub/v1/dblib"
|
|||
|
|
"time"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// WorkflowInstanceTable 工作流实例表名
|
|||
|
|
const WorkflowInstanceTable = "oa_u_workflow_instance"
|
|||
|
|
|
|||
|
|
// WorkflowInstanceModel 工作流实例模型
|
|||
|
|
type WorkflowInstanceModel struct {
|
|||
|
|
RecordGuid unique.UUID `gorm:"column:RecordGuid;type:UNIQUEIDENTIFIER;primaryKey;not null;default:newid();" json:"RecordGuid"`
|
|||
|
|
InstanceID int64 `gorm:"column:InstanceID;type:BIGINT;not null;" json:"InstanceID"`
|
|||
|
|
WorkflowGuid unique.UUID `gorm:"column:WorkflowGuid;type:UNIQUEIDENTIFIER;index;not null;" json:"WorkflowGuid"` // 关联的工作流定义
|
|||
|
|
Title string `gorm:"column:Title;type:NVARCHAR(100);not null;" json:"Title"` // 实例标题
|
|||
|
|
BusinessType int16 `gorm:"column:BusinessType;type:SMALLINT;not null;" json:"BusinessType"` // 业务类型: 1-请假, 2-报销, 3-采购, ...
|
|||
|
|
BusinessID string `gorm:"column:BusinessID;type:NVARCHAR(50);not null;" json:"BusinessID"` // 业务ID(如请假记录ID)
|
|||
|
|
InitiatorGuid unique.UUID `gorm:"column:InitiatorGuid;type:UNIQUEIDENTIFIER;not null;" json:"InitiatorGuid"` // 发起人
|
|||
|
|
CurrentNodeID unique.UUID `gorm:"column:CurrentNodeID;type:UNIQUEIDENTIFIER;" json:"CurrentNodeID"` // 当前节点
|
|||
|
|
Status int16 `gorm:"column:Status;type:SMALLINT;not null;default:0;" json:"Status"` // 状态: 0-进行中, 1-已完成, 2-已拒绝, 3-已取消
|
|||
|
|
FormData string `gorm:"column:FormData;type:NVARCHAR(MAX);" json:"FormData"` // 表单数据(JSON)
|
|||
|
|
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"`
|
|||
|
|
CompletionTime time.Time `gorm:"column:CompletionTime;type:DATETIME;" json:"CompletionTime"` // 完成时间
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
func init() {
|
|||
|
|
dblib.DBIns.RegisterAutoMigrateModel(&WorkflowInstanceModel{})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// TableName 返回表名
|
|||
|
|
func (wi *WorkflowInstanceModel) TableName() string {
|
|||
|
|
return WorkflowInstanceTable
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// WorkflowInstanceInstance 创建工作流实例
|
|||
|
|
func WorkflowInstanceInstance() *WorkflowInstanceModel {
|
|||
|
|
return &WorkflowInstanceModel{
|
|||
|
|
RecordGuid: unique.NewV4(),
|
|||
|
|
InstanceID: tool.GenerateID(),
|
|||
|
|
WorkflowGuid: unique.NilUUID,
|
|||
|
|
BusinessType: 0,
|
|||
|
|
Status: 0, // 进行中
|
|||
|
|
RecordType: 0,
|
|||
|
|
RecordStatus: 0,
|
|||
|
|
}
|
|||
|
|
}
|