package hr import ( "WiiGoLibrary/framework/db/v1/utils/mssql/unique" "WiiGoLibrary/framework/db/v1/utils/tool" "WiiGoLibrary/framework/hub/v1/dblib" "time" ) // 请假表名 const LeaveTable = "hr_u_leave" // LeaveModel 请假模型定义 type LeaveModel struct { RecordGuid unique.UUID `gorm:"column:RecordGuid;type:UNIQUEIDENTIFIER;primaryKey;not null;default:newid();" json:"RecordGuid"` LeaveID int64 `gorm:"column:LeaveID;type:BIGINT;not null;" json:"LeaveID"` StaffGuid unique.UUID `gorm:"column:StaffGuid;type:UNIQUEIDENTIFIER;index;not null;" json:"StaffGuid"` LeaveType int16 `gorm:"column:LeaveType;type:SMALLINT;not null;" json:"LeaveType"` // 请假类型: 1-事假, 2-病假, 3-年假, 4-调休 StartTime time.Time `gorm:"column:StartTime;type:DATETIME;not null;" json:"StartTime"` // 请假开始时间 EndTime time.Time `gorm:"column:EndTime;type:DATETIME;not null;" json:"EndTime"` // 请假结束时间 Duration float32 `gorm:"column:Duration;type:FLOAT;not null;" json:"Duration"` // 请假时长(天) Reason string `gorm:"column:Reason;type:NVARCHAR(255);" json:"Reason"` // 请假原因 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(&LeaveModel{}) } // TableName 返回表名 func (lm *LeaveModel) TableName() string { return LeaveTable } // LeaveInstance 创建请假实例 func LeaveInstance() *LeaveModel { return &LeaveModel{ RecordGuid: unique.NewV4(), LeaveID: tool.GenerateID(), StaffGuid: unique.NilUUID, LeaveType: 1, // 默认事假 RecordType: 0, RecordStatus: 0, } }