package cn.iocoder.yudao.module.hrm.controller.admin.salary.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; @Schema(description = "管理后台 - 员工社保公积金档案新增/修改 Request VO") @Data public class HrmEmployeeSocialSecuritySaveReqVO { @Schema(description = "档案ID", example = "1") private Long id; @Schema(description = "系统用户ID(关联 system_users.id)", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") @NotNull(message = "系统用户ID不能为空") private Long userId; @Schema(description = "社保公积金方案ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "社保公积金方案不能为空") private Long socialSecuritySchemeId; // ========== 缴纳基数(员工个性化设置) ========== @Schema(description = "社保缴纳基数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000") @NotNull(message = "社保缴纳基数不能为空") private BigDecimal socialSecurityBase; @Schema(description = "公积金缴纳基数", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000") @NotNull(message = "公积金缴纳基数不能为空") private BigDecimal housingFundBase; // ========== 生效信息 ========== @Schema(description = "生效日期", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "生效日期不能为空") private LocalDate effectiveDate; @Schema(description = "状态:0-启用,1-禁用", example = "0") private Integer status; @Schema(description = "备注", example = "2026年调整社保基数") private String remark; }