package com.qmth.sop.business.entity;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qmth.sop.common.base.BaseEntity;
import com.qmth.sop.common.enums.DingSubmitStatusEnum;
import com.qmth.sop.common.enums.RoleTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;

/**
 * @Description: 考勤提交表
 * @Author: CaoZixuan
 * @Date: 2023-08-24
 */
@ApiModel(value="TBDingSubmit对象", description="考勤提交审核表")
public class TBDingSubmit extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "服务单元id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long serviceId;

    @ApiModelProperty(value = "sop流水号")
    private String sopNo;

    @ApiModelProperty(value = "派单号")
    private String crmNo;

    @ApiModelProperty(value = "人员档案id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long userArchivesId;

    @ApiModelProperty(value = "进场时间")
    private Long approachTime;

    @ApiModelProperty(value = "离场时间")
    private Long departureTime;

    @ApiModelProperty(value = "项目角色")
    private RoleTypeEnum roleType;

    @ApiModelProperty(value = "实际出勤（天）")
    private Integer actualDays;

    @ApiModelProperty(value = "工作日（天）")
    private Integer weekdays;

    @ApiModelProperty(value = "周末（天）")
    private Integer weekends;

    @ApiModelProperty(value = "法定节假日（天）")
    private Integer legalHolidays;

    @ApiModelProperty(value = "累计工时（小时）")
    private Double workHours;

    @ApiModelProperty(value = "违规工时")
    private Double violationDays;

    @ApiModelProperty(value = "提交人id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long submitUserId;

    @ApiModelProperty(value = "提交时间")
    private Long submitTime;

    @ApiModelProperty(value = "提交状态")
    private DingSubmitStatusEnum submitStatus;

    public Long getServiceId() {
        return serviceId;
    }

    public void setServiceId(Long serviceId) {
        this.serviceId = serviceId;
    }

    public String getSopNo() {
        return sopNo;
    }

    public void setSopNo(String sopNo) {
        this.sopNo = sopNo;
    }

    public String getCrmNo() {
        return crmNo;
    }

    public void setCrmNo(String crmNo) {
        this.crmNo = crmNo;
    }

    public Long getUserArchivesId() {
        return userArchivesId;
    }

    public void setUserArchivesId(Long userArchivesId) {
        this.userArchivesId = userArchivesId;
    }

    public Long getApproachTime() {
        return approachTime;
    }

    public void setApproachTime(Long approachTime) {
        this.approachTime = approachTime;
    }

    public Long getDepartureTime() {
        return departureTime;
    }

    public void setDepartureTime(Long departureTime) {
        this.departureTime = departureTime;
    }

    public RoleTypeEnum getRoleType() {
        return roleType;
    }

    public void setRoleType(RoleTypeEnum roleType) {
        this.roleType = roleType;
    }

    public Integer getActualDays() {
        return actualDays;
    }

    public void setActualDays(Integer actualDays) {
        this.actualDays = actualDays;
    }

    public Integer getWeekdays() {
        return weekdays;
    }

    public void setWeekdays(Integer weekdays) {
        this.weekdays = weekdays;
    }

    public Integer getWeekends() {
        return weekends;
    }

    public void setWeekends(Integer weekends) {
        this.weekends = weekends;
    }

    public Integer getLegalHolidays() {
        return legalHolidays;
    }

    public void setLegalHolidays(Integer legalHolidays) {
        this.legalHolidays = legalHolidays;
    }

    public Double getWorkHours() {
        return workHours;
    }

    public void setWorkHours(Double workHours) {
        this.workHours = workHours;
    }

    public Double getViolationDays() {
        return violationDays;
    }

    public void setViolationDays(Double violationDays) {
        this.violationDays = violationDays;
    }

    public Long getSubmitUserId() {
        return submitUserId;
    }

    public void setSubmitUserId(Long submitUserId) {
        this.submitUserId = submitUserId;
    }

    public Long getSubmitTime() {
        return submitTime;
    }

    public void setSubmitTime(Long submitTime) {
        this.submitTime = submitTime;
    }

    public DingSubmitStatusEnum getSubmitStatus() {
        return submitStatus;
    }

    public void setSubmitStatus(DingSubmitStatusEnum submitStatus) {
        this.submitStatus = submitStatus;
    }
}
