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 HrmTaxRateConfigSaveReqVO { @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 = "税率级数:1-7", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "税率级数不能为空") private Integer level; @Schema(description = "应纳税所得额下限(含)", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @NotNull(message = "应纳税所得额下限不能为空") private BigDecimal minAmount; @Schema(description = "应纳税所得额上限(不含),0表示无上限", requiredMode = Schema.RequiredMode.REQUIRED, example = "36000") @NotNull(message = "应纳税所得额上限不能为空") private BigDecimal maxAmount; @Schema(description = "税率", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.03") @NotNull(message = "税率不能为空") private BigDecimal taxRate; @Schema(description = "速算扣除数", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @NotNull(message = "速算扣除数不能为空") private BigDecimal quickDeduction; @Schema(description = "状态:0-启用,1-禁用", example = "0") private Integer status; @Schema(description = "备注", example = "不超过36000元") private String remark; }