package com.prolog.upcloud.base.wh.operate.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author wujunjie
 * @desc 移库、移位列表信息
 */
@Data
@ApiModel
public class MoveDListVO {

    @ApiModelProperty(value = "移库单编码")
    private String moveHeaderId;

    @ApiModelProperty(value = "移库子单编码")
    private String moveLineId;

    /**
     * 仓库ID
     */
    @ApiModelProperty(value = "仓库ID")
    private String warehouseId;

    @ApiModelProperty(value = "货主id")
    private String cargoOwnerId;

    @ApiModelProperty(value = "货主名称")
    private String cargoOwnerName;

    @ApiModelProperty(value = "自动单号")
    private String autoBillNum;

    @ApiModelProperty(value = "移库单类型")
    private String moveBillType;

    @ApiModelProperty(value = "移库单子类型")
    private String subBillType;

    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    /**
     * 移入建筑物
     */
    @ApiModelProperty(value = "移入建筑物")
    private String moveInBldg;

    /**
     * 移入建筑物
     */
    @ApiModelProperty(value = "移入建筑物名称")
    private String moveInBldgName;

    /**
     * 移出建筑物
     */
    @ApiModelProperty(value = "移出建筑物")
    private String moveOutBldg;

    /**
     * 移出建筑物
     */
    @ApiModelProperty(value = "移出建筑物")
    private String moveOutBldgName;

    /**
     * 手动单号
     */
    @ApiModelProperty(value = "手动单号")
    private String customBillNum;

    /**
     * 移出库位ID
     */
    @ApiModelProperty(value = "移出库位ID")
    private String outLocatorId;

    /**
     * 移出库位ID
     */
    @ApiModelProperty(value = "移出库位名称")
    private String outLocatorName;

    /**
     * 移出库位ID
     */
    @ApiModelProperty(value = "移出库位编号")
    private String outLocatorCode;

    @ApiModelProperty(value = "移出库别")
    private String outWarehouseAreaCategory;

    /**
     * 移出容器ID
     */
    @ApiModelProperty(value = "移出容器ID")
    private String outContainerCode = "N/A";

    /**
     * 移出货格
     */
    @ApiModelProperty(value = "移出货格")
    private String outGoodsCaseCode = "N/A";

    /**
     * 移入库位ID
     */
    @ApiModelProperty(value = "移入库位ID")
    private String inLocatorId;

    /**
     * 移出库位ID
     */
    @ApiModelProperty(value = "移入库位名称")
    private String inLocatorName;

    /**
     * 移入库位ID
     */
    @ApiModelProperty(value = "移入库位编号")
    private String inLocatorCode;

    @ApiModelProperty(value = "移入库别")
    private String inWarehouseAreaCategory;

    @ApiModelProperty(value = "移入库别")
    private String inWarehouseAreaId;
    /**
     * 移入容器ID
     */
    @ApiModelProperty(value = "移入容器ID")
    private String inContainerCode = "N/A";

    /**
     * 移入货格
     */
    @ApiModelProperty(value = "移入货格")
    private String inGoodsCaseCode = "N/A";

    @ApiModelProperty(value = "单据日期")
    private Date moveDate;

    /**
     * 商品ID
     */
    @ApiModelProperty(value = "商品ID")
    private String itemId;

    @ApiModelProperty(value = "商品编码")
    private String itemCode;

    @ApiModelProperty(value = "商品名称")
    private String itemName;

    @ApiModelProperty(value = "生产商ID")
    private String manufacturerId;

    @ApiModelProperty(value = "生产商名称")
    private String manufacturerName;

    @ApiModelProperty(value = "产地")
    private String countryOriginId;

    @ApiModelProperty(value = "商品大类")
    private String itemHealthCategory;

    @ApiModelProperty(value = "上市许可持有人")
    private String itemHealthListedLicensor;

    @ApiModelProperty(value = "生产企业许可证号")
    private String itemHealthProduceLicense;

    @ApiModelProperty(value = "注册证号")
    private String itemHealthRegisterNbr;

    @ApiModelProperty(value = "批准文号")
    private String itemHealthApprovalNbr;

    @ApiModelProperty(value = "备案号")
    private String itemHealthRecordNbr;

    @ApiModelProperty("助记码")
    private String itemAssistantCode;

    @ApiModelProperty("整散标志")
    private Integer isCaseOrPiece;

