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

import com.prolog.framework.bz.core.model.BaseModel;
import com.prolog.framework.core.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * WMS_MOVE_D
 *
 * @author wujunjie
 */
@EqualsAndHashCode(callSuper = true)
@Table("WMS_MOVE_D")
@Data
public class WmsMoveD extends BaseModel implements Serializable {
	/**
	 * 行ID
	 */
	@Id
	@AutoKey(type = AutoKey.TYPE_SNOWFLAKE)
	@ApiModelProperty(value = "主键ID")
	@Column(value = "MOVE_LINE_ID")
	private String moveLineId;

	/**
	 * 头ID
	 */
	@ApiModelProperty(value = "头ID")
	@Column(value = "MOVE_HEADER_ID")
	private String moveHeaderId;

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

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

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

	/**
	 * 移入容器ID
	 */
	@ApiModelProperty(value = "移入容器ID")
	@Column(value = "IN_CONTAINER_CODE")
	private String inContainerCode;

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

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

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

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

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

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

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

	/**
	 * 数量
	 */
	@ApiModelProperty(value = "数量")
	@Column(value = "QUANTITY")
	private BigDecimal quantity;

	/**
	 * 单品数量
	 */
	@ApiModelProperty(value = "单品数量")
	@Column(value = "PIECE_QUANTITY")
	private BigDecimal pieceQuantity;

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

	/**
	 * 库工ID
	 */
	@ApiModelProperty(value = "库工ID")
	@Column(value = "WAREHOUSE_WORKER_ID")
	private String warehouseWorkerId;

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

	/**
	 * 行号
	 */
	@ApiModelProperty(value = "行号")
	@Column(value = "LINE_NUM")
	private Long lineNum;

	/**
	 * 移库状态
	 */
	@ApiModelProperty(value = "移库状态")
	@Column(value = "STATUS")
	private String status;

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

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

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

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

	@ApiModelProperty(value = "ERP计划数量")
	@Column(value = "ERP_PLAN_QUANTITY")
	private Integer erpPlanQuantity;

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

	@ApiModelProperty(value = "批号")
	@Column(value = "MANUFACTURER_LOT_NUM")
	private String manufacturerLotNum;

	@ApiModelProperty(value = "生产日期")
	@Column(value = "BATCH_PRODUCTION_DATE")
	private Date batchProductionDate;

	@ApiModelProperty(value = "有效期至")
	@Column(value = "BATCH_EXPIRED_DATE")
	private Date batchExpiredDate;

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

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

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

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

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

	@ApiModelProperty(value = "展示生产日期")
	@Column(value = "BATCH_PRODUCTION_DATE_SHOW")
	private String batchProductionDateShow;

	@ApiModelProperty(value = "展示有效期至")
	@Column(value = "BATCH_EXPIRED_DATE_SHOW")
	private String batchExpiredDateShow;

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

	@ApiModelProperty(value = "eis回传标识")
	@Column(value = "EIS_FINISH_FLAG")
	private String eisFinsihFlag;

//	@ApiModelProperty(value = "额外备注(移入拣货方式@移出拣货方式)结合")
//	@Column(value = "AUDIT_COMMENTS")
//	private String auditComments;

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

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

	@ApiModelProperty("上架库存子状态")
	@Ignore
	private String inStockSubStatus;


	private static final long serialVersionUID = -1909883294343567152L;
}
