package oa import ( "WiiGoLibrary/framework/db/v1/utils/mssql/unique" "WiiGoLibrary/framework/db/v1/utils/tool" "WiiGoLibrary/framework/hub/v1/dblib" "time" ) // WorkflowNodeTable 工作流节点表名 const WorkflowNodeTable = "oa_u_workflow_node" // WorkflowNodeModel 工作流节点模型 type WorkflowNodeModel struct { RecordGuid unique.UUID `gorm:"column:RecordGuid;type:UNIQUEIDENTIFIER;primaryKey;not null;default:newid();" json:"RecordGuid"` NodeID int64 `gorm:"column:NodeID;type:BIGINT;not null;" json:"NodeID"` WorkflowGuid unique.UUID `gorm:"column:WorkflowGuid;type:UNIQUEIDENTIFIER;index;not null;" json:"WorkflowGuid"` // 所属工作流 NodeName string `gorm:"column:NodeName;type:NVARCHAR(50);not null;" json:"NodeName"` // 节点名称 NodeType int16 `gorm:"column:NodeType;type:SMALLINT;not null;" json:"NodeType"` // 节点类型:1-开始, 2-审批, 3-抄送, 4-条件, 5-结束 NodeOrder int `gorm:"column:NodeOrder;type:INT;not null;" json:"NodeOrder"` // 节点顺序 ApproverType int16 `gorm:"column:ApproverType;type:SMALLINT;" json:"ApproverType"` // 审批人类型:1-指定人, 2-角色, 3-部门负责人 ApproverValue string `gorm:"column:ApproverValue;type:NVARCHAR(MAX);" json:"ApproverValue"` // 审批人值(用户ID、角色ID或JSON) ConditionExp string `gorm:"column:ConditionExp;type:NVARCHAR(MAX);" json:"ConditionExp"` // 条件表达式(如果是条件节点) Description string `gorm:"column:Description;type:NVARCHAR(255);" json:"Description"` // 节点描述 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(&WorkflowNodeModel{}) } // TableName 返回表名 func (wn *WorkflowNodeModel) TableName() string { return WorkflowNodeTable } // WorkflowNodeInstance 创建工作流节点实例 func WorkflowNodeInstance() *WorkflowNodeModel { return &WorkflowNodeModel{ RecordGuid: unique.NewV4(), NodeID: tool.GenerateID(), WorkflowGuid: unique.NilUUID, NodeType: 0, NodeOrder: 0, RecordType: 0, RecordStatus: 0, } }