package jnpf.model.attendance.vo.attendance;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.LinkedHashMap;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SalaryAttendanceSupportQuery {
    /**
     * 用户ID
     */
    private String userId;
    /**
     * 考勤组id
     */
    private String groupId;
    /**
     * 出勤换算比
     */
    private BigDecimal attendanceRatio;
    /**
     * 应出勤天数
     */
    private BigDecimal shouldAttendDays;
    /**
     * 应计薪小时数
     */
    private BigDecimal shouldAttendPayrollHours;
    /**
     * 有效出勤天数
     */
    private BigDecimal effectiveAttendDays;
    /**
     * 有效计薪小时数
     */
    private BigDecimal effectiveAttendPayrollHours;
    /**
     * 每日有效计薪小时数
     */
    private List<LinkedHashMap<String, BigDecimal>> effectiveAttendDayList;
    /**
     * 实际出勤天数
     */
    private BigDecimal actualAttendDays;
    /**
     * 实际计薪小时数
     */
    private BigDecimal actualAttendPayrollHours;
    /**
     * 迟到次数
     */
    private Integer lateTimes;
    /**
     * 迟到分钟数
     */
    private BigDecimal lateMinutes;
    /**
     * 每日迟到分钟数
     */
    private List<LinkedHashMap<String, BigDecimal>> lateDayMinutesList;
    /**
     * 早退次数
     */
    private Integer earlyLeaveTimes;
    /**
     * 早退分钟数
     */
    private BigDecimal earlyLeaveMinutes;
    /**
     * 每日早退分钟数
     */
    private List<LinkedHashMap<String, BigDecimal>> earlyLeaveDayMinutesList;
    /**
     * 缺卡次数
     */
    private Integer absenceCardTimes;
    /**
     * 旷工次数
     */
    private Integer absenceTimes;
    /**
     * 旷工天数
     */
    private BigDecimal absenceDays;
    /**
     * 旷工计薪小时数
     */
    private BigDecimal absencePayrollHours;
    /**
     * 补卡次数
     */
    private Integer makeUpCardTimes;
    /**
     * 外勤次数
     */
    private Integer outworkTimes;
    /**
     * 外勤天数
     */
    private BigDecimal outworkDays;
    /**
     * 外勤计薪小时数
     */
    private BigDecimal outworkPayrollHours;
    /**
     * 出差天数
     */
    private BigDecimal busDays;
    /**
     * 出差小时数
     */
    private BigDecimal busHours;
    /**
     * 外出天数
     */
    private BigDecimal outDays;
    /**
     * 外出小时数
     */
    private BigDecimal outHours;
    /**
     * 加班次数
     */
    private Integer overtimeTimes;
    /**
     * 加班天数
     */
    private BigDecimal overtimeDays;
    /**
     * 加班小时数
     */
    private BigDecimal overtimeHours;
    /**
     * 工作日加班天数
     */
    private BigDecimal weekdayOvertimeDays;
    /**
     * 工作日加班小时数
     */
    private BigDecimal weekdayOvertimeHours;
    /**
     * 节假日加班天数
     */
    private BigDecimal holidaysOvertimeDays;
    /**
     * 节假日加班小时数
     */
    private BigDecimal holidaysOvertimeHours;
    /**
     * 公休日加班天数
     */
    private BigDecimal publicHolidaysOvertimeDays;
    /**
     * 公休日加班小时数
     */
    private BigDecimal publicHolidaysOvertimeHours;
    /**
     * 公休天数
     */
    private BigDecimal publicHolidaysDays;
    /**
     * 公休计薪小时数
     */
    private BigDecimal publicHolidaysPayrollHours;
    /**
     * 实际公休天数
     */
    private BigDecimal actualPublicHolidays;
    /**
     * 实际公休小时数
     */
    private BigDecimal actualPublicHolidaysHours;
    /**
     * 请假天数
     */
    private BigDecimal leaveDays;
    /**
     * 请假计薪小时数
     */
    private BigDecimal leavePayrollHours;
    /**
     * 调休天数
     */
    private BigDecimal compensationDays;
    /**
     * 调休计薪小时数
     */
    private BigDecimal compensationPayrollHours;
    /**
     * 自定义假期动态Json
     */
    private List<LinkedHashMap<String,Object>> customLeaveList;
    /**
     * 请假批次号
     */
    private String leaveBatchNumber;
}
