package com.miaxis.train.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.miaxis.common.annotation.Excel;
import com.miaxis.common.core.domain.BaseBusinessEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
/**
 * 训练明细（终端上次明细）对象 t_m_train_record
 *
 * @author miaxis
 * @date 2021-01-14
 */
@Data
@TableName("t_m_train_record")
@ApiModel(value = "TMTrainRecord", description = "训练明细（终端上次明细）对象 t_m_train_record")
public class TMTrainRecord extends BaseBusinessEntity{
    private static final long serialVersionUID = 1L;

    /** 学时记录编号,16位计时设备编码+6位日期码+4位序列号 */
    @Excel(name = "学时记录编号,16位计时设备编码+6位日期码+4位序列号")
    @TableField("rnum")
    @ApiModelProperty(value = "学时记录编号,16位计时设备编码+6位日期码+4位序列号")
    private String rnum;

    /** 教练员编号 */
    @Excel(name = "教练员编号")
    @TableField("coachnum")
    @ApiModelProperty(value = "教练员编号")
    private String coachnum;

    /** 学员编号 */
    @Excel(name = "学员编号")
    @TableField("stunum")
    @ApiModelProperty(value = "学员编号")
    private String stunum;

    /** 上报类型,0x01：自动上报；0x02：应中心要求上报。如果是应中心要求上传，则本次上传作业的作业序号保持与请求上传消息的作业序号一致，后续分段上传的作业序号也保持一致。 */
    @Excel(name = "上报类型,0x01：自动上报；0x02：应中心要求上报。如果是应中心要求上传，则本次上传作业的作业序号保持与请求上传消息的作业序号一致，后续分段上传的作业序号也保持一致。")
    @TableField("uploadtype")
    @ApiModelProperty(value = "上报类型,0x01：自动上报；0x02：应中心要求上报。如果是应中心要求上传，则本次上传作业的作业序号保持与请求上传消息的作业序号一致，后续分段上传的作业序号也保持一致。")
    private Integer uploadtype;

    /** 课堂ID,标识学员的一次培训过程，计时平台自行使用 */
    @Excel(name = "课堂ID,标识学员的一次培训过程，计时平台自行使用")
    @TableField("lessonid")
    @ApiModelProperty(value = "课堂ID,标识学员的一次培训过程，计时平台自行使用")
    private Long lessonid;

    /** 记录产生时间,格式： HHmmss，1min最后1s的时间 */
    @Excel(name = "记录产生时间,格式： HHmmss，1min最后1s的时间")
    @TableField("recordtime")
    @ApiModelProperty(value = "记录产生时间,格式： HHmmss，1min最后1s的时间")
    private String recordtime;

    /** 培训课程 */
    @Excel(name = "培训课程")
    @TableField("trainlesson")
    @ApiModelProperty(value = "培训课程")
    private String trainlesson;

    /** 记录状态 0正常记录，1-异常记录 */
    @Excel(name = "记录状态 0正常记录，1-异常记录")
    @TableField("recordstatus")
    @ApiModelProperty(value = "记录状态 0正常记录，1-异常记录")
    private Integer recordstatus;

    /** 1min内车辆达到的最大卫星定位速度，1/10km/h */
    @Excel(name = "1min内车辆达到的最大卫星定位速度，1/10km/h")
    @TableField("maxspeed")
    @ApiModelProperty(value = "1min内车辆达到的最大卫星定位速度，1/10km/h")
    private Integer maxspeed;

    /** 里程 1min内行驶的总里程 0.1公里 */
    @Excel(name = "里程 1min内行驶的总里程 0.1公里")
    @TableField("miles")
    @ApiModelProperty(value = "里程 1min内行驶的总里程 0.1公里")
    private Integer miles;

    /** gps记录ID */
    @Excel(name = "gps记录ID")
    @TableField("gpsid")
    @ApiModelProperty(value = "gps记录ID")
    private Long gpsid;

    /**    */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("crdate")
    @ApiModelProperty(value = "  ")
    private Date crdate;

    /** 是否被统计过 */
    @Excel(name = "是否被统计过")
    @TableField("is_count")
    @ApiModelProperty(value = "是否被统计过")
    private Integer isCount;

