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
 *
 * @author xs
 * @date 2024-03-27
 */
public class WmsRawInstock extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 原材料入库记录ID */
    private Long rawInstockId;

    /** 任务编号;移库时必须 */
    @Excel(name = "任务编号;移库时必须")
    private String taskCode;

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

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

    /** 采购订单号，入库扫描条码时获取唯一条码 */
    @Excel(name = "采购订单号，入库扫描条码时获取唯一条码")
    private String poNo;

    /** 操作类型(0自动,1人工,2强制,3调度) */
    @Excel(name = "操作类型(0自动,1人工,2强制,3调度)")
    private String operationType;

    /** 入库类型(1采购入库,2返库入库，9其他入库) */
    @Excel(name = "入库类型(1采购入库,2返库入库，9其他入库)")
    private String instockType;

    /** 物料ID，关联物料信息主键 */
    @Excel(name = "物料ID，关联物料信息主键")
    private Long materialId;

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

    /** agv的存批次条码 */
    @Excel(name = "agv的存批次条码")
    private String materialBatchCode;

    /** 托盘RFID代码（如果是五楼辅料库存放料箱编码） */
    @Excel(name = "托盘RFID代码", readConverterExp = "如=果是五楼辅料库存放料箱编码")
    private String palletInfoCode;

    /** 入库数量 */
    @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;

    /** 同步给ERP的数量 */
    @Excel(name = "同步给ERP的数量")
    private BigDecimal erpAmount;

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

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

    /** 机台名称 */
    @Excel(name = "机台名称")
    private String machineName;

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

    /** 最后更新时间 */
    @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 setRawInstockId(Long rawInstockId)
    {
        this.rawInstockId = rawInstockId;
    }

    public Long getRawInstockId()
    {
        return rawInstockId;
    }
    public void setTaskCode(String taskCode)
    {
        this.taskCode = taskCode;
    }

    public String getTaskCode()
    {
        return taskCode;
    }
    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 setPoNo(String poNo)
    {
        this.poNo = poNo;
    }

    public String getPoNo()
    {
        return poNo;
    }
    public void setOperationType(String operationType)
    {
        this.operationType = operationType;
    }

    public String getOperationType()
    {
        return operationType;
    }
    public void setInstockType(String instockType)
    {
        this.instockType = instockType;
    }

    public String getInstockType()
    {
        return instockType;
    }
    public void setMaterialId(Long materialId)
    {
        this.materialId = materialId;
    }

    public Long getMaterialId()
    {
        return materialId;
    }
    public void setMaterialBarcode(String materialBarcode)
    {
        this.materialBarcode = materialBarcode;
    }

    public String getMaterialBarcode()
    {
        return materialBarcode;
    }
    public void setMaterialBatchCode(String materialBatchCode)
    {
        this.materialBatchCode = materialBatchCode;
    }

    public String getMaterialBatchCode()
    {
        return materialBatchCode;
    }
    public void setPalletInfoCode(String palletInfoCode)
    {
        this.palletInfoCode = palletInfoCode;
    }

    public String getPalletInfoCode()
    {
        return palletInfoCode;
    }
    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 setErpAmount(BigDecimal erpAmount)
    {
        this.erpAmount = erpAmount;
    }

    public BigDecimal getErpAmount()
    {
        return erpAmount;
    }
    public void setApplyBy(String applyBy)
    {
        this.applyBy = applyBy;
    }

    public String getApplyBy()
    {
        return applyBy;
    }
    public void setApplyDate(Date applyDate)
    {
        this.applyDate = applyDate;
    }

    public Date getApplyDate()
    {
        return applyDate;
    }
    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 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("rawInstockId", getRawInstockId())
                .append("taskCode", getTaskCode())
                .append("warehouseId", getWarehouseId())
                .append("locationCode", getLocationCode())
                .append("poNo", getPoNo())
                .append("operationType", getOperationType())
                .append("instockType", getInstockType())
                .append("materialId", getMaterialId())
                .append("materialBarcode", getMaterialBarcode())
                .append("materialBatchCode", getMaterialBatchCode())
                .append("palletInfoCode", getPalletInfoCode())
                .append("instockAmount", getInstockAmount())
                .append("executeStatus", getExecuteStatus())
                .append("erpStatus", getErpStatus())
                .append("erpAmount", getErpAmount())
                .append("applyBy", getApplyBy())
                .append("applyDate", getApplyDate())
                .append("machineName", getMachineName())
                .append("qualityStatus", getQualityStatus())
                .append("updateBy", getUpdateBy())
                .append("updateDate", getUpdateDate())
                .append("beginTime", getBeginTime())
                .append("endTime", getEndTime())
                .toString();
    }
}
