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

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.Ignore;
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_task_instock_detail", appendDefaultJdbcType = true, camelToUnderline = true)
public class TaskInstockDetail extends BaseModel implements Serializable {
	private static final long serialVersionUID = 1325128969799123384L;
	@Id
	@AutoKey(type = AutoKey.TYPE_SNOWFLAKE)
	/** ID(主键雪花id) **/
	@ApiModelProperty(value = "ID(主键雪花id)")
	private String taskInboundId;

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

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

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

	/** 来源单头ID **/
	@ApiModelProperty(value = "来源单头ID")
	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;

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

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

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

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

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

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

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

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

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

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

	/** 是否允许作业标识 **/
	@ApiModelProperty(value = "是否允许作业标识")
	private String activeFlag;

	/** 余量 **/
	@ApiModelProperty(value = "余量")
	private BigDecimal remainQty;

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

//	QUALIFIED("1", "合格"),
//    /**
//     * 不合格
//     */
//    UNQUALIFIED("2", "不合格"),
//    /**
//     * 待检
//     */
//    WAITING_INSPECTION("3", "待检"),
//    /**
//     * 退货
//     */
//    REFUND("4", "退货");
	/** 结论（合格/不合格/隔离） **/
	@ApiModelProperty(value = "结论（0合格/1不合格/2待检/3退货）")
	private String result;

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

	/** 任务类型（收货/移库/补货） **/
	@ApiModelProperty(value = "任务类型（收货/移库/补货）")
	private String taskType;

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

	/** 数据生成方式（系统自动/人工）部分类型的单据自动生成质检单 **/
	@ApiModelProperty(value = "数据生成方式（系统自动/人工）部分类型的单据自动生成质检单")
	private String dataSrcType;

	/** 执行者 **/
	@ApiModelProperty(value = "执行者")
	private String executor;

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

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

	/** 状态 **/
	@ApiModelProperty(value = "状态 1-初始状态 0-已生成上架单 ")
	private String status;

	/** 状态 **/
	@ApiModelProperty(value = "eis推送状态任务状态 0-初始状态  1-已成功发送入库任务 2-eis上架任务已回告")
	private String eisPushStatus ;

	/** 预留字段 **/
	@ApiModelProperty(value = "预留字段")
	private String segment1;

	/** 预留字段 **/
	@ApiModelProperty(value = "预留字段")
	private String segment2;

	/** 预留字段 **/
	@ApiModelProperty(value = "预留字段")
	private String attribute1;

	/** 预留字段 **/
	@ApiModelProperty(value = "预留字段(推荐货位拣货方式)")
	private String attribute2;

	@ApiModelProperty(value = "拆分人")
	private String spilterName;

	@ApiModelProperty(value = "是否拆分(0否1是)")
	private Integer isSpilt;

	@ApiModelProperty(value = "数据版本号", hidden = true)
	private Integer dataVersion;

	@ApiModelProperty(value = "数据是否锁定(0否1是拆分/异常处理并发)", hidden = true)
	private Integer isLock;

	@ApiModelProperty(value = "库位Id")
	private String whLocatorId;
	@ApiModelProperty(value = "库位编码")
	private String whLocatorCode;
	@ApiModelProperty(value = "库位名称")
	private String whLocatorName;
	@ApiModelProperty(value = "库别编码")
	private String whAreaCategoryCode;
	@ApiModelProperty(value = "库别id")
	private String whAreaCategoryId;

	@ApiModelProperty(value = "库别名称")
	private String whAreaCategoryName;

	@ApiModelProperty(value = "建筑物编码")
	private String bldgCode;
	@ApiModelProperty(value = "库区编码")
	private String whAreaCode;

	@ApiModelProperty(value = "任务索取者")
	private String assignUid;

	@ApiModelProperty(value = "批次生产日期(列表展示用)", position = 9)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@Ignore
	private Date batchProductionDate;

	@ApiModelProperty(value = "批次有效期(列表展示用)", position = 9)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@Ignore
	private Date batchExpiredDate;

	@ApiModelProperty(value = "商品分类code名(展示用)", position = 9)
	@Ignore
	private String categoryId;

	@ApiModelProperty(value = "仓库编码", position = 9)
	@Ignore
	private String warehouseCode;

	public String getWarehouseCode() {
		return warehouseCode;
	}

	public void setWarehouseCode(String warehouseCode) {
		this.warehouseCode = warehouseCode;
	}

