/*
 * @Author: Kane
 * @Date: 2023-10-08 14:45:13
 * @LastEditors: Kane
 * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/pojo/TelsalerAttachingRateRecord.java
 * @Description: 用于存放BI导出每日电销坐席车险非车险保费和车非渗透率数据.
 * 
 * Copyright (c) ${2023} by Kane, All Rights Reserved. 
 */
package com.cpic.xim.mybatis.pojo;

import java.time.LocalDate;
import com.fasterxml.jackson.annotation.JsonProperty;

public class TelsalerAttachingRateRecord
{
    // 统计日期
    @JsonProperty( "summaryDate" )
    private LocalDate summaryDate;

    // 坐席名称
    @JsonProperty( "telsalerName" )
    private String telsalerName;

    // 车险保费
    @JsonProperty( "motoPremium" )
    private double motoPremium;

    // 非车险保费
    @JsonProperty( "nomotoPremium" )
    private double nomotoPremium;

    // 车险保费占比
    @JsonProperty( "motoPremiumProportion" )
    private double motoPremiumProportion;

    // 渗透率
    @JsonProperty( "attachingRate" )
    private double attachingRate;

    // 渗透率环比上月
    @JsonProperty( "attachingRateChange" )
    private double attachingRateChange;

    // 当月客户渗透率
    @JsonProperty( "customerHandleRateCell" )
    private double customerHandleRateCell;

    // 客户渗透率环比上月
    @JsonProperty( "customerHandleRateChangeCell" )
    private double customerHandleRateChangeCell;

    // 当月车非客均保费
    @JsonProperty( "noMotoPremiumPerCustomerCell" )
    private double noMotoPremiumPerCustomerCell;

    // 客均保费环比上月
    @JsonProperty( "noMotoPremiumPerCustomerChangeCell" )
    private double noMotoPremiumPerCustomerChangeCell;

    public TelsalerAttachingRateRecord()
    {}

    public TelsalerAttachingRateRecord( LocalDate summaryDate, String telsalerName,
            double motoPremium, double nomotoPremium, double motoPremiumProportion,
            double attachingRate, double attachingRateChange, double customerHandleRateCell,
            double customerHandleRateChangeCell, double noMotoPremiumPerCustomerCell,
            double noMotoPremiumPerCustomerChangeCell )
    {
        this.summaryDate = summaryDate;
        this.telsalerName = telsalerName;
        this.motoPremium = motoPremium;
        this.nomotoPremium = nomotoPremium;
        this.motoPremiumProportion = motoPremiumProportion;
        this.attachingRate = attachingRate;
        this.attachingRateChange = attachingRateChange;
        this.customerHandleRateCell = customerHandleRateCell;
        this.customerHandleRateChangeCell = customerHandleRateChangeCell;
        this.noMotoPremiumPerCustomerCell = noMotoPremiumPerCustomerCell;
        this.noMotoPremiumPerCustomerChangeCell = noMotoPremiumPerCustomerChangeCell;
    }

    public double getCustomerHandleRateCell()
    {
        return customerHandleRateCell;
    }

    public void setCustomerHandleRateCell( double customerHandleRateCell )
    {
        this.customerHandleRateCell = customerHandleRateCell;
    }

    public double getCustomerHandleRateChangeCell()
    {
        return customerHandleRateChangeCell;
    }

    public void setCustomerHandleRateChangeCell( double customerHandleRateChangeCell )
    {
        this.customerHandleRateChangeCell = customerHandleRateChangeCell;
    }

    public double getNoMotoPremiumPerCustomerCell()
    {
        return noMotoPremiumPerCustomerCell;
    }

    public void setNoMotoPremiumPerCustomerCell( double noMotoPremiumPerCustomerCell )
    {
        this.noMotoPremiumPerCustomerCell = noMotoPremiumPerCustomerCell;
    }

    public double getNoMotoPremiumPerCustomerChangeCell()
    {
        return noMotoPremiumPerCustomerChangeCell;
    }

    public void setNoMotoPremiumPerCustomerChangeCell( double noMotoPremiumPerCustomerChangeCell )
    {
        this.noMotoPremiumPerCustomerChangeCell = noMotoPremiumPerCustomerChangeCell;
    }

