gaoluyang
4 天以前 fe4a5c78dc6c4e21e57d9652be9d4a42dccf0ca1
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
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 standardSalary;
 
        @Schema(description = "岗位工资")
        private BigDecimal postSalary;
 
        @Schema(description = "加班工资标准(元/小时)")
        private BigDecimal overtimeHourlyRate;
 
        @Schema(description = "安全环保奖标准")
        private BigDecimal safetyAwardStandard;
 
        @Schema(description = "绩效标准")
        private BigDecimal performanceStandard;
 
        @Schema(description = "计薪出勤(天)")
        private BigDecimal paidAttendanceDays;
 
        @Schema(description = "标准出勤时长(小时)")
        private BigDecimal standardWorkHours;
 
        @Schema(description = "法定假日时长(小时)")
        private BigDecimal legalHolidayHours;
 
        @Schema(description = "标准出勤工资")
        private BigDecimal standardAttendancePay;
 
        @Schema(description = "法定假工资")
        private BigDecimal legalHolidayPay;
 
        @Schema(description = "安全环保奖")
        private BigDecimal safetyAward;
 
        @Schema(description = "浮动绩效工资")
        private BigDecimal floatingPerformancePay;
 
        @Schema(description = "应付工资")
        private BigDecimal payableSalary;
 
        @Schema(description = "工龄工资")
        private BigDecimal seniorityPay;
 
        @Schema(description = "夜班补助")
        private BigDecimal nightShiftAllowance;
 
        @Schema(description = "学历补贴")
        private BigDecimal educationAllowance;
 
        @Schema(description = "体检")
        private BigDecimal healthCheckAllowance;
 
        @Schema(description = "优秀员工奖")
        private BigDecimal excellentEmployeeAward;
 
        @Schema(description = "其他补助")
        private BigDecimal otherSubsidy;
 
        @Schema(description = "部门绩效")
        private BigDecimal deptPerformance;
 
        @Schema(description = "加项合计")
        private BigDecimal additionTotal;
 
        @Schema(description = "漏打卡")
        private BigDecimal missedPunchDeduction;
 
        @Schema(description = "迟到早退")
        private BigDecimal lateEarlyDeduction;
 
        @Schema(description = "扣款合计")
        private BigDecimal deductionTotal;
 
        @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;
 
    }
 
}