    @ApiModelProperty("是否监管")
    private Integer itemHealthSuperviseflag;

    @ApiModelProperty("是否贵重商品")
    private Integer itemIsValuable;

    @ApiModelProperty("是否易碎")
    private Integer itemIsFragile;

    @ApiModelProperty("是否无菌")
    private Integer isBacteria;

    @ApiModelProperty("是否委托生产")
    private Integer isDelegate;

    @ApiModelProperty("商品是否代管")
    private Integer isHosted;

    @ApiModelProperty("货主编码")
    private String cargoOwnerCode;

    @ApiModelProperty("箱体积")
    private String volume;

    @ApiModelProperty("箱重量")
    private String weight;

    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String uom;

    /**
     * 批次ID
     */
    @ApiModelProperty(value = "批次ID")
    private String batchId;

    /**
     * 批次号
     */
    @ApiModelProperty(value = "批次号")
    private String batchNum;

    @ApiModelProperty("生产日期")
    private Date batchProductionDate;

    @ApiModelProperty("过期日期")
    private Date batchExpiredDate;

    @ApiModelProperty("保质天数")
    private Long shelfLifeDays;

    /**
     * 转换因子
     */
    @ApiModelProperty(value = "转换因子")
    private BigDecimal conversionRate;

    /**
     * 最大单位（箱单位）含量
     */
    @ApiModelProperty(value = "最大单位（箱单位）含量")
    private BigDecimal caseConversionRate;

    /**
     * 零散数
     */
    @ApiModelProperty(value = "零散数")
    private BigDecimal oddPieceQuantity;

    /**
     * 数量
     */
    @ApiModelProperty(value = "单位数量(整件数)")
    private BigDecimal caseQuantity;

    /**
     * 最小数量
     */
    @ApiModelProperty(value = "最小单位数量")
    private BigDecimal pieceQuantity;

    @ApiModelProperty(value = "备注")
    private String comments;

    /**
     * 移库原因
     */
    @ApiModelProperty(value = "移库原因")
    private String reason;

    /**
     * ERP移库原因
     */
    @ApiModelProperty(value = "ERP移库原因")
    private String erpReason;

    @ApiModelProperty(value = "ERP计划数量")
    private BigDecimal erpPlanQuantity;

    @ApiModelProperty(name = "warehouseWorkerId", value = "库工编码")
    private String warehouseWorkerId;

    @ApiModelProperty(name = "warehouseWorkerId", value = "库工名称")
    private String warehouseWorkerName;

    /**
     * 上架库存状态
     */
    @ApiModelProperty(value = "上架库存状态")
    private String inStockStatus;

    /**
     * 下架库存状态
     */
    @ApiModelProperty(value = "下架库存状态")
    private String outStockStatus;

    // ======= 6.27日新加 by 熊=======================
    /**
     * 商品规格
     */
    @ApiModelProperty(value = "商品规格")
    private String specification;
    /**
     * 显示生产日期
     */
    @ApiModelProperty(value = "显示生产日期")
    private String batchProductionDateShow;
    /**
     * 显示有效期至
     */
    @ApiModelProperty(value = "显示有效期至日期")
    private String batchExpiredDateShow;
    /**
     * 商品批号
     */
    @ApiModelProperty(value = "商品批号")
    private String manufacturerLotNum;
    // ======= 6.27日新加 by 熊=======================

    @ApiModelProperty(value = "移入货位拣货方式")
    private String inPickMode;

    @ApiModelProperty(value = "移出货位拣货方式")
    private String outPickMode;

    @ApiModelProperty(value = "件数量")
    private BigDecimal quantity;

    @ApiModelProperty(value = "行号")
    private Long lineNum;

    @ApiModelProperty(value = "移库状态")
    private String status;

    @ApiModelProperty(value = "来源移库单编码")
    private String billId;

    @ApiModelProperty(value = "来源移库单编号")
    private String billNo;

    @ApiModelProperty(value = "来源移库子单编码")
    private String lineId;

    @ApiModelProperty(value = "不合格原因")
    private String unqualifiedReason;

    @ApiModelProperty(value = "操作员")
    private String creatorName;

    @ApiModelProperty(value = "eis回传标识")
    private String eisFinishFlag;

    @ApiModelProperty(value = "目标货位所在楼层")
    private String targetlocation;

}
