package com.hw.mes.api.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;

/**
 * 条码信息对象 mes_base_barcode_info
 *
 * @author xs
 * @date 2023-12-21
 */
public class MesBaseBarcodeInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键标识 */
    private Long barcodeId;

    /** 打印时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "打印时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date printTime;

    /** 打印人 */
    @Excel(name = "打印人")
    private String printPerson;

    /** 批次标识(0否，1是) */
    @Excel(name = "批次标识(0否，1是)")
    private String batchFlag;

    /** 条码内容;如果是按单个物料贴，则一个物料一个条码，如果是按批次贴，则条码跟批次代码相同 */
    @Excel(name = "条码内容;如果是按单个物料贴，则一个物料一个条码，如果是按批次贴，则条码跟批次代码相同")
    private String barcodeInfo;

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

    /** RFID代码 */
    @Excel(name = "RFID代码")
    private String rfidCode;

    /** 物料ID，关联mes_base_material_info的material_id */
    @Excel(name = "物料ID，关联mes_base_material_info的material_id")
    private Long materialId;

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

    /** 重量 */
    @Excel(name = "重量")
    private BigDecimal weight;

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

    /** 打印机台名称，打印时获取 */
    @Excel(name = "打印机台名称，打印时获取")
    private String machineName;

    /** 采购订单号 */
    @Excel(name = "采购订单号")
    private String poNo;

    /** 生产日期;打印时根据领料单选择输入 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生产日期;打印时根据领料单选择输入", width = 30, dateFormat = "yyyy-MM-dd")
    private Date productionDate;

    /** 接受日期;打印时的系统日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "接受日期;打印时的系统日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date acceptedDate;

    /** 日限;根据日限计算出过期日期（最晚出库日期） */
    @Excel(name = "日限;根据日限计算出过期日期", readConverterExp = "最=晚出库日期")
    private Long limitingDate;

    /** 最晚出库日期;可以直接输入，也可以根据日限计算 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最晚出库日期;可以直接输入，也可以根据日限计算", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastOutstockDate;

    /** 流水号 */
    @Excel(name = "流水号")
    private String serialNumber;

    /** 是否启用 */
    @Excel(name = "是否启用")
    private Long activeFlag;

    public void setBarcodeId(Long barcodeId)
    {
        this.barcodeId = barcodeId;
    }

    public Long getBarcodeId()
    {
        return barcodeId;
    }
    public void setPrintTime(Date printTime)
    {
        this.printTime = printTime;
    }

    public Date getPrintTime()
    {
        return printTime;
    }
    public void setPrintPerson(String printPerson)
    {
        this.printPerson = printPerson;
    }

    public String getPrintPerson()
    {
        return printPerson;
    }
    public void setBatchFlag(String batchFlag)
    {
        this.batchFlag = batchFlag;
    }

    public String getBatchFlag()
    {
        return batchFlag;
    }
    public void setBarcodeInfo(String barcodeInfo)
    {
        this.barcodeInfo = barcodeInfo;
    }

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

    public String getBatchCode()
    {
        return batchCode;
    }
    public void setRfidCode(String rfidCode)
    {
        this.rfidCode = rfidCode;
    }

    public String getRfidCode()
    {
        return rfidCode;
    }
    public void setMaterialId(Long materialId)
    {
        this.materialId = materialId;
    }

    public Long getMaterialId()
    {
        return materialId;
    }
    public void setManufacturerId(Long manufacturerId)
    {
        this.manufacturerId = manufacturerId;
    }

    public Long getManufacturerId()
    {
        return manufacturerId;
    }
    public void setWeight(BigDecimal weight)
    {
        this.weight = weight;
    }

    public BigDecimal getWeight()
    {
        return weight;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }
    public void setMachineName(String machineName)
    {
        this.machineName = machineName;
    }

    public String getMachineName()
    {
        return machineName;
    }
    public void setPoNo(String poNo)
    {
        this.poNo = poNo;
    }

    public String getPoNo()
    {
        return poNo;
    }
    public void setProductionDate(Date productionDate)
    {
        this.productionDate = productionDate;
    }

    public Date getProductionDate()
    {
        return productionDate;
    }
    public void setAcceptedDate(Date acceptedDate)
    {
        this.acceptedDate = acceptedDate;
    }

    public Date getAcceptedDate()
    {
        return acceptedDate;
    }
    public void setLimitingDate(Long limitingDate)
    {
        this.limitingDate = limitingDate;
    }

    public Long getLimitingDate()
    {
        return limitingDate;
    }
    public void setLastOutstockDate(Date lastOutstockDate)
    {
        this.lastOutstockDate = lastOutstockDate;
    }

    public Date getLastOutstockDate()
    {
        return lastOutstockDate;
    }
    public void setSerialNumber(String serialNumber)
    {
        this.serialNumber = serialNumber;
    }

    public String getSerialNumber()
    {
        return serialNumber;
    }
    public void setActiveFlag(Long activeFlag)
    {
        this.activeFlag = activeFlag;
    }

    public Long getActiveFlag()
    {
        return activeFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("barcodeId", getBarcodeId())
            .append("printTime", getPrintTime())
            .append("printPerson", getPrintPerson())
            .append("batchFlag", getBatchFlag())
            .append("barcodeInfo", getBarcodeInfo())
            .append("batchCode", getBatchCode())
            .append("rfidCode", getRfidCode())
            .append("materialId", getMaterialId())
            .append("manufacturerId", getManufacturerId())
            .append("weight", getWeight())
            .append("amount", getAmount())
            .append("machineName", getMachineName())
            .append("poNo", getPoNo())
            .append("productionDate", getProductionDate())
            .append("acceptedDate", getAcceptedDate())
            .append("limitingDate", getLimitingDate())
            .append("lastOutstockDate", getLastOutstockDate())
            .append("serialNumber", getSerialNumber())
            .append("remark", getRemark())
            .append("activeFlag", getActiveFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
