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

    /** 原材料退库记录明细ID */
    private Long rawReturnDetailId;

    /** 原材料退库记录ID */
    @Excel(name = "原材料退库记录ID")
    private Long rawReturnId;

    /** 库位编码 */
    @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 returnAmount;

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

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

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

    /** 使用机台名称;退库扫描条码时，从打印条码记录表中获取 */
    @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 createDate;

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

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

    private String materialCode;

    private String materialName;

    private String applyBy;

    private String taskType;

    private String taskCode;


    public void setRawReturnDetailId(Long rawReturnDetailId)
    {
        this.rawReturnDetailId = rawReturnDetailId;
    }

    public Long getRawReturnDetailId()
    {
        return rawReturnDetailId;
    }
    public void setRawReturnId(Long rawReturnId)
    {
        this.rawReturnId = rawReturnId;
    }

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

    public BigDecimal getPlanAmount()
    {
        return planAmount;
    }
    public void setReturnAmount(BigDecimal returnAmount)
    {
        this.returnAmount = returnAmount;
    }

    public BigDecimal getReturnAmount()
    {
        return returnAmount;
    }
    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 setReturnPerson(String returnPerson)
    {
        this.returnPerson = returnPerson;
    }

    public String getReturnPerson()
    {
        return returnPerson;
    }
    public void setReturnTime(Date returnTime)
    {
        this.returnTime = returnTime;
    }

    public Date getReturnTime()
    {
        return returnTime;
    }

    public String getReturnWay() {
        return returnWay;
    }

    public void setReturnWay(String returnWay) {
        this.returnWay = returnWay;
    }

    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 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 setStackAmount(BigDecimal stackAmount)
    {
        this.stackAmount = stackAmount;
    }

    public BigDecimal getStackAmount()
    {
        return stackAmount;
    }

    public String getMaterialCode() {
        return materialCode;
    }

    public void setMaterialCode(String materialCode) {
        this.materialCode = materialCode;
    }

    public String getMaterialName() {
        return materialName;
    }

    public void setMaterialName(String materialName) {
        this.materialName = materialName;
    }

    public String getApplyBy() {
        return applyBy;
    }

    public void setApplyBy(String applyBy) {
        this.applyBy = applyBy;
    }

    public String getTaskType() {
        return taskType;
    }

    public void setTaskType(String taskType) {
        this.taskType = taskType;
    }

    public String getTaskCode() {
        return taskCode;
    }

    public void setTaskCode(String taskCode) {
        this.taskCode = taskCode;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("rawReturnDetailId", getRawReturnDetailId())
            .append("rawReturnId", getRawReturnId())
            .append("locationCode", getLocationCode())
            .append("materialBarcode", getMaterialBarcode())
            .append("materialId", getMaterialId())
            .append("instockBatch", getInstockBatch())
            .append("materialProductionDate", getMaterialProductionDate())
            .append("planAmount", getPlanAmount())
            .append("returnAmount", getReturnAmount())
            .append("executeStatus", getExecuteStatus())
            .append("erpStatus", getErpStatus())
            .append("returnPerson", getReturnPerson())
            .append("returnTime", getReturnTime())
            .append("returnWay", getReturnWay())
            .append("machineName", getMachineName())
            .append("qualityStatus", getQualityStatus())
            .append("createBy", getCreateBy())
            .append("createDate", getCreateDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("stackAmount", getStackAmount())
            .toString();
    }
}
