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<CalculationItem> 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;
|
|
}
|
|
}
|