package com.ruoyi.app.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.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 【请填写功能名称】对象 app_stock
 *
 * @author ruoyi
 * @date 2025-01-15
 */
public class AppStock extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 物料编号 */
    private String stockId;

    private String listId;

    public String getListId() {
        return listId;
    }

    public void setListId(String listId) {
        this.listId = listId;
    }

    /** 载具号 */
    @Excel(name = "载具号")
    private String vehicleId;

    /** 库位号 */
    @Excel(name = "库位号")
    private String locationId;

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

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

    /** 单位 */
    @Excel(name = "单位")
    private String goodsUnit;

    /** 供应商id */
    @Excel(name = "供应商id")
    private String providerId;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String providerName;

    /** 剩余数量 */
    @Excel(name = "剩余数量")
    private BigDecimal remainNum;

    /** 入库数量 */
    @Excel(name = "库存数量")
    private BigDecimal originNum;

    /** 批次号 */
    @Excel(name = "批次号")
    private String batchNo;

    /** 库龄 */
    @Excel(name = "库龄")
    private Long invAge;

    /** 物料状态 */
    @Excel(name = "物料状态")
    private Integer goodsStatus;

    /** 库存状态 */
    @Excel(name = "库存状态")
    // 0: 正常
    // 1: 冻结
    private Integer stockStatus;

    /** 入库用户 */
    @Excel(name = "入库用户")
    private String createUser;

    /** 最近更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最近更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUpdateTime;

    /** 最近更新用户 */
    @Excel(name = "最近更新用户")
    private String lastUpdateUser;
    /** 上架时间 */
    @Excel(name = "上架时间")
    private String wareDate;

    @Excel(name = "库龄")
    private Integer goodsAge;
    /** 入库类型（采购入库、退货入库、调货入库、盲收、其它） */
    @Excel(name = "入库类型", readConverterExp = "采=购入库、退货入库、调货入库、盲收、其它")
    private String storageMode;

    //仓库编号
    @Excel(name = "仓库编号")
    private String storageId;
    @Excel(name = "库区编号")
    private String areaId;
    //物料类别
    @Excel(name = "物料类别")
    private String goodsTypeId;
    @Excel(name = "已占用数量")
    private BigDecimal occupyNum;
//    @Excel(name = "出库数量")
    private BigDecimal packingNum;
    @Excel(name = "生产日期")
    private String productionDate;

    public String getWareDate() {
        return wareDate;
    }

    public void setWareDate(String wareDate) {
        this.wareDate = wareDate;
    }



    public Integer getGoodsAge() {
        return goodsAge;
    }

    public void setGoodsAge(Integer goodsAge) {
        this.goodsAge = goodsAge;
    }

    public String getStorageMode() {
        return storageMode;
    }

    public void setStorageMode(String storageMode) {
        this.storageMode = storageMode;
    }

    public String getStorageId() {
        return storageId;
    }

    public void setStorageId(String storageId) {
        this.storageId = storageId;
    }

    public String getAreaId() {
        return areaId;
    }

    public void setAreaId(String areaId) {
        this.areaId = areaId;
    }

    public String getGoodsTypeId() {
        return goodsTypeId;
    }

    public void setGoodsTypeId(String goodsTypeId) {
        this.goodsTypeId = goodsTypeId;
    }

    public BigDecimal getOccupyNum() {
        return occupyNum;
    }

    public void setOccupyNum(BigDecimal occupyNum) {
        this.occupyNum = occupyNum;
    }

    public BigDecimal getPackingNum() {
        return packingNum;
    }

    public void setPackingNum(BigDecimal packingNum) {
        this.packingNum = packingNum;
    }

    public String getProductionDate() {
        return productionDate;
    }

    public void setProductionDate(String productionDate) {
        this.productionDate = productionDate;
    }

    public void setStockId(String stockId)
    {
        this.stockId = stockId;
    }

    public String getStockId()
    {
        return stockId;
    }
    public void setVehicleId(String vehicleId)
    {
        this.vehicleId = vehicleId;
    }

    public String getVehicleId()
    {
        return vehicleId;
    }
    public void setLocationId(String locationId)
    {
        this.locationId = locationId;
    }

    public String getLocationId()
    {
        return locationId;
    }
    public void setGoodsId(String goodsId)
    {
        this.goodsId = goodsId;
    }

    public String getGoodsId()
    {
        return goodsId;
    }
    public void setGoodsName(String goodsName)
    {
        this.goodsName = goodsName;
    }

    public String getGoodsName()
    {
        return goodsName;
    }
    public void setGoodsUnit(String goodsUnit)
    {
        this.goodsUnit = goodsUnit;
    }

    public String getGoodsUnit()
    {
        return goodsUnit;
    }
    public void setProviderId(String providerId)
    {
        this.providerId = providerId;
    }

    public String getProviderId()
    {
        return providerId;
    }
    public void setProviderName(String providerName)
    {
        this.providerName = providerName;
    }

    public String getProviderName()
    {
        return providerName;
    }
    public void setRemainNum(BigDecimal remainNum)
    {
        this.remainNum = remainNum;
    }

    public BigDecimal getRemainNum()
    {
        return remainNum;
    }
    public void setOriginNum(BigDecimal originNum)
    {
        this.originNum = originNum;
    }

    public BigDecimal getOriginNum()
    {
        return originNum;
    }
    public void setBatchNo(String batchNo)
    {
        this.batchNo = batchNo;
    }

    public String getBatchNo()
    {
        return batchNo;
    }
    public void setInvAge(Long invAge)
    {
        this.invAge = invAge;
    }

    public Long getInvAge()
    {
        return invAge;
    }

    public Integer getGoodsStatus() {
        return goodsStatus;
    }

    public void setGoodsStatus(Integer goodsStatus) {
        this.goodsStatus = goodsStatus;
    }

    public Integer getStockStatus() {
        return stockStatus;
    }

    public void setStockStatus(Integer stockStatus) {
        this.stockStatus = stockStatus;
    }

    public void setCreateUser(String createUser)
    {
        this.createUser = createUser;
    }

    public String getCreateUser()
    {
        return createUser;
    }
    public void setLastUpdateTime(Date lastUpdateTime)
    {
        this.lastUpdateTime = lastUpdateTime;
    }

    public Date getLastUpdateTime()
    {
        return lastUpdateTime;
    }
    public void setLastUpdateUser(String lastUpdateUser)
    {
        this.lastUpdateUser = lastUpdateUser;
    }

    public String getLastUpdateUser()
    {
        return lastUpdateUser;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("stockId", getStockId())
                .append("vehicleId", getVehicleId())
                .append("locationId", getLocationId())
                .append("goodsId", getGoodsId())
                .append("goodsName", getGoodsName())
                .append("goodsUnit", getGoodsUnit())
                .append("providerId", getProviderId())
                .append("providerName", getProviderName())
                .append("remainNum", getRemainNum())
                .append("originNum", getOriginNum())
                .append("batchNo", getBatchNo())
                .append("invAge", getInvAge())
                .append("goodsStatus", getGoodsStatus())
                .append("stockStatus", getStockStatus())
                .append("createTime", getCreateTime())
                .append("createUser", getCreateUser())
                .append("lastUpdateTime", getLastUpdateTime())
                .append("lastUpdateUser", getLastUpdateUser())
                .append("remark", getRemark())
                .toString();
    }
    private Integer ckType;

    public Integer getCkType() {
        return ckType;
    }

    public void setCkType(Integer ckType) {
        this.ckType = ckType;
    }
}
