package com.prolog.cs.biz.inbound.model.failure;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.bz.core.model.BaseModel;
import com.prolog.framework.core.annotation.AutoKey;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Description
 * @Date 2021-04-02
 */

@ApiModel
@Table(value = "wms_in_exception_log", appendDefaultJdbcType = true, camelToUnderline = true)
public class ExceptionLog extends BaseModel implements Serializable {
	private static final long serialVersionUID = 6314869336285649619L;
	@Id
	@AutoKey(type = AutoKey.TYPE_SNOWFLAKE)
	/** 错误行日志ID(主键雪花id) **/
	@ApiModelProperty(value = "错误行日志ID(主键雪花id)")
	private String exceptionLogId;

	/** 错误行ID **/
	@ApiModelProperty(value = "错误行ID")
	private String exceptionLineId;

	/** 错误单头ID **/
	@ApiModelProperty(value = "错误单头ID")
	private String exceptionHeaderId;

	/** 行ID **/
	@ApiModelProperty(value = "行ID")
	private String rcvLineId;

	/** 头ID **/
	@ApiModelProperty(value = "头ID")
	private String rcvHeaderId;

	/** 来源单头ID(PO/XT/YC) **/
	@ApiModelProperty(value = "来源单头ID(PO/XT/YC)")
	private String srcHeaderId;

	/** 来源单ID **/
	@ApiModelProperty(value = "来源单ID")
	private String srcLineId;

	/** ASN行ID **/
	@ApiModelProperty(value = "ASN行ID")
	private String asnHeaderId;

	/** ASN行ID **/
	@ApiModelProperty(value = "ASN行ID")
	private String asnLineId;

	/** 行号 **/
	@ApiModelProperty(value = "行号")
	private BigDecimal lineNum;

	/** 货主ID **/
	@ApiModelProperty(value = "货主ID")
	private String mtlOwnerId;

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

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

	/** 容器编码 **/
	@ApiModelProperty(value = "容器编码")
	private String containerCode;

	/** 货格编码 **/
	@ApiModelProperty(value = "货格编码")
	private String goodsCaseCode;

	/** 旧批号ID **/
	@ApiModelProperty(value = "旧批号ID")
	private String batchIdOld;

	/** 旧批号编码 **/
	@ApiModelProperty(value = "旧批号编码")
	private String batchNumOld;

	/** 旧生产日期 **/
	@ApiModelProperty(value = "旧生产日期")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date productionDateOld;

	/** 旧有效期至 **/
	@ApiModelProperty(value = "旧有效期至")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date expiredDateOld;

	/** 旧供应商批次号 **/
	@ApiModelProperty(value = "旧供应商批次号")
	private String vendorBatchNumOld;

	/** 旧生产商批号 **/
	@ApiModelProperty(value = "旧生产商批号")
	private String manufacturerLotNumOld;

	/** 新批号 **/
	@ApiModelProperty(value = "新批号")
	private String batchIdNew;

	/** 新批号编码 **/
	@ApiModelProperty(value = "新批号编码")
	private String batchNumNew;

	/** 新生产日期 **/
	@ApiModelProperty(value = "新生产日期")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date productionDateNew;

	/** 新有效期至 **/
	@ApiModelProperty(value = "新有效期至")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date expiredDateNew;

	/** 新供应商批次号 **/
	@ApiModelProperty(value = "新供应商批次号")
	private String vendorBatchNumNew;

	/** 新生产商批号 **/
	@ApiModelProperty(value = "新生产商批号")
	private String manufacturerLotNumNew;

	/** 旧数量 **/
	@ApiModelProperty(value = "旧数量")
	private BigDecimal qtyOld;

	/** 新数量 **/
	@ApiModelProperty(value = "新数量")
	private BigDecimal qtyNew;

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

	/** 包装单位类型(2019/2020)新老包装 **/
	@ApiModelProperty(value = "包装单位类型(2019/2020)新老包装")
	private String uomType;

	/** 包装含量 **/
	@ApiModelProperty(value = "包装含量")
	private BigDecimal conversionRate;

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

	/** 新数量（最小单位） **/
	@ApiModelProperty(value = "新数量（最小单位）")
	private BigDecimal pieceQtyNew;

	/** 执行者（异常处理人） **/
	@ApiModelProperty(value = "执行者（异常处理人）")
	private String executorUser;

	/** 操作时间 **/
	@ApiModelProperty(value = "操作时间")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date executorDate;

