package com.ag.entity.account.vo;

import com.ag.entity.account.FeeDetail;
import com.ag.entity.fee.AccountPoints;
import com.ag.entity.fee.BaseChargingItem;
import com.ag.entity.fee.face.ReqSource;
import com.ag.entity.fee.vo.ContractItemVO;
import com.ag.entity.fee.vo.ContractVO;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 计费对象基类，不包含数据源对象和计费过程对象
 * transient：序列化与反序列化时不作为传递参数
 */
public class BizVO implements Serializable {
    private String tenancyId;//租户
    private String operMan;//操作员
    private Map<String, String> conditionMap;//参数map
    private String jsonDataSource;//json数据源
    transient private String accountPointId;//计费点编号
    transient private List<AccountPoints> pointLst;//计费点费目
    transient private Map<String, List<AccountPoints>> allPonitsMap;//计费点分组
    transient private Map<String, BaseChargingItem> itemMap;//所有基础费目（费用明细取名称）
    private String shipperCode;//货主编号
    private String shipperName;//提示错误信息使用
    private String companyCode;//驳船编号
    private String companyName;//提示错误信息使用
    transient private String payerCode;//付费人编号(废弃)
    transient private ContractVO defaultContractVo;//默认合同相关，费目（计免），费率（条件）
    transient private String itemIds;//费目逗号分割
    transient private String itemId;//费目
    transient private String categoryId;//费类
    transient private ContractItemVO shipperItemVO;
    transient private ContractItemVO companyItemVO;
    transient private List<ContractVO> appendContractVO = new ArrayList<>();//合同追加（查询全部合同，赋值给客户，查询所有月结客户使用）
    transient private Date bizTime;//业务时间(查找合同有效期)


    private ReqSource reqSource;
    private List<FeeDetail> details = new ArrayList<>();
    private Date startDate;
    private Date endDate;

    public String getTenancyId() {
        return tenancyId;
    }

    public void setTenancyId(String tenancyId) {
        this.tenancyId = tenancyId;
    }

    public String getOperMan() {
        return operMan;
    }

    public void setOperMan(String operMan) {
        this.operMan = operMan;
    }

    public Map<String, String> getConditionMap() {
        return conditionMap;
    }

    public void setConditionMap(Map<String, String> conditionMap) {
        this.conditionMap = conditionMap;
    }

    public String getJsonDataSource() {
        return jsonDataSource;
    }

    public void setJsonDataSource(String jsonDataSource) {
        this.jsonDataSource = jsonDataSource;
    }

    public String getAccountPointId() {
        return accountPointId;
    }

    public void setAccountPointId(String accountPointId) {
        this.accountPointId = accountPointId;
    }

    public List<AccountPoints> getPointLst() {
        return pointLst;
    }

    public void setPointLst(List<AccountPoints> pointLst) {
        this.pointLst = pointLst;
    }

    public Map<String, List<AccountPoints>> getAllPonitsMap() {
        return allPonitsMap;
    }

    public void setAllPonitsMap(Map<String, List<AccountPoints>> allPonitsMap) {
        this.allPonitsMap = allPonitsMap;
    }

    public Map<String, BaseChargingItem> getItemMap() {
        return itemMap;
    }

    public void setItemMap(Map<String, BaseChargingItem> itemMap) {
        this.itemMap = itemMap;
    }

    public String getShipperCode() {
        return shipperCode;
    }

    public void setShipperCode(String shipperCode) {
        this.shipperCode = shipperCode;
    }

    public String getShipperName() {
        return shipperName;
    }

    public void setShipperName(String shipperName) {
        this.shipperName = shipperName;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getPayerCode() {
        return payerCode;
    }

    public void setPayerCode(String payerCode) {
        this.payerCode = payerCode;
    }

    public ContractVO getDefaultContractVo() {
        return defaultContractVo;
    }

    public void setDefaultContractVo(ContractVO defaultContractVo) {
        this.defaultContractVo = defaultContractVo;
    }

    public String getItemIds() {
        return itemIds;
    }

    public void setItemIds(String itemIds) {
        this.itemIds = itemIds;
    }

    public String getItemId() {
        return itemId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    public String getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(String categoryId) {
        this.categoryId = categoryId;
    }

    public ContractItemVO getShipperItemVO() {
        return shipperItemVO;
    }

    public void setShipperItemVO(ContractItemVO shipperItemVO) {
        this.shipperItemVO = shipperItemVO;
    }

    public ContractItemVO getCompanyItemVO() {
        return companyItemVO;
    }

    public void setCompanyItemVO(ContractItemVO companyItemVO) {
        this.companyItemVO = companyItemVO;
    }

    public List<ContractVO> getAppendContractVO() {
        return appendContractVO;
    }

    public void setAppendContractVO(List<ContractVO> appendContractVO) {
        this.appendContractVO = appendContractVO;
    }

    public Date getBizTime() {
        return bizTime;
    }

    public void setBizTime(Date bizTime) {
        this.bizTime = bizTime;
    }


    public ReqSource getReqSource() {
        return reqSource;
    }

    public void setReqSource(ReqSource reqSource) {
        this.reqSource = reqSource;
    }

    public List<FeeDetail> getDetails() {
        return details;
    }

    public void setDetails(List<FeeDetail> details) {
        this.details = details;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }
}
