package com.hw.wms.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;

/**
 * 成品出库记录明细对象 wms_product_outstock_detail
 *
 * @author xins
 * @date 2024-01-16
 */
public class WmsProductOutstockDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 成品出库记录明细ID */
    private Long productOutstockDetailId;

    /** 成品出库记录ID */
    @Excel(name = "成品出库记录ID")
    private Long productOutstockId;

    /** 仓库ID */
    @Excel(name = "仓库ID")
    private Long warehouseId;

    /** 库位编码 */
    @Excel(name = "库位编码")
    private String locationCode;

    /** 成品条码 */
    @Excel(name = "成品条码")
    private String productBarcode;

    /** 成品批次 */
    @Excel(name = "成品批次")
    private String productBatch;

    /** 成品ID */
    @Excel(name = "成品ID")
    private Long productId;

    /** 计划数量 */
    @Excel(name = "计划数量")
    private BigDecimal planAmount;

    /** 出库数量 */
    @Excel(name = "出库数量")
    private BigDecimal outstockAmount;

    /** 确认数量 */
    @Excel(name = "确认数量")
    private BigDecimal confirmAmount;

    /** 执行状态(0待执行,1执行中,2执行完成) */
    @Excel(name = "执行状态(0待执行,1执行中,2执行完成，3已确认)")
    private String executeStatus;

    /** 同步ERP状态(0:失败,1成功) */
    @Excel(name = "同步ERP状态(0:失败,1成功)")
    private String erpStatus;

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateDate;

    /** 执行开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "执行开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date beginTime;

    /** 执行结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "执行结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    public void setProductOutstockDetailId(Long productOutstockDetailId)
    {
        this.productOutstockDetailId = productOutstockDetailId;
    }

    public Long getProductOutstockDetailId()
    {
        return productOutstockDetailId;
    }
    public void setProductOutstockId(Long productOutstockId)
    {
        this.productOutstockId = productOutstockId;
    }

    public Long getProductOutstockId()
    {
        return productOutstockId;
    }
    public void setWarehouseId(Long warehouseId)
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId()
    {
        return warehouseId;
    }
    public void setLocationCode(String locationCode)
    {
        this.locationCode = locationCode;
    }

    public String getLocationCode()
    {
        return locationCode;
    }
    public void setProductBarcode(String productBarcode)
    {
        this.productBarcode = productBarcode;
    }

    public String getProductBarcode()
    {
        return productBarcode;
    }
    public void setProductBatch(String productBatch)
    {
        this.productBatch = productBatch;
    }

    public String getProductBatch()
    {
        return productBatch;
    }
    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }
    public void setPlanAmount(BigDecimal planAmount)
    {
        this.planAmount = planAmount;
    }

    public BigDecimal getPlanAmount()
    {
        return planAmount;
    }
    public void setOutstockAmount(BigDecimal outstockAmount)
    {
        this.outstockAmount = outstockAmount;
    }

    public BigDecimal getOutstockAmount()
    {
        return outstockAmount;
    }

    public BigDecimal getConfirmAmount() {
        return confirmAmount;
    }

    public void setConfirmAmount(BigDecimal confirmAmount) {
        this.confirmAmount = confirmAmount;
    }

    public void setExecuteStatus(String executeStatus)
    {
        this.executeStatus = executeStatus;
    }

    public String getExecuteStatus()
    {
        return executeStatus;
    }
    public void setErpStatus(String erpStatus)
    {
        this.erpStatus = erpStatus;
    }

    public String getErpStatus()
    {
        return erpStatus;
    }
    public void setUpdateDate(Date updateDate)
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate()
    {
        return updateDate;
    }
    public void setBeginTime(Date beginTime)
    {
        this.beginTime = beginTime;
    }

    public Date getBeginTime()
    {
        return beginTime;
    }
    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productOutstockDetailId", getProductOutstockDetailId())
            .append("productOutstockId", getProductOutstockId())
            .append("warehouseId", getWarehouseId())
            .append("locationCode", getLocationCode())
            .append("productBarcode", getProductBarcode())
            .append("productBatch", getProductBatch())
            .append("productId", getProductId())
            .append("planAmount", getPlanAmount())
            .append("outstockAmount", getOutstockAmount())
            .append("executeStatus", getExecuteStatus())
            .append("erpStatus", getErpStatus())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("beginTime", getBeginTime())
            .append("endTime", getEndTime())
            .toString();
    }
}
