package com.fs.oms.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 采购申请单对象 oms_purchase_apply
 *
 * @author fs
 * @date 2023-06-20
 */
public class OmsPurchaseApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 采购申请单号 */
    @Excel(name = "采购申请单号")
    private String code;

    /** 要求收货仓库id */
    @Excel(name = "要求收货仓库id")
    private Long warehouseId;

    private String warehouseName;

    /** 要求到货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "要求到货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedTime;

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

    /** 状态 0待审核  1已审核待采购 2部分采购 3已完成 4已取消 */
    @Excel(name = "状态 0待审核  1已审核待采购 2部分采购 3已完成 4已取消")
    private Long status;

    /** 实际预留数量 */
    @Excel(name = "实际预留数量")
    private Long actuallyNum;

    /** 商品明细 */
    @Excel(name = "商品明细")
    private String products;

    /** 审核人ID */
    @Excel(name = "审核人ID")
    private Long auditUserId;

    /** 申请数量 */
    @Excel(name = "申请数量")
    private Long planNum;

    /** 已下采购数量 */
    @Excel(name = "已下采购数量")
    private Long alreadyNum;

    /** 未下采购数量 */
    @Excel(name = "未下采购数量")
    private Long waitNum;

    /** 创建人ID */
    @Excel(name = "创建人ID")
    private Long createUserId;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCode(String code)
    {
        this.code = code;
    }

    public String getCode()
    {
        return code;
    }
    public void setWarehouseId(Long warehouseId)
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId()
    {
        return warehouseId;
    }
    public void setExpectedTime(Date expectedTime)
    {
        this.expectedTime = expectedTime;
    }

    public Date getExpectedTime()
    {
        return expectedTime;
    }
    public void setAuditTime(Date auditTime)
    {
        this.auditTime = auditTime;
    }

    public Date getAuditTime()
    {
        return auditTime;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }
    public void setActuallyNum(Long actuallyNum)
    {
        this.actuallyNum = actuallyNum;
    }

    public Long getActuallyNum()
    {
        return actuallyNum;
    }
    public void setProducts(String products)
    {
        this.products = products;
    }

    public String getProducts()
    {
        return products;
    }
    public void setAuditUserId(Long auditUserId)
    {
        this.auditUserId = auditUserId;
    }

    public Long getAuditUserId()
    {
        return auditUserId;
    }
    public void setPlanNum(Long planNum)
    {
        this.planNum = planNum;
    }

    public Long getPlanNum()
    {
        return planNum;
    }
    public void setAlreadyNum(Long alreadyNum)
    {
        this.alreadyNum = alreadyNum;
    }

    public Long getAlreadyNum()
    {
        return alreadyNum;
    }
    public void setWaitNum(Long waitNum)
    {
        this.waitNum = waitNum;
    }

    public Long getWaitNum()
    {
        return waitNum;
    }
    public void setCreateUserId(Long createUserId)
    {
        this.createUserId = createUserId;
    }

    public Long getCreateUserId()
    {
        return createUserId;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

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

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("code", getCode())
            .append("warehouseId", getWarehouseId())
            .append("expectedTime", getExpectedTime())
            .append("auditTime", getAuditTime())
            .append("status", getStatus())
            .append("actuallyNum", getActuallyNum())
            .append("products", getProducts())
            .append("auditUserId", getAuditUserId())
            .append("planNum", getPlanNum())
            .append("alreadyNum", getAlreadyNum())
            .append("waitNum", getWaitNum())
            .append("createUserId", getCreateUserId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("warehouseName",getWarehouseName())
            .toString();
    }
}