    /** 审核结果 0:未审核 1：合格 2：不合格 */
    @Excel(name = "审核结果 0:未审核 1：合格 2：不合格")
    @TableField("audit_status")
    @ApiModelProperty(value = "审核结果 0:未审核 1：合格 2：不合格")
    private Integer auditStatus;

    /** 监管平台审核不合格原因 */
    @Excel(name = "监管平台审核不合格原因")
    @TableField("audit_reason")
    @ApiModelProperty(value = "监管平台审核不合格原因")
    private String auditReason;

    /** 审核类型 0：未审核 1：自动审核 2：手动审核 */
    @Excel(name = "审核类型 0：未审核 1：自动审核 2：手动审核")
    @TableField("audit_type")
    @ApiModelProperty(value = "审核类型 0：未审核 1：自动审核 2：手动审核")
    private Integer auditType;

    /** 学员姓名 */
    @Excel(name = "学员姓名")
    @TableField("stuname")
    @ApiModelProperty(value = "学员姓名")
    private String stuname;

    /** 教练姓名 */
    @Excel(name = "教练姓名")
    @TableField("coachname")
    @ApiModelProperty(value = "教练姓名")
    private String coachname;

    /** 培训机构编号 */
    @Excel(name = "培训机构编号")
    @TableField("inscode")
    @ApiModelProperty(value = "培训机构编号")
    private String inscode;

    /** 培训机构名称 */
    @Excel(name = "培训机构名称")
    @TableField("insname")
    @ApiModelProperty(value = "培训机构名称")
    private String insname;

    /** 阶段送审ID */
    @Excel(name = "阶段送审ID")
    @TableField("stage_id")
    @ApiModelProperty(value = "阶段送审ID")
    private Long stageId;

    /**    */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("traintime")
    @ApiModelProperty(value = "  ")
    private Date traintime;

    /**    */
    @Excel(name = "  ")
    @TableField("photo")
    @ApiModelProperty(value = "  ")
    private Long photo;

    /**    */
    @Excel(name = "  ")
    @TableField("lat")
    @ApiModelProperty(value = "  ")
    private Long lat;

    /**    */
    @Excel(name = "  ")
    @TableField("lng")
    @ApiModelProperty(value = "  ")
    private Long lng;

    /**    */
    @Excel(name = "  ")
    @TableField("engine_rpm")
    @ApiModelProperty(value = "  ")
    private Integer engineRpm;

    /**    */
    @Excel(name = "  ")
    @TableField("gpsspeed")
    @ApiModelProperty(value = "  ")
    private Integer gpsspeed;

    /**    */
    @Excel(name = "  ")
    @TableField("driverspeed")
    @ApiModelProperty(value = "  ")
    private Integer driverspeed;

    /**    */
    @Excel(name = "  ")
    @TableField("gps_status")
    @ApiModelProperty(value = "  ")
    private Long gpsStatus;

    /**    */
    @Excel(name = "  ")
    @TableField("is_photo_sync")
    @ApiModelProperty(value = "  ")
    private Integer isPhotoSync;

    /**    */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("is_sync_date")
    @ApiModelProperty(value = "  ")
    private Date isSyncDate;

    /** 车牌号 */
    @Excel(name = "车牌号")
    @TableField("licnum")
    @ApiModelProperty(value = "车牌号")
    private String licnum;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("audit_date")
    @ApiModelProperty(value = "审核时间")
    private Date auditDate;

    /**    */
    @Excel(name = "  ")
    @TableField("is_analyze")
    @ApiModelProperty(value = "  ")
    private Integer isAnalyze;

    /** 过滤规则id */
    @Excel(name = "过滤规则id")
    @TableField("audit_reason_id")
    @ApiModelProperty(value = "过滤规则id")
    private Integer auditReasonId;

    /**    */
    @Excel(name = "  ")
    @TableField("is_abnormal")
    @ApiModelProperty(value = "  ")
    private Long isAbnormal;

    /**    */
    @Excel(name = "  ")
    @TableField("carnum")
    @ApiModelProperty(value = "  ")
    private String carnum;

