package jnpf.model.attendance.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "考勤本月统计VO")
public class BookRecordMonthStatisticsVo {

    @Schema(description = "考勤本ID")
    private String bookId;

    @Schema(description = "考勤本名称")
    private String bookName;

    @Schema(description = "员工ID")
    private String userId;

    @Schema(description = "员工姓名")
    private String realName;
    /**
     * 是否借调
     */
    private Integer secondmentType;
    /**
     * 是否离组 (0否 ,1是)
     */
    private Integer isOutGroup;

    @Schema(description = "所属组织")
    private String organizeName;

    @Schema(description = "岗位")
    private String positionName;

    @Schema(description = "手机号")
    private String mobilePhone;

    @Schema(description = "序号")
    private Integer sortOrder;

    @Schema(description = "是否锁定（false:未锁定 true:已锁定）")
    private Boolean isSeal;

    @Schema(description = "每日考勤格子数据")
    private List<BookRecordDailyLatticeVo> dailyLatticeList;

    @Schema(description = "实际出勤天数")
    private BigDecimal actualAttendDays;

    @Schema(description = "公休天数")
    private BigDecimal publicHolidayDays;

    @Schema(description = "迟到天数")
    private BigDecimal lateDays;

    @Schema(description = "早退天数")
    private BigDecimal earlyLeaveDays;

    @Schema(description = "缺卡天数")
    private BigDecimal missingCardDays;

    @Schema(description = "旷工天数")
    private BigDecimal absenteeismDays;

    @Schema(description = "出差天数")
    private BigDecimal businessTripDays;

    @Schema(description = "外出天数")
    private BigDecimal outOfficeDays;

    @Schema(description = "外勤天数")
    private BigDecimal fieldWorkDays;

    @Schema(description = "实际出勤次数")
    private BigDecimal actualAttendCount;

    @Schema(description = "公休次数")
    private BigDecimal publicHolidayCount;

    @Schema(description = "迟到次数")
    private BigDecimal lateCount;

    @Schema(description = "早退次数")
    private BigDecimal earlyLeaveCount;

    @Schema(description = "缺卡次数")
    private BigDecimal missingCardCount;

    @Schema(description = "旷工次数")
    private BigDecimal absenteeismCount;

    @Schema(description = "出差次数")
    private BigDecimal businessTripCount;

    @Schema(description = "外出次数")
    private BigDecimal outOfficeCount;

    @Schema(description = "外勤次数")
    private BigDecimal fieldWorkCount;

    @Schema(description = "请假天数统计")
    private List<LeaveTypeStatisticVo> leaveDaysByType;

    @Schema(description = "备注集合")
    private List<String> remarkList;
}
