package com.bs.cw.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;

/**
 * 费用对象 cw_amortize_cost
 *
 * @author bs
 * @date 2024-02-07
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cw_amortize_cost")
@Data
public class CwAmortizeCost extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** id */
    @TableId(value = "id",type = IdType.AUTO)
    @ApiModelProperty(value = "id")
    private Long id;

    @Excel(name = "订单类型")
    @ApiModelProperty(value = "订单类型")
    private String orderType;

    /** 订单ID */
    @Excel(name = "订单ID")
    @ApiModelProperty(value = "订单ID")
    private Long orderId;

    /** 提单号 */
    @Excel(name = "提单号")
    @ApiModelProperty(value = "提单号")
    private String orderNo;

    /** 应收应付0-应收1-应付 */

    @Excel(name = "应收应付0-应收1-应付")
    @ApiModelProperty(value = "应收应付0-应收1-应付")
    private String rpFlag;

    /** 业务类型 */

    @Excel(name = "业务类型")
    @ApiModelProperty(value = "业务类型")
    private String bizCode;

    /** 费目代码 */

    @Excel(name = "费目代码")
    @ApiModelProperty(value = "费目代码")
    private String itemCode;

    /** 费目名称 */

    @Excel(name = "费目名称")
    @ApiModelProperty(value = "费目名称")
    private String itemName;

    /** 费率 */

    @Excel(name = "费率")
    @ApiModelProperty(value = "费率")
    private BigDecimal itemRate;

    /** 数量 */

    @Excel(name = "数量")
    @ApiModelProperty(value = "数量")
    private BigDecimal itemNum;

    /** 费用 */

    @Excel(name = "费用")
    @ApiModelProperty(value = "费用")
    private BigDecimal itemCost;

    /** 币种 */

    @Excel(name = "币种")
    @ApiModelProperty(value = "币种")
    private String currency;

    /** 开始日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始日期")
    private Date beginDate;

    /** 结束日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束日期")
    private Date endDate;

    /** 录入日期 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "录入日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "录入日期")
    private Date inputDate;

    /** 摘要 */

    @Excel(name = "摘要")
    @ApiModelProperty(value = "摘要")
    private String summary;

    /** 凭证号 */

    @Excel(name = "凭证号")
    @ApiModelProperty(value = "凭证号")
    private String voucherNo;

    /** 税率 */

    @Excel(name = "税率")
    @ApiModelProperty(value = "税率")
    private String taxRate;

    /** 不含税价 */

    @Excel(name = "不含税价")
    @ApiModelProperty(value = "不含税价")
    private BigDecimal taxFreePrice;

    /** 税金 */

    @Excel(name = "税金")
    @ApiModelProperty(value = "税金")
    private BigDecimal taxAmount;

    /** 报销单号 */

    @Excel(name = "报销单号")
    @ApiModelProperty(value = "报销单号")
    private String expenseNo;

    /** 状态 */

    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private String status;

    /** 是否公共成本 */

    @Excel(name = "是否公共成本")
    @ApiModelProperty(value = "是否公共成本")
    private String isPublic;

    /** 相关方 */

    @Excel(name = "相关方")
    @ApiModelProperty(value = "相关方")
    private Long custId;

    /** 相关方名称 */

    @Excel(name = "相关方名称")
    @ApiModelProperty(value = "相关方名称")
    private String custName;

    /** $column.columnComment */

    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @ApiModelProperty(value = "${column.columnComment}")
    private String relId;

    /** 备注 */

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

    /** 已核销金额 */

    @Excel(name = "已核销金额")
    @ApiModelProperty(value = "已核销金额")
    private BigDecimal writeoffCost;

    /** 开票金额 */

    @Excel(name = "开票金额")
    @ApiModelProperty(value = "开票金额")
    private BigDecimal invoiceCost;

    /** 锁定状态 */

    @Excel(name = "锁定状态")
    @ApiModelProperty(value = "锁定状态")
    private String lockStatus;

    /** 借贷方,0-借方,1-贷方 */

    @Excel(name = "借贷方,0-借方,1-贷方")
    @ApiModelProperty(value = "借贷方,0-借方,1-贷方")
    private String drOrCr;

    /** 科目ID */

    @Excel(name = "科目ID")
    @ApiModelProperty(value = "科目ID")
    private String subjectId;

    /** 是否为预收付款,null/0-不是,1-预收款,2-预付款 */

    @Excel(name = "是否为预收付款,null/0-不是,1-预收款,2-预付款")
    @ApiModelProperty(value = "是否为预收付款,null/0-不是,1-预收款,2-预付款")
    private String advanceMoney;

    /** 价格类型 */

    @Excel(name = "价格类型")
    @ApiModelProperty(value = "价格类型")
    private String priceType;

    /** 核销状态 */

    @Excel(name = "核销状态")
    @ApiModelProperty(value = "核销状态")
    private String writeoffStatus;

    /** 原票原转凭证号 */

    @Excel(name = "原票原转凭证号")
    @ApiModelProperty(value = "原票原转凭证号")
    private String invcTurnNo;

    /** 成本结转凭证号 */

    @Excel(name = "成本结转凭证号")
    @ApiModelProperty(value = "成本结转凭证号")
    private String costSettleNo;

    /** 费用类型 */

    @Excel(name = "费用类型")
    @ApiModelProperty(value = "费用类型")
    private String itemType;

    /** 剩余量 */

    @Excel(name = "剩余量")
    @ApiModelProperty(value = "剩余量")
    private BigDecimal remainNum;

    /** 销售价格 */

    @Excel(name = "销售价格")
    @ApiModelProperty(value = "销售价格")
    private BigDecimal salePrice;

    /** 成本单价 */

    @Excel(name = "成本单价")
    @ApiModelProperty(value = "成本单价")
    private BigDecimal costPrice;

    /** 总成本 */

    @Excel(name = "总成本")
    @ApiModelProperty(value = "总成本")
    private BigDecimal totalCostPrice;

    /** 是否已收发票 */

    @Excel(name = "是否已收发票")
    @ApiModelProperty(value = "是否已收发票")
    private Integer receiveInvoice;


}
