98 lines
2.3 KiB
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();
|
|
}
|
|
}
|