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

import com.fasterxml.jackson.annotation.JsonFormat;
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 org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @Description 质检单图片
 * @Author Xiong
 * @Date 2021-04-02
 */

@ApiModel
public class RqcLinePicDTO implements Serializable {
	private static final long serialVersionUID = 4404250084369384200L;
	@ApiModelProperty(value = "唯一行号ID(主键雪花id)", required = true)
	@NotBlank(message = "唯一行号ID(主键雪花id) can not blank!", groups = validEdit.class)
	private String rqcPicLineId;

	@ApiModelProperty(value = "ID（来源RQC_TASK）(必填)")
	@NotBlank(message = "ID（来源RQC_TASK） can not blank!", groups = validAdd.class)
	private String taskRqcId;

	@ApiModelProperty(value = "质检单据id(必填)")
	@NotBlank(message = "单据id can not blank!", groups = validAdd.class)
	private String rqcHeaderId;

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

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

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

	@ApiModelProperty(value = "仓库ID(必填)")
	@NotBlank(message = "仓库ID can not blank!", groups = validAdd.class)
	private String warehouseId;

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

	@ApiModelProperty(value = "来源单头ID")
	private String sourceHeaderId;

	@ApiModelProperty(value = "来源单行ID")
	private String sourceLineId;

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

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

	@ApiModelProperty(value = "商品ID(必填)")
	@NotBlank(message = "商品ID can not blank!", groups = validAdd.class)
	private String itemId;

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

	@ApiModelProperty(value = "批号(必填)")
	@NotBlank(message = "批号 can not blank!", groups = validAdd.class)
	private String batchId;

	@ApiModelProperty(value = "图片名称(必填)")
	@NotBlank(message = "图片名称 can not blank!", groups = validAdd.class)
	private String picFileName;

	@ApiModelProperty(value = "图片地址(必填)")
	@NotBlank(message = "图片地址 can not blank!", groups = validAdd.class)
	private String picFileUrl;

	@ApiModelProperty(value = "上传时间")
	@NotNull(message = "上传时间 can not blank!", groups = validAdd.class)
	@Past(message = "上传时间 can not greater than now!", groups = validAdd.class)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date opDate;

	@ApiModelProperty(value = "上传人员")
	@NotBlank(message = "上传人员 can not blank!", groups = validAdd.class)
	private String opUserid;

	@ApiModelProperty(value = "采购单号(必填)")
	@NotBlank(message = "采购单号 can not blank!", groups = validAdd.class)
	private String refbillno;

	public String getRqcPicLineId() {
		return this.rqcPicLineId;
	}

	public void setRqcPicLineId(String rqcPicLineId) {
		this.rqcPicLineId = rqcPicLineId;
	}

	public String getTaskRqcId() {
		return this.taskRqcId;
	}

	public void setTaskRqcId(String taskRqcId) {
		this.taskRqcId = taskRqcId;
	}

	public String getRqcHeaderId() {
		return this.rqcHeaderId;
	}

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

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

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

	public String getRcvLineId() {
		return this.rcvLineId;
	}

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

	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 getSourceBillTyp() {
		return this.sourceBillTyp;
	}

	public void setSourceBillTyp(String sourceBillTyp) {
		this.sourceBillTyp = sourceBillTyp;
	}

	public String getSourceHeaderId() {
		return this.sourceHeaderId;
	}

	public void setSourceHeaderId(String sourceHeaderId) {
		this.sourceHeaderId = sourceHeaderId;
	}

	public String getSourceLineId() {
		return this.sourceLineId;
	}

	public void setSourceLineId(String sourceLineId) {
		this.sourceLineId = sourceLineId;
	}

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

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

	public String getAsnLineId() {
		return this.asnLineId;
	}

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

	public String getItemId() {
		return this.itemId;
	}

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

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

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

	public String getBatchId() {
		return this.batchId;
	}

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

	public String getPicFileName() {
		return this.picFileName;
	}

	public void setPicFileName(String picFileName) {
		this.picFileName = picFileName;
	}

	public String getPicFileUrl() {
		return this.picFileUrl;
	}

	public void setPicFileUrl(String picFileUrl) {
		this.picFileUrl = picFileUrl;
	}

	public Date getOpDate() {
		return this.opDate;
	}

	public void setOpDate(Date opDate) {
		this.opDate = opDate;
	}

	public String getOpUserid() {
		return this.opUserid;
	}

	public void setOpUserid(String opUserid) {
		this.opUserid = opUserid;
	}

	public String getRefbillno() {
		return this.refbillno;
	}

	public void setRefbillno(String refbillno) {
		this.refbillno = refbillno;
	}

}