	/** 错误发现节点（收货/验收/质检/上架） **/
	@ApiModelProperty(value = "错误发现节点（收货/验收/质检/上架）")
	private String nodeType;

	/** 来源单类型 **/
	@ApiModelProperty(value = "来源单类型")
	private String srcBillType;

	@ApiModelProperty(value = "异常任务id")
	private String nodeTaskId;

	@ApiModelProperty(value = "新的显示生产日期", position = -4)
	private String showProductionDateNew;

	@ApiModelProperty(value = "新的显示有效期至", position = -4)
	private String showExpiredDateNew;

	@ApiModelProperty(value = "旧的显示生产日期", position = -4)
	private String showProductionDateOld;

	@ApiModelProperty(value = "旧的显示有效期至", position = -4)
	private String showExpiredDateOld;

	public String getNodeTaskId() {
		return nodeTaskId;
	}

	public void setNodeTaskId(String nodeTaskId) {
		this.nodeTaskId = nodeTaskId;
	}

	public String getShowProductionDateNew() {
		return showProductionDateNew;
	}

	public void setShowProductionDateNew(String showProductionDateNew) {
		this.showProductionDateNew = showProductionDateNew;
	}

	public String getShowExpiredDateNew() {
		return showExpiredDateNew;
	}

	public void setShowExpiredDateNew(String showExpiredDateNew) {
		this.showExpiredDateNew = showExpiredDateNew;
	}

	public String getShowProductionDateOld() {
		return showProductionDateOld;
	}

	public void setShowProductionDateOld(String showProductionDateOld) {
		this.showProductionDateOld = showProductionDateOld;
	}

	public String getShowExpiredDateOld() {
		return showExpiredDateOld;
	}

	public void setShowExpiredDateOld(String showExpiredDateOld) {
		this.showExpiredDateOld = showExpiredDateOld;
	}

	public String getExceptionLogId() {
		return exceptionLogId;
	}

	public void setExceptionLogId(String exceptionLogId) {
		this.exceptionLogId = exceptionLogId;
	}

	public String getExceptionLineId() {
		return exceptionLineId;
	}

	public void setExceptionLineId(String exceptionLineId) {
		this.exceptionLineId = exceptionLineId;
	}

	public String getExceptionHeaderId() {
		return exceptionHeaderId;
	}

	public void setExceptionHeaderId(String exceptionHeaderId) {
		this.exceptionHeaderId = exceptionHeaderId;
	}

	public String getRcvLineId() {
		return rcvLineId;
	}

	public void setRcvLineId(String rcvLineId) {
		this.rcvLineId = rcvLineId;
	}

	public String getRcvHeaderId() {
		return rcvHeaderId;
	}

	public void setRcvHeaderId(String rcvHeaderId) {
		this.rcvHeaderId = rcvHeaderId;
	}

	public String getSrcHeaderId() {
		return srcHeaderId;
	}

	public void setSrcHeaderId(String srcHeaderId) {
		this.srcHeaderId = srcHeaderId;
	}

	public String getSrcLineId() {
		return srcLineId;
	}

	public void setSrcLineId(String srcLineId) {
		this.srcLineId = srcLineId;
	}

	public String getAsnHeaderId() {
		return asnHeaderId;
	}

	public void setAsnHeaderId(String asnHeaderId) {
		this.asnHeaderId = asnHeaderId;
	}

	public String getAsnLineId() {
		return asnLineId;
	}

	public void setAsnLineId(String asnLineId) {
		this.asnLineId = asnLineId;
	}

	public BigDecimal getLineNum() {
		return lineNum;
	}

	public void setLineNum(BigDecimal lineNum) {
		this.lineNum = lineNum;
	}

	public String getMtlOwnerId() {
		return mtlOwnerId;
	}

	public void setMtlOwnerId(String mtlOwnerId) {
		this.mtlOwnerId = mtlOwnerId;
	}

	public String getWarehouseId() {
		return warehouseId;
	}

	public void setWarehouseId(String warehouseId) {
		this.warehouseId = warehouseId;
	}

	public String getItemId() {
		return itemId;
	}

	public void setItemId(String itemId) {
		this.itemId = itemId;
	}

	public String getContainerCode() {
		return containerCode;
	}

	public void setContainerCode(String containerCode) {
		this.containerCode = containerCode;
	}

	public String getGoodsCaseCode() {
		return goodsCaseCode;
	}