    /**    */
    @Excel(name = "  ")
    @TableField("stu_idcard")
    @ApiModelProperty(value = "  ")
    private String stuIdcard;

    /**    */
    @Excel(name = "  ")
    @TableField("coach_idcard")
    @ApiModelProperty(value = "  ")
    private String coachIdcard;

    /**    */
    @Excel(name = "  ")
    @TableField("devnum")
    @ApiModelProperty(value = "  ")
    private String devnum;

    /**    */
    @Excel(name = "  ")
    @TableField("abnormal_seq")
    @ApiModelProperty(value = "  ")
    private String abnormalSeq;

    public void setRnum(String rnum){
        this.rnum = rnum;
    }

    public String getRnum(){
        return rnum;
    }
    public void setCoachnum(String coachnum){
        this.coachnum = coachnum;
    }

    public String getCoachnum(){
        return coachnum;
    }
    public void setStunum(String stunum){
        this.stunum = stunum;
    }

    public String getStunum(){
        return stunum;
    }
    public void setUploadtype(Integer uploadtype){
        this.uploadtype = uploadtype;
    }

    public Integer getUploadtype(){
        return uploadtype;
    }
    public void setLessonid(Long lessonid){
        this.lessonid = lessonid;
    }

    public Long getLessonid(){
        return lessonid;
    }
    public void setRecordtime(String recordtime){
        this.recordtime = recordtime;
    }

    public String getRecordtime(){
        return recordtime;
    }
    public void setTrainlesson(String trainlesson){
        this.trainlesson = trainlesson;
    }

    public String getTrainlesson(){
        return trainlesson;
    }
    public void setRecordstatus(Integer recordstatus){
        this.recordstatus = recordstatus;
    }

    public Integer getRecordstatus(){
        return recordstatus;
    }
    public void setMaxspeed(Integer maxspeed){
        this.maxspeed = maxspeed;
    }

    public Integer getMaxspeed(){
        return maxspeed;
    }
    public void setMiles(Integer miles){
        this.miles = miles;
    }

    public Integer getMiles(){
        return miles;
    }
    public void setGpsid(Long gpsid){
        this.gpsid = gpsid;
    }

    public Long getGpsid(){
        return gpsid;
    }
    public void setCrdate(Date crdate){
        this.crdate = crdate;
    }

    public Date getCrdate(){
        return crdate;
    }
    public void setIsCount(Integer isCount){
        this.isCount = isCount;
    }

