package hr import ( "WiiGoLibrary/framework/db/v1/utils/mssql/unique" "WiiGoLibrary/framework/db/v1/utils/tool" "WiiGoLibrary/framework/hub/v1/dblib" "time" ) const PositionTable = "hr_u_position" // PositionModel 岗位模型 type PositionModel struct { RecordGuid unique.UUID `gorm:"column:RecordGuid;type:UNIQUEIDENTIFIER;primaryKey;not null;default:newid();" json:"RecordGuid"` PositionID int64 `gorm:"column:PositionID;type:BIGINT;not null;" json:"PositionID"` // 岗位编号 PositionName string `gorm:"column:PositionName;type:NVARCHAR(50);not null;" json:"PositionName"` // 岗位名称 PositionCode string `gorm:"column:PositionCode;type:NVARCHAR(20);not null;" json:"PositionCode"` // 岗位代码 Description string `gorm:"column:Description;type:NVARCHAR(200);" json:"Description"` // 岗位描述 Level int16 `gorm:"column:Level;type:SMALLINT;not null;default:0;" json:"Level"` // 岗位级别 CategoryID int16 `gorm:"column:CategoryID;type:SMALLINT;not null;default:0;" json:"CategoryID"` // 岗位类别ID CategoryName string `gorm:"column:CategoryName;type:NVARCHAR(50);" json:"CategoryName"` // 岗位类别名称 IsManagement bool `gorm:"column:IsManagement;type:BIT;not null;default:0;" json:"IsManagement"` // 是否管理岗位 Status int16 `gorm:"column:Status;type:SMALLINT;not null;default:1;" json:"Status"` // 状态:1-启用,0-禁用 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"` } // OrgPositionRelModel 组织与岗位关系模型 type OrgPositionRelModel struct { RecordGuid unique.UUID `gorm:"column:RecordGuid;type:UNIQUEIDENTIFIER;primaryKey;not null;default:newid();" json:"RecordGuid"` OrganizationID int64 `gorm:"column:OrganizationID;type:BIGINT;not null;index:idx_org_position;" json:"OrganizationID"` // 组织ID PositionID int64 `gorm:"column:PositionID;type:BIGINT;not null;index:idx_org_position;" json:"PositionID"` // 岗位ID HeadCount int `gorm:"column:HeadCount;type:INT;not null;default:1;" json:"HeadCount"` // 岗位编制人数 OrganizationGuid unique.UUID `gorm:"column:OrganizationGuid;type:UNIQUEIDENTIFIER;not null;" json:"OrganizationGuid"` // 组织GUID PositionGuid unique.UUID `gorm:"column:PositionGuid;type:UNIQUEIDENTIFIER;not null;" json:"PositionGuid"` // 岗位GUID 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"` } const OrgPositionRelTable = "hr_r_organization_position" func init() { dblib.DBIns.RegisterAutoMigrateModel(&PositionModel{}) dblib.DBIns.RegisterAutoMigrateModel(&OrgPositionRelModel{}) } func (p *PositionModel) TableName() string { return PositionTable } func (op *OrgPositionRelModel) TableName() string { return OrgPositionRelTable } func PositionInstance() *PositionModel { return &PositionModel{ RecordGuid: unique.NewV4(), PositionID: tool.GenerateID(), IsManagement: false, Status: 1, // 默认启用 RecordType: 0, RecordStatus: 0, } } func OrgPositionRelInstance() *OrgPositionRelModel { return &OrgPositionRelModel{ RecordGuid: unique.NewV4(), HeadCount: 1, RecordType: 0, RecordStatus: 0, } }