package com.shanghaichengdi.ghjgitem.domain;

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

/**
 * 连船记录信息
 * @TableName SHORE_POWER_CONN_RECORD_INFO
 */
@TableName(value ="SHORE_POWER_CONN_RECORD_INFO")
@Data
public class ShorePowerConnRecordInfo implements Serializable {
    /**
     * 管理平台系统订单编号
     */
    @TableField(value = "CONNRECORDSEQ")
    private String connrecordseq;

    /**
     * 港口编码
     */
    @TableField(value = "PORTID")
    private String portid;

    /**
     * 港口名称
     */
    @TableField(value = "PORTNAME")
    private String portname;

    /**
     * 港口企业名称
     */
    @TableField(value = "ENTERPRISESNAME")
    private String enterprisesname;

    /**
     * 港口企业编码
     */
    @TableField(value = "ENTERPRISESID")
    private String enterprisesid;

    /**
     * 岸电实际经营人名称
     */
    @TableField(value = "OPERATORNAME")
    private String operatorname;

    /**
     * 岸电实际经营人编码
     */
    @TableField(value = "OPERATORID")
    private String operatorid;

    /**
     * 岸电设备接口编码，同一管理平台内唯一
     */
    @TableField(value = "CONNECTORID")
    private String connectorid;

    /**
     * 对应泊位编码
     */
    @TableField(value = "BERTHID")
    private String berthid;

    /**
     * 船名称
     */
    @TableField(value = "SHIPNAME")
    private String shipname;

    /**
     * 船舶识别号/IMO代码
     */
    @TableField(value = "SHIPNUMBER")
    private String shipnumber;

    /**
     * 1：600吨以上
2：200吨-600吨
3：200吨以下
     */
    @TableField(value = "SHIPGROSSTONNAGE")
    private Long shipgrosstonnage;

    /**
     * 船舶登记港，船舶所有人办理船舶所有权登记的港口
     */
    @TableField(value = "SHIPHOMEPORT")
    private String shiphomeport;

    /**
     * 1：扫码启动
2：刷卡启动
3：手动启动
4：其他
     */
    @TableField(value = "USERCHARGETYPE")
    private Long userchargetype;

    /**
     * 若启动方式为扫码启动，用户手机号必填
     */
    @TableField(value = "MOBILENUMBER")
    private String mobilenumber;

    /**
     * 格式“yyyy-MM-dd HH:mm:ss”
     */
    @TableField(value = "STARTTIME")
    private Date starttime;

    /**
     * 格式“yyyy-MM-dd HH:mm:ss”
     */
    @TableField(value = "ENDTIME")
    private Date endtime;

    /**
     * 实际向船舶受电总时间（不包含中断、检修等停止供电时间），单位：秒
     */
    @TableField(value = "DURATION")
    private BigDecimal duration;

    /**
     * 单位kWh，精度0.01
     */
    @TableField(value = "ELECT")
    private BigDecimal elect;

    /**
     * 单位：元
     */
    @TableField(value = "MONEY")
    private BigDecimal money;

    /**
     * 单位：元
     */
    @TableField(value = "ELECTMONEY")
    private BigDecimal electmoney;

    /**
     * 单位：元
     */
    @TableField(value = "SERVICEMONEY")
    private BigDecimal servicemoney;

    /**
     * 支付金额
     */
    @TableField(value = "PAYMENTAMOUNT")
    private BigDecimal paymentamount;

    /**
     * 格式“yyyy-MM-dd HH:mm:ss”
     */
    @TableField(value = "PAYTIME")
    private Date paytime;

    /**
     * 1：支付宝
2：微信支付
3：交通卡
4：预充卡
5：银联
6：其他自定义
     */
    @TableField(value = "PAYCHANNEL")
    private Long paychannel;

    /**
     * 记录修改时间
     */
    @TableField(value = "MODIFYTIME")
    private Date modifytime;

    /**
     * 连船记录类型（低压、高压）
     */
    @TableField(value = "CONNTYPE")
    private String conntype;

