staff_mgr/src/main/java/com/hr/staff/entity/StaffEmployeeExtra.java

98 lines
2.3 KiB
Java

package com.hr.staff.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.PrePersist;
import jakarta.persistence.PreUpdate;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 员工扩展信息表 staff_employee_extra。
*/
@Entity
@Table(name = "staff_employee_extra")
@Getter
@Setter
@NoArgsConstructor
public class StaffEmployeeExtra {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "employee_id", nullable = false, unique = true)
private Long employeeId;
@Column(name = "education", length = 32)
private String education;
@Column(name = "major", length = 128)
private String major;
@Column(name = "school", length = 128)
private String school;
@Column(name = "graduation_date")
private LocalDate graduationDate;
@Column(name = "previous_company", length = 128)
private String previousCompany;
@Column(name = "work_years")
private Integer workYears;
@Column(name = "technical_level", length = 32)
private String technicalLevel;
@Column(name = "salary_grade", length = 32)
private String salaryGrade;
@Column(name = "contract_type", length = 32)
private String contractType;
@Column(name = "contract_start")
private LocalDate contractStart;
@Column(name = "contract_end")
private LocalDate contractEnd;
@Column(name = "probation_end")
private LocalDate probationEnd;
@Column(name = "address", length = 256)
private String address;
@Column(name = "remark", columnDefinition = "TEXT")
private String remark;
@Column(name = "created_at", nullable = false)
private LocalDateTime createdAt;
@Column(name = "updated_at", nullable = false)
private LocalDateTime updatedAt;
@PrePersist
void onCreate() {
if (createdAt == null) {
createdAt = LocalDateTime.now();
}
if (updatedAt == null) {
updatedAt = LocalDateTime.now();
}
}
@PreUpdate
void onUpdate() {
updatedAt = LocalDateTime.now();
}
}