package cn.superdesk.uniorder.dao.entity.accounting.unified.customer;

import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @Description:  
 * @Author: linjinyu 
 * @CreateDate: 2022-05-13 14:03:15 
 * @UpdateUser: linjinyu 
 * @UpdateDate: 2022-05-13 14:03:15 
 * @UpdateRemark: 修改内容 
 * @Version: 1.0 
 */ 
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
@ToString
public class AccountingUnifiedCustomer implements Serializable {
    @ApiModelProperty(value = "")
    private Long id;

    /**
     * 对账单 创建维度:0-订单;1-商品;2-流水;
     */
    @ApiModelProperty(value = "对账单 创建维度:0-订单;1-商品;2-流水;")
    private Integer dimCreateBy;

    /**
     * 用于标记生成逻辑:10-早期;20-改版202012
     */
    @ApiModelProperty(value = "用于标记生成逻辑:10-早期;20-改版202012")
    private Integer logicMode;

    @ApiModelProperty(value = "")
    private String accountingOrderSn;

    /**
     * 服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum
     */
    @ApiModelProperty(value = "服务编码-定义:始于订单流上标志的服务编码及从订单流衍生出来的及相关数据的来源标识-引用enum CommonServiceEnum")
    private String serviceNo;

    /**
     * 来源-定义:始于操作(不限于界面 内部接口 第三方接口等等);1-superdesk-uniorder;2-superdesk-app;3-superdesk-mall;4-qchqyscjc-mall;
     */
    @ApiModelProperty(value = "来源-定义:始于操作(不限于界面 内部接口 第三方接口等等);1-superdesk-uniorder;2-superdesk-app;3-superdesk-mall;4-qchqyscjc-mall;")
    private String sourceFrom;

    @ApiModelProperty(value = "")
    private Date cycleBeginTime;

    @ApiModelProperty(value = "")
    private Date cycleEndTime;

    /**
     * 对账单(结算单) 总额
     */
    @ApiModelProperty(value = "对账单(结算单) 总额")
    private BigDecimal accountingAmount;

    /**
     * 统计结算单-订单数
     */
    @ApiModelProperty(value = "统计结算单-订单数")
    private Integer quantityOrder;

    @ApiModelProperty(value = "")
    private Integer quantityGoods;

    /**
     * readname_Id
     */
    @ApiModelProperty(value = "readname_Id")
    private Long purchaseUserId;

    @ApiModelProperty(value = "")
    private String purchaseUserName;

    @ApiModelProperty(value = "")
    private String purchasePhone;

    @ApiModelProperty(value = "")
    private String purchaseAddress;

    /**
     * 对账单(结算单)状态:-1-已取消;0-未确认;1-已确认;2-已拒绝;3-待提交;
     */
    @ApiModelProperty(value = "对账单(结算单)状态:-1-已取消;0-未确认;1-已确认;2-已拒绝;3-待提交;")
    private Integer accountingStatus;

    /**
     * 开票状态，0-未开票，1-已开票，2-部分开票
     */
    @ApiModelProperty(value = "开票状态，0-未开票，1-已开票，2-部分开票")
    private Integer invoiceStatus;

    /**
     * 发票类型(关联表:unified_inv_type):1-增值税普票;2-增值税专票;
     */
    @ApiModelProperty(value = "发票类型(关联表:unified_inv_type):1-增值税普票;2-增值税专票;")
    private Integer invoiceType;

    @ApiModelProperty(value = "")
    private Long enterpriseId;

    /**
     * 开票抬头
     */
    @ApiModelProperty(value = "开票抬头")
    private String invoiceCompanyName;

    /**
     * 纳税人代码
     */
    @ApiModelProperty(value = "纳税人代码")
    private String invoiceTaxpayersIDCode;

    /**
     * 是否发邮件0-不发，1-发
     */
    @ApiModelProperty(value = "是否发邮件0-不发，1-发")
    private Integer isSendEmail;

    @ApiModelProperty(value = "")
    private Date sendEmailTime;

    /**
     * 这个数据类型是什么鬼:1-发货时间;2-下单时间;3-完成时间;
     */
    @ApiModelProperty(value = "这个数据类型是什么鬼:1-发货时间;2-下单时间;3-完成时间;")
    private Integer dateType;

    /**
     * 账单周期
     */
    @ApiModelProperty(value = "账单周期")
    private Date startTime;

    @ApiModelProperty(value = "")
    private Date endTime;

    /**
     * 银行信息ID?收款主体
     */
    @ApiModelProperty(value = "银行信息ID?收款主体")
    private Long bankInfoId;

    /**
     * 0-未回款;1-部分回款;2-全部回款
     */
    @ApiModelProperty(value = "0-未回款;1-部分回款;2-全部回款")
    private Integer backAccountStatus;

    /**
     * 支付方式
     */
    @ApiModelProperty(value = "支付方式")
    private Integer payType;

    /**
     * 支付状态 1 已支付2-未支付
     */
    @ApiModelProperty(value = "支付状态 1 已支付2-未支付")
    private Integer payStatus;

    @ApiModelProperty(value = "")
    private String wxQrcodeImgurl;

    @ApiModelProperty(value = "")
    private Date createTime;

    @ApiModelProperty(value = "")
    private Long createUserId;

    @ApiModelProperty(value = "")
    private Date updateTime;

    @ApiModelProperty(value = "")
    private Long updateUserId;

    /**
     * 后台操作人员备注
     */
    @ApiModelProperty(value = "后台操作人员备注")
    private String remark;

    private static final long serialVersionUID = 1L;
}