package com.shanghaichengdi.ghjgitem.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 船舶污染物处置预警信息——市内短驳船和普通船
 * @TableName BOAT_WATER_POLLUTANT_WARNING_S
 */
@TableName(value ="BOAT_WATER_POLLUTANT_WARNING_S")
@Data
public class BoatWaterPollutantWarningS implements Serializable {
    /**
     * 预警编号（预警类型+时间戳）
     */
    @TableId(value = "CODE")
    private String code;

    /**
     * 船舶名称
     */
    @TableField(value = "BOATNAME")
    private String boatname;

    /**
     * 船舶九位码
     */
    @TableField(value = "MMSI")
    private String mmsi;

    /**
     * 预警类型：生活垃圾；生活污水；油污水
     */
    @TableField(value = "TYPE")
    private String type;

    /**
     * 预警时间
     */
    @TableField(value = "WARNINGTIME")
    private Date warningtime;

    /**
     * 申报单编号
     */
    @TableField(value = "REPORTCODE")
    private String reportcode;

    /**
     * 解除预警时间（当匹配到排放记录自动解除）
     */
    @TableField(value = "RELIEVETIME")
    private Date relievetime;

    /**
     * 预警状态：0预警；1解除
     */
    @TableField(value = "WARNINGSTATE")
    private Long warningstate;

    /**
     * 是否已查看：0 否；1 是
     */
    @TableField(value = "ISREAD")
    private Long isread;

    /**
     * 所属区县
     */
    @TableField(value = "DISTRICT")
    private String district;

    /**
     * 泊位名称
     */
    @TableField(value = "BERTHNAME")
    private String berthname;

    /**
     * 开始监控时间
     */
    @TableField(value = "STARTTIME")
    private Date starttime;

    /**
     * 处置状态：0未处置；1已处置
     */
    @TableField(value = "DISPOSESTATE")
    private Long disposestate;

    /**
     * 处置时间
     */
    @TableField(value = "DISPOSETIME")
    private Date disposetime;

    /**
     * 处置内容
     */
    @TableField(value = "DISPOSECONTENT")
    private String disposecontent;

    /**
     * 执法人员1
     */
    @TableField(value = "DISPOSESTAFF1")
    private String disposestaff1;

    /**
     * 执法人员2
     */
    @TableField(value = "DISPOSESTAFF2")
    private String disposestaff2;

    /**
     * 被检查人
     */
    @TableField(value = "CHECKSTAFF")
    private String checkstaff;

    /**
     * 删除标志：0未删除；1删除
     */
    @TableField(value = "DELETEFLAG")
    private Long deleteflag;

    /**
     * 解除预警类型：1出港；2污染物排放；3预警超过5天；4监管类型变化；5人工核对解除；6版本切换解除；
     */
    @TableField(value = "RELIEVETYPE")
    private Long relievetype;

    /**
     * 订单号，接收记录唯一识别码
     */
    @TableField(value = "COUPONNUMBER")
    private String couponnumber;

    /**
     * 是否发送短信：0未发送；1已发送
     */
    @TableField(value = "SENDMSG")
    private Long sendmsg;

    /**
     * 过滤状态：0未过滤  1已过滤
     */
    @TableField(value = "FILTERSTATE")
    private Long filterstate;

    /**
     * 数据过滤描述
     */
    @TableField(value = "FILTERDES")
    private String filterdes;

    /**
     * 数据过滤时间
     */
    @TableField(value = "FILTERTIME")
    private Date filtertime;

    /**
     * 预警记录产生点实际时间，用于跟东安进行数据同步对接
     */
    @TableField(value = "FILTERPUSHDATE")
    private Date filterpushdate;

