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

102 lines
2.5 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。
*/
@Entity
@Table(name = "staff_employee")
@Getter
@Setter
@NoArgsConstructor
public class StaffEmployee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "employee_no", nullable = false, length = 32, unique = true)
private String employeeNo;
@Column(name = "name", nullable = false, length = 64)
private String name;
/** 身份证号,应用层加密后存储。 */
@Column(name = "id_number", nullable = false, length = 64, unique = true)
private String idNumber;
@Column(name = "gender")
private Integer gender;
@Column(name = "department_id", nullable = false)
private Long departmentId;
@Column(name = "department_name", length = 128)
private String departmentName;
@Column(name = "position", nullable = false, length = 128)
private String position;
@Column(name = "hire_date", nullable = false)
private LocalDate hireDate;
@Column(name = "phone", length = 20)
private String phone;
@Column(name = "email", length = 128)
private String email;
@Column(name = "emergency_contact", length = 64)
private String emergencyContact;
@Column(name = "emergency_phone", length = 20)
private String emergencyPhone;
@Column(name = "status", nullable = false, length = 16)
private String status = "active";
@Column(name = "created_by")
private Long createdBy;
@Column(name = "updated_by")
private Long updatedBy;
@Column(name = "created_at", nullable = false)
private LocalDateTime createdAt;
@Column(name = "updated_at", nullable = false)
private LocalDateTime updatedAt;
@PrePersist
void onCreate() {
if (status == null) {
status = "active";
}
if (createdAt == null) {
createdAt = LocalDateTime.now();
}
if (updatedAt == null) {
updatedAt = LocalDateTime.now();
}
}
@PreUpdate
void onUpdate() {
updatedAt = LocalDateTime.now();
}
}