package cn.iocoder.yudao.module.hrm.controller.admin.salary.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; import java.util.List; @Schema(description = "管理后台 - 薪酬核算保存 Request VO") @Data public class HrmSalaryCalculationSaveReqVO { @Schema(description = "核算周期", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-01") @NotNull(message = "核算周期不能为空") private String period; @Schema(description = "薪酬核算列表", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "薪酬核算列表不能为空") @Valid private List list; @Schema(description = "薪酬核算项") @Data public static class CalculationItem { @Schema(description = "核算ID(新增时不传,修改时必传)") private Long id; @Schema(description = "系统用户ID", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "员工不能为空") private Long userId; @Schema(description = "部门ID", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "部门不能为空") private Long deptId; @Schema(description = "基本工资", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "基本工资不能为空") private BigDecimal baseSalary; @Schema(description = "绩效工资") private BigDecimal performanceSalary; @Schema(description = "加班工资") private BigDecimal overtimePay; @Schema(description = "餐补") private BigDecimal mealAllowance; @Schema(description = "交通补贴") private BigDecimal transportAllowance; @Schema(description = "其他补贴") private BigDecimal otherAllowance; @Schema(description = "社保扣除") private BigDecimal socialSecurityDeduction; @Schema(description = "公积金扣除") private BigDecimal housingFundDeduction; @Schema(description = "个税扣除") private BigDecimal taxDeduction; @Schema(description = "其他扣除") private BigDecimal otherDeduction; @Schema(description = "实发工资", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "实发工资不能为空") private BigDecimal actualSalary; @Schema(description = "出勤天数") private Integer workDays; @Schema(description = "加班时长") private BigDecimal overtimeHours; @Schema(description = "备注") private String remark; } }