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

    /** 原材料库存ID */
    private Long rawStockId;

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

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

    /** 库存类型：1原材料  2半成品 */
    @Excel(name = "库存类型：1原材料  2半成品")
    private String stockType;

    /** 物料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 instockDate;

    /** 最晚出库时间;入库时，根据物料信“存放周期“计算出来的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最晚出库时间;入库时，根据物料信“存放周期“计算出来的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastOutstockTime;

    /** 质检状态(1检验中,2质检通过,3质检不通过) */
    @Excel(name = "质检状态(1检验中,2质检通过,3质检不通过)")
    private String qualityStatus;

    /** 质检状态(1检验中,2质检通过,3质检不通过) */
    @Excel(name = "完整标识(1是0否)拆分后为0")
    private String completeFlag;

    /** 总数量 */
    @Excel(name = "总数量")
    private BigDecimal totalAmount;

    /** 冻结数量 */
    @Excel(name = "冻结数量")
    private BigDecimal frozenAmount;

    /** 占用数量 */
    @Excel(name = "占用数量")
    private BigDecimal occupyAmount;

    /** 供应商ID */
    @Excel(name = "供应商ID")
    private Long supplierId;

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

    /** 物料组1，主关件、辅料、大宗（预留） */
    @Excel(name = "物料组1，主关件、辅料、大宗", readConverterExp = "预=留")
    private String materialGroup1;

    /** 物料组2，未定（预留） */
    @Excel(name = "物料组2，未定", readConverterExp = "预=留")
    private String materialGroup2;

    /** 物料组3，未定（预留） */
    @Excel(name = "物料组3，未定", readConverterExp = "预=留")
    private String materialGroup3;

    /** 不良品库存数量 */
    @Excel(name = "不良品库存数量")
    private BigDecimal defAmount;

    /** 有效标记 */
    @Excel(name = "有效标记")
    private String activeFlag;

    public void setRawStockId(Long rawStockId)
    {
        this.rawStockId = rawStockId;
    }

    public Long getRawStockId()
    {
        return rawStockId;
    }
    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 void setStockType(String stockType)
    {
        this.stockType = stockType;
    }

    public String getStockType()
    {
        return stockType;
    }
    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 setInstockDate(Date instockDate)
    {
        this.instockDate = instockDate;
    }

    public Date getInstockDate()
    {
        return instockDate;
    }
    public void setLastOutstockTime(Date lastOutstockTime)
    {
        this.lastOutstockTime = lastOutstockTime;
    }

    public Date getLastOutstockTime()
    {
        return lastOutstockTime;
    }
    public void setQualityStatus(String qualityStatus)
    {
        this.qualityStatus = qualityStatus;
    }

    public String getQualityStatus()
    {
        return qualityStatus;
    }

    public String getCompleteFlag() {
        return completeFlag;
    }

    public void setCompleteFlag(String completeFlag) {
        this.completeFlag = completeFlag;
    }

    public void setTotalAmount(BigDecimal totalAmount)
    {
        this.totalAmount = totalAmount;
    }

    public BigDecimal getTotalAmount()
    {
        return totalAmount;
    }
    public void setFrozenAmount(BigDecimal frozenAmount)
    {
        this.frozenAmount = frozenAmount;
    }

    public BigDecimal getFrozenAmount()
    {
        return frozenAmount;
    }
    public void setOccupyAmount(BigDecimal occupyAmount)
    {
        this.occupyAmount = occupyAmount;
    }

    public BigDecimal getOccupyAmount()
    {
        return occupyAmount;
    }
    public void setSupplierId(Long supplierId)
    {
        this.supplierId = supplierId;
    }

    public Long getSupplierId()
    {
        return supplierId;
    }
    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 setMaterialGroup1(String materialGroup1)
    {
        this.materialGroup1 = materialGroup1;
    }

    public String getMaterialGroup1()
    {
        return materialGroup1;
    }
    public void setMaterialGroup2(String materialGroup2)
    {
        this.materialGroup2 = materialGroup2;
    }

    public String getMaterialGroup2()
    {
        return materialGroup2;
    }
    public void setMaterialGroup3(String materialGroup3)
    {
        this.materialGroup3 = materialGroup3;
    }

    public String getMaterialGroup3()
    {
        return materialGroup3;
    }
    public void setDefAmount(BigDecimal defAmount)
    {
        this.defAmount = defAmount;
    }

    public BigDecimal getDefAmount()
    {
        return defAmount;
    }
    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("rawStockId", getRawStockId())
            .append("warehouseId", getWarehouseId())
            .append("locationCode", getLocationCode())
            .append("stockType", getStockType())
            .append("materialId", getMaterialId())
            .append("instockBatch", getInstockBatch())
            .append("instockDate", getInstockDate())
            .append("lastOutstockTime", getLastOutstockTime())
            .append("qualityStatus", getQualityStatus())
            .append("totalAmount", getTotalAmount())
            .append("frozenAmount", getFrozenAmount())
            .append("occupyAmount", getOccupyAmount())
            .append("supplierId", getSupplierId())
            .append("createBy", getCreateBy())
            .append("createDate", getCreateDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("materialGroup1", getMaterialGroup1())
            .append("materialGroup2", getMaterialGroup2())
            .append("materialGroup3", getMaterialGroup3())
            .append("defAmount", getDefAmount())
            .append("activeFlag", getActiveFlag())
            .toString();
    }
}
