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

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

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

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

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

	/** 来源单号列表 **/
	@ApiModelProperty(value = "来源单号列表")
	private String srcAutoBillNum;

	/** 来源单ID列表(ASN) **/
	@ApiModelProperty(value = "来源单ID列表(ASN)")
	private String asnHeaderId;

	/** 来源单号列表(ASN) **/
	@ApiModelProperty(value = "来源单号列表(ASN)")
	private String asnAutoBillNum;

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

	/** 执行者（收货员） **/
	@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 rcvDate;

	/** 收货类型 **/
	@ApiModelProperty(value = "收货类型")
	private String rcvType;

	/** 状态 **/
	@ApiModelProperty(value = "状态")
	private String status;

	/** status_as(辅助状态，外部系统对接 例如上传ERP) **/
	@ApiModelProperty(value = "status_as(辅助状态，外部系统对接 例如上传ERP)")
	private String statusAs;

	/** 组织ID **/
	@ApiModelProperty(value = "组织ID")
	private String orgnId;

	/** 供应商ID **/
	@ApiModelProperty(value = "供应商ID")
	private String vendorId;

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

	/** 采购员ID **/
	@ApiModelProperty(value = "采购员ID")
	private String buyerId;

	/** 客户ID（销退客户ID）XT **/
	@ApiModelProperty(value = "客户ID（销退客户ID）XT")
	private String customerId;

	/** 源组织ID(调拨组织ID) YC **/
	@ApiModelProperty(value = "源组织ID(调拨组织ID)    YC")
	private String srcOrgnId;

	/** 源仓库ID(调拨源仓ID) YC **/
	@ApiModelProperty(value = "源仓库ID(调拨源仓ID)    YC")
	private String srcWarehouseId;

	/** 源货主ID(移库入库的源货主ID) **/
	@ApiModelProperty(value = "源货主ID(移库入库的源货主ID)")
	private String srcMtlOwnerId;

	/** 箱数 **/
	@ApiModelProperty(value = "箱数")
	private BigDecimal caseQty;

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

	/** access_level **/
	@ApiModelProperty(value = "access_level")
	private String accessLevel;

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

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

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

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

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

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

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

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

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

	private String attribute4;

	private String attribute5;

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

	/** audited_by **/
	@ApiModelProperty(value = "audited_by")
	private String auditedBy;

	/** 打印次数 **/
	@ApiModelProperty(value = "打印次数")
	private BigDecimal printCount;

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

	/** 打印人 **/
	@ApiModelProperty(value = "打印人")
	private String printedBy;

	/** audited_name **/
	@ApiModelProperty(value = "audited_name")
	private String auditedName;

	/** printed_name **/
	@ApiModelProperty(value = "printed_name")
	private String printedName;

	/** 批准人id **/
	@ApiModelProperty(value = "批准人id")
	private String confirmedBy;

	/** 批准人名称 **/
	@ApiModelProperty(value = "批准人名称")
	private String confirmedName;

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

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

	// ====================6.10新加字段============
	@ApiModelProperty(value = "asn单备注说明")
	private String asnRemark;
	@ApiModelProperty(value = "(新)要货部门", position = -4)
	private String needDept;
	@ApiModelProperty(value = "(新)要货业务员", position = -4)
	private String needUser;
	@ApiModelProperty(value = "(新)代理商", position = -4)
	private String agent;

	// ====================6.11新加字段============
	// 销退入库专用字段
	// 销售开票单号
	@ApiModelProperty(value = "(新)销售开票单号", position = -4)
	private String saleBillNo;
	// 账期类型
	@ApiModelProperty(value = "(新)账期类型", position = -4)
	private String saleBillType;
	// 部门
	@ApiModelProperty(value = "(新)部门(名称)", position = -4)
	private String department;
	// 业务员、
	@ApiModelProperty(value = "(新)业务员", position = -4)
	private String bizUser;
	// 退货类型
	@ApiModelProperty(value = "(新)退货类型(码表-rcv_return_type)", position = -4)
	private String returnType;
	// 单位助记码
	@ApiModelProperty(value = "(新)单位助记码", position = -4)
	private String shipperZjm;

	public String getSaleBillNo() {
		return saleBillNo;
	}

	public void setSaleBillNo(String saleBillNo) {
		this.saleBillNo = saleBillNo;
	}

	public String getSaleBillType() {
		return saleBillType;
	}

	public void setSaleBillType(String saleBillType) {
		this.saleBillType = saleBillType;
	}

	public String getDepartment() {
		return department;
	}

	public void setDepartment(String department) {
		this.department = department;
	}

	public String getBizUser() {
		return bizUser;
	}

	public void setBizUser(String bizUser) {
		this.bizUser = bizUser;
	}

	public String getReturnType() {
		return returnType;
	}

	public void setReturnType(String returnType) {
		this.returnType = returnType;
	}

	public String getShipperZjm() {
		return shipperZjm;
	}

	public void setShipperZjm(String shipperZjm) {
		this.shipperZjm = shipperZjm;
	}

	public String getNeedDept() {
		return needDept;
	}

	public void setNeedDept(String needDept) {
		this.needDept = needDept;
	}

	public String getNeedUser() {
		return needUser;
	}

	public void setNeedUser(String needUser) {
		this.needUser = needUser;
	}

	public String getAgent() {
		return agent;
	}

	public void setAgent(String agent) {
		this.agent = agent;
	}

	public String getAsnRemark() {
		return asnRemark;
	}

	public void setAsnRemark(String asnRemark) {
		this.asnRemark = asnRemark;
	}

	public String getRcvHeaderId() {
		return rcvHeaderId;
	}

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

	public String getMtlOwnerId() {
		return mtlOwnerId;
	}

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

	public String getAutoBillNum() {
		return autoBillNum;
	}

	public void setAutoBillNum(String autoBillNum) {
		this.autoBillNum = autoBillNum;
	}

	public String getSrcHeaderId() {
		return srcHeaderId;
	}

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

	public String getSrcAutoBillNum() {
		return srcAutoBillNum;
	}

	public void setSrcAutoBillNum(String srcAutoBillNum) {
		this.srcAutoBillNum = srcAutoBillNum;
	}

	public String getAsnHeaderId() {
		return asnHeaderId;
	}

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

	public String getAsnAutoBillNum() {
		return asnAutoBillNum;
	}

	public void setAsnAutoBillNum(String asnAutoBillNum) {
		this.asnAutoBillNum = asnAutoBillNum;
	}

	public String getCustomBillNum() {
		return customBillNum;
	}

	public void setCustomBillNum(String customBillNum) {
		this.customBillNum = customBillNum;
	}

	public String getExecutorUser() {
		return executorUser;
	}

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

	public Date getRcvDate() {
		return rcvDate;
	}

	public void setRcvDate(Date rcvDate) {
		this.rcvDate = rcvDate;
	}

	public String getRcvType() {
		return rcvType;
	}

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

	public String getStatus() {
		return status;
	}

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

	public String getStatusAs() {
		return statusAs;
	}

	public void setStatusAs(String statusAs) {
		this.statusAs = statusAs;
	}

	public String getOrgnId() {
		return orgnId;
	}

	public void setOrgnId(String orgnId) {
		this.orgnId = orgnId;
	}

	public String getVendorId() {
		return vendorId;
	}

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

	public String getWarehouseId() {
		return warehouseId;
	}

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

	public String getBuyerId() {
		return buyerId;
	}

	public void setBuyerId(String buyerId) {
		this.buyerId = buyerId;
	}

	public String getCustomerId() {
		return customerId;
	}

	public void setCustomerId(String customerId) {
		this.customerId = customerId;
	}

	public String getSrcOrgnId() {
		return srcOrgnId;
	}

	public void setSrcOrgnId(String srcOrgnId) {
		this.srcOrgnId = srcOrgnId;
	}

	public String getSrcWarehouseId() {
		return srcWarehouseId;
	}

	public void setSrcWarehouseId(String srcWarehouseId) {
		this.srcWarehouseId = srcWarehouseId;
	}

	public String getSrcMtlOwnerId() {
		return srcMtlOwnerId;
	}

	public void setSrcMtlOwnerId(String srcMtlOwnerId) {
		this.srcMtlOwnerId = srcMtlOwnerId;
	}

	public BigDecimal getCaseQty() {
		return caseQty;
	}

	public void setCaseQty(BigDecimal caseQty) {
		this.caseQty = caseQty;
	}

	public BigDecimal getPieceQty() {
		return pieceQty;
	}

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

	public String getAccessLevel() {
		return accessLevel;
	}

	public void setAccessLevel(String accessLevel) {
		this.accessLevel = accessLevel;
	}

	public String getComments() {
		return comments;
	}

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

	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 getSegment3() {
		return segment3;
	}

	public void setSegment3(String segment3) {
		this.segment3 = segment3;
	}

	public String getSegment4() {
		return segment4;
	}

	public void setSegment4(String segment4) {
		this.segment4 = segment4;
	}

	public String getSegment5() {
		return segment5;
	}

	public void setSegment5(String segment5) {
		this.segment5 = segment5;
	}

	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 getAttribute3() {
		return attribute3;
	}

	public void setAttribute3(String attribute3) {
		this.attribute3 = attribute3;
	}

	public String getAttribute4() {
		return attribute4;
	}

	public void setAttribute4(String attribute4) {
		this.attribute4 = attribute4;
	}

	public String getAttribute5() {
		return attribute5;
	}

	public void setAttribute5(String attribute5) {
		this.attribute5 = attribute5;
	}

	public Date getAuditDate() {
		return auditDate;
	}

	public void setAuditDate(Date auditDate) {
		this.auditDate = auditDate;
	}

	public String getAuditedBy() {
		return auditedBy;
	}

	public void setAuditedBy(String auditedBy) {
		this.auditedBy = auditedBy;
	}

	public BigDecimal getPrintCount() {
		return printCount;
	}

	public void setPrintCount(BigDecimal printCount) {
		this.printCount = printCount;
	}

	public Date getPrintDate() {
		return printDate;
	}

	public void setPrintDate(Date printDate) {
		this.printDate = printDate;
	}

	public String getPrintedBy() {
		return printedBy;
	}

	public void setPrintedBy(String printedBy) {
		this.printedBy = printedBy;
	}

	public String getAuditedName() {
		return auditedName;
	}

	public void setAuditedName(String auditedName) {
		this.auditedName = auditedName;
	}

	public String getPrintedName() {
		return printedName;
	}

	public void setPrintedName(String printedName) {
		this.printedName = printedName;
	}

	public String getConfirmedBy() {
		return confirmedBy;
	}

	public void setConfirmedBy(String confirmedBy) {
		this.confirmedBy = confirmedBy;
	}

	public String getConfirmedName() {
		return confirmedName;
	}

	public void setConfirmedName(String confirmedName) {
		this.confirmedName = confirmedName;
	}

	public Date getConfirmDate() {
		return confirmDate;
	}

	public void setConfirmDate(Date confirmDate) {
		this.confirmDate = confirmDate;
	}

	public String getSrcBillType() {
		return srcBillType;
	}

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