    public Integer getIsCount(){
        return isCount;
    }
    public void setAuditStatus(Integer auditStatus){
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus(){
        return auditStatus;
    }
    public void setAuditReason(String auditReason){
        this.auditReason = auditReason;
    }

    public String getAuditReason(){
        return auditReason;
    }
    public void setAuditType(Integer auditType){
        this.auditType = auditType;
    }

    public Integer getAuditType(){
        return auditType;
    }
    public void setStuname(String stuname){
        this.stuname = stuname;
    }

    public String getStuname(){
        return stuname;
    }
    public void setCoachname(String coachname){
        this.coachname = coachname;
    }

    public String getCoachname(){
        return coachname;
    }
    public void setInscode(String inscode){
        this.inscode = inscode;
    }

    public String getInscode(){
        return inscode;
    }
    public void setInsname(String insname){
        this.insname = insname;
    }

    public String getInsname(){
        return insname;
    }
    public void setStageId(Long stageId){
        this.stageId = stageId;
    }

    public Long getStageId(){
        return stageId;
    }
    public void setTraintime(Date traintime){
        this.traintime = traintime;
    }

    public Date getTraintime(){
        return traintime;
    }
    public void setPhoto(Long photo){
        this.photo = photo;
    }

    public Long getPhoto(){
        return photo;
    }
    public void setLat(Long lat){
        this.lat = lat;
    }

    public Long getLat(){
        return lat;
    }
    public void setLng(Long lng){
        this.lng = lng;
    }

    public Long getLng(){
        return lng;
    }
    public void setEngineRpm(Integer engineRpm){
        this.engineRpm = engineRpm;
    }

    public Integer getEngineRpm(){
        return engineRpm;
    }
    public void setGpsspeed(Integer gpsspeed){
        this.gpsspeed = gpsspeed;
    }

    public Integer getGpsspeed(){
        return gpsspeed;
    }
    public void setDriverspeed(Integer driverspeed){
        this.driverspeed = driverspeed;
    }

    public Integer getDriverspeed(){
        return driverspeed;
    }
    public void setGpsStatus(Long gpsStatus){
        this.gpsStatus = gpsStatus;
    }

    public Long getGpsStatus(){
        return gpsStatus;
    }
    public void setIsPhotoSync(Integer isPhotoSync){
        this.isPhotoSync = isPhotoSync;
    }

    public Integer getIsPhotoSync(){
        return isPhotoSync;
    }
    public void setIsSyncDate(Date isSyncDate){
        this.isSyncDate = isSyncDate;
    }

    public Date getIsSyncDate(){
        return isSyncDate;
    }
    public void setLicnum(String licnum){
        this.licnum = licnum;
    }

    public String getLicnum(){
        return licnum;
    }
    public void setAuditDate(Date auditDate){
        this.auditDate = auditDate;
    }

    public Date getAuditDate(){
        return auditDate;
    }
    public void setIsAnalyze(Integer isAnalyze){
        this.isAnalyze = isAnalyze;
    }

    public Integer getIsAnalyze(){
        return isAnalyze;
    }
    public void setAuditReasonId(Integer auditReasonId){
        this.auditReasonId = auditReasonId;
    }

    public Integer getAuditReasonId(){
        return auditReasonId;
    }
    public void setIsAbnormal(Long isAbnormal){
        this.isAbnormal = isAbnormal;
    }

    public Long getIsAbnormal(){
        return isAbnormal;
    }
    public void setCarnum(String carnum){
        this.carnum = carnum;
    }

    public String getCarnum(){
        return carnum;
    }
    public void setStuIdcard(String stuIdcard){
        this.stuIdcard = stuIdcard;
    }

    public String getStuIdcard(){
        return stuIdcard;
    }
    public void setCoachIdcard(String coachIdcard){
        this.coachIdcard = coachIdcard;
    }

    public String getCoachIdcard(){
        return coachIdcard;
    }
    public void setDevnum(String devnum){
        this.devnum = devnum;
    }

    public String getDevnum(){
        return devnum;
    }
    public void setAbnormalSeq(String abnormalSeq){
        this.abnormalSeq = abnormalSeq;
    }

    public String getAbnormalSeq(){
        return abnormalSeq;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("rnum", getRnum())
            .append("coachnum", getCoachnum())
            .append("stunum", getStunum())
            .append("uploadtype", getUploadtype())
            .append("lessonid", getLessonid())
            .append("recordtime", getRecordtime())
            .append("trainlesson", getTrainlesson())
            .append("recordstatus", getRecordstatus())
            .append("maxspeed", getMaxspeed())
            .append("miles", getMiles())
            .append("gpsid", getGpsid())
            .append("crdate", getCrdate())
            .append("isCount", getIsCount())
            .append("auditStatus", getAuditStatus())
            .append("auditReason", getAuditReason())
            .append("auditType", getAuditType())
            .append("stuname", getStuname())
            .append("coachname", getCoachname())
            .append("inscode", getInscode())
            .append("insname", getInsname())
            .append("stageId", getStageId())
            .append("traintime", getTraintime())
            .append("photo", getPhoto())
            .append("lat", getLat())
            .append("lng", getLng())
            .append("engineRpm", getEngineRpm())
            .append("gpsspeed", getGpsspeed())
            .append("driverspeed", getDriverspeed())
            .append("gpsStatus", getGpsStatus())
            .append("isPhotoSync", getIsPhotoSync())
            .append("isSyncDate", getIsSyncDate())
            .append("licnum", getLicnum())
            .append("auditDate", getAuditDate())
            .append("isAnalyze", getIsAnalyze())
            .append("auditReasonId", getAuditReasonId())
            .append("isAbnormal", getIsAbnormal())
            .append("carnum", getCarnum())
            .append("stuIdcard", getStuIdcard())
            .append("coachIdcard", getCoachIdcard())
            .append("devnum", getDevnum())
            .append("abnormalSeq", getAbnormalSeq())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