	// -------------------库存服务所需字段--------------------------------
	// 供应商id
	@Ignore
	@ApiModelProperty(value = "供应商id(隐藏字段)", position = 9)
	private String vendorId;
	// 组织id
	@Ignore
	@ApiModelProperty(value = "组织id(隐藏字段)", position = 9)
	private String orgId;
	// erp
	@Ignore
	@ApiModelProperty(value = "erp批号(隐藏字段)", position = 9)
	private String erpBatchNum;
	// 产地
	@Ignore
	@ApiModelProperty(value = "商品产地(隐藏字段)", position = 9)
	private String productionPlace;
	// 单品含税额
	@Ignore
	@ApiModelProperty(value = "单品含税进价(隐藏字段)", position = 9)
	private BigDecimal piecePriceTi;
	// 单品不含税额
	@Ignore
	@ApiModelProperty(value = "单品不含税进价(隐藏字段)", position = 9)
	private BigDecimal piecePriceTe;
	// 税率
	@Ignore
	@ApiModelProperty(value = "税率(隐藏字段)", position = 9)
	private BigDecimal taxRate;

	@ApiModelProperty(value = "(新)库区编号(逗号分隔列表)", position = -1)
	@Ignore
	private String warehouseAreaCodes;
	@ApiModelProperty(value = "(新)商品整散分离标识(0整散合一/1整散分开)", position = -1)
	@Ignore
	private String itemIsPieceOrCase;
	@ApiModelProperty(value = "(新)推荐库别编号(逗号分隔列表)", position = -1)
	@Ignore
	private String warehouseAreaCategorys;
	@ApiModelProperty(value = "(新)收货类型", position = -1)
	@Ignore
	private String rcvType;

	@ApiModelProperty(value = "(新)质检行id", position = -1)
	private String rqcLineId;

	@ApiModelProperty(value = "(新)质检单头id", position = -11)
	private String rqcHeaderId;

	@ApiModelProperty(value = "(新)选择的建筑物id(展示字段)", position = -3)
	@Ignore
	private String bldgId;

	// ===============5.26新加字段=========================
	@ApiModelProperty(value = "(新)库存状态", position = -1)
	private String inventoryStatus;

	@ApiModelProperty(value = "上架标签")
	private String instockLabel;

	// ===========6.2号新加字段=====================================================
	@ApiModelProperty(value = "(新)是否打印上架标签(0否1是)", position = -1109)
	@Ignore
	private Integer isInstockPrint;

	@ApiModelProperty(value = "(新)货位楼层(冗余)", position = -11)
	private Integer locatorFloorNum;

	// 来源行id
	@ApiModelProperty(value = "来源行id(一般为质检行)", position = -5)
	private String refLineId;
	// 来源类型
	@ApiModelProperty(value = "来源类型(0收货1质检2复检)", position = -5)
	private Integer refType;
	@ApiModelProperty(value = "来源头id(一般为质检头)", position = -5)
	private String refBillId;
	@ApiModelProperty(value = "来源头编码(一般为质检头)", position = -5)
	private String refBillNo;

	@Ignore
	@ApiModelProperty(value = "(新)关联的代管货位id", position = -2017)
	private String hostLocatorId;
	
	@ApiModelProperty(value = "二级库存(id&code)", position = -2018)
	private String secondStatus;

	@Ignore
	@ApiModelProperty(value = "是否能入AGVK", position = -2018)
	private String isAgv;
	
	public String getSecondStatus() {
		return secondStatus;
	}

	public void setSecondStatus(String secondStatus) {
		this.secondStatus = secondStatus;
	}

	public String getHostLocatorId() {
		return hostLocatorId;
	}

	public void setHostLocatorId(String hostLocatorId) {
		this.hostLocatorId = hostLocatorId;
	}

	public String getRefLineId() {
		return refLineId;
	}

	public void setRefLineId(String refLineId) {
		this.refLineId = refLineId;
	}

	public Integer getRefType() {
		return refType;
	}

	public void setRefType(Integer refType) {
		this.refType = refType;
	}

	public String getRefBillId() {
		return refBillId;
	}

	public void setRefBillId(String refBillId) {
		this.refBillId = refBillId;
	}

	public String getRefBillNo() {
		return refBillNo;
	}

	public void setRefBillNo(String refBillNo) {
		this.refBillNo = refBillNo;
	}

	public Integer getLocatorFloorNum() {
		return locatorFloorNum;
	}

	public void setLocatorFloorNum(Integer locatorFloorNum) {
		this.locatorFloorNum = locatorFloorNum;
	}

	public String getRqcHeaderId() {
		return rqcHeaderId;
	}

	public void setRqcHeaderId(String rqcHeaderId) {
		this.rqcHeaderId = rqcHeaderId;
	}

	public Integer getIsInstockPrint() {
		return isInstockPrint;
	}

