package jnpf.model.attendance.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.Date;
import java.util.List;

/**
 * 实际出勤列表
 *
 * @author yanwenfu
 * @create 2024-06-25
 */
@Getter
@Setter
@NoArgsConstructor
public class DailyClockInVo {

    /** 考勤组id */
    private String groupId;
    /** 打卡结果id */
    private String clockInResultId;
    /** 顺序 */
    private String sortStr;
    /** 工作时间 */
    private String workTime;
    private Date workDate;
    /** 缺卡时间 */
    private Date lackTime;
    /** 班次id */
    private String shiftId;
    /** 班次时间(08:00) */
    private String shiftTimeStr;
    /** 班次时间(上班&下班) */
    private String totalShiftTimeStr;
    /** 最终有效打卡(次日08:00) */
    private String clockInTimeStr;
    /** 打卡方式 */
    private String clockInMethod;
    /** 打卡地点 */
    private String clockInPlace;
    /** 出勤类型(4: 加班) */
    private Integer attendanceType;
    /** 打卡种类(1: 普通打卡, 2: 外勤打卡) */
    private Integer clockInKind;
    /** 打卡状态(-1: 缺卡, 1: 正常, 2: 迟到, 3: 早退) */
    private Integer clockInStatus;
    /** 结果是否变更(1: 是, 0: 否) */
    private Integer changed;
    /** 是否补卡(1: 是, 0: 否) */
    private Integer repaired;
    /** 打卡id */
    private String clockInId;
    /** 出勤规则id */
    private String ruleId;
    /** 出勤类型(1: 班, 2: 休, 3: 请假) */
    private Integer ruleType;
    /** 打卡时间 */
    private Date clockInTime;
    /** 有效时间 */
    private Date effectiveTime;
    /** 审批状态(0: 通过, 1: 审批中, 2: 拒绝) */
    private Integer approvalStatus;
    /** 打卡类型(1: 上班, 2: 下班) */
    private Integer clockInType;
    /** 是否需要审批(1: 是, 0: 否) */
    private Integer needApproval;
    /** 最终结果 */
    private String lastResult;
    /** 是否需要删除 */
    private boolean needDel = false;
    /** 1：正常班, 9: 出差, 10: 外出*/
    private Integer applyViewEnable;
    /** 下班是否被外出覆盖(0未覆盖 1覆盖) */
    private Integer outStepOutType;
    /** 上班是否被外出覆盖(0未覆盖 1覆盖) */
    private Integer inStepOutType;
    /** 是否有外勤打卡图片（0-无 1-有）*/
    private Integer fieldPersonnelPic = 0;
    /** 能否变更(1: 是, 0: 否) */
    private Integer couldChange = 0;
    /** 备注 */
    private String remark;
    /** 打卡图片 */
    private List<String> picList;
    /** 关联审批Id */
    private String associationApplyId;
    /** 外出覆盖申请id */
    private String stepOutApplyId;
    /** rule是否删除 */
    private Integer deleteMark;

    public DailyClockInVo(String clockInResultId, Integer clockInKind, String clockInId) {
        this.clockInResultId = clockInResultId;
        this.clockInKind = clockInKind;
        this.clockInId = clockInId;
    }
}
