package cn.ezhizao.project.business.collection.domain;

import cn.ezhizao.project.system.domain.SysFileStorage;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;

@Data
@Accessors(chain = true)
@ApiModel("收款导出excel")
public class CollectionExcel {
    @ApiModelProperty(value = "收款流水号")
    private String flowNo;

    @ApiModelProperty(value = "服务公司id")
    private Long subsidiaryId;

    @ApiModelProperty(value = "服务公司")
    private String subsidiary;

    @ApiModelProperty(value = "服务公司账户")
    private String subsidiaryName;

    @ApiModelProperty(value = "服务公司账号")
    private String subsidiaryBankAccount;

    @ApiModelProperty(value = "服务公司开户行")
    private String subsidiaryBankName;

    @ApiModelProperty(value = "客户 Id")
    private Long companyId;

    @ApiModelProperty(value = "客户名称")
    private String companyName;

    @ApiModelProperty(value = "收款金额")
    private BigDecimal arriveAmount;

    @ApiModelProperty(value="应收金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "到账日期")
    @JsonFormat(pattern="yyyy-MM-dd")
    private Timestamp arriveDate;

    @ApiModelProperty(value = "到账时间")
    private String arriveTime;

    @ApiModelProperty(value = "审核状态")
    private Byte status;
    @TableField(exist = false)
    private String statusStr;
    @ApiModelProperty(value = "到款状态")
    private Byte arriveStatus;
    @TableField(exist = false)
    private String arriveStatusStr;
    @ApiModelProperty(value = "付款名称")
    private String applyName;

    @ApiModelProperty(value = "付款账号")
    private String appyAccount;

    @ApiModelProperty(value = "备注")
    private String remark;

    @TableField(exist = false)
    private List<SysFileStorage> files;

    @ApiModelProperty("审核时间")
    private Timestamp verifyDate;

    @ApiModelProperty("审核意见")
    private String verifyComment;

    @TableField(exist = false)
    @ApiModelProperty("客户名称")
    private String customerName;

    @ApiModelProperty("合同单号")
    @TableField(exist = false)
    private String contractNo;

    @ApiModelProperty(value = "申请人")
    private Long applierId;

    @TableField(exist = false)
    private String applierName;

    @ApiModelProperty("确认到账时间")
    private Timestamp actuallyDate;

    @TableField(exist = false)
    private String applierDept;

    @ApiModelProperty(value = "购买数量")
    private BigDecimal buyNum;

    @ApiModelProperty(value = "赠送数量")
    private BigDecimal freeNum;

    @ApiModelProperty(value = "数量单位")
    private String unit;

    @ApiModelProperty(value = "优惠金额")
    private BigDecimal discountAmount;

    @ApiModelProperty(value = "成交价格")
    private BigDecimal dealPrice;

    @ApiModelProperty(value = "预估成本")
    private BigDecimal estimateCost;

    @ApiModelProperty(value = "产品")
    @TableField(exist = false)
    private String productName;

    @TableField(exist = false)
    private BigDecimal arrived;

    @TableField(exist = false)
    private String forRenew;
    @TableField(exist = false)
    private String forProject;

}
