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_stock_total
 *
 * @author xins
 * @date 2024-03-14
 */
public class WmsStockTotal extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 总库存ID */
    private Long stockTotalId;

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

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 仓库楼层 */
    @Excel(name = "仓库楼层")
    private Long warehouseFloor;

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

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

    /** 物料编号 */
    @Excel(name = "物料编号")
    private String materialCode;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String materialName;

    /** 总数量;仓库存放的总数量 */
    @Excel(name = "总数量;仓库存放的总数量")
    private BigDecimal totalAmount;

    /** 冻结数量;手动冻结的，暂时可不用 */
    @Excel(name = "冻结数量;手动冻结的，暂时可不用")
    private BigDecimal frozenAmount;

    /** 占用数量;申请时占用的数量，在出库时要减去出库数量，并且总数量要同步更新; */
    @Excel(name = "占用数量;申请时占用的数量，在出库时要减去出库数量，并且总数量要同步更新;")
    private BigDecimal occupyAmount;

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

    /** 最后更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateDate;

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


    public String getWarehouseName() {
        return warehouseName;
    }

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

    public void setStockTotalId(Long stockTotalId)
    {
        this.stockTotalId = stockTotalId;
    }

    public Long getStockTotalId()
    {
        return stockTotalId;
    }
    public void setWarehouseId(Long warehouseId)
    {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId()
    {
        return warehouseId;
    }
    public void setWarehouseFloor(Long warehouseFloor)
    {
        this.warehouseFloor = warehouseFloor;
    }

    public Long getWarehouseFloor()
    {
        return warehouseFloor;
    }
    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 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 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;
    }

    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("stockTotalId", getStockTotalId())
            .append("warehouseId", getWarehouseId())
            .append("warehouseFloor", getWarehouseFloor())
            .append("stockType", getStockType())
            .append("materialId", getMaterialId())
            .append("totalAmount", getTotalAmount())
            .append("frozenAmount", getFrozenAmount())
            .append("occupyAmount", getOccupyAmount())
            .append("createBy", getCreateBy())
            .append("createDate", getCreateDate())
            .append("updateBy", getUpdateBy())
            .append("updateDate", getUpdateDate())
            .append("activeFlag", getActiveFlag())
            .toString();
    }
}