    @Override
    public String toString()
    {
        return "TelsalerAttachingRateRecord [summaryDate=" + summaryDate + ", telsalerName="
                + telsalerName + ", motoPremium=" + motoPremium + ", nomotoPremium=" + nomotoPremium
                + ", motoPremiumProportion=" + motoPremiumProportion + ", attachingRate="
                + attachingRate + ", attachingRateChange=" + attachingRateChange
                + ", customerHandleRateCell=" + customerHandleRateCell
                + ", customerHandleRateChangeCell=" + customerHandleRateChangeCell
                + ", noMotoPremiumPerCustomerCell=" + noMotoPremiumPerCustomerCell
                + ", noMotoPremiumPerCustomerChangeCell=" + noMotoPremiumPerCustomerChangeCell
                + "]";
    }

    @Override
    public int hashCode()
    {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((summaryDate == null) ? 0 : summaryDate.hashCode());
        result = prime * result + ((telsalerName == null) ? 0 : telsalerName.hashCode());
        long temp;
        temp = Double.doubleToLongBits( motoPremium );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits( nomotoPremium );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits( motoPremiumProportion );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits( attachingRate );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits( attachingRateChange );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits( customerHandleRateCell );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits( customerHandleRateChangeCell );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits( noMotoPremiumPerCustomerCell );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        temp = Double.doubleToLongBits( noMotoPremiumPerCustomerChangeCell );
        result = prime * result + (int) (temp ^ (temp >>> 32));
        return result;
    }

    @Override
    public boolean equals( Object obj )
    {
        if ( this == obj )
            return true;
        if ( obj == null )
            return false;
        if ( getClass() != obj.getClass() )
            return false;
        TelsalerAttachingRateRecord other = (TelsalerAttachingRateRecord) obj;
        if ( summaryDate == null )
        {
            if ( other.summaryDate != null )
                return false;
        }
        else if ( !summaryDate.equals( other.summaryDate ) )
            return false;
        if ( telsalerName == null )
        {
            if ( other.telsalerName != null )
                return false;
        }
        else if ( !telsalerName.equals( other.telsalerName ) )
            return false;
        if ( Double.doubleToLongBits( motoPremium ) != Double
                .doubleToLongBits( other.motoPremium ) )
            return false;
        if ( Double.doubleToLongBits( nomotoPremium ) != Double
                .doubleToLongBits( other.nomotoPremium ) )
            return false;
        if ( Double.doubleToLongBits( motoPremiumProportion ) != Double
                .doubleToLongBits( other.motoPremiumProportion ) )
            return false;
        if ( Double.doubleToLongBits( attachingRate ) != Double
                .doubleToLongBits( other.attachingRate ) )
            return false;
        if ( Double.doubleToLongBits( attachingRateChange ) != Double
                .doubleToLongBits( other.attachingRateChange ) )
            return false;
        if ( Double.doubleToLongBits( customerHandleRateCell ) != Double
                .doubleToLongBits( other.customerHandleRateCell ) )
            return false;
        if ( Double.doubleToLongBits( customerHandleRateChangeCell ) != Double
                .doubleToLongBits( other.customerHandleRateChangeCell ) )
            return false;
        if ( Double.doubleToLongBits( noMotoPremiumPerCustomerCell ) != Double
                .doubleToLongBits( other.noMotoPremiumPerCustomerCell ) )
            return false;
        if ( Double.doubleToLongBits( noMotoPremiumPerCustomerChangeCell ) != Double
                .doubleToLongBits( other.noMotoPremiumPerCustomerChangeCell ) )
            return false;
        return true;
    }

    public LocalDate getSummaryDate()
    {
        return summaryDate;
    }

    public void setSummaryDate( LocalDate summaryDate )
    {
        this.summaryDate = summaryDate;
    }

    public String getTelsalerName()
    {
        return telsalerName;
    }

    public void setTelsalerName( String telsalerName )
    {
        this.telsalerName = telsalerName;
    }

    public double getMotoPremium()
    {
        return motoPremium;
    }

    public void setMotoPremium( double motoPremium )
    {
        this.motoPremium = motoPremium;
    }

    public double getNomotoPremium()
    {
        return nomotoPremium;
    }

    public void setNomotoPremium( double nomotoPremium )
    {
        this.nomotoPremium = nomotoPremium;
    }

    public double getMotoPremiumProportion()
    {
        return motoPremiumProportion;
    }

    public void setMotoPremiumProportion( double motoPremiumProportion )
    {
        this.motoPremiumProportion = motoPremiumProportion;
    }

    public double getAttachingRate()
    {
        return attachingRate;
    }

    public void setAttachingRate( double attachingRate )
    {
        this.attachingRate = attachingRate;
    }

    public double getAttachingRateChange()
    {
        return attachingRateChange;
    }

    public void setAttachingRateChange( double attachingRateChange )
    {
        this.attachingRateChange = attachingRateChange;
    }
}
