package jnpf.model.attendance.vo.attendance;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DayStatisticsQueryVo {
    /**
     * id
     */
    private String id;
    /**
     * 用户ID
     */
    private String userId;
    /**
     * 考勤组id
     */
    private String groupId;
    /**
     * 日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date date;
    /**
     * 应出勤小时数
     */
    private BigDecimal shouldAttendHours;
    /**
     * 有效出勤小时数
     */
    private BigDecimal effectiveAttendHours = BigDecimal.ZERO;
    /**
     * 实际出勤小时数
     */
    private BigDecimal actualAttendHours;
    /**
     * 迟到次数
     */
    private Integer lateTimes;
    /**
     * 迟到分钟数
     */
    private BigDecimal lateMinutes;
    /**
     * 补卡次数
     */
    private Integer makeUpCardTimes;
    /**
     * 早退次数
     */
    private Integer earlyLeaveTimes;
    /**
     * 早退分钟数
     */
    private BigDecimal earlyLeaveMinutes;
    /**
     * 缺卡次数
     */
    private Integer absenceCardTimes;
    /**
     * 缺卡小时数
     */
    private BigDecimal absenceCardHours;
    /**
     * 外勤打卡次数
     */
    private Integer outworkTimes;
    /**
     * 加班次数
     */
    private Integer overtimeTimes;
    /**
     * 旷工次数
     */
    private Integer absenceTimes;
    /**
     * 旷工小时数
     */
    private BigDecimal absenceHours;
    /**
     * 是否借调(0-否  1-是)
     */
    private Integer selfGroup;
    /**
     * 出差天数
     */
    private BigDecimal busDays;
    /**
     * 外出天数
     */
    private BigDecimal outDays;
    /**
     * 外出时长(小时)
     */
    private BigDecimal outHours;
    /**
     * 节假日加班小时数
     */
    private BigDecimal holidaysOvertimeHours;
    /**
     * 公休日加班小时数
     */
    private BigDecimal publicHolidaysOvertimeHours;
    /**
     * 工作日加班小时数
     */
    private BigDecimal weekdayOvertimeHours;
    /**
     * 请假批次号
     */
    private String leaveBatchNumber;
    /**
     * 请假小时数
     */
    private BigDecimal leaveHours;
    /**
     * 班次json
     */
    private String shiftsJson;
    /**
     * 休息次数(次)
     */
    private Integer restTimes;
    /**
     * 调休小时数
     */
    private BigDecimal compensationHours;
    /**
     * 自定义假期动态Json
     */
    private List<LinkedHashMap<String,Object>> customLeaveList;
}
