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 java.io.Serializable;
import java.util.Date;

/**
 * @Description 质检单汇总 关联收货单，可以查询出所有编码，名称信息
 * @Author Xiong
 * @Date 2021-04-02
 */

@ApiModel
public class RqcHeadersDTO implements Serializable {
	private static final long serialVersionUID = 7865945647588730014L;
	@ApiModelProperty(value = "单据id(主键雪花id)", required = true)
	@NotBlank(message = "单据id(主键雪花id) can not blank!", groups = validEdit.class)
	private String rqcHeaderId;

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

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

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

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

	@ApiModelProperty(value = "供应商ID(冗余)")
	private String vendorId;

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

	@ApiModelProperty(value = "来源单头ID(冗余)")
	private String srcHeaderId;

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

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

	@ApiModelProperty(value = "单据日期", required = true)
	@NotNull(message = "单据日期 can not blank!", groups = validAdd.class)
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date billDate;

	@ApiModelProperty(value = "状态", required = true)
	@NotBlank(message = "状态 can not blank!", groups = validAdd.class)
	private String status;

	@ApiModelProperty(value = "备注")
	private String remark;

	@ApiModelProperty(value = "工作台")
	private String workBench;

	@ApiModelProperty(value = "质检员1")
	private String qcOperator1;

	@ApiModelProperty(value = "质检员2")
	private String qcOperator2;

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

	@ApiModelProperty(value = "收货时间(查询字段)", position = 100)
	private Date rcvDate;
	@ApiModelProperty(value = "收货类型(查询字段)", position = 101)
	private String rcvType;
	@ApiModelProperty(value = "运输方式(查询字段)", position = 102)
	private String shipType;
	@ApiModelProperty(value = "到货方式(查询字段)", position = 103)
	private String arrivalMode;
	@ApiModelProperty(value = "供应商名(查询字段)", position = 104)
	private String vendorName;
	@ApiModelProperty(value = "仓库名(查询字段)", position = 105)
	private String warehouseName;
	@ApiModelProperty(value = "采购人(查询字段)", position = 106)
	private String buyerMane;
	@ApiModelProperty(value = "客户名(查询字段)", position = 107)
	private String customerName;
	@ApiModelProperty(value = "货主名(查询字段)", position = 108)
	private String mtlOwnerName;
	@ApiModelProperty(value = "组织名(查询字段)", position = 109)
	private String orgnName;

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

	// =============6.11新加字段=============================================
	// asn单号
	@ApiModelProperty(value = "(新)asn单号", position = -1109)
	private String asnBillNo;
	// 单位助记码
	@ApiModelProperty(value = "(新)单位助记码", position = -1109)
	private String shipperZjm;
	// 收货单号
	@ApiModelProperty(value = "(新)收货单号", position = -1109)
	private String rcvBillNo;

	@ApiModelProperty(value = "(新)供应商编码", position = -1109)
	private String vendorNum;
	@ApiModelProperty(value = "(新)货主编号", position = -1109)
	private String mtlOwnerNum;
	@ApiModelProperty(value = "(新)收货员", position = -1109)
	private String rcvUser;
	@ApiModelProperty(value = "(新)更新者", position = -1109)
	private String modifierName;
	@ApiModelProperty(value = "(新)操作员", position = -1109)
	private String excuteUser;
	@ApiModelProperty(value = "(新)验收温度", position = -1110)
	private String rqcTemperature;

	private boolean autoGen; // 是否自动生成数据

	@ApiModelProperty(value = "业务自动时间的间隔")
	private String autoTimeInterval;

	@ApiModelProperty(value = "单据类型")
	private String billType;


	public String getAutoTimeInterval() {
		return autoTimeInterval;
	}

	public void setAutoTimeInterval(String autoTimeInterval) {
		this.autoTimeInterval = autoTimeInterval;
	}

	public boolean getAutoGen() {
		return autoGen;
	}

	public void setAutoGen(boolean autoGen) {
		this.autoGen = autoGen;
	}

	public String getRqcTemperature() {
		return rqcTemperature;
	}

	public void setRqcTemperature(String rqcTemperature) {
		this.rqcTemperature = rqcTemperature;
	}

	public String getModifierName() {
		return modifierName;
	}

	public void setModifierName(String modifierName) {
		this.modifierName = modifierName;
	}

	public String getExcuteUser() {
		return excuteUser;
	}

	public void setExcuteUser(String excuteUser) {
		this.excuteUser = excuteUser;
	}

	public String getVendorNum() {
		return vendorNum;
	}

	public void setVendorNum(String vendorNum) {
		this.vendorNum = vendorNum;
	}

	public String getMtlOwnerNum() {
		return mtlOwnerNum;
	}

	public void setMtlOwnerNum(String mtlOwnerNum) {
		this.mtlOwnerNum = mtlOwnerNum;
	}

	public String getRcvUser() {
		return rcvUser;
	}

	public void setRcvUser(String rcvUser) {
		this.rcvUser = rcvUser;
	}

	public String getAsnBillNo() {
		return asnBillNo;
	}

	public void setAsnBillNo(String asnBillNo) {
		this.asnBillNo = asnBillNo;
	}

	public String getShipperZjm() {
		return shipperZjm;
	}

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

	public String getRcvBillNo() {
		return rcvBillNo;
	}

	public void setRcvBillNo(String rcvBillNo) {
		this.rcvBillNo = rcvBillNo;
	}

	public Integer getIsInstockPrint() {
		return isInstockPrint;
	}

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

	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 getShipType() {
		return shipType;
	}

	public void setShipType(String shipType) {
		this.shipType = shipType;
	}

	public String getArrivalMode() {
		return arrivalMode;
	}

	public void setArrivalMode(String arrivalMode) {
		this.arrivalMode = arrivalMode;
	}

	public String getVendorName() {
		return vendorName;
	}

	public void setVendorName(String vendorName) {
		this.vendorName = vendorName;
	}

	public String getWarehouseName() {
		return warehouseName;
	}

	public void setWarehouseName(String warehouseName) {
		this.warehouseName = warehouseName;
	}

	public String getBuyerMane() {
		return buyerMane;
	}

	public void setBuyerMane(String buyerMane) {
		this.buyerMane = buyerMane;
	}

	public String getCustomerName() {
		return customerName;
	}

	public void setCustomerName(String customerName) {
		this.customerName = customerName;
	}

	public String getMtlOwnerName() {
		return mtlOwnerName;
	}

	public void setMtlOwnerName(String mtlOwnerName) {
		this.mtlOwnerName = mtlOwnerName;
	}

	public String getOrgnName() {
		return orgnName;
	}

	public void setOrgnName(String orgnName) {
		this.orgnName = orgnName;
	}

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

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

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

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

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

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

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

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

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

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

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

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

	public Date getBillDate() {
		return this.billDate;
	}

	public void setBillDate(Date billDate) {
		this.billDate = billDate;
	}

	public String getStatus() {
		return this.status;
	}

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

	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getWorkBench() {
		return this.workBench;
	}

	public void setWorkBench(String workBench) {
		this.workBench = workBench;
	}

	public String getQcOperator1() {
		return this.qcOperator1;
	}

	public void setQcOperator1(String qcOperator1) {
		this.qcOperator1 = qcOperator1;
	}

	public String getQcOperator2() {
		return this.qcOperator2;
	}

	public void setQcOperator2(String qcOperator2) {
		this.qcOperator2 = qcOperator2;
	}

	public String getDataSrcType() {
		return this.dataSrcType;
	}

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

	public String getBillType() {
		return billType;
	}

	public void setBillType(String billType) {
		this.billType = billType;
	}
}
