R46 A1-A7:落地绩效考核模块首版
这个提交包含在:
+85
-3
@@ -363,6 +363,27 @@ enum EmployeeTrainingStatus {
|
||||
cancelled
|
||||
}
|
||||
|
||||
enum PerformanceReviewCycleType {
|
||||
monthly
|
||||
quarterly
|
||||
semi_annual
|
||||
annual
|
||||
}
|
||||
|
||||
enum PerformanceReviewCycleStatus {
|
||||
draft
|
||||
active
|
||||
completed
|
||||
}
|
||||
|
||||
enum PerformanceReviewDimensionType {
|
||||
work_quality
|
||||
work_efficiency
|
||||
teamwork
|
||||
initiative
|
||||
professional_skill
|
||||
}
|
||||
|
||||
enum WeeklyReportStatus {
|
||||
draft
|
||||
submitted
|
||||
@@ -609,6 +630,8 @@ model Employee {
|
||||
contracts EmployeeContract[]
|
||||
trainings EmployeeTraining[]
|
||||
certificates EmployeeCertificate[]
|
||||
performance_reviews_received PerformanceReview[] @relation("PerformanceReviewEmployee")
|
||||
performance_reviews_authored PerformanceReview[] @relation("PerformanceReviewReviewer")
|
||||
|
||||
@@index([department_id])
|
||||
@@index([legal_entity_id], map: "idx_employees_legal_entity")
|
||||
@@ -2045,11 +2068,11 @@ model EmployeeTraining {
|
||||
}
|
||||
|
||||
model EmployeeCertificate {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
employee_id String @db.Uuid
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
employee_id String @db.Uuid
|
||||
name String
|
||||
issuer String
|
||||
obtained_date DateTime @db.Date
|
||||
obtained_date DateTime @db.Date
|
||||
expiry_date DateTime? @db.Date
|
||||
certificate_no String?
|
||||
attachment_path String?
|
||||
@@ -2066,6 +2089,65 @@ model EmployeeCertificate {
|
||||
@@map("employee_certificates")
|
||||
}
|
||||
|
||||
model PerformanceReviewCycle {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
name String
|
||||
cycle_type PerformanceReviewCycleType
|
||||
start_date DateTime @db.Date
|
||||
end_date DateTime @db.Date
|
||||
status PerformanceReviewCycleStatus @default(draft)
|
||||
activated_at DateTime?
|
||||
completed_at DateTime?
|
||||
|
||||
created_at DateTime @default(now())
|
||||
created_by String? @db.Uuid
|
||||
updated_at DateTime @default(now()) @updatedAt
|
||||
updated_by String? @db.Uuid
|
||||
|
||||
reviews PerformanceReview[]
|
||||
|
||||
@@index([status, start_date], map: "idx_performance_review_cycles_status_start")
|
||||
@@index([status, completed_at], map: "idx_performance_review_cycles_status_completed")
|
||||
@@map("performance_review_cycles")
|
||||
}
|
||||
|
||||
model PerformanceReview {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
cycle_id String @db.Uuid
|
||||
employee_id String @db.Uuid
|
||||
reviewer_employee_id String @db.Uuid
|
||||
overall_score Decimal @db.Decimal(3, 1)
|
||||
comment String?
|
||||
|
||||
created_at DateTime @default(now())
|
||||
created_by String? @db.Uuid
|
||||
updated_at DateTime @default(now()) @updatedAt
|
||||
updated_by String? @db.Uuid
|
||||
|
||||
cycle PerformanceReviewCycle @relation(fields: [cycle_id], references: [id], onDelete: Cascade)
|
||||
employee Employee @relation("PerformanceReviewEmployee", fields: [employee_id], references: [id], onDelete: Cascade)
|
||||
reviewer_employee Employee @relation("PerformanceReviewReviewer", fields: [reviewer_employee_id], references: [id], onDelete: Restrict)
|
||||
dimensions PerformanceReviewDimension[]
|
||||
|
||||
@@unique([cycle_id, employee_id], map: "performance_reviews_cycle_employee_ux")
|
||||
@@index([cycle_id, reviewer_employee_id], map: "idx_performance_reviews_cycle_reviewer")
|
||||
@@index([employee_id, created_at], map: "idx_performance_reviews_employee_created")
|
||||
@@map("performance_reviews")
|
||||
}
|
||||
|
||||
model PerformanceReviewDimension {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
review_id String @db.Uuid
|
||||
dimension_type PerformanceReviewDimensionType
|
||||
score Decimal @db.Decimal(3, 1)
|
||||
|
||||
review PerformanceReview @relation(fields: [review_id], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([review_id, dimension_type], map: "performance_review_dimensions_review_dimension_ux")
|
||||
@@index([dimension_type, score], map: "idx_performance_review_dimensions_dimension_score")
|
||||
@@map("performance_review_dimensions")
|
||||
}
|
||||
|
||||
model ProjectDeliveryRecord {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
project_id String @db.Uuid
|
||||
|
||||
在新工单中引用
屏蔽一个用户