package com.sw.mes.itemclean.clean.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 打签箱待存（待扫码领料）
 * </p>
 *
 * @author liuzemin
 * @since 2022-11-10
 */
@Getter
@Setter
@TableName("material_store_sign_box")
@ApiModel(value = "MaterialStoreSignBox对象", description = "打签箱待存（待扫码领料）")
public class MaterialStoreSignBox implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty("重量")
    private BigDecimal weight;

    @ApiModelProperty("成箱箱号")
    private String materialBoxNo;

    @ApiModelProperty("生产批次号")
    private String productBatchNo;

    @ApiModelProperty("物料编号")
    private String materialCode;

    @ApiModelProperty("物料名称")
    private String materialName;

    @ApiModelProperty("物料等级")
    private String materialLevel;

    @ApiModelProperty("物料型号")
    private String materialModel;

    @ApiModelProperty("物料档位")
    private String materialGear;

    @ApiModelProperty("物料类型 1原生多晶2回收料3落地料4返工料5清洗料6破碎料")
    /**
     * {@link com.sw.mes.core.enums.ItemCleanEnums.MaterialType}
     */
    private Integer materialType;

    @ApiModelProperty("物料来源 1：清洗 2：循环料破碎 3：多晶破碎 4：分选")
    private Integer materialResource;

    @ApiModelProperty("是否被领料 1是 0否")
    /**
     * (被领料的才能进入加工工序)
     */
    private Integer pickingStatus;

    @ApiModelProperty("创建人")
    private String createUser;

    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    @ApiModelProperty("更新人")
    private String updateUser;

    @ApiModelProperty("更新时间")
    private LocalDateTime updateTime;

    @ApiModelProperty("逻辑删除标记")
    @TableLogic
    private Integer delFlag;

    @ApiModelProperty("是否成箱 0否 1是")
    private Integer isPack;

    @ApiModelProperty("是否空箱 0否 1是")
    private Integer isEmptyBox;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("ERP工单")
    private String aufnr;

    @ApiModelProperty(value = "卡板箱号")
    private String boxNo;

    /**
     * erp库位
     */
    @ApiModelProperty("erp库位")
    private String erpWarehouseCode;


    @ApiModelProperty("已使用重量")
    private BigDecimal usedWeight;

    @ApiModelProperty("剩余重量")
    private BigDecimal unusedWeight;

    @ApiModelProperty("审核状态 0 待审核 1 已接收 2已拒收")
    private Integer status;

    @ApiModelProperty("使用状态 0未使用 1已使用 2合批 3分选 4已清空")
    private Integer useStatus;

    @ApiModelProperty("合批父id")
    Integer parentId;

    @ApiModelProperty("合批批次号")
    private String blendingProductBatchNo;

    @ApiModelProperty("合批人")
    private String blendingUser;

    @ApiModelProperty("合批时间")
    private LocalDateTime blendingTime;

    @ApiModelProperty("审核人")
    private String examineUser;

    @ApiModelProperty("审核时间")
    private LocalDateTime examineTime;

    @ApiModelProperty("发起人")
    private String initiateUser;

    @ApiModelProperty("发起时间")
    private LocalDateTime initiateTime;

    @ApiModelProperty("去向")
    private String hasGone;

    @ApiModelProperty(value = "物料主数据供应商")
    private String supplier;

    @ApiModelProperty(value = "物料主数据供应商Code")
    private String supplierCode;

    //每日生产批次号(供给SAP报工使用)
    @ApiModelProperty(value = "余料每日生产批次号")
    private String dateProduceBatchNo;

    @ApiModelProperty("实际重量(合批前)")
    private BigDecimal actualWeight;

    @ApiModelProperty("分选消耗工单")
    private String fxAufnr;
}
