package cn.iocoder.yudao.module.hrm.controller.admin.employee.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; @Schema(description = "管理后台 - 员工合同新增/修改 Request VO") @Data public class HrmEmployeeContractSaveReqVO { @Schema(description = "合同ID", example = "1") private Long id; @Schema(description = "续签上一份合同ID(续签时指定;一般不传,后端自动关联该员工最近一份合同)", example = "1") private Long parentId; @Schema(description = "员工ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "员工不能为空") private Long employeeId; @Schema(description = "合同类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "合同类型不能为空") private Integer contractType; @Schema(description = "合同期限类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "合同期限类型不能为空") private Integer contractTermType; @Schema(description = "签约主体(公司全称)", example = "南通XX科技有限公司") private String signCompany; @Schema(description = "签订日期") private LocalDate signDate; @Schema(description = "合同开始日期", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "合同开始日期不能为空") private LocalDate startDate; @Schema(description = "合同结束日期(无固定期限可为空)") private LocalDate endDate; @Schema(description = "试用期开始日期") private LocalDate probationStartDate; @Schema(description = "试用期结束日期") private LocalDate probationEndDate; @Schema(description = "试用期工资", example = "8000.00") private BigDecimal probationSalary; @Schema(description = "转正工资", example = "10000.00") private BigDecimal regularSalary; @Schema(description = "解除/终止状态:0-正常 1-已解除 2-已终止", example = "0") private Integer terminateStatus; @Schema(description = "解除/终止日期") private LocalDate terminateDate; @Schema(description = "解除/终止原因", example = "合同到期不续签") private String terminateReason; @Schema(description = "备注", example = "第一次续签") private String remark; @Schema(description = "附件 blobId 列表", example = "[1, 2]") private List blobIds; }