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_raw_instock_detail
 *
 * @author xs
 * @date 2023-12-21
 */
public class WmsRawInstockDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 原材料入库记录明细ID */
    private Long rawInstockDetailId;

    /** 原材料入库ID */
    @Excel(name = "原材料入库ID")
    private Long rawInstockId;

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

    /** 存放物料条码 */
    @Excel(name = "存放物料条码")
    private String materialBarcode;

    /** 物料ID */
    @Excel(name = "物料ID")
    private Long materialId;

    /** 批次;入库扫描条码时，从打印条码记录表中获取 */
    @Excel(name = "批次;入库扫描条码时，从打印条码记录表中获取")
    private String instockBatch;

    /** 生产日期;入库扫描条码时，从打印条码记录表中获取 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产日期;入库扫描条码时，从打印条码记录表中获取", width = 30, dateFormat = "yyyy-MM-dd")
    private Date materialProductionDate;

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

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

    /** 执行状态(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 String instockPerson;

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

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

    /** 使用机台名称;入库扫描条码时，从打印条码记录表中获取 */
    @Excel(name = "使用机台名称;入库扫描条码时，从打印条码记录表中获取")
    private String machineName;

    /** 质检状态(0:待质检,1:合格,2:NG) */
    @Excel(name = "质检状态(0:待质检,1:合格,2:NG)")
    private String qualityStatus;

    /** 每托数量 */
    @Excel(name = "每托数量")
    private BigDecimal stackAmount;

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

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

    /** 有效标记 */
    @Excel(name = "有效标记")
    private String activeFlag;

    //采购订单号
    private String poNo;
    /** 采购订单行项目 */
    @Excel(name = "采购订单行项目")
    private String poLine;

    public void setRawInstockDetailId(Long rawInstockDetailId)
    {
        this.rawInstockDetailId = rawInstockDetailId;
    }

    public Long getRawInstockDetailId()
    {
        return rawInstockDetailId;
    }
    public void setRawInstockId(Long rawInstockId)
    {
        this.rawInstockId = rawInstockId;
    }

    public Long getRawInstockId()
    {
        return rawInstockId;
    }
    public void setLocationCode(String locationCode)
    {
        this.locationCode = locationCode;
    }

    public String getLocationCode()
    {
        return locationCode;
    }
    public void setMaterialBarcode(String materialBarcode)
    {
        this.materialBarcode = materialBarcode;
    }

    public String getMaterialBarcode()
    {
        return materialBarcode;
    }
    public void setMaterialId(Long materialId)
    {
        this.materialId = materialId;
    }

    public Long getMaterialId()
    {
        return materialId;
    }
    public void setInstockBatch(String instockBatch)
    {
        this.instockBatch = instockBatch;
    }

    public String getInstockBatch()
    {
        return instockBatch;
    }
    public void setMaterialProductionDate(Date materialProductionDate)
    {
        this.materialProductionDate = materialProductionDate;
    }

    public Date getMaterialProductionDate()
    {
        return materialProductionDate;
    }

    public BigDecimal getPlanAmount() {
        return planAmount;
    }

    public void setPlanAmount(BigDecimal planAmount) {
        this.planAmount = planAmount;
    }

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

    public BigDecimal getInstockAmount()
    {
        return instockAmount;
    }
    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 setInstockPerson(String instockPerson)
    {
        this.instockPerson = instockPerson;
    }

    public String getInstockPerson()
    {
        return instockPerson;
    }
    public void setInstockTime(Date instockTime)
    {
        this.instockTime = instockTime;
    }

    public Date getInstockTime()
    {
        return instockTime;
    }
    public void setInstockWay(String instockWay)
    {
        this.instockWay = instockWay;
    }

    public String getInstockWay()
    {
        return instockWay;
    }
    public void setMachineName(String machineName)
    {
        this.machineName = machineName;
    }

    public String getMachineName()
    {
        return machineName;
    }
    public void setQualityStatus(String qualityStatus)
    {
        this.qualityStatus = qualityStatus;
    }

    public String getQualityStatus()
    {
        return qualityStatus;
    }
    public void setStackAmount(BigDecimal stackAmount)
    {
        this.stackAmount = stackAmount;
    }

    public BigDecimal getStackAmount()
    {
        return stackAmount;
    }
    public void setCreateDate(Date createDate)
    {
        this.createDate = createDate;
    }

    public Date getCreateDate()
    {
        return createDate;
    }
    public void setUpdateDate(Date updateDate)
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate()
    {
        return updateDate;
    }
    public void setActiveFlag(String activeFlag)
    {
        this.activeFlag = activeFlag;
    }

    public String getActiveFlag()
    {
        return activeFlag;
    }

    public String getPoNo() {
        return poNo;
    }

    public void setPoNo(String poNo) {
        this.poNo = poNo;
    }

    public void setPoLine(String poLine)
    {
        this.poLine = poLine;
    }

    public String getPoLine()
    {
        return poLine;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("rawInstockDetailId", getRawInstockDetailId())
            .append("rawInstockId", getRawInstockId())
            .append("locationCode", getLocationCode())
            .append("materialBarcode", getMaterialBarcode())
            .append("materialId", getMaterialId())
            .append("instockBatch", getInstockBatch())
            .append("materialProductionDate", getMaterialProductionDate())
            .append("instockAmount", getInstockAmount())
            .append("executeStatus", getExecuteStatus())
            .append("erpStatus", getErpStatus())
            .append("instockPerson", getInstockPerson())
            .append("instockTime", getInstockTime())
            .append("instockWay", getInstockWay())
            .append("machineName", getMachineName())
            .append("qualityStatus", getQualityStatus())
            .append("stackAmount", getStackAmount())
            .append("createBy", getCreateBy())
            .append("createDate", getCreateDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("activeFlag", getActiveFlag())
            .append("poLine", getPoLine())
            .toString();
    }
}
