package cn.iocoder.yudao.module.hrm.controller.admin.salary.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; @Schema(description = "管理后台 - 社保公积金配置新增/修改 Request VO") @Data public class HrmSocialSecurityConfigSaveReqVO { @Schema(description = "配置ID", example = "1") private Long id; @Schema(description = "配置名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024年社保公积金标准") @NotBlank(message = "配置名称不能为空") private String name; @Schema(description = "生效日期", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "生效日期不能为空") private LocalDate effectiveDate; // ========== 养老保险 ========== @Schema(description = "养老保险企业缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.16") @NotNull(message = "养老保险企业缴纳比例不能为空") private BigDecimal pensionCompanyRatio; @Schema(description = "养老保险个人缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.08") @NotNull(message = "养老保险个人缴纳比例不能为空") private BigDecimal pensionPersonalRatio; // ========== 医疗保险 ========== @Schema(description = "医疗保险企业缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.095") @NotNull(message = "医疗保险企业缴纳比例不能为空") private BigDecimal medicalCompanyRatio; @Schema(description = "医疗保险个人缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.02") @NotNull(message = "医疗保险个人缴纳比例不能为空") private BigDecimal medicalPersonalRatio; // ========== 失业保险 ========== @Schema(description = "失业保险企业缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.005") @NotNull(message = "失业保险企业缴纳比例不能为空") private BigDecimal unemploymentCompanyRatio; @Schema(description = "失业保险个人缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.005") @NotNull(message = "失业保险个人缴纳比例不能为空") private BigDecimal unemploymentPersonalRatio; // ========== 工伤保险 ========== @Schema(description = "工伤保险企业缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.005") @NotNull(message = "工伤保险企业缴纳比例不能为空") private BigDecimal workInjuryRatio; // ========== 生育保险 ========== @Schema(description = "生育保险企业缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.005") @NotNull(message = "生育保险企业缴纳比例不能为空") private BigDecimal maternityRatio; // ========== 公积金 ========== @Schema(description = "公积金企业缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.12") @NotNull(message = "公积金企业缴纳比例不能为空") private BigDecimal housingFundCompanyRatio; @Schema(description = "公积金个人缴纳比例", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.12") @NotNull(message = "公积金个人缴纳比例不能为空") private BigDecimal housingFundPersonalRatio; // ========== 基数上下限 ========== @Schema(description = "社保基数下限", requiredMode = Schema.RequiredMode.REQUIRED, example = "4494") @NotNull(message = "社保基数下限不能为空") private BigDecimal socialSecurityBaseMin; @Schema(description = "社保基数上限", requiredMode = Schema.RequiredMode.REQUIRED, example = "28017") @NotNull(message = "社保基数上限不能为空") private BigDecimal socialSecurityBaseMax; @Schema(description = "公积金基数下限", requiredMode = Schema.RequiredMode.REQUIRED, example = "2420") @NotNull(message = "公积金基数下限不能为空") private BigDecimal housingFundBaseMin; @Schema(description = "公积金基数上限", requiredMode = Schema.RequiredMode.REQUIRED, example = "35091") @NotNull(message = "公积金基数上限不能为空") private BigDecimal housingFundBaseMax; @Schema(description = "状态:0-启用,1-禁用", example = "0") private Integer status; @Schema(description = "备注", example = "2024年南通市社保公积金缴纳标准") private String remark; }