/*
 * @Author: Kane
 * @Date: 2023-03-16 09:32:53
 * @LastEditors: Kane
 * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/archievement/department/DepartmentArchievementQueryResult.java
 * @Description: 
 * 
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 */

package com.cpic.xim.web.controllers.archievement.department;

import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import com.cpic.xim.mybatis.pojo.MensualArchievementItem;
import com.cpic.xim.web.controllers.QueryResponse;
import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 查询部门业绩返回结果。
 * MensualArchievementList 每月业绩，要保证数据是按照月份排序。
 */
public class DepartmentArchievementQueryResult extends QueryResponse
{
    public DepartmentArchievementQueryResult()
    {
        mensualArchievementList = new ArrayList<MensualArchievementItem>();
        advanceRewardGainers = new Vector<String>();
        leadingRewardGainers = new Vector<String>();
        backwardList = new Vector<String>();
    }

    public long getTotalArchievement()
    {
        return totalArchievement;
    }

    public void setTotalArchievement( long totalArchievement )
    {
        this.totalArchievement = totalArchievement;
    }

    public List<MensualArchievementItem> getMensualArchievementList()
    {
        return mensualArchievementList;
    }

    public void setMensualArchievementList(
            ArrayList<MensualArchievementItem> mensualArchievementList )
    {
        this.mensualArchievementList = mensualArchievementList;
    }

    public String getInsuranceRenewalRate()
    {
        return insuranceRenewalRate;
    }

    public void setInsuranceRenewalRate( String insuranceRenewalRate )
    {
        this.insuranceRenewalRate = insuranceRenewalRate;
    }

    public String getAttachingRate()
    {
        return attachingRate;
    }

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

    public void addLeadingRewardGainer( String name )
    {
        this.leadingRewardGainers.add( name );
    }

    public Vector<String> getLeadingRewardGainers()
    {
        return leadingRewardGainers;
    }

    public void setLeadingRewardGainers( Vector<String> leadingRewardGainers )
    {
        this.leadingRewardGainers = leadingRewardGainers;
    }

    public void addAdvanceRewardGainer( String name )
    {
        advanceRewardGainers.add( name );
    }

    public Vector<String> getAdvanceRewardGainers()
    {
        return advanceRewardGainers;
    }

    public void setAdvanceRewardGainers( Vector<String> advanceRewardGainers )
    {
        this.advanceRewardGainers = advanceRewardGainers;
    }

    public void addBackwardStaff( String name )
    {
        backwardList.add( name );
    }

    public Vector<String> getBackwardList()
    {
        return backwardList;
    }

    public void setBackwardList( Vector<String> backwardList )
    {
        this.backwardList = backwardList;
    }

    @JsonProperty( "total_archievement" )
    private long totalArchievement; // 总业绩

    // 每月业绩列表
    // 要保证数据是按照月份排序。
    @JsonProperty( "mensual_archievement_list" )
    private ArrayList<MensualArchievementItem> mensualArchievementList;

    @JsonProperty( "insurance_renewal_rate" )
    private String insuranceRenewalRate; // 续保率

    @JsonProperty( "attaching_rate" )
    private String attachingRate; // 车非渗透率

    @JsonProperty( "leading_reward_gainers" )
    private Vector<String> leadingRewardGainers; // 领跑奖

    @JsonProperty( "advance_reward_gainers" )
    private Vector<String> advanceRewardGainers; // 飞跃奖

    @JsonProperty( "backward_list" )
    private Vector<String> backwardList; // 消七灭六坐席
}
