package com.hw.wms.domain;

import java.math.BigDecimal;
import java.util.List;
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
 *
 * @author xins
 * @date 2024-01-12
 */
public class WmsTransfer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 转库记录ID */
    private Long transferId;

    /** 任务编号 */
    @Excel(name = "任务编号")
    private String taskCode;

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

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

    /** 目标仓库ID */
    @Excel(name = "目标仓库ID")
    private Long targetWarehouseId;

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

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

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

    /** 计划编号,关联pd_base_plan_info的plan_code */
    @Excel(name = "计划编号,关联pd_base_plan_info的plan_code")
    private String planCode;

    /** 申请数量 */
    @Excel(name = "申请数量")
    private BigDecimal applyQty;

    /** 已出数量 */
    @Excel(name = "已出数量")
    private BigDecimal outstockQty;

    /** 已入数量 */
    @Excel(name = "已入数量")
    private BigDecimal instockQty;

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

    /** 转库类型(1、出半成品库入成品库) */
    @Excel(name = "转库类型(1、出半成品库入成品库)")
    private String transferType;

    /** 申请原因 */
    @Excel(name = "申请原因")
    private String applyReason;

    /** 审核原因 */
    @Excel(name = "审核原因")
    private String auditReason;

    /** 审核状态(0待审核,1审核通过,2审核未通过) */
    @Excel(name = "审核状态(0待审核,1审核通过,2审核未通过)")
    private String auditStatus;

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

    /** 申请人 */
    @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 auditBy;

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

    /** 最后更新时间 */
    @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;



    private String oriWarehouseName;
    private String targetWarehouseName;
    private String materialCode;
    private String materialName;

    /** 转库记录明细;移库合库记录对应的明细信息信息 */
    private List<WmsTransferDetail> wmsTransferDetailList;

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

    public Long getTransferId()
    {
        return transferId;
    }
    public void setTaskCode(String taskCode)
    {
        this.taskCode = taskCode;
    }

    public String getTaskCode()
    {
        return taskCode;
    }
    public void setOriWarehouseId(Long oriWarehouseId)
    {
        this.oriWarehouseId = oriWarehouseId;
    }

    public Long getOriWarehouseId()
    {
        return oriWarehouseId;
    }
    public void setOriLocationCode(String oriLocationCode)
    {
        this.oriLocationCode = oriLocationCode;
    }

    public String getOriLocationCode()
    {
        return oriLocationCode;
    }
    public void setTargetWarehouseId(Long targetWarehouseId)
    {
        this.targetWarehouseId = targetWarehouseId;
    }

    public Long getTargetWarehouseId()
    {
        return targetWarehouseId;
    }
    public void setTargetLocationCode(String targetLocationCode)
    {
        this.targetLocationCode = targetLocationCode;
    }

    public String getTargetLocationCode()
    {
        return targetLocationCode;
    }
    public void setMaterialId(Long materialId)
    {
        this.materialId = materialId;
    }

    public Long getMaterialId()
    {
        return materialId;
    }
    public void setProductBatch(String productBatch)
    {
        this.productBatch = productBatch;
    }

    public String getProductBatch()
    {
        return productBatch;
    }
    public void setPlanCode(String planCode)
    {
        this.planCode = planCode;
    }

    public String getPlanCode()
    {
        return planCode;
    }
    public void setApplyQty(BigDecimal applyQty)
    {
        this.applyQty = applyQty;
    }

    public BigDecimal getApplyQty()
    {
        return applyQty;
    }
    public void setOutstockQty(BigDecimal outstockQty)
    {
        this.outstockQty = outstockQty;
    }

    public BigDecimal getOutstockQty()
    {
        return outstockQty;
    }
    public void setInstockQty(BigDecimal instockQty)
    {
        this.instockQty = instockQty;
    }

    public BigDecimal getInstockQty()
    {
        return instockQty;
    }
    public void setOperationType(String operationType)
    {
        this.operationType = operationType;
    }

    public String getOperationType()
    {
        return operationType;
    }
    public void setTransferType(String transferType)
    {
        this.transferType = transferType;
    }

    public String getTransferType()
    {
        return transferType;
    }
    public void setApplyReason(String applyReason)
    {
        this.applyReason = applyReason;
    }

    public String getApplyReason()
    {
        return applyReason;
    }
    public void setAuditReason(String auditReason)
    {
        this.auditReason = auditReason;
    }

    public String getAuditReason()
    {
        return auditReason;
    }
    public void setAuditStatus(String auditStatus)
    {
        this.auditStatus = auditStatus;
    }

    public String getAuditStatus()
    {
        return auditStatus;
    }
    public void setExecuteStatus(String executeStatus)
    {
        this.executeStatus = executeStatus;
    }

    public String getExecuteStatus()
    {
        return executeStatus;
    }
    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 setAuditBy(String auditBy)
    {
        this.auditBy = auditBy;
    }

    public String getAuditBy()
    {
        return auditBy;
    }
    public void setAuditDate(Date auditDate)
    {
        this.auditDate = auditDate;
    }

    public Date getAuditDate()
    {
        return auditDate;
    }
    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;
    }

    public List<WmsTransferDetail> getWmsTransferDetailList()
    {
        return wmsTransferDetailList;
    }

    public void setWmsTransferDetailList(List<WmsTransferDetail> wmsTransferDetailList)
    {
        this.wmsTransferDetailList = wmsTransferDetailList;
    }

    public String getOriWarehouseName() {
        return oriWarehouseName;
    }

    public void setOriWarehouseName(String oriWarehouseName) {
        this.oriWarehouseName = oriWarehouseName;
    }

    public String getTargetWarehouseName() {
        return targetWarehouseName;
    }

    public void setTargetWarehouseName(String targetWarehouseName) {
        this.targetWarehouseName = targetWarehouseName;
    }

    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;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("transferId", getTransferId())
            .append("taskCode", getTaskCode())
            .append("oriWarehouseId", getOriWarehouseId())
            .append("oriLocationCode", getOriLocationCode())
            .append("targetWarehouseId", getTargetWarehouseId())
            .append("targetLocationCode", getTargetLocationCode())
            .append("materialId", getMaterialId())
            .append("productBatch", getProductBatch())
            .append("planCode", getPlanCode())
            .append("applyQty", getApplyQty())
            .append("outstockQty", getOutstockQty())
            .append("instockQty", getInstockQty())
            .append("operationType", getOperationType())
            .append("transferType", getTransferType())
            .append("applyReason", getApplyReason())
            .append("auditReason", getAuditReason())
            .append("auditStatus", getAuditStatus())
            .append("executeStatus", getExecuteStatus())
            .append("applyBy", getApplyBy())
            .append("applyDate", getApplyDate())
            .append("auditBy", getAuditBy())
            .append("auditDate", getAuditDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("beginTime", getBeginTime())
            .append("endTime", getEndTime())
            .append("wmsTransferDetailList", getWmsTransferDetailList())
            .toString();
    }
}
