package com.zd.laboratory.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zd.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.zd.common.core.web.domain.BaseEntity;
import org.hibernate.validator.constraints.Length;

import java.util.Date;

/**
 * 违规历史记录对象 lab_violation_history_record
 * 
 * @author zd
 * @date 2021-12-14
 */
@ApiModel("违规历史记录")
public class LabViolationHistoryRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @ApiModelProperty(value = "${comment}")
    private Long id;
    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @ApiModelProperty(value = "${comment}")
    private Long userId;
    /** 原因 */
    @Excel(name = "原因")
    @Length(message = "原因长度不能超过255")
    @ApiModelProperty(value = "原因")
    private String reason;
    /** 实验室 */
    @Excel(name = "实验室")
    @Length(message = "实验室长度不能超过255")
    @ApiModelProperty(value = "实验室")
    private String laboratorys;
    /** 扣分值 */
    @Excel(name = "扣分值")
    @Length(message = "扣分值长度不能超过255")
    @ApiModelProperty(value = "扣分值")
    private Long deductionValue;
    /** 信用分 */
    @Excel(name = "信用分")
    @Length(message = "信用分长度不能超过255")
    @ApiModelProperty(value = "信用分")
    private Long creditScore;

    private String userName;

    private String status;

    /** 学习时长，只有学习状态不是-1的时候，才用这个字段，以秒为单位 */
    @Excel(name = "学习时长，只有学习状态不是-1的时候，才用这个字段，以秒为单位")
    @ApiModelProperty(value = "学习时长，只有学习状态不是-1的时候，才用这个字段，以秒为单位")
    private Long learnTime;

    /** 状态：1:已完成，0:未完成，-1:无 */
    @Excel(name = "状态：1:已完成，0:未完成，-1:无")
    @ApiModelProperty(value = "状态：1:已完成，0:未完成，-1:无")
    private Integer overStatus;

    /** 处理方式，这个用于只存字符串的记录，如：学习、做题 */
    @Excel(name = "处理方式，这个用于只存字符串的记录，如：学习、做题")
    @Length(message = "处理方式，这个用于只存字符串的记录，如：学习、做题长度不能超过200")
    @ApiModelProperty(value = "处理方式，这个用于只存字符串的记录，如：学习、做题")
    private String treatmentMethod;

    /** 实验室id */
    @Excel(name = "实验室id")
    @ApiModelProperty(value = "实验室id")
    private Long laboratoryId;

    /** 扣分值 */
    @Excel(name = "扣分值")
    @ApiModelProperty(value = "扣分值")
    private Long deductionVal;

    /** 警告：1是打钩，-1是没打勾 */
    @Excel(name = "警告：1是打钩，-1是没打勾")
    @ApiModelProperty(value = "警告：1是打钩，-1是没打勾")
    private Integer warningStatus;
    /** 约谈：1是打钩，-1是没打勾 */
    @Excel(name = "约谈：1是打钩，-1是没打勾")
    @ApiModelProperty(value = "约谈：1是打钩，-1是没打勾")
    private Integer interviewStatus;
    /** 考试：1是打钩，-1是没打勾 */
    @Excel(name = "考试：1是打钩，-1是没打勾")
    @ApiModelProperty(value = "考试：1是打钩，-1是没打勾")
    private Integer testStatus;
    /** 学习：1是打钩，-1是没打勾 */
    @Excel(name = "学习：1是打钩，-1是没打勾")
    @ApiModelProperty(value = "学习：1是打钩，-1是没打勾")
    private Integer learnStatus;
    /** 做题：1是打钩，-1是没打勾 */
    @Excel(name = "做题：1是打钩，-1是没打勾")
    @ApiModelProperty(value = "做题：1是打钩，-1是没打勾")
    private Integer practiceStatus;
    /** 处理天数 */
    @Excel(name = "处理天数")
    @ApiModelProperty(value = "处理天数")
    private Date handleDay;
    /** 学习小时,状态只有学习的时候用 */
    @Excel(name = "学习小时,状态只有学习的时候用")
    @ApiModelProperty(value = "学习小时,状态只有学习的时候用")
    private Long learnHour;
    /** 学习分钟，状态只有学习的时候用 */
    @Excel(name = "学习分钟，状态只有学习的时候用")
    @ApiModelProperty(value = "学习分钟，状态只有学习的时候用")
    private Long learnMinute;
    /** 题目数量，只有做题的时候才用 */
    @Excel(name = "题目数量，只有做题的时候才用")
    @ApiModelProperty(value = "题目数量，只有做题的时候才用")
    private Integer numberTopics;
    /** 做题准确率，只有做题的时候才用 */
    @Excel(name = "做题准确率，只有做题的时候才用")
    @ApiModelProperty(value = "做题准确率，只有做题的时候才用")
    private Integer numberAccuracy;





    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setReason(String reason) 
    {
        this.reason = reason;
    }

    public String getReason() 
    {
        return reason;
    }
    public void setLaboratorys(String laboratorys) 
    {
        this.laboratorys = laboratorys;
    }

    public String getLaboratorys() 
    {
        return laboratorys;
    }
    public void setDeductionValue(Long deductionValue)
    {
        this.deductionValue = deductionValue;
    }

    public Long getDeductionValue()
    {
        return deductionValue;
    }

    public void setCreditScore(Long creditScore)
    {
        this.creditScore = creditScore;
    }

    public Long getCreditScore()
    {
        return creditScore;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Integer getWarningStatus() {
        return warningStatus;
    }

    public void setWarningStatus(Integer warningStatus) {
        this.warningStatus = warningStatus;
    }

    public Integer getInterviewStatus() {
        return interviewStatus;
    }

    public void setInterviewStatus(Integer interviewStatus) {
        this.interviewStatus = interviewStatus;
    }

    public Integer getTestStatus() {
        return testStatus;
    }

    public void setTestStatus(Integer testStatus) {
        this.testStatus = testStatus;
    }

    public Integer getLearnStatus() {
        return learnStatus;
    }

    public void setLearnStatus(Integer learnStatus) {
        this.learnStatus = learnStatus;
    }

    public Integer getPracticeStatus() {
        return practiceStatus;
    }

    public void setPracticeStatus(Integer practiceStatus) {
        this.practiceStatus = practiceStatus;
    }

    public Date getHandleDay() {
        return handleDay;
    }

    public void setHandleDay(Date handleDay) {
        this.handleDay = handleDay;
    }

    public Long getLearnHour() {
        return learnHour;
    }

    public void setLearnHour(Long learnHour) {
        this.learnHour = learnHour;
    }

    public Long getLearnMinute() {
        return learnMinute;
    }

    public void setLearnMinute(Long learnMinute) {
        this.learnMinute = learnMinute;
    }

    public Integer getNumberTopics() {
        return numberTopics;
    }

    public void setNumberTopics(Integer numberTopics) {
        this.numberTopics = numberTopics;
    }

    public Integer getNumberAccuracy() {
        return numberAccuracy;
    }

    public void setNumberAccuracy(Integer numberAccuracy) {
        this.numberAccuracy = numberAccuracy;
    }

    public Long getLearnTime() {
        return learnTime;
    }

    public void setLearnTime(Long learnTime) {
        this.learnTime = learnTime;
    }

    public Integer getOverStatus() {
        return overStatus;
    }

    public void setOverStatus(Integer overStatus) {
        this.overStatus = overStatus;
    }

    public String getTreatmentMethod() {
        return treatmentMethod;
    }

    public void setTreatmentMethod(String treatmentMethod) {
        this.treatmentMethod = treatmentMethod;
    }

    public Long getLaboratoryId() {
        return laboratoryId;
    }

    public void setLaboratoryId(Long laboratoryId) {
        this.laboratoryId = laboratoryId;
    }

    public Long getDeductionVal() {
        return deductionVal;
    }

    public void setDeductionVal(Long deductionVal) {
        this.deductionVal = deductionVal;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("reason", getReason())
            .append("laboratorys", getLaboratorys())
            .append("createTime", getCreateTime())
            .append("deductionValue", getDeductionValue())
            .append("creditScore", getCreditScore())
            .toString();
    }
}
