package abacus.springboot.example.dao;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.Version;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import io.swagger.v3.oas.annotations.media.Schema;

@Entity
@Table(name = "jc_billsource_item")
@JsonIgnoreProperties(ignoreUnknown = true) 
@Schema(description = "稽查收货明细")
public class JcBillSourceItem implements Serializable {

	private static final long serialVersionUID = 8819914697371518608L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Schema(description = "自增长编码", required = true, example = "10")
	private Long id;
	
	@Version
	@Schema(description = "版本号", required = true, example = "1")
	private Integer version = 1;
	
	@Schema(description = "行号", required = false, example = "2")
	private int indexno;
	
	@Schema(description = "稽查单号", required = true, example = "")
	private String billid;
	
	@Schema(description = "状态", required = true, pattern="-2：人工朔源驳回，-1：系统朔源验证未通过，0：系统溯源未验证，1：系统朔源验证通过，2：人工朔源待确认，3：人工朔源已确认", example = "")
	private int status = 0;
	/** 人工朔源驳回*/
	public final static int STATUS_MINUS_TWO = -2; 
	/** 系统朔源验证未通过*/
	public final static int STATUS_MINUS_ONE = -1; 
	/** 系统溯源未验证*/
	public final static int STATUS_ZERO = 0; 
	/** 系统朔源验证通过*/
	public final static int STATUS_ONE = 1; 
	/** 人工朔源待确认*/
	public final static int STATUS_TWO = 2; 
	/** 人工朔源已确认*/
	public final static int STATUS_THREE = 3; 
	
	@Schema(description = "收货来源", required = true, example = "")
	private String recsource;
	
	@Schema(description = "收货平台", required = true, example = "")
	private String recplatform;
	
	@Schema(description = "收货渠道", required = true, example = "")
	private String channel;
	
	@Schema(description = "收货单价", required = true, example = "")
	private double price;	
	
	@Schema(description = "收货数量", required = true, example = "")
	private double quantity;
	
	@Schema(description = "收货件数", required = true, example = "")
	private double numbers;
	
	@Schema(description = "收货金额", required = true, example = "")
	private double subtotal;
	
	@Schema(description = "货品编号", required = true, example = "")
	private String goodsid;
	
	@Schema(description = "物流码", required = true, example = "")
	private String logisticsid;
	
	@Schema(description = "出库单号", required = true, example = "")
	private String billout;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Schema(description = "出库日期", required = true, example = "")
	private Date billoutdt;
	
	@Schema(description = "出库仓库编码", required = true, example = "")
	private String billoutwh;
	
	@Schema(description = "出库仓库名称", required = true, example = "")
	private String billoutwhname;
	
	@Schema(description = "商品编码", required = true, example = "")
	private String product;
	
	@Schema(description = "商品名称", required = true, example = "")
	private String productname;
	
	@Schema(description = "客户编码", required = true, example = "")
	private String account;
	
	@Schema(description = "客户名称", required = true, example = "")
	private String accountname;
	
	@Schema(description = "考核业务员编码", required = true, example = "")
	private String operator;
	
	@Schema(description = "考核业务员名称", required = true, example = "")
	private String operatorname;
	
	@Schema(description = "业务组编码", required = true, example = "")
	private String groupid;
	
	@Schema(description = "业务组名称", required = true, example = "")
	private String groupname;
	
	@Schema(description = "分销区域编码", required = true, example = "")
	private String salearea;
	
	@Schema(description = "分销区域名称", required = true, example = "")
	private String saleareaname;
	
	@Schema(description = "比对来源", required = true, example = "")
	private String source;
	public static final String SOURCE_ERP = "业务中台";
	public static final String SOURCE_EWM = "二维码";
	public static final String SOURCE_XX = "线下";
	
	@Schema(description = "驳回原因", required = true, example = "")
	private String reason;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Schema(description = "时间戳", required = true, example = "")
	private Date dt = new Date();
	
	@Transient
	@Schema(description = "付款图片", required = false, hidden = true, pattern = "这是个JSON数组，不是JSONArray对象", example = "[\"44444\",\"aaaaa\"]")
	private List<String> paymentPhoto;
	
	@Transient
	@Schema(description = "货品图片", required = false, hidden = true, pattern = "这是个JSON数组，不是JSONArray对象", example = "[\"44444\",\"aaaaa\"]")
	private List<String> goodsPhotos;
	
