package com.sckw.manage.model.entity;

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

/**
 * 线路成本-油车
 * @TableName kwm_line_cost_tanker
 */
@TableName(value ="kwm_line_cost_tanker")
@Data
public class KwmLineCostTanker implements Serializable {
    /**
     * 主键
     */
    @TableId
    private Long id;

    /**
     * 装货地
     */
    private String loadAddress;

    /**
     * 装货地-纬度
     */
    private String loadLat;

    /**
     * 装货地-纬度
     */
    private String loadLng;

    /**
     * 卸货地
     */
    private String unloadAddress;

    /**
     * 卸货地-纬度
     */
    private String unloadLat;

    /**
     * 卸货地-纬度
     */
    private String unloadLng;

    /**
     * 运输时间
     */
    private Integer transportTime;

    /**
     * 运输里程
     */
    private BigDecimal transportMileage;

    /**
     * 运输成本
     */
    private BigDecimal transportCost;

    /**
     * 油耗（升/公里）
     */
    private BigDecimal consume;

    /**
     * 油价（元/升）
     */
    private BigDecimal price;

    /**
     * 燃油费小计
     */
    private BigDecimal consumeTotal;

    /**
     * 路桥费
     */
    private BigDecimal roadBridgeFees;

    /**
     * 司机提成/司机工资
     */
    private BigDecimal driverWages;

    /**
     * 停车费
     */
    private BigDecimal parkingFee;

    /**
     * 其他
     */
    private BigDecimal other;

    /**
     * 变动成本小计
     */
    private BigDecimal changeCost;

    /**
     * 折旧分摊
     */
    private BigDecimal depreciationShare;

    /**
     * 保险分摊
     */
    private BigDecimal insureShare;

    /**
     * 维修分摊
     */
    private BigDecimal maintenanceShare;

    /**
     * 轮胎分摊
     */
    private BigDecimal tireShare;

    /**
     * 过磅费
     */
    private BigDecimal weighingFee;

    /**
     * 管理费
     */
    private BigDecimal managementFees;

    /**
     * 司机薪水分摊
     */
    private BigDecimal wagesShare;

    /**
     * 固定成本小计
     */
    private BigDecimal regularCost;

    /**
     * 备注
     */
    private String remark;

    /**
     * 状态:0正常/1锁定
     */
    private Integer status;

    /**
     * 创建人
     */
    private Long createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private Long updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 删除标识(0正常/1删除)
     */
    private Integer delFlag;

