package com.jeeplus.test.reimbursementsys.domain.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.domain.TreeEntity;
import com.jeeplus.sys.utils.StringUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * 中审报表数据表
 * @author: 徐滕
 * @version: 2022-05-11 10:31
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("zs_reimbursement_info")
public class ReimbursementDTO extends TreeEntity<ReimbursementDTO> {
    private static final long serialVersionUID = 1L;
    @Excel(name = "报销批次")
    private String businessCode;    //报销批次
    @Excel(name = "业务编号")
    private String reimbursementBatch;    //业务编号
    //@Excel(name = "所属年份")
    private String year;    //业务编码年份（相同的业务编码根据年份不同生成不同的数据列）（仅业务表中使用）
    private String businessCodeId;    //业务编号id
    @Excel(name = "发票代码")
    private String invoiceCode;     //发票代码
    @Excel(name = "发票号码")
    private String invoiceNumber;   //发票号码
    @Excel(name = "金额",type = 10)
    private String money;       //金额
    @Excel(name = "税额",type = 10)
    private String tax;         //税额
    @Excel(name = "收入",type = 10)
    private String income;      //收入
    //@Excel(name = "报销比例")
    private String reimbursementRatio;    //报销比例
    //@Excel(name = "已报金额",type = 10)
    private String allAlreadyReimbursementQuota;    //总报销额度（已报金额）
    //@Excel(name = "可报金额",type = 10)
    private String canReimbursementAmount;    //可报销额度
    @Excel(name = "购方企业名称",width = 30)
    private String firmName;        //购方企业名称

    @Excel(name = "开票日期",importFormat = "yyyy-MM-dd")
    private String makeTime;          //开票日期
    @Excel(name = "商品名称",width = 30)
    private String name;     //商品名称

    @Excel(name = "申请人",width = 10)
    private String proposer;        //申请人
    @Excel(name = "合伙人",width = 10)
    private String partner;         //合伙人
    @Excel(name = "业务类型",width = 12)
    private String businessType;    //业务类型
    private String remarks;    //备注
    private Integer type;    //状态
    private String surplusReimbursementAmount;    //剩余报销额度
    private String reimbursementType;    //报销比例
    private String gatheringStatus;    //收款状态
    private String reimbursementStatus;    //报销状态
    private String businessFlag;    //报销判定条件（1：表示该数据没有业务编码，即没有进行报销；0：表示该数据有业务编码）
    private String randomType;    //随机状态（1：随机业务编码，2：指定业务编码）（默认为指定业务编码仅业务表中使用）
    private String batchFlag;    //批量报销状态（1：批量报销）（仅业务表中使用）
    private String randomBusinessCodeIndex;    //随即业务编码序号
    private List<String> idList;
    private String existence;   //存在状态（0：未存在；1：已存在）

    @Excel(name = "收款日期",importFormat = "yyyy-MM-dd")
    private String gatheringTime;     //收款日期


    /**
     * 开票开始日期
     */
    private Date beginDate;
    /**
     * 开票结束日期
     */
    private Date endDate;
    /**
     * 收入前区间
     */
    private String beginIncome;
    /**
     * 收入后区间
     */
    private String endIncome;


    public String getReimbursementType() {
        if(StringUtils.isBlank(this.reimbursementType)){
            this.reimbursementType = "1";
        }
        return reimbursementType;
    }
}
