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

import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
import cn.ezhizao.framework.web.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;
import java.util.List;

/**
 * 收票详情对象 biz_financial_receive_ticket_detail
 *
 * @author ruoyi
 * @date 2023-11-17
 */
@Data
@TableName(value = "biz_financial_receive_ticket_detail")
@EqualsAndHashCode(callSuper = true)
public class BizFinancialReceiveTicketDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 外键 */
    @ApiModelProperty(value = "${comment}")
    private Long financialReceiveTicketId;

    /** 收票客户外键 */
    @ApiModelProperty(value = "${comment}")
    private Long companyId;

    /** 年 */
    @Excel(name = "年")
    @ApiModelProperty(value = "年")
    private String year;

    /** 月 */
    @Excel(name = "月")
    @ApiModelProperty(value = "月")
    private String month;

    /** 进项发票联 */
    @Excel(name = "进项发票联")
    @ApiModelProperty(value = "进项发票联")
    private Integer inputInvoice;

    /** 进项抵扣联 */
    @Excel(name = "进项抵扣联")
    @ApiModelProperty(value = "进项抵扣联")
    private Integer inputDeduction;

    /** 收入记账联 */
    @Excel(name = "收入记账联")
    @ApiModelProperty(value = "收入记账联")
    private Integer revenueBookkeeping;

    /** 有无收入票 */
    @Excel(name = "有无收入票")
    @ApiModelProperty(value = "有无收入票")
    private Integer hasIncomeTicket;

    /** 有无成本票 */
    @Excel(name = "有无成本票")
    @ApiModelProperty(value = "有无成本票")
    private Integer hasCostTicket;

    /** 银行对账单 0无1有 */
    @Excel(name = "银行对账单 0无1有")
    @ApiModelProperty(value = "银行对账单 0无1有")
    private Integer bankCopy;

    /** 其他 0无1有 */
    @Excel(name = "其他 0无1有")
    @ApiModelProperty(value = "其他 0无1有")
    private Integer others;

    /** 有无社保公积金票 */
    @Excel(name = "有无社保公积金票")
    @ApiModelProperty(value = "有无社保公积金票")
    private Integer hasSsafTicket;

    /** 银行回单 0无1有 */
    @Excel(name = "银行回单 0无1有")
    @ApiModelProperty(value = "银行回单 0无1有")
    private Integer bankSlips;

    /** 工资表 0无1有 */
    @Excel(name = "工资表 0无1有")
    @ApiModelProperty(value = "工资表 0无1有")
    private Integer payroll;

    /** 费用票 0无1有 */
    @Excel(name = "费用票 0无1有")
    @ApiModelProperty(value = "费用票 0无1有")
    private Integer feeTicket;

    /** 收票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收票时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "收票时间")
    private Date receiveDate;

    /** 保存状态 1待确认 2无票据 3交接送达 4 交接邮寄 */
    @Excel(name = "保存状态 1待确认 2无票据 3交接送达 4 交接邮寄")
    @ApiModelProperty(value = "保存状态 1待确认 2无票据 3交接送达 4 交接邮寄")
    private Integer saveStatus;

    /** 邮寄日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "邮寄日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "邮寄日期")
    private Date postDate;

    /** 快递单号 */
    @Excel(name = "快递单号")
    @ApiModelProperty(value = "快递单号")
    private String postNo;

    /** 状态 */
    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private Integer status;

    /** 详情 */
    @Excel(name = "详情")
    @ApiModelProperty(value = "详情")
    private String content;

    /** 审核详情 */
    @Excel(name = "审核详情")
    @ApiModelProperty(value = "审核详情")
    private String verifyContent;

    /** 收入票数量 */
    @Excel(name = "收入票数量")
    @ApiModelProperty(value = "收入票数量")
    private Integer incomeTicket;

    /** 成本票数量 */
    @Excel(name = "成本票数量")
    @ApiModelProperty(value = "成本票数量")
    private Integer costTicket;

    /** 费用票数量 */
    @Excel(name = "费用票数量")
    @ApiModelProperty(value = "费用票数量")
    private Integer feeTicketNumber;

    /** 社保公积金(social security accumulation fund)票数量 */
    @Excel(name = "社保公积金(social security accumulation fund)票数量")
    @ApiModelProperty(value = "社保公积金(social security accumulation fund)票数量")
    private Integer ssafTicket;

    /** 工资单数量 */
    @Excel(name = "工资单数量")
    @ApiModelProperty(value = "工资单数量")
    private Integer salaryTicket;

    /** 银行回单数量 */
    @Excel(name = "银行回单数量")
    @ApiModelProperty(value = "银行回单数量")
    private Integer bankSlipsNumber;

    /** 银行对账单数量 */
    @Excel(name = "银行对账单数量")
    @ApiModelProperty(value = "银行对账单数量")
    private Integer bankCopyNumber;

    /** 其他票数量 */
    @Excel(name = "其他票数量")
    @ApiModelProperty(value = "其他票数量")
    private Integer otherTicket;

    /** 总数 */
    @Excel(name = "总数")
    @ApiModelProperty(value = "总数")
    private Integer sumNumber;

    /** 缺票状态 */
    @Excel(name = "缺票状态")
    @ApiModelProperty(value = "缺票状态")
    private Integer lackTicket;

    /** 审核人 */
    @ApiModelProperty(value = "审核人")
    private Long verifierId;

    @TableField(exist = false)
    private String companyName;

    @TableField(exist = false)
    private String currentMonth;

    @TableField(exist = false)
    private List<Long> mainIds;

    public Integer getFeedbackStatus() {
        return feedbackStatus;
    }

    public void setFeedbackStatus(Integer feedbackStatus) {
        this.feedbackStatus = feedbackStatus;
    }

    public String getFeedbackContent() {
        return feedbackContent;
    }

    public void setFeedbackContent(String feedbackContent) {
        this.feedbackContent = feedbackContent;
    }

    @ApiModelProperty("反馈结果")
    private Integer feedbackStatus;
    @ApiModelProperty("反馈内容")
    private String feedbackContent;
}
