package abacus.springboot.example.dao;

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

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
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_billin_item")
@JsonIgnoreProperties(ignoreUnknown = true) 
@Schema(description = "稽查入库(回购通知)明细")
public class JcBillInItem implements Serializable {

	private static final long serialVersionUID = -3841490251161254597L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Schema(description = "自增长编码", required = true, example = "10")
	private Long id;
	
	@Version
	@Schema(description = "版本号", required = true, example = "1")
	private Integer version;
	
	@Schema(description = "稽查单号", required = true, example = "")
	private String billid;
	
	@Schema(description = "入库单号", required = true, example = "")
	private String billin;
	
	@Schema(description = "回购单号", required = true, example = "")
	private String billhg;
	
	@Schema(description = "状态", required = true,  pattern="-1：终止，1：待通知回购，2：已通知回购", example = "")
	private int status = 1;
	/** 终止*/
	public final static int STATUS_MINUS_ONE = -1;
	/** 待通知回购*/
	public final static int STATUS_ONE = 1;
	/** 已通知回购*/
	public final static int STATUS_TWO = 2;
	
	@Schema(description = "收货渠道-收货门店", required = true, example = "")
	private String channel;
	
	@Schema(description = "客户编码", required = true, example = "")
	private String account;
	
	@Schema(description = "客户名称", required = true, example = "")
	private String accountname;
	
	@Schema(description = "商品编码", required = true, example = "")
	private String product;
	
	@Schema(description = "商品名称", required = true, example = "")
	private String productname;
	
	@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 hgprice;
	
	@Schema(description = "回购金额", required = true, example = "")
	private Double hgamount;
	
	@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 double fhquantity;
	
	@Schema(description = "分货件数", required = true, example = "")
	private double fhnumbers;
	
	@Schema(description = "分货仓库编码", required = true, hidden = true, example = "")
	private String fhwarehouse;
	
	@Schema(description = "分货仓库名称", required = true, hidden = true, example = "")
	private String fhwarehousename;
	
	@Schema(description = "旺店通单号", required = true, hidden = true, example = "")
	private String wdtorder;
	
	@Schema(description = "旺店通出库单号", required = true, hidden = true, example = "")
	private String wdtbillout;
	
	@Schema(description = "旺店通出库状态", required = true, hidden = true, example = "")
	private String wdtbillouttyp;
	
	@Schema(description = "旺店通出库时间", required = true, hidden = true, example = "")
	private Date wdtoutdt;
	
	@Schema(description = "旺店通入库时间", required = true, hidden = true, example = "")
	private Date wdtindt;
	
	@Schema(description = "传输旺店通时间", required = true, hidden = true, example = "")
	private Date wdtdt;
	
	@Schema(description = "时间戳", required = true, example = "")
	private Date dt = new Date();

	@Transient
	@Schema(description = "规格", hidden = true, required = false, example = "")
	private String spec;
	
	@Transient
	@Schema(description = "计量单位", hidden = true, required = false, example = "瓶")
	private String measure;
	
	@Transient
	@Schema(description = "采购包装单位", hidden = true, required = false, example = "false")
	private String purunit;
	
	@Transient
	@Schema(description = "采购包装量", hidden = true, required = true, example = "1")
	private double purpkg = 1.0;
	
	@Transient
	@Schema(description = "历史价格", hidden = true, required = true, example = "1")
	private Double oldhgprice;
	
	@Transient
	@Schema(description = "物流公司名称", hidden = true, required = true, example = "")
	private String logisticsname;
	
	@Transient
	@Schema(description = "物流单号", hidden = true, required = true, example = "")
	private String logisticsno;
	
	public String getLogisticsname() {
		return logisticsname;
	}

	public void setLogisticsname(String logisticsname) {
		this.logisticsname = logisticsname;
	}

	public String getLogisticsno() {
		return logisticsno;
	}

	public void setLogisticsno(String logisticsno) {
		this.logisticsno = logisticsno;
	}

	public Date getWdtoutdt() {
		return wdtoutdt;
	}

	public void setWdtoutdt(Date wdtoutdt) {
		this.wdtoutdt = wdtoutdt;
	}

	public Date getWdtindt() {
		return wdtindt;
	}

	public void setWdtindt(Date wdtindt) {
		this.wdtindt = wdtindt;
	}

	public String getChannel() {
		return channel;
	}

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

	public Double getOldhgprice() {
		return oldhgprice;
	}

	public void setOldhgprice(Double oldhgprice) {
		this.oldhgprice = oldhgprice;
	}

	public String getSpec() {
		return spec;
	}

	public void setSpec(String spec) {
		this.spec = spec;
	}

	public String getMeasure() {
		return measure;
	}

	public void setMeasure(String measure) {
		this.measure = measure;
	}

	public String getPurunit() {
		return purunit;
	}

	public void setPurunit(String purunit) {
		this.purunit = purunit;
	}

	public double getPurpkg() {
		return purpkg;
	}

	public void setPurpkg(double purpkg) {
		this.purpkg = purpkg;
	}

	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 String getBillin() {
		return billin;
	}

	public void setBillin(String billin) {
		this.billin = billin;
	}

	public String getBillhg() {
		return billhg;
	}

	public void setBillhg(String billhg) {
		this.billhg = billhg;
	}

	public int getStatus() {
		return status;
	}

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

	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 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 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 getHgprice() {
		return hgprice;
	}

	public void setHgprice(Double hgprice) {
		this.hgprice = hgprice;
	}

	public Double getHgamount() {
		return hgamount;
	}

	public void setHgamount(Double hgamount) {
		this.hgamount = hgamount;
	}

	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 double getFhquantity() {
		return fhquantity;
	}

	public void setFhquantity(double fhquantity) {
		this.fhquantity = fhquantity;
	}

	public double getFhnumbers() {
		return fhnumbers;
	}

	public void setFhnumbers(double fhnumbers) {
		this.fhnumbers = fhnumbers;
	}

	public String getFhwarehouse() {
		return fhwarehouse;
	}

	public void setFhwarehouse(String fhwarehouse) {
		this.fhwarehouse = fhwarehouse;
	}

	public String getFhwarehousename() {
		return fhwarehousename;
	}

	public void setFhwarehousename(String fhwarehousename) {
		this.fhwarehousename = fhwarehousename;
	}

	public String getWdtorder() {
		return wdtorder;
	}

	public void setWdtorder(String wdtorder) {
		this.wdtorder = wdtorder;
	}

	public String getWdtbillout() {
		return wdtbillout;
	}

	public void setWdtbillout(String wdtbillout) {
		this.wdtbillout = wdtbillout;
	}

	public String getWdtbillouttyp() {
		return wdtbillouttyp;
	}

	public void setWdtbillouttyp(String wdtbillouttyp) {
		this.wdtbillouttyp = wdtbillouttyp;
	}

	public Date getWdtdt() {
		return wdtdt;
	}

	public void setWdtdt(Date wdtdt) {
		this.wdtdt = wdtdt;
	}

	public Date getDt() {
		return dt;
	}

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





