package com.jianshui.invoice.domain.vo.jcsk;

import cn.hutool.core.annotation.Alias;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jianshui.common.annotation.Excel;
import com.jianshui.common.core.domain.BaseEntity;
import com.jianshui.invoice.domain.Redinfodetail;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

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

/**
 * 红字信息表对象 redinfo转换专用
 *
 * @author Gong Quanlin
 * @date 2022-03-29
 */

@Data
public class RedinfoCopyVO{


    /**
     * 本系统订单号
     */
    @Excel(name = "本系统订单号")
    private String systemOrderno;

    /**
     * 客户系统订单号
     */
    @Excel(name = "客户系统订单号")
    private String outTradeOrderno;

    /**
     * 流水号
     */
    @Excel(name = "流水号")
    private String fpqqlsh;

    /**
     * bill_info表的bill_id
     */
    @Excel(name = "bill_info表的bill_id")
    private Long billInfoId;

    /**
     * 信息表编号
     */
    @Alias("hzfpxxqrdbh")
    @Excel(name = "信息表编号")
    private String redInfoNo;

    /**
     * 信息表状态
     */
    @Alias("hzfpxxqrdZtdm")
    @Excel(name = "信息表状态")
    private String redInfoStatus;

    /**
     * 信息表状态描述
     */
    @Excel(name = "信息表状态描述")
    private String redInfoMessage;

    /**
     * 信息表类型
     */
    @Excel(name = "信息表类型")
    private String redInfoType;

    /**
     * 原发票代码
     */
    @Excel(name = "原发票代码")
    private String originFpdm;

    /**
     * 信息表特殊标识
     */
    @Excel(name = "信息表特殊标识")
    private String redInfoSpecFlag;

    /**
     * 原发票号码
     */
    @Alias("lzfphm")
    @Excel(name = "原发票号码")
    private String originFphm;

    /**
     * 税种类别
     */
    @Excel(name = "税种类别")
    private String taxType;

    /**
     * 原发票开票日期
     */
    @Alias("lzkprq")
    @Excel(name = "原发票开票日期")
    private String originKprq;

    /**
     * 多税率标志
     */
    @Excel(name = "多税率标志")
    private String multTaxRate;

    /**
     * 填开日期
     */
    @Alias("lrrq")
    @Excel(name = "填开日期")
    private String billInputTime;

    /**
     * 购方名称
     */
    @Alias("gmfmc")
    @Excel(name = "购方名称")
    private String buyerName;

    /**
     * 购方税号
     */
    @Alias("gmfnsrsbh")
    private String buyerTaxnum;

    /**
     * 销方名称
     */
    @Alias("xsfmc")
    @Excel(name = "销方名称")
    private String sellerName;

    /**
     * 销方税号
     */
    @Alias("xsfnsrsbh")
    @Excel(name = "销方税号")
    private String sellerTaxnum;

    /**
     * 不含税金额
     */
    @Excel(name = "不含税金额")
    private BigDecimal taxfreeamt;

    /**
     * 税额
     */
    @Excel(name = "税额")
    private BigDecimal tax;

    /**
     * 含税金额
     */
    @Excel(name = "含税金额")
    private BigDecimal taxamt;

    /**
     * 申请说明
     */
    @Alias("chyydm")
    @Excel(name = "申请说明")
    private String applyRemark;

    /**
     * 申请表pdf 地址
     */
    @Excel(name = "申请表pdf 地址")
    private String pdfUrl;

    /**
     * 商品编码版本号
     */
    @Excel(name = "商品编码版本号")
    private String bmbbh;

    /**
     * 营业税标志
     */
    @Excel(name = "营业税标志")
    private String businessTaxCode;

    /**
     * 申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;

    /**
     * 发票种类 invoice_type（ p电子增值税普通发票 c增值税普通发票 s 增值税专用发票 e 收购发票 f 收购发票 r增值税普通发票）
     */
    @Alias("lzfplxdm")
    @Excel(name = "发票种类 invoice_type", readConverterExp = "p=电子增值税普通发票,c=增值税普通发票,s=,增=值税专用发票,e=,收=购发票,f=,收=购发票,r=增值税普通发票")
    private String invoiceType;

    /**
     * 分机号
     */
    @Excel(name = "分机号")
    private String fjh;

    /**
     * 终端号
     */
    @Excel(name = "终端号")
    private String terminalNumber;

    /**
     * 设备编号
     */
    @Excel(name = "设备编号")
    private String jspbh;

    /**
     * 所属月份
     */
    @Excel(name = "所属月份")
    private String ssyf;

    /**
     * 税率
     */
    @Excel(name = "税率")
    private BigDecimal taxrate;

    /**
     * 申请选择
     */

    @Excel(name = "申请选择")
    private String sqxz;

    /**
     * 经办人
     */
    @Excel(name = "经办人")
    private String jbr;

    /**
     * 申请方税号
     */
    @Excel(name = "申请方税号")
    private String reqnsrsbh;

    /**
     * 成品油标志
     */
    @Excel(name = "成品油标志")
    private String productOilFlag;

    /**
     * 服务公司
     */
    @Excel(name = "服务公司")
    private String serviceSupplierKey;

    /**
     * 申请类别
     */
    @Alias("sqly")
    @Excel(name = "申请类别")
    private Integer sqlb; // 申请类别,0为销方申请,1为购方申请

    @Excel(name = "回调地址")
    private String callbackUrl;

    /**
     * 红字信息表详情信息
     */
    @TableField(exist = false)
    private List<Redinfodetail> redinfodetailList;

    @TableField(exist = false)
    @JsonIgnore
    private String searchValue;

    @TableField(exist = false)
    @JsonIgnore
    private String remark;

    /** 数科新加字段**/

    @Alias("hzfphm")
    @Excel(name = "红字发票号码")
    private String fphm;

    @Alias("hzkprq")
    @Excel(name = "红字发票开票日期")
    private String kprq;

    @Alias("hzfpxxqrdid")
    @Excel(name = "红字发票信息确认单id")
    private String hzfpxxqrdid;

    @Alias("hzhjje")
    @Excel(name = "红字合计金额")
    private String hzhjje;

    @Alias("hzhjse")
    @Excel(name = "红字合计税额")
    private String hzhjse;

    @Alias("ykjhzfpbz")
    @Excel(name = "是否开具红字发票")
    private String ykjhzfpbz;






}
