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_instock_detail
 * 
 * @author xins
 * @date 2023-12-25
 */
public class WmsProductInstockDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 成品入库记录明细ID */
    private Long productInstockDetailId;

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

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

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

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

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

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

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

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

    /** 入库数量 */
    @Excel(name = "入库数量")
    private BigDecimal instockAmount;

    /** 入库人 */
    @Excel(name = "入库人")
    private String instockBy;

    /** 入库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date instockDate;

    /** 入库方式（1：人工入库 2：AGV入库 ） */
    @Excel(name = "入库方式", readConverterExp = "1=：人工入库,2=：AGV入库")
    private String instockWay;

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

    public void setProductInstockDetailId(Long productInstockDetailId) 
    {
        this.productInstockDetailId = productInstockDetailId;
    }

    public Long getProductInstockDetailId() 
    {
        return productInstockDetailId;
    }
    public void setProductInstockId(Long productInstockId) 
    {
        this.productInstockId = productInstockId;
    }

    public Long getProductInstockId() 
    {
        return productInstockId;
    }
    public void setLocationCode(String locationCode) 
    {
        this.locationCode = locationCode;
    }

    public String getLocationCode() 
    {
        return locationCode;
    }
    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }
    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 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 setPlanAmount(BigDecimal planAmount) 
    {
        this.planAmount = planAmount;
    }

    public BigDecimal getPlanAmount() 
    {
        return planAmount;
    }
    public void setInstockAmount(BigDecimal instockAmount) 
    {
        this.instockAmount = instockAmount;
    }

    public BigDecimal getInstockAmount() 
    {
        return instockAmount;
    }
    public void setInstockBy(String instockBy) 
    {
        this.instockBy = instockBy;
    }

    public String getInstockBy() 
    {
        return instockBy;
    }
    public void setInstockDate(Date instockDate) 
    {
        this.instockDate = instockDate;
    }

    public Date getInstockDate() 
    {
        return instockDate;
    }
    public void setInstockWay(String instockWay) 
    {
        this.instockWay = instockWay;
    }

    public String getInstockWay() 
    {
        return instockWay;
    }
    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("productInstockDetailId", getProductInstockDetailId())
            .append("productInstockId", getProductInstockId())
            .append("locationCode", getLocationCode())
            .append("productId", getProductId())
            .append("productBarcode", getProductBarcode())
            .append("productBatch", getProductBatch())
            .append("executeStatus", getExecuteStatus())
            .append("erpStatus", getErpStatus())
            .append("planAmount", getPlanAmount())
            .append("instockAmount", getInstockAmount())
            .append("instockBy", getInstockBy())
            .append("instockDate", getInstockDate())
            .append("instockWay", getInstockWay())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .toString();
    }
}