    @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;
        }
        KwmLineCostTanker other = (KwmLineCostTanker) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getLoadAddress() == null ? other.getLoadAddress() == null : this.getLoadAddress().equals(other.getLoadAddress()))
            && (this.getLoadLat() == null ? other.getLoadLat() == null : this.getLoadLat().equals(other.getLoadLat()))
            && (this.getLoadLng() == null ? other.getLoadLng() == null : this.getLoadLng().equals(other.getLoadLng()))
            && (this.getUnloadAddress() == null ? other.getUnloadAddress() == null : this.getUnloadAddress().equals(other.getUnloadAddress()))
            && (this.getUnloadLat() == null ? other.getUnloadLat() == null : this.getUnloadLat().equals(other.getUnloadLat()))
            && (this.getUnloadLng() == null ? other.getUnloadLng() == null : this.getUnloadLng().equals(other.getUnloadLng()))
            && (this.getTransportTime() == null ? other.getTransportTime() == null : this.getTransportTime().equals(other.getTransportTime()))
            && (this.getTransportMileage() == null ? other.getTransportMileage() == null : this.getTransportMileage().equals(other.getTransportMileage()))
            && (this.getTransportCost() == null ? other.getTransportCost() == null : this.getTransportCost().equals(other.getTransportCost()))
            && (this.getConsume() == null ? other.getConsume() == null : this.getConsume().equals(other.getConsume()))
            && (this.getPrice() == null ? other.getPrice() == null : this.getPrice().equals(other.getPrice()))
            && (this.getConsumeTotal() == null ? other.getConsumeTotal() == null : this.getConsumeTotal().equals(other.getConsumeTotal()))
            && (this.getRoadBridgeFees() == null ? other.getRoadBridgeFees() == null : this.getRoadBridgeFees().equals(other.getRoadBridgeFees()))
            && (this.getDriverWages() == null ? other.getDriverWages() == null : this.getDriverWages().equals(other.getDriverWages()))
            && (this.getParkingFee() == null ? other.getParkingFee() == null : this.getParkingFee().equals(other.getParkingFee()))
            && (this.getOther() == null ? other.getOther() == null : this.getOther().equals(other.getOther()))
            && (this.getChangeCost() == null ? other.getChangeCost() == null : this.getChangeCost().equals(other.getChangeCost()))
            && (this.getDepreciationShare() == null ? other.getDepreciationShare() == null : this.getDepreciationShare().equals(other.getDepreciationShare()))
            && (this.getInsureShare() == null ? other.getInsureShare() == null : this.getInsureShare().equals(other.getInsureShare()))
            && (this.getMaintenanceShare() == null ? other.getMaintenanceShare() == null : this.getMaintenanceShare().equals(other.getMaintenanceShare()))
            && (this.getTireShare() == null ? other.getTireShare() == null : this.getTireShare().equals(other.getTireShare()))
            && (this.getWeighingFee() == null ? other.getWeighingFee() == null : this.getWeighingFee().equals(other.getWeighingFee()))
            && (this.getManagementFees() == null ? other.getManagementFees() == null : this.getManagementFees().equals(other.getManagementFees()))
            && (this.getWagesShare() == null ? other.getWagesShare() == null : this.getWagesShare().equals(other.getWagesShare()))
            && (this.getRegularCost() == null ? other.getRegularCost() == null : this.getRegularCost().equals(other.getRegularCost()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getLoadAddress() == null) ? 0 : getLoadAddress().hashCode());
        result = prime * result + ((getLoadLat() == null) ? 0 : getLoadLat().hashCode());
        result = prime * result + ((getLoadLng() == null) ? 0 : getLoadLng().hashCode());
        result = prime * result + ((getUnloadAddress() == null) ? 0 : getUnloadAddress().hashCode());
        result = prime * result + ((getUnloadLat() == null) ? 0 : getUnloadLat().hashCode());
        result = prime * result + ((getUnloadLng() == null) ? 0 : getUnloadLng().hashCode());
        result = prime * result + ((getTransportTime() == null) ? 0 : getTransportTime().hashCode());
        result = prime * result + ((getTransportMileage() == null) ? 0 : getTransportMileage().hashCode());
        result = prime * result + ((getTransportCost() == null) ? 0 : getTransportCost().hashCode());
        result = prime * result + ((getConsume() == null) ? 0 : getConsume().hashCode());
        result = prime * result + ((getPrice() == null) ? 0 : getPrice().hashCode());
        result = prime * result + ((getConsumeTotal() == null) ? 0 : getConsumeTotal().hashCode());
        result = prime * result + ((getRoadBridgeFees() == null) ? 0 : getRoadBridgeFees().hashCode());
        result = prime * result + ((getDriverWages() == null) ? 0 : getDriverWages().hashCode());
        result = prime * result + ((getParkingFee() == null) ? 0 : getParkingFee().hashCode());
        result = prime * result + ((getOther() == null) ? 0 : getOther().hashCode());
        result = prime * result + ((getChangeCost() == null) ? 0 : getChangeCost().hashCode());
        result = prime * result + ((getDepreciationShare() == null) ? 0 : getDepreciationShare().hashCode());
        result = prime * result + ((getInsureShare() == null) ? 0 : getInsureShare().hashCode());
        result = prime * result + ((getMaintenanceShare() == null) ? 0 : getMaintenanceShare().hashCode());
        result = prime * result + ((getTireShare() == null) ? 0 : getTireShare().hashCode());
        result = prime * result + ((getWeighingFee() == null) ? 0 : getWeighingFee().hashCode());
        result = prime * result + ((getManagementFees() == null) ? 0 : getManagementFees().hashCode());
        result = prime * result + ((getWagesShare() == null) ? 0 : getWagesShare().hashCode());
        result = prime * result + ((getRegularCost() == null) ? 0 : getRegularCost().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", loadAddress=").append(loadAddress);
        sb.append(", loadLat=").append(loadLat);
        sb.append(", loadLng=").append(loadLng);
        sb.append(", unloadAddress=").append(unloadAddress);
        sb.append(", unloadLat=").append(unloadLat);
        sb.append(", unloadLng=").append(unloadLng);
        sb.append(", transportTime=").append(transportTime);
        sb.append(", transportMileage=").append(transportMileage);
        sb.append(", transportCost=").append(transportCost);
        sb.append(", consume=").append(consume);
        sb.append(", price=").append(price);
        sb.append(", consumeTotal=").append(consumeTotal);
        sb.append(", roadBridgeFees=").append(roadBridgeFees);
        sb.append(", driverWages=").append(driverWages);
        sb.append(", parkingFee=").append(parkingFee);
        sb.append(", other=").append(other);
        sb.append(", changeCost=").append(changeCost);
        sb.append(", depreciationShare=").append(depreciationShare);
        sb.append(", insureShare=").append(insureShare);
        sb.append(", maintenanceShare=").append(maintenanceShare);
        sb.append(", tireShare=").append(tireShare);
        sb.append(", weighingFee=").append(weighingFee);
        sb.append(", managementFees=").append(managementFees);
        sb.append(", wagesShare=").append(wagesShare);
        sb.append(", regularCost=").append(regularCost);
        sb.append(", remark=").append(remark);
        sb.append(", status=").append(status);
        sb.append(", createBy=").append(createBy);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateBy=").append(updateBy);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", delFlag=").append(delFlag);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}