package jnpf.model.attendance.vo;

import jnpf.model.attendance.model.LeaveStatistics;
import jnpf.model.attendance.model.PersonDetail;
import jnpf.model.attendance.model.RealityAttendanceOneDays;
import jnpf.permission.model.user.PartUserInfoVo;
import lombok.Data;

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

@Data
public class SalaryFtbStaticsVo {

    /**
     * 用户id
     */
    private String userId;

    /**
     * 用户信息
     */
    private PartUserInfoVo partUserInfoVo;

    /**
     * 应出勤小时数
     */
    private BigDecimal attendanceHours = BigDecimal.ZERO;

    /**
     * 应出勤天数
     */
    private Integer attendanceDay = 0;

    /**
     * 有效出勤小时数
     */
    private BigDecimal realityAttendanceHours = BigDecimal.ZERO;

    /**
     * 有效出勤天数
     */
    private BigDecimal realityAttendanceDay = BigDecimal.ZERO;

    /**
     * 有效出勤天数集合
     */
    private List<RealityAttendanceOneDays> realityAttendanceDayList = new ArrayList<>();

    /**
     * 出勤占比 0.8888  保留四位小数
     */
    private BigDecimal attendanceProportion = new BigDecimal("0");

    /**
     * 缺卡次数
     */
    private Integer lackCardsNum = 0;

    /**
     * 缺卡小时数
     */
    private BigDecimal lackCardsHours = BigDecimal.ZERO;

    /**
     * 缺卡天数
     */
    private BigDecimal lackCardsDay = BigDecimal.ZERO;

    /**
     * 缺勤次数
     */
    private Integer absenceTimes = 0;

    /**
     * 缺勤小时数
     */
    private BigDecimal absenceHours = BigDecimal.ZERO;

    /**
     * 缺勤天数
     */
    private BigDecimal absenceDays = BigDecimal.ZERO;

    /**
     * 早退次数
     */
    private Integer leaveEarlyNum = 0;

    /**
     * 迟到次数
     */
    private Integer lateNum = 0;

    /**
     * 早退累计分钟
     */
    private BigDecimal leaveEarlyTotalMinute = BigDecimal.ZERO;

    /**
     * 迟到累计分钟
     */
    private BigDecimal lateTotalMinute = BigDecimal.ZERO;

    /**
     * 未抵扣请假小时数
     */
    private BigDecimal unDeductedLeaveHours = BigDecimal.ZERO;

    /**
     * 请假小时数
     */
    private BigDecimal leaveHours = BigDecimal.ZERO;

    /**
     * 请假天数
     */
    private BigDecimal leaveDay = BigDecimal.ZERO;

    /**
     * 按天的请假集合
     */
    private List<PersonDetail> askLeaveList = new ArrayList<>();

    /**
     * 迟到集合
     */
    private List<PersonDetail> late = new ArrayList<>();

    /**
     * 早退集合
     */
    private List<PersonDetail> leaveEarly = new ArrayList<>();

    /**
     * 请假统计数据
     */
    private List<LeaveStatistics> leaveStatistics = new ArrayList<>();
}