	public void setIsInstockPrint(Integer isInstockPrint) {
		this.isInstockPrint = isInstockPrint;
	}

	public String getInstockLabel() {
		return instockLabel;
	}

	public void setInstockLabel(String instockLabel) {
		this.instockLabel = instockLabel;
	}

	public String getInventoryStatus() {
		return inventoryStatus;
	}

	public void setInventoryStatus(String inventoryStatus) {
		this.inventoryStatus = inventoryStatus;
	}

	public String getBldgId() {
		return bldgId;
	}

	public void setBldgId(String bldgId) {
		this.bldgId = bldgId;
	}

	public String getRqcLineId() {
		return rqcLineId;
	}

	public void setRqcLineId(String rqcLineId) {
		this.rqcLineId = rqcLineId;
	}

	public String getWarehouseAreaCodes() {
		return warehouseAreaCodes;
	}

	public void setWarehouseAreaCodes(String warehouseAreaCodes) {
		this.warehouseAreaCodes = warehouseAreaCodes;
	}

	public String getItemIsPieceOrCase() {
		return itemIsPieceOrCase;
	}

	public void setItemIsPieceOrCase(String itemIsPieceOrCase) {
		this.itemIsPieceOrCase = itemIsPieceOrCase;
	}

	public String getWhAreaCategoryId() {
		return whAreaCategoryId;
	}

	public void setWhAreaCategoryId(String whAreaCategoryId) {
		this.whAreaCategoryId = whAreaCategoryId;
	}

	public String getWarehouseAreaCategorys() {
		return warehouseAreaCategorys;
	}

	public void setWarehouseAreaCategorys(String warehouseAreaCategorys) {
		this.warehouseAreaCategorys = warehouseAreaCategorys;
	}

	public String getRcvType() {
		return rcvType;
	}

	public void setRcvType(String rcvType) {
		this.rcvType = rcvType;
	}

	public Date getBatchProductionDate() {
		return batchProductionDate;
	}

	public void setBatchProductionDate(Date batchProductionDate) {
		this.batchProductionDate = batchProductionDate;
	}

	public Date getBatchExpiredDate() {
		return batchExpiredDate;
	}

	public void setBatchExpiredDate(Date batchExpiredDate) {
		this.batchExpiredDate = batchExpiredDate;
	}

	public String getCategoryId() {
		return categoryId;
	}

	public void setCategoryId(String categoryId) {
		this.categoryId = categoryId;
	}

	public String getVendorId() {
		return vendorId;
	}

	public void setVendorId(String vendorId) {
		this.vendorId = vendorId;
	}

	public String getOrgId() {
		return orgId;
	}

	public void setOrgId(String orgId) {
		this.orgId = orgId;
	}

	public String getErpBatchNum() {
		return erpBatchNum;
	}

	public void setErpBatchNum(String erpBatchNum) {
		this.erpBatchNum = erpBatchNum;
	}

	public String getProductionPlace() {
		return productionPlace;
	}

	public void setProductionPlace(String productionPlace) {
		this.productionPlace = productionPlace;
	}

	public BigDecimal getPiecePriceTi() {
		return piecePriceTi;
	}

	public void setPiecePriceTi(BigDecimal piecePriceTi) {
		this.piecePriceTi = piecePriceTi;
	}

	public BigDecimal getPiecePriceTe() {
		return piecePriceTe;
	}

	public void setPiecePriceTe(BigDecimal piecePriceTe) {
		this.piecePriceTe = piecePriceTe;
	}

	public BigDecimal getTaxRate() {
		return taxRate;
	}

	public void setTaxRate(BigDecimal taxRate) {
		this.taxRate = taxRate;
	}

	public String getBldgCode() {
		return bldgCode;
	}

	public void setBldgCode(String bldgCode) {
		this.bldgCode = bldgCode;
	}

	public String getWhAreaCode() {
		return whAreaCode;
	}

	public void setWhAreaCode(String whAreaCode) {
		this.whAreaCode = whAreaCode;
	}

	public String getTaskInboundId() {
		return taskInboundId;
	}

	public void setTaskInboundId(String taskInboundId) {
		this.taskInboundId = taskInboundId;
	}

	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 getSrcBillType() {
		return srcBillType;
	}

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

	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 String getRcvHeaderId() {
		return rcvHeaderId;
	}

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

	public String getRcvLineId() {
		return rcvLineId;
	}

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

	public String getItemId() {
		return itemId;
	}

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

	public BigDecimal getQty() {
		return qty;
	}

	public void setQty(BigDecimal qty) {
		this.qty = qty;
	}

	public String getUom() {
		return uom;
	}

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

	public BigDecimal getConversionRate() {
		return conversionRate;
	}

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

