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_raw_return
 *
 * @author xins
 * @date 2023-12-22
 */
public class WmsRawReturn extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 原材料退库记录ID */
    private Long rawReturnId;

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

    /** 仓库ID;领料时需要保存 */
    @Excel(name = "仓库ID;领料时需要保存")
    private Long warehouseId;

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

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

    /** 计划明细ID,关联pd_base_plan_detail的plan_detail_id */
    @Excel(name = "计划明细编号,关联pd_base_plan_detail的plan_detail_code")
    private String planDetailCode;

    /** 成品ID */
    @Excel(name = "成品ID")
    private Long productId;

    private Long materialId;

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

    /** 批次码 */
    @Excel(name = "批次码")
    private String batchCode;

    /** 目的地编码 */
    @Excel(name = "目的地编码")
    private String endStationCode;

    private BigDecimal planAmount;

    private BigDecimal returnAmount;

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

    /** 任务类型(1余料退料,2bom错误退料,9其他退料) */
    @Excel(name = "任务类型(1余料退料,2bom错误退料,9其他退料)")
    private String taskType;

    /** 申请原因 */
    @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;

    /** 同步ERP状态(0:失败,1成功) */
    @Excel(name = "同步ERP状态(0:失败,1成功)")
    private String erpStatus;

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

    private String warehouseName;

    private String materialName;

    private String productName;

    /** 原材料退库记录明细信息 */
    private List<WmsRawReturnDetail> wmsRawReturnDetailList;

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

    public Long getRawReturnId()
    {
        return rawReturnId;
    }
    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 String getPlanCode() {
        return planCode;
    }

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

    public String getPlanDetailCode() {
        return planDetailCode;
    }

    public void setPlanDetailCode(String planDetailCode) {
        this.planDetailCode = planDetailCode;
    }

    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }

    public Long getMaterialId() {
        return materialId;
    }

    public void setMaterialId(Long materialId) {
        this.materialId = materialId;
    }

    public String getMaterialBarcode() {
        return materialBarcode;
    }

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

    public String getBatchCode() {
        return batchCode;
    }

    public void setBatchCode(String batchCode) {
        this.batchCode = batchCode;
    }

    public String getEndStationCode() {
        return endStationCode;
    }

    public void setEndStationCode(String endStationCode) {
        this.endStationCode = endStationCode;
    }

    public BigDecimal getPlanAmount() {
        return planAmount;
    }

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

    public BigDecimal getReturnAmount() {
        return returnAmount;
    }

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

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

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

    public String getTaskType()
    {
        return taskType;
    }
    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 String getErpStatus() {
        return erpStatus;
    }

    public void setErpStatus(String erpStatus) {
        this.erpStatus = erpStatus;
    }

    public BigDecimal getErpAmount() {
        return erpAmount;
    }

    public void setErpAmount(BigDecimal erpAmount) {
        this.erpAmount = erpAmount;
    }

    public List<WmsRawReturnDetail> getWmsRawReturnDetailList()
    {
        return wmsRawReturnDetailList;
    }

    public void setWmsRawReturnDetailList(List<WmsRawReturnDetail> wmsRawReturnDetailList)
    {
        this.wmsRawReturnDetailList = wmsRawReturnDetailList;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getMaterialName() {
        return materialName;
    }

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

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("rawReturnId", getRawReturnId())
            .append("taskCode", getTaskCode())
            .append("warehouseId", getWarehouseId())
            .append("locationCode", getLocationCode())
            .append("planCode", getPlanCode())
            .append("planDetailCode", getPlanDetailCode())
            .append("productId", getProductId())
            .append("operationType", getOperationType())
            .append("taskType", getTaskType())
            .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("wmsRawReturnDetailList", getWmsRawReturnDetailList())
            .toString();
    }
}