	@Transient
	@Schema(description = "货品图片", required = false, hidden = true, pattern = "这是个JSON数组，不是JSONArray对象", example = "[\"44444\",\"aaaaa\"]")
	private List<JcBillPhoto> hpts;
	
	public List<JcBillPhoto> getHpts() {
		return hpts;
	}

	public void setHpts(List<JcBillPhoto> hpts) {
		this.hpts = hpts;
	}

	public List<String> getPaymentPhoto() {
		return paymentPhoto;
	}

	public void setPaymentPhoto(List<String> paymentPhoto) {
		this.paymentPhoto = paymentPhoto;
	}

	public List<String> getGoodsPhotos() {
		return goodsPhotos;
	}

	public void setGoodsPhotos(List<String> goodsPhotos) {
		this.goodsPhotos = goodsPhotos;
	}

	public int getIndexno() {
		return indexno;
	}

	public void setIndexno(int indexno) {
		this.indexno = indexno;
	}

	public String getRecplatform() {
		return recplatform;
	}

	public void setRecplatform(String recplatform) {
		this.recplatform = recplatform;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Integer getVersion() {
		return version;
	}

	public void setVersion(Integer version) {
		this.version = version;
	}

	public String getBillid() {
		return billid;
	}

	public void setBillid(String billid) {
		this.billid = billid;
	}

	public int getStatus() {
		return status;
	}

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

	public String getRecsource() {
		return recsource;
	}

	public void setRecsource(String recsource) {
		this.recsource = recsource;
	}

	public String getChannel() {
		return channel;
	}

	public void setChannel(String channel) {
		this.channel = channel;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

	public double getQuantity() {
		return quantity;
	}

	public void setQuantity(double quantity) {
		this.quantity = quantity;
	}

	public double getNumbers() {
		return numbers;
	}

	public void setNumbers(double numbers) {
		this.numbers = numbers;
	}

	public double getSubtotal() {
		return subtotal;
	}

	public void setSubtotal(double subtotal) {
		this.subtotal = subtotal;
	}

	public String getGoodsid() {
		return goodsid;
	}

	public void setGoodsid(String goodsid) {
		this.goodsid = goodsid;
	}

	public String getLogisticsid() {
		return logisticsid;
	}

	public void setLogisticsid(String logisticsid) {
		this.logisticsid = logisticsid;
	}

	public String getBillout() {
		return billout;
	}

	public void setBillout(String billout) {
		this.billout = billout;
	}

	public Date getBilloutdt() {
		return billoutdt;
	}

	public void setBilloutdt(Date billoutdt) {
		this.billoutdt = billoutdt;
	}

	public String getBilloutwh() {
		return billoutwh;
	}

	public void setBilloutwh(String billoutwh) {
		this.billoutwh = billoutwh;
	}

	public String getBilloutwhname() {
		return billoutwhname;
	}

	public void setBilloutwhname(String billoutwhname) {
		this.billoutwhname = billoutwhname;
	}

	public String getProduct() {
		return product;
	}

	public void setProduct(String product) {
		this.product = product;
	}

	public String getProductname() {
		return productname;
	}

	public void setProductname(String productname) {
		this.productname = productname;
	}

	public String getAccount() {
		return account;
	}

	public void setAccount(String account) {
		this.account = account;
	}

	public String getAccountname() {
		return accountname;
	}

	public void setAccountname(String accountname) {
		this.accountname = accountname;
	}

	public String getOperator() {
		return operator;
	}

	public void setOperator(String operator) {
		this.operator = operator;
	}

	public String getOperatorname() {
		return operatorname;
	}

	public void setOperatorname(String operatorname) {
		this.operatorname = operatorname;
	}

	public String getGroupid() {
		return groupid;
	}

	public void setGroupid(String groupid) {
		this.groupid = groupid;
	}

	public String getGroupname() {
		return groupname;
	}

	public void setGroupname(String groupname) {
		this.groupname = groupname;
	}

	public String getSalearea() {
		return salearea;
	}

	public void setSalearea(String salearea) {
		this.salearea = salearea;
	}

	public String getSaleareaname() {
		return saleareaname;
	}

	public void setSaleareaname(String saleareaname) {
		this.saleareaname = saleareaname;
	}

	public String getSource() {
		return source;
	}

	public void setSource(String source) {
		this.source = source;
	}

	public String getReason() {
		return reason;
	}

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

	public Date getDt() {
		return dt;
	}

	public void setDt(Date dt) {
		this.dt = dt;
	}
}