	public BigDecimal getPieceQty() {
		return pieceQty;
	}

	public void setPieceQty(BigDecimal pieceQty) {
		this.pieceQty = pieceQty;
	}

	public String getBatchId() {
		return batchId;
	}

	public void setBatchId(String batchId) {
		this.batchId = batchId;
	}

	public String getBatchNum() {
		return batchNum;
	}

	public void setBatchNum(String batchNum) {
		this.batchNum = batchNum;
	}

	public String getVendorBatchNum() {
		return vendorBatchNum;
	}

	public void setVendorBatchNum(String vendorBatchNum) {
		this.vendorBatchNum = vendorBatchNum;
	}

	public String getActiveFlag() {
		return activeFlag;
	}

	public void setActiveFlag(String activeFlag) {
		this.activeFlag = activeFlag;
	}

	public BigDecimal getRemainQty() {
		return remainQty;
	}

	public void setRemainQty(BigDecimal remainQty) {
		this.remainQty = remainQty;
	}

	public String getComments() {
		return comments;
	}

	public void setComments(String comments) {
		this.comments = comments;
	}

	public String getResult() {
		return result;
	}

	public void setResult(String result) {
		this.result = result;
	}

	public String getReason() {
		return reason;
	}

	public void setReason(String reason) {
		this.reason = reason;
	}

	public String getTaskType() {
		return taskType;
	}

	public void setTaskType(String taskType) {
		this.taskType = taskType;
	}

	public String getManufacturerLotNum() {
		return manufacturerLotNum;
	}

	public void setManufacturerLotNum(String manufacturerLotNum) {
		this.manufacturerLotNum = manufacturerLotNum;
	}

	public String getDataSrcType() {
		return dataSrcType;
	}

	public void setDataSrcType(String dataSrcType) {
		this.dataSrcType = dataSrcType;
	}

	public String getExecutor() {
		return executor;
	}

	public void setExecutor(String executor) {
		this.executor = executor;
	}

	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 getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getSegment1() {
		return segment1;
	}

	public void setSegment1(String segment1) {
		this.segment1 = segment1;
	}

	public String getSegment2() {
		return segment2;
	}

	public void setSegment2(String segment2) {
		this.segment2 = segment2;
	}

	public String getAttribute1() {
		return attribute1;
	}

	public void setAttribute1(String attribute1) {
		this.attribute1 = attribute1;
	}

	public String getAttribute2() {
		return attribute2;
	}

	public void setAttribute2(String attribute2) {
		this.attribute2 = attribute2;
	}

	public String getSpilterName() {
		return spilterName;
	}

	public void setSpilterName(String spilterName) {
		this.spilterName = spilterName;
	}

	public Integer getIsSpilt() {
		return isSpilt;
	}

	public void setIsSpilt(Integer isSpilt) {
		this.isSpilt = isSpilt;
	}

	public Integer getDataVersion() {
		return dataVersion;
	}

	public void setDataVersion(Integer dataVersion) {
		this.dataVersion = dataVersion;
	}

	public Integer getIsLock() {
		return isLock;
	}

	public void setIsLock(Integer isLock) {
		this.isLock = isLock;
	}

	public String getWhLocatorId() {
		return whLocatorId;
	}

	public void setWhLocatorId(String whLocatorId) {
		this.whLocatorId = whLocatorId;
	}

	public String getWhLocatorCode() {
		return whLocatorCode;
	}

	public void setWhLocatorCode(String whLocatorCode) {
		this.whLocatorCode = whLocatorCode;
	}

	public String getWhLocatorName() {
		return whLocatorName;
	}

	public void setWhLocatorName(String whLocatorName) {
		this.whLocatorName = whLocatorName;
	}

	public String getWhAreaCategoryCode() {
		return whAreaCategoryCode;
	}

	public void setWhAreaCategoryCode(String whAreaCategoryCode) {
		this.whAreaCategoryCode = whAreaCategoryCode;
	}

	public String getWhAreaCategoryName() {
		return whAreaCategoryName;
	}

	public void setWhAreaCategoryName(String whAreaCategoryName) {
		this.whAreaCategoryName = whAreaCategoryName;
	}

	public String getAssignUid() {
		return assignUid;
	}

	public void setAssignUid(String assignUid) {
		this.assignUid = assignUid;
	}

	public String getIsAgv() {
		return isAgv;
	}

	public void setIsAgv(String isAgv) {
		this.isAgv = isAgv;
	}

	public String getEisPushStatus() {
		return eisPushStatus;
	}

	public void setEisPushStatus(String eisPushStatus) {
		this.eisPushStatus = eisPushStatus;
	}
}