    /**
     * 连续预警次数
     */
    @TableField(value = "WARNCOUNT")
    private Long warncount;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        BoatWaterPollutantWarningS other = (BoatWaterPollutantWarningS) that;
        return (this.getCode() == null ? other.getCode() == null : this.getCode().equals(other.getCode()))
            && (this.getBoatname() == null ? other.getBoatname() == null : this.getBoatname().equals(other.getBoatname()))
            && (this.getMmsi() == null ? other.getMmsi() == null : this.getMmsi().equals(other.getMmsi()))
            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
            && (this.getWarningtime() == null ? other.getWarningtime() == null : this.getWarningtime().equals(other.getWarningtime()))
            && (this.getReportcode() == null ? other.getReportcode() == null : this.getReportcode().equals(other.getReportcode()))
            && (this.getRelievetime() == null ? other.getRelievetime() == null : this.getRelievetime().equals(other.getRelievetime()))
            && (this.getWarningstate() == null ? other.getWarningstate() == null : this.getWarningstate().equals(other.getWarningstate()))
            && (this.getIsread() == null ? other.getIsread() == null : this.getIsread().equals(other.getIsread()))
            && (this.getDistrict() == null ? other.getDistrict() == null : this.getDistrict().equals(other.getDistrict()))
            && (this.getBerthname() == null ? other.getBerthname() == null : this.getBerthname().equals(other.getBerthname()))
            && (this.getStarttime() == null ? other.getStarttime() == null : this.getStarttime().equals(other.getStarttime()))
            && (this.getDisposestate() == null ? other.getDisposestate() == null : this.getDisposestate().equals(other.getDisposestate()))
            && (this.getDisposetime() == null ? other.getDisposetime() == null : this.getDisposetime().equals(other.getDisposetime()))
            && (this.getDisposecontent() == null ? other.getDisposecontent() == null : this.getDisposecontent().equals(other.getDisposecontent()))
            && (this.getDisposestaff1() == null ? other.getDisposestaff1() == null : this.getDisposestaff1().equals(other.getDisposestaff1()))
            && (this.getDisposestaff2() == null ? other.getDisposestaff2() == null : this.getDisposestaff2().equals(other.getDisposestaff2()))
            && (this.getCheckstaff() == null ? other.getCheckstaff() == null : this.getCheckstaff().equals(other.getCheckstaff()))
            && (this.getDeleteflag() == null ? other.getDeleteflag() == null : this.getDeleteflag().equals(other.getDeleteflag()))
            && (this.getRelievetype() == null ? other.getRelievetype() == null : this.getRelievetype().equals(other.getRelievetype()))
            && (this.getCouponnumber() == null ? other.getCouponnumber() == null : this.getCouponnumber().equals(other.getCouponnumber()))
            && (this.getSendmsg() == null ? other.getSendmsg() == null : this.getSendmsg().equals(other.getSendmsg()))
            && (this.getFilterstate() == null ? other.getFilterstate() == null : this.getFilterstate().equals(other.getFilterstate()))
            && (this.getFilterdes() == null ? other.getFilterdes() == null : this.getFilterdes().equals(other.getFilterdes()))
            && (this.getFiltertime() == null ? other.getFiltertime() == null : this.getFiltertime().equals(other.getFiltertime()))
            && (this.getFilterpushdate() == null ? other.getFilterpushdate() == null : this.getFilterpushdate().equals(other.getFilterpushdate()))
            && (this.getWarncount() == null ? other.getWarncount() == null : this.getWarncount().equals(other.getWarncount()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getCode() == null) ? 0 : getCode().hashCode());
        result = prime * result + ((getBoatname() == null) ? 0 : getBoatname().hashCode());
        result = prime * result + ((getMmsi() == null) ? 0 : getMmsi().hashCode());
        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
        result = prime * result + ((getWarningtime() == null) ? 0 : getWarningtime().hashCode());
        result = prime * result + ((getReportcode() == null) ? 0 : getReportcode().hashCode());
        result = prime * result + ((getRelievetime() == null) ? 0 : getRelievetime().hashCode());
        result = prime * result + ((getWarningstate() == null) ? 0 : getWarningstate().hashCode());
        result = prime * result + ((getIsread() == null) ? 0 : getIsread().hashCode());
        result = prime * result + ((getDistrict() == null) ? 0 : getDistrict().hashCode());
        result = prime * result + ((getBerthname() == null) ? 0 : getBerthname().hashCode());
        result = prime * result + ((getStarttime() == null) ? 0 : getStarttime().hashCode());
        result = prime * result + ((getDisposestate() == null) ? 0 : getDisposestate().hashCode());
        result = prime * result + ((getDisposetime() == null) ? 0 : getDisposetime().hashCode());
        result = prime * result + ((getDisposecontent() == null) ? 0 : getDisposecontent().hashCode());
        result = prime * result + ((getDisposestaff1() == null) ? 0 : getDisposestaff1().hashCode());
        result = prime * result + ((getDisposestaff2() == null) ? 0 : getDisposestaff2().hashCode());
        result = prime * result + ((getCheckstaff() == null) ? 0 : getCheckstaff().hashCode());
        result = prime * result + ((getDeleteflag() == null) ? 0 : getDeleteflag().hashCode());
        result = prime * result + ((getRelievetype() == null) ? 0 : getRelievetype().hashCode());
        result = prime * result + ((getCouponnumber() == null) ? 0 : getCouponnumber().hashCode());
        result = prime * result + ((getSendmsg() == null) ? 0 : getSendmsg().hashCode());
        result = prime * result + ((getFilterstate() == null) ? 0 : getFilterstate().hashCode());
        result = prime * result + ((getFilterdes() == null) ? 0 : getFilterdes().hashCode());
        result = prime * result + ((getFiltertime() == null) ? 0 : getFiltertime().hashCode());
        result = prime * result + ((getFilterpushdate() == null) ? 0 : getFilterpushdate().hashCode());
        result = prime * result + ((getWarncount() == null) ? 0 : getWarncount().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", code=").append(code);
        sb.append(", boatname=").append(boatname);
        sb.append(", mmsi=").append(mmsi);
        sb.append(", type=").append(type);
        sb.append(", warningtime=").append(warningtime);
        sb.append(", reportcode=").append(reportcode);
        sb.append(", relievetime=").append(relievetime);
        sb.append(", warningstate=").append(warningstate);
        sb.append(", isread=").append(isread);
        sb.append(", district=").append(district);
        sb.append(", berthname=").append(berthname);
        sb.append(", starttime=").append(starttime);
        sb.append(", disposestate=").append(disposestate);
        sb.append(", disposetime=").append(disposetime);
        sb.append(", disposecontent=").append(disposecontent);
        sb.append(", disposestaff1=").append(disposestaff1);
        sb.append(", disposestaff2=").append(disposestaff2);
        sb.append(", checkstaff=").append(checkstaff);
        sb.append(", deleteflag=").append(deleteflag);
        sb.append(", relievetype=").append(relievetype);
        sb.append(", couponnumber=").append(couponnumber);
        sb.append(", sendmsg=").append(sendmsg);
        sb.append(", filterstate=").append(filterstate);
        sb.append(", filterdes=").append(filterdes);
        sb.append(", filtertime=").append(filtertime);
        sb.append(", filterpushdate=").append(filterpushdate);
        sb.append(", warncount=").append(warncount);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}