    @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;
        }
        ShorePowerConnRecordInfo other = (ShorePowerConnRecordInfo) that;
        return (this.getConnrecordseq() == null ? other.getConnrecordseq() == null : this.getConnrecordseq().equals(other.getConnrecordseq()))
            && (this.getPortid() == null ? other.getPortid() == null : this.getPortid().equals(other.getPortid()))
            && (this.getPortname() == null ? other.getPortname() == null : this.getPortname().equals(other.getPortname()))
            && (this.getEnterprisesname() == null ? other.getEnterprisesname() == null : this.getEnterprisesname().equals(other.getEnterprisesname()))
            && (this.getEnterprisesid() == null ? other.getEnterprisesid() == null : this.getEnterprisesid().equals(other.getEnterprisesid()))
            && (this.getOperatorname() == null ? other.getOperatorname() == null : this.getOperatorname().equals(other.getOperatorname()))
            && (this.getOperatorid() == null ? other.getOperatorid() == null : this.getOperatorid().equals(other.getOperatorid()))
            && (this.getConnectorid() == null ? other.getConnectorid() == null : this.getConnectorid().equals(other.getConnectorid()))
            && (this.getBerthid() == null ? other.getBerthid() == null : this.getBerthid().equals(other.getBerthid()))
            && (this.getShipname() == null ? other.getShipname() == null : this.getShipname().equals(other.getShipname()))
            && (this.getShipnumber() == null ? other.getShipnumber() == null : this.getShipnumber().equals(other.getShipnumber()))
            && (this.getShipgrosstonnage() == null ? other.getShipgrosstonnage() == null : this.getShipgrosstonnage().equals(other.getShipgrosstonnage()))
            && (this.getShiphomeport() == null ? other.getShiphomeport() == null : this.getShiphomeport().equals(other.getShiphomeport()))
            && (this.getUserchargetype() == null ? other.getUserchargetype() == null : this.getUserchargetype().equals(other.getUserchargetype()))
            && (this.getMobilenumber() == null ? other.getMobilenumber() == null : this.getMobilenumber().equals(other.getMobilenumber()))
            && (this.getStarttime() == null ? other.getStarttime() == null : this.getStarttime().equals(other.getStarttime()))
            && (this.getEndtime() == null ? other.getEndtime() == null : this.getEndtime().equals(other.getEndtime()))
            && (this.getDuration() == null ? other.getDuration() == null : this.getDuration().equals(other.getDuration()))
            && (this.getElect() == null ? other.getElect() == null : this.getElect().equals(other.getElect()))
            && (this.getMoney() == null ? other.getMoney() == null : this.getMoney().equals(other.getMoney()))
            && (this.getElectmoney() == null ? other.getElectmoney() == null : this.getElectmoney().equals(other.getElectmoney()))
            && (this.getServicemoney() == null ? other.getServicemoney() == null : this.getServicemoney().equals(other.getServicemoney()))
            && (this.getPaymentamount() == null ? other.getPaymentamount() == null : this.getPaymentamount().equals(other.getPaymentamount()))
            && (this.getPaytime() == null ? other.getPaytime() == null : this.getPaytime().equals(other.getPaytime()))
            && (this.getPaychannel() == null ? other.getPaychannel() == null : this.getPaychannel().equals(other.getPaychannel()))
            && (this.getModifytime() == null ? other.getModifytime() == null : this.getModifytime().equals(other.getModifytime()))
            && (this.getConntype() == null ? other.getConntype() == null : this.getConntype().equals(other.getConntype()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getConnrecordseq() == null) ? 0 : getConnrecordseq().hashCode());
        result = prime * result + ((getPortid() == null) ? 0 : getPortid().hashCode());
        result = prime * result + ((getPortname() == null) ? 0 : getPortname().hashCode());
        result = prime * result + ((getEnterprisesname() == null) ? 0 : getEnterprisesname().hashCode());
        result = prime * result + ((getEnterprisesid() == null) ? 0 : getEnterprisesid().hashCode());
        result = prime * result + ((getOperatorname() == null) ? 0 : getOperatorname().hashCode());
        result = prime * result + ((getOperatorid() == null) ? 0 : getOperatorid().hashCode());
        result = prime * result + ((getConnectorid() == null) ? 0 : getConnectorid().hashCode());
        result = prime * result + ((getBerthid() == null) ? 0 : getBerthid().hashCode());
        result = prime * result + ((getShipname() == null) ? 0 : getShipname().hashCode());
        result = prime * result + ((getShipnumber() == null) ? 0 : getShipnumber().hashCode());
        result = prime * result + ((getShipgrosstonnage() == null) ? 0 : getShipgrosstonnage().hashCode());
        result = prime * result + ((getShiphomeport() == null) ? 0 : getShiphomeport().hashCode());
        result = prime * result + ((getUserchargetype() == null) ? 0 : getUserchargetype().hashCode());
        result = prime * result + ((getMobilenumber() == null) ? 0 : getMobilenumber().hashCode());
        result = prime * result + ((getStarttime() == null) ? 0 : getStarttime().hashCode());
        result = prime * result + ((getEndtime() == null) ? 0 : getEndtime().hashCode());
        result = prime * result + ((getDuration() == null) ? 0 : getDuration().hashCode());
        result = prime * result + ((getElect() == null) ? 0 : getElect().hashCode());
        result = prime * result + ((getMoney() == null) ? 0 : getMoney().hashCode());
        result = prime * result + ((getElectmoney() == null) ? 0 : getElectmoney().hashCode());
        result = prime * result + ((getServicemoney() == null) ? 0 : getServicemoney().hashCode());
        result = prime * result + ((getPaymentamount() == null) ? 0 : getPaymentamount().hashCode());
        result = prime * result + ((getPaytime() == null) ? 0 : getPaytime().hashCode());
        result = prime * result + ((getPaychannel() == null) ? 0 : getPaychannel().hashCode());
        result = prime * result + ((getModifytime() == null) ? 0 : getModifytime().hashCode());
        result = prime * result + ((getConntype() == null) ? 0 : getConntype().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", connrecordseq=").append(connrecordseq);
        sb.append(", portid=").append(portid);
        sb.append(", portname=").append(portname);
        sb.append(", enterprisesname=").append(enterprisesname);
        sb.append(", enterprisesid=").append(enterprisesid);
        sb.append(", operatorname=").append(operatorname);
        sb.append(", operatorid=").append(operatorid);
        sb.append(", connectorid=").append(connectorid);
        sb.append(", berthid=").append(berthid);
        sb.append(", shipname=").append(shipname);
        sb.append(", shipnumber=").append(shipnumber);
        sb.append(", shipgrosstonnage=").append(shipgrosstonnage);
        sb.append(", shiphomeport=").append(shiphomeport);
        sb.append(", userchargetype=").append(userchargetype);
        sb.append(", mobilenumber=").append(mobilenumber);
        sb.append(", starttime=").append(starttime);
        sb.append(", endtime=").append(endtime);
        sb.append(", duration=").append(duration);
        sb.append(", elect=").append(elect);
        sb.append(", money=").append(money);
        sb.append(", electmoney=").append(electmoney);
        sb.append(", servicemoney=").append(servicemoney);
        sb.append(", paymentamount=").append(paymentamount);
        sb.append(", paytime=").append(paytime);
        sb.append(", paychannel=").append(paychannel);
        sb.append(", modifytime=").append(modifytime);
        sb.append(", conntype=").append(conntype);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}