2026-07-09 d41fe2e95f3f64c6e3a7229acd9e74e673513a0a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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;
 
    }
 
}