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

import com.prolog.cs.biz.inbound.constant.ValidatorGroup.validAdd;
import com.prolog.cs.biz.inbound.constant.ValidatorGroup.validEdit;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description 收货异常单头 来源于异常任务池WMS_IN_TASK_EXCEPTION_DETAIL
 * @Author Xiong
 * @Date 2021-04-02
 */

@ApiModel
public class ExceptionHeadersDTO implements Serializable {
	private static final long serialVersionUID = 3242104474799239134L;

	@ApiModelProperty(value = "错误单头ID(主键雪花id)", position = -1)
	@NotBlank(message = "错误单头ID(主键雪花id) can not blank!", groups = validEdit.class)
	private String exceptionHeaderId;

	@ApiModelProperty(value = "收货单头ID", required = true, position = -1)
	@NotBlank(message = "收货单头ID can not blank!", groups = validAdd.class)
	private String rcvHeaderId;

	@ApiModelProperty(value = "行号", required = true, position = -1)
//	@NotNull(message = "行号 can not blank!", groups = validAdd.class)
	private BigDecimal lineNum;

	@ApiModelProperty(value = "货主ID", required = true, position = -1)
//	@NotBlank(message = "货主ID can not blank!", groups = validAdd.class)
	private String mtlOwnerId;

	@ApiModelProperty(value = "仓库ID", required = true, position = -1)
//	@NotBlank(message = "仓库ID can not blank!", groups = validAdd.class)
	private String warehouseId;

	@ApiModelProperty(value = "单据流水好")
	private String autoBillNum;

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

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

	@ApiModelProperty(value = "操作人")
	private String executorUser;

	@ApiModelProperty(value = "操作时间")
	private Date executorDate;

	@ApiModelProperty(value = "错误发现节点（收货/验收/质检/上架）")
	@NotBlank(message = "错误发现节点不可为空!")
	private String nodeType;

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

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

	public String getExceptionHeaderId() {
		return this.exceptionHeaderId;
	}

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

	public String getRcvHeaderId() {
		return this.rcvHeaderId;
	}

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

	public String getAutoBillNum() {
		return this.autoBillNum;
	}

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

	public String getSrcHeaderId() {
		return this.srcHeaderId;
	}

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

	public String getAsnHeaderId() {
		return this.asnHeaderId;
	}

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

	public BigDecimal getLineNum() {
		return this.lineNum;
	}

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

	public String getMtlOwnerId() {
		return this.mtlOwnerId;
	}

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

	public String getWarehouseId() {
		return this.warehouseId;
	}

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

	public String getExecutorUser() {
		return this.executorUser;
	}

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

	public Date getExecutorDate() {
		return this.executorDate;
	}

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

	public String getNodeType() {
		return nodeType;
	}

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

	public String getCustomBillNum() {
		return this.customBillNum;
	}

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

	public String getSrcBillType() {
		return this.srcBillType;
	}

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

}
