package cn.iocoder.yudao.module.hrm.dal.dataobject.employee; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; import java.math.BigDecimal; import java.time.LocalDate; /** * 员工合同 DO * * 记录员工与公司签订的劳动合同/续签合同等,一个员工可有多份合同(历史合同 + 当前合同) * * @author 超级管理员 */ @TableName("hrm_employee_contract") @KeySequence("hrm_employee_contract_seq") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class HrmEmployeeContractDO extends BaseDO { /** * 合同ID */ @TableId private Long id; /** * 续签上一份合同ID * * 一个员工可签订多次合同,通过该字段形成续签链,便于追溯合同历史 */ private Long parentId; /** * 是否当前生效合同 * * 员工最新签订的、未解除/未终止的合同标记为当前合同,同一员工仅一份 */ private Boolean isCurrent; /** * 合同编号 * * 自动生成:HT + yyyyMMdd + 4位自增 */ private String contractNo; /** * 员工ID * * 关联 HrmEmployeeDO#getId() */ private Long employeeId; /** * 合同类型 * * 字典 hrm_contract_type:1-劳动合同 2-劳务合同 3-实习协议 4-劳务派遣 5-其他 */ private Integer contractType; /** * 合同期限类型 * * 字典 hrm_contract_term_type:1-固定期限 2-无固定期限 3-以完成一定工作任务为期限 */ private Integer contractTermType; /** * 签约主体(公司全称) */ private String signCompany; /** * 签订日期 */ private LocalDate signDate; /** * 合同开始日期 */ private LocalDate startDate; /** * 合同结束日期 * * 无固定期限合同可为空 */ private LocalDate endDate; /** * 试用期开始日期 */ private LocalDate probationStartDate; /** * 试用期结束日期 */ private LocalDate probationEndDate; /** * 试用期工资 */ private BigDecimal probationSalary; /** * 转正工资 */ private BigDecimal regularSalary; /** * 解除/终止状态 * * 0-正常 1-已解除 2-已终止 */ private Integer terminateStatus; /** * 解除/终止日期 */ private LocalDate terminateDate; /** * 解除/终止原因 */ private String terminateReason; /** * 备注 */ private String remark; }