package com.tmerclub.cloud.product.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @author gaozijie
 * @date 2023-04-10
 */
public class StockBillOutLogExcelVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * excel 信息
     */
    public static final String EXCEL_NAME = "出库明细信息";
    public static final String SHEET_NAME = "出库明细";
    /**
     * 哪一行开始导出
     */
    public static final int MERGE_ROW_INDEX = 2;
    /**
     * 需要合并的列数组
     */
    public static final int[] MERGE_COLUMN_INDEX = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};

    @ExcelProperty(value = {"出库明细信息", "出库单号"}, index = 0)
    private String stockBillNo;

    @ExcelProperty(value = {"出库明细信息", "关联订单号"}, index = 1)
    private String sourceOrderNo;

    @ExcelProperty(value = {"入库明细信息", "库存点名称"}, index = 2)
    private String stockPointName;

    @ExcelProperty(value = {"入库明细信息", "库存点类型"}, index = 3)
    private String stockPointType;

    @ExcelProperty(value = {"出库明细信息", "单据类型"}, index = 4)
    private String stockBillTypeName;

    @ExcelProperty(value = {"出库明细信息", "出库原因"}, index = 5)
    private String reason;

    @ExcelProperty(value = {"出库明细信息", "状态，0：已作废，1：已出库，2：待提交"}, index = 6)
    private String statusName;

    @ExcelProperty(value = {"出库明细信息", "出库时间"}, index = 7)
    private Date businessTime;

    @ExcelProperty(value = {"出库明细信息", "总出库数量"}, index = 8)
    private Integer totalCount;

    @ExcelProperty(value = {"出库明细信息", "总出库金额"}, index = 9)
    private String totalAmount;

    @ExcelProperty(value = {"出库明细信息", "制单人"}, index = 10)
    private String makerMobile;

    @ExcelProperty(value = {"出库明细信息", "制单时间"}, index = 11)
    private Date createTime;

    @ExcelProperty(value = {"出库明细信息", "商品编码"}, index = 12)
    private String partyCode;

    @ExcelProperty(value = {"出库明细信息", "商品名称"}, index = 13)
    private String spuName;

    @ExcelProperty(value = {"出库明细信息", "规格"}, index = 14)
    private String skuName;

    @ExcelProperty(value = {"出库明细信息", "实际出库数量"}, index = 15)
    private Integer stockCount;

    @ExcelProperty(value = {"出库明细信息", "成本单价"}, index = 16)
    private String unitPrice;

    @ExcelIgnore
    private Long stockBillLogId;

    @ExcelIgnore
    private Integer status;

    @ExcelIgnore
    private Integer stockBillType;

    @ExcelIgnore
    private Long stockChangeReasonId;

    public String getStockPointName() {
        return stockPointName;
    }

    public void setStockPointName(String stockPointName) {
        this.stockPointName = stockPointName;
    }

    public String getStockPointType() {
        return stockPointType;
    }

    public void setStockPointType(String stockPointType) {
        this.stockPointType = stockPointType;
    }

    public String getStockBillNo() {
        return stockBillNo;
    }

    public void setStockBillNo(String stockBillNo) {
        this.stockBillNo = stockBillNo;
    }

    public String getSourceOrderNo() {
        return sourceOrderNo;
    }

    public void setSourceOrderNo(String sourceOrderNo) {
        this.sourceOrderNo = sourceOrderNo;
    }

    public String getStockBillTypeName() {
        return stockBillTypeName;
    }

    public void setStockBillTypeName(String stockBillTypeName) {
        this.stockBillTypeName = stockBillTypeName;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getStatusName() {
        return statusName;
    }

    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }

    public Date getBusinessTime() {
        return businessTime;
    }

    public void setBusinessTime(Date businessTime) {
        this.businessTime = businessTime;
    }

    public Integer getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(Integer totalCount) {
        this.totalCount = totalCount;
    }

    public String getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(String totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getMakerMobile() {
        return makerMobile;
    }

    public void setMakerMobile(String makerMobile) {
        this.makerMobile = makerMobile;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getPartyCode() {
        return partyCode;
    }

    public void setPartyCode(String partyCode) {
        this.partyCode = partyCode;
    }

    public String getSpuName() {
        return spuName;
    }

    public void setSpuName(String spuName) {
        this.spuName = spuName;
    }

    public String getSkuName() {
        return skuName;
    }

    public void setSkuName(String skuName) {
        this.skuName = skuName;
    }

    public Integer getStockCount() {
        return stockCount;
    }

    public void setStockCount(Integer stockCount) {
        this.stockCount = stockCount;
    }

    public String getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(String unitPrice) {
        this.unitPrice = unitPrice;
    }

    public Long getStockBillLogId() {
        return stockBillLogId;
    }

    public void setStockBillLogId(Long stockBillLogId) {
        this.stockBillLogId = stockBillLogId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStockBillType() {
        return stockBillType;
    }

    public void setStockBillType(Integer stockBillType) {
        this.stockBillType = stockBillType;
    }

    public Long getStockChangeReasonId() {
        return stockChangeReasonId;
    }

    public void setStockChangeReasonId(Long stockChangeReasonId) {
        this.stockChangeReasonId = stockChangeReasonId;
    }

    @Override
    public String toString() {
        return "StockBillOutLogExcelVO{" +
                "stockBillNo='" + stockBillNo + '\'' +
                ", sourceOrderNo='" + sourceOrderNo + '\'' +
                ", stockPointName='" + stockPointName + '\'' +
                ", stockPointType='" + stockPointType + '\'' +
                ", stockBillTypeName='" + stockBillTypeName + '\'' +
                ", reason='" + reason + '\'' +
                ", statusName='" + statusName + '\'' +
                ", businessTime=" + businessTime +
                ", totalCount=" + totalCount +
                ", totalAmount='" + totalAmount + '\'' +
                ", makerMobile='" + makerMobile + '\'' +
                ", createTime=" + createTime +
                ", partyCode='" + partyCode + '\'' +
                ", spuName='" + spuName + '\'' +
                ", skuName='" + skuName + '\'' +
                ", stockCount=" + stockCount +
                ", unitPrice='" + unitPrice + '\'' +
                ", stockBillLogId=" + stockBillLogId +
                ", status=" + status +
                ", stockBillType=" + stockBillType +
                ", stockChangeReasonId=" + stockChangeReasonId +
                '}';
    }
}
