package com.goafanti.expenseAccount.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.goafanti.common.utils.excel.Excel;

import java.math.BigDecimal;
import java.util.Date;

public class OutExpenseAccountDetailsList {


    /**
     * 0=其他，1=交通费，2=住宿费，3=市内车费，4=餐费，5=出差补贴，6=预借支,7=油费
     * 8=招待费，9=办公费，10=福利费，11=物业水电费，12=打印费
     */
    private Integer type;
    @Excel(name = "类型")
    private String  typeOther;
    @Excel(name = "报销时间",width = 26)
    private String releaseTimeStr;
    @Excel(name = "工时",width = 5)
    private Double duration ;
    @Excel(name = "天数",width = 5)
    private Integer days;
    @Excel(name = "节假日",width = 5)
    private Integer statutoryDays;

    private Integer sonId;
    private Integer sonType;
    private String  sonTypeOther;
    /**
     * 金额
     */
    @Excel(name = "报销金额", scale = 2,width = 8)
    private BigDecimal amount;
    /**
     * 实付金额
     */
    @Excel(name = "实报金额", scale = 2,width = 8)
    private BigDecimal realAmount;
    /**
     * 报销查询编号
     */
    @Excel(name = "报销编号",width = 20)
    private String checkNo;
    @Excel(name = "报销至订单")
    private String targetName;
    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 申请人
     */
    @Excel(name = "报销人")
    private String aname;
    /**
     * 财富负责人
     */
    @Excel(name = "财务负责人")
    private String financeName;
    /**
     * 状态 0=草稿，1=审核中，2=完成，3=驳回 ,4=撤销
     */
    @Excel(name = "状态",readConverterExp = "0=草稿，1=审核中，2=完成，3=驳回，4=删除",width = 8)
    private Integer status;
    /**
     * 申请公司
     */
    @Excel(name = "申请公司",width = 20)
    private String applyDepName;
    /**
     * 支付公司
     */
    @Excel(name = "支付公司",width = 20)
    private String payDepName;
    /**
     * 流程状态 0=巴员发起，1=上级审核，2=财务审核，3=总经理审核，4=董事长审核
     */
    private Integer processStatus;
    /**
     * 主报销编号
     */
    private Integer mainId;
    /**
     * 客户名称
     */
    private String buyerName;
    /**
     * 创建时间
     */
    @Excel(name = "发起时间")
    private String createTimeStr;
    private Integer targetType;

    private Date releaseStart;
    private Date releaseEnd;

    public Integer getStatutoryDays() {
        return statutoryDays;
    }

    public void setStatutoryDays(Integer statutoryDays) {
        this.statutoryDays = statutoryDays;
    }

    public String getReleaseTimeStr() {
        return releaseTimeStr;
    }

    public void setReleaseTimeStr(String releaseTimeStr) {
        this.releaseTimeStr = releaseTimeStr;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
    public Date getReleaseStart() {
        return releaseStart;
    }

    public void setReleaseStart(Date releaseStart) {
        this.releaseStart = releaseStart;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
    public Date getReleaseEnd() {
        return releaseEnd;
    }

    public void setReleaseEnd(Date releaseEnd) {
        this.releaseEnd = releaseEnd;
    }

    public Double getDuration() {
        return duration;
    }

    public void setDuration(Double duration) {
        this.duration = duration;
    }

    public Integer getDays() {
        return days;
    }

    public void setDays(Integer days) {
        this.days = days;
    }

    public Integer getSonId() {
        return sonId;
    }

    public void setSonId(Integer sonId) {
        this.sonId = sonId;
    }

    public String getTargetName() {
        return targetName;
    }

    public void setTargetName(String targetName) {
        this.targetName = targetName;
    }

    public String getTypeOther() {
        return typeOther;
    }

    public void setTypeOther(String typeOther) {
        this.typeOther = typeOther;
    }

    public Integer getSonType() {
        return sonType;
    }

    public void setSonType(Integer sonType) {
        this.sonType = sonType;
    }

    public String getSonTypeOther() {
        return sonTypeOther;
    }

    public void setSonTypeOther(String sonTypeOther) {
        this.sonTypeOther = sonTypeOther;
    }

    public Integer getTargetType() {
        return targetType;
    }

    public void setTargetType(Integer targetType) {
        this.targetType = targetType;
    }

    public String getCheckNo() {
        return checkNo;
    }

    public void setCheckNo(String checkNo) {
        this.checkNo = checkNo;
    }



    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public String getApplyDepName() {
        return applyDepName;
    }

    public void setApplyDepName(String applyDepName) {
        this.applyDepName = applyDepName;
    }

    public String getPayDepName() {
        return payDepName;
    }

    public void setPayDepName(String payDepName) {
        this.payDepName = payDepName;
    }

    public String getAname() {
        return aname;
    }

    public void setAname(String aname) {
        this.aname = aname;
    }

    public String getFinanceName() {
        return financeName;
    }

    public void setFinanceName(String financeName) {
        this.financeName = financeName;
    }



    public String getBuyerName() {
        return buyerName;
    }

    public void setBuyerName(String buyerName) {
        this.buyerName = buyerName;
    }

    public String getCreateTimeStr() {
        return createTimeStr;
    }

    public void setCreateTimeStr(String createTimeStr) {
        this.createTimeStr = createTimeStr;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getRealAmount() {
        return realAmount;
    }

    public void setRealAmount(BigDecimal realAmount) {
        this.realAmount = realAmount;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getProcessStatus() {
        return processStatus;
    }

    public void setProcessStatus(Integer processStatus) {
        this.processStatus = processStatus;
    }

    public Integer getMainId() {
        return mainId;
    }

    public void setMainId(Integer mainId) {
        this.mainId = mainId;
    }
}
