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_transfer_detail
 * 
 * @author xins
 * @date 2024-01-12
 */
public class WmsTransferDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 转库记录明细ID */
    private Long transferDetailId;

    /** 转库ID，关联wms_transfer的transfer_id */
    @Excel(name = "转库ID，关联wms_transfer的transfer_id")
    private Long transferId;

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

    /** 存放物料条码,入库扫描条码时，从打印条码记录表中获取，关联条码信息的barcode_info */
    @Excel(name = "存放物料条码,入库扫描条码时，从打印条码记录表中获取，关联条码信息的barcode_info")
    private String materialBarcode;

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

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

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

    /** 实际数量 */
    @Excel(name = "实际数量")
    private BigDecimal realAmount;

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

    /** 执行人 */
    @Excel(name = "执行人")
    private String executePerson;

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

    /** 转明细类型(1出库2入库) */
    @Excel(name = "转明细类型(1出库2入库)")
    private String transferDetailType;

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

    /** 创建时间 */
    @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;

    public void setTransferDetailId(Long transferDetailId) 
    {
        this.transferDetailId = transferDetailId;
    }

    public Long getTransferDetailId() 
    {
        return transferDetailId;
    }
    public void setTransferId(Long transferId) 
    {
        this.transferId = transferId;
    }

    public Long getTransferId() 
    {
        return transferId;
    }
    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 setInstockBatch(String instockBatch) 
    {
        this.instockBatch = instockBatch;
    }

    public String getInstockBatch() 
    {
        return instockBatch;
    }
    public void setMaterialId(Long materialId) 
    {
        this.materialId = materialId;
    }

    public Long getMaterialId() 
    {
        return materialId;
    }
    public void setPlanAmount(BigDecimal planAmount) 
    {
        this.planAmount = planAmount;
    }

    public BigDecimal getPlanAmount() 
    {
        return planAmount;
    }
    public void setRealAmount(BigDecimal realAmount) 
    {
        this.realAmount = realAmount;
    }

    public BigDecimal getRealAmount() 
    {
        return realAmount;
    }
    public void setExecuteStatus(String executeStatus) 
    {
        this.executeStatus = executeStatus;
    }

    public String getExecuteStatus() 
    {
        return executeStatus;
    }
    public void setExecutePerson(String executePerson) 
    {
        this.executePerson = executePerson;
    }

    public String getExecutePerson() 
    {
        return executePerson;
    }
    public void setExecuteTime(Date executeTime) 
    {
        this.executeTime = executeTime;
    }

    public Date getExecuteTime() 
    {
        return executeTime;
    }
    public void setTransferDetailType(String transferDetailType) 
    {
        this.transferDetailType = transferDetailType;
    }

    public String getTransferDetailType() 
    {
        return transferDetailType;
    }
    public void setMachineName(String machineName) 
    {
        this.machineName = machineName;
    }

    public String getMachineName() 
    {
        return machineName;
    }
    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;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("transferDetailId", getTransferDetailId())
            .append("transferId", getTransferId())
            .append("locationCode", getLocationCode())
            .append("materialBarcode", getMaterialBarcode())
            .append("instockBatch", getInstockBatch())
            .append("materialId", getMaterialId())
            .append("planAmount", getPlanAmount())
            .append("realAmount", getRealAmount())
            .append("executeStatus", getExecuteStatus())
            .append("executePerson", getExecutePerson())
            .append("executeTime", getExecuteTime())
            .append("transferDetailType", getTransferDetailType())
            .append("machineName", getMachineName())
            .append("createBy", getCreateBy())
            .append("createDate", getCreateDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("activeFlag", getActiveFlag())
            .toString();
    }
}