	public void setGoodsCaseCode(String goodsCaseCode) {
		this.goodsCaseCode = goodsCaseCode;
	}

	public String getBatchIdOld() {
		return batchIdOld;
	}

	public void setBatchIdOld(String batchIdOld) {
		this.batchIdOld = batchIdOld;
	}

	public String getBatchNumOld() {
		return batchNumOld;
	}

	public void setBatchNumOld(String batchNumOld) {
		this.batchNumOld = batchNumOld;
	}

	public Date getProductionDateOld() {
		return productionDateOld;
	}

	public void setProductionDateOld(Date productionDateOld) {
		this.productionDateOld = productionDateOld;
	}

	public Date getExpiredDateOld() {
		return expiredDateOld;
	}

	public void setExpiredDateOld(Date expiredDateOld) {
		this.expiredDateOld = expiredDateOld;
	}

	public String getVendorBatchNumOld() {
		return vendorBatchNumOld;
	}

	public void setVendorBatchNumOld(String vendorBatchNumOld) {
		this.vendorBatchNumOld = vendorBatchNumOld;
	}

	public String getManufacturerLotNumOld() {
		return manufacturerLotNumOld;
	}

	public void setManufacturerLotNumOld(String manufacturerLotNumOld) {
		this.manufacturerLotNumOld = manufacturerLotNumOld;
	}

	public String getBatchIdNew() {
		return batchIdNew;
	}

	public void setBatchIdNew(String batchIdNew) {
		this.batchIdNew = batchIdNew;
	}

	public String getBatchNumNew() {
		return batchNumNew;
	}

	public void setBatchNumNew(String batchNumNew) {
		this.batchNumNew = batchNumNew;
	}

	public Date getProductionDateNew() {
		return productionDateNew;
	}

	public void setProductionDateNew(Date productionDateNew) {
		this.productionDateNew = productionDateNew;
	}

	public Date getExpiredDateNew() {
		return expiredDateNew;
	}

	public void setExpiredDateNew(Date expiredDateNew) {
		this.expiredDateNew = expiredDateNew;
	}

	public String getVendorBatchNumNew() {
		return vendorBatchNumNew;
	}

	public void setVendorBatchNumNew(String vendorBatchNumNew) {
		this.vendorBatchNumNew = vendorBatchNumNew;
	}

	public String getManufacturerLotNumNew() {
		return manufacturerLotNumNew;
	}

	public void setManufacturerLotNumNew(String manufacturerLotNumNew) {
		this.manufacturerLotNumNew = manufacturerLotNumNew;
	}

	public BigDecimal getQtyOld() {
		return qtyOld;
	}

	public void setQtyOld(BigDecimal qtyOld) {
		this.qtyOld = qtyOld;
	}

	public BigDecimal getQtyNew() {
		return qtyNew;
	}

	public void setQtyNew(BigDecimal qtyNew) {
		this.qtyNew = qtyNew;
	}

	public String getUom() {
		return uom;
	}

	public void setUom(String uom) {
		this.uom = uom;
	}

	public String getUomType() {
		return uomType;
	}

	public void setUomType(String uomType) {
		this.uomType = uomType;
	}

	public BigDecimal getConversionRate() {
		return conversionRate;
	}

	public void setConversionRate(BigDecimal conversionRate) {
		this.conversionRate = conversionRate;
	}

	public BigDecimal getPieceQtyOld() {
		return pieceQtyOld;
	}

	public void setPieceQtyOld(BigDecimal pieceQtyOld) {
		this.pieceQtyOld = pieceQtyOld;
	}

	public BigDecimal getPieceQtyNew() {
		return pieceQtyNew;
	}

	public void setPieceQtyNew(BigDecimal pieceQtyNew) {
		this.pieceQtyNew = pieceQtyNew;
	}

	public String getExecutorUser() {
		return executorUser;
	}

	public void setExecutorUser(String executorUser) {
		this.executorUser = executorUser;
	}

	public Date getExecutorDate() {
		return executorDate;
	}

	public void setExecutorDate(Date executorDate) {
		this.executorDate = executorDate;
	}

	public String getNodeType() {
		return nodeType;
	}

	public void setNodeType(String nodeType) {
		this.nodeType = nodeType;
	}

	public String getSrcBillType() {
		return srcBillType;
	}

	public void setSrcBillType(String srcBillType) {
		this.srcBillType = srcBillType;
	}

}
