package com.uas.ps.inquiry.model;
import com.uas.ps.entity.Product;
import javax.persistence.*;
import java.io.Serializable;
import java.util.*;
/**
* 公共询价单转报价后的询价单明细(查询方法,用明细带出主表信息)
*
* @author hejq 2018-01-06
*/
@Table(name = "v$public$inquiryitems")
@Entity
public class PublicInquiryItemInfo implements Serializable {
/**
* default serialVersionUID
*/
private static final long serialVersionUID = 1L;
/**
* id
*/
@Id
@Column(name = "id_id")
private Long id;
/**
* 来源(买家ERP采购询价明细)的ID
*/
@Column(name = "id_sourceid", updatable = false)
private Long sourceId;
/**
* 序号
*/
@Column(name = "id_number")
private Short number;
/**
* 询价单
*/
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "id_inid", nullable = false)
private PublicInquiryInfo inquiry;
/**
* 买家采购员UU
*/
@Column(name = "id_useruu")
private Long userUU;
/**
* 联系人姓名
*/
@Column(name = "id_username")
private String userName;
/**
* 联系人电话
*/
@Column(name = "id_usertel")
private String userTel;
/**
* 联系人编号
*/
@Column(name = "id_usercode")
private String userCode;
/**
* 产品id
*/
@Column(name = "id_prid")
private Long productId;
/**
* 产品
*/
@OneToOne(cascade = {CascadeType.ALL})
@JoinColumn(name = "id_prid", insertable = false, updatable = false)
private Product product;
/**
* 币种
*/
@Column(name = "id_currency")
private String currency;
/**
* 税率
*/
@Column(name = "id_taxrate")
private Float taxrate;
/**
* 备注
*/
@Column(name = "id_remark")
private String remark;
/**
* 供应商UU
*/
@Column(name = "id_venduu")
private Long vendUU;
/**
* 供应商企业信息
*/
@OneToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH })
@JoinColumn(name = "id_venduu", insertable = false, updatable = false)
private Enterprise enterprise;
/**
* 供应商联系人UU
*/
@Column(name = "id_venduseruu")
private Long vendUserUU;
/**
* (买家预先提供的)有效期始
*/
@Column(name = "id_fromdate")
private Date fromDate;
/**
* (买家预先提供的)有效期止
*/
@Column(name = "id_todate")
private Date toDate;
/**
* (卖家报的)有效期始
*/
@Column(name = "id_vendfromdate")
private Date vendFromDate;
/**
* (卖家报的)有效期止
*/
@Column(name = "id_vendtodate")
private Date vendToDate;
/**
* (卖家报的)最小订购量
*/
@Column(name = "id_minorderqty")
private Double minOrderQty;
/**
* (卖家报的)最小包装量
*/
@Column(name = "id_minpackqty")
private Double minPackQty;
/**
* (卖家报的)物料品牌
*/
@Column(name = "id_brand")
private String brand;
/**
* (卖家报的)供应商物料编号
*/
@Column(name = "id_vendorprodcode")
private String vendorprodcode;
/**
* (卖家报的)交货周期(天数)
*/
@Column(name = "id_leadtime")
private Long leadtime;
/**
* {未回复、已回复}
*/
@Column(name = "id_status")
private Short status;
/**
* (针对卖家的)询价传输状态{待上传、已下载}
*/
@Column(name = "id_sendstatus")
private Short sendStatus;
/**
* (针对买家的)报价信息传输状态{待上传、已下载}
*/
@Column(name = "id_backstatus")
private Short backStatus;
/**
* (针对卖家的)报价信息传输状态{待上传、已下载}
*/
@Column(name = "id_replysendstatus")
private Short replySendStatus;
/**
* 是否采纳
*/
@Column(name = "id_agreed")
private Short agreed;
/**
* (针对卖家的)是否采纳信息传输状态{待上传、已下载}
*/
@Column(name = "id_decidestatus")
private Short decideStatus;
/**
* (针对卖家的)作废信息传输状态{待上传、已下载}
*/
@Column(name = "id_invalidstatus")
private Short invalidStatus;
/**
* 是否买家已设置分段数
*/
@Column(name = "id_custlap")
private Short custLap;
/**
* 保存erp传入数据的时间
*
* @return
*/
@Column(name = "id_erpdate")
private Date erpDate;
/**
* 录入时间(取主表日期字段)
*
* @return
*/
@Column(name = "id_date", insertable = false, updatable = false)
private Date date;
/**
* search项目进行单据是否已过期时实际根据主表中enddate与当前时间的比较获取,但是数据库无字段会报“标识符无效”的错误
* 所以建立此字段,但是此字段不会赋值。
* 在建立索引时,overdue的值加入到了invalid(已失效)的判断条件中,所以此字段的值无实际意义,
* UAS询价单提交或反提交时,更新此字段,来使询价单明细更新触发器生效,更新询价单明细索引,
* 才能使未过期未报价已提交单据进入失效列表,未过期未报价反提交单据从已失效列表回到待报价列表。
*
* (1为已提交, 0为被反提交, null为未提交)
*/
@Column(name = "id_overdue", insertable = false, updatable = false)
private Short overdue;
/**
* 报价是否已过期 根据vendToDate与当前时间的比较获取,但是数据库无字段会报“标识符无效”的错误
* 所以建立此字段,此字段在视图中赋值。
*
*/
@Column(name = "id_invalid", insertable = false, updatable = false)
private Short invalid;
/**
* 应用来源ERP、B2B
*/
@Column(name = "id_sourceapp")
private String source;
/**
* 报价的应用
*/
@Column(name = "id_qutoapp")
private String qutoApp;
/**
* 需求数量
*/
@Column(name = "id_needquantity")
private Double needquantity;
/**
* erp传输状态
*
*
erp发出数据传输请求时,赋给状态,完成后更新状态
*
* 1、 传输完成
* 0、 正在传输
*
*/
@Column(name = "id_erpstatus")
private Short erpstatus;
/**
* 询价种类
*/
@Column(name = "id_kind")
private String kind;
/*这下面是供应商报价时存的相关信息;
* 因为存在非客户报价,而且公共服务里面没有企业信息,现存入相关字段,后续处理*/
/**
* 供应商名称
*/
@Column(name = "id_vend_name")
private String vendName;
/**
* 供应商营业执照
*/
@Column(name = "id_vend_businesscode")
private String businessCode;
/**
* 报价时间
*/
@Column(name = "id_offertime")
private Date offerTime;
/**
* 分段报价明细
*/
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "ir_idid")
@OrderBy("lapQty")
private List replies;
/**
* 封装
*/
@Column(name = "id_encapsulation")
private String encapsulation;
/**
* 单价预算
*/
@Column(name = "id_unitprice")
private Double unitPrice;
/**
* 产品生产日期
*/
@Column(name = "id_producedate")
private String produceDate;
/**
* 截止日期
*/
@Column(name = "id_enddate")
private Date endDate;
/**
* ************* 上传的物料信息,物料冗余字段 *************
*/
/**
* 物料编号
*/
@Column(name = "id_prodcode")
private String prodCode;
/**
* 名称
*/
@Column(name = "id_prodtitle")
private String prodTitle;
/**
* 规格
*/
@Column(name = "id_prodspec")
private String spec;
/**
* 单位
*/
@Column(name = "id_unit")
private String unit;
/**
* 型号
*/
@Column(name = "id_cmpcode")
private String cmpCode;
/**
* 品牌
*/
@Column(name = "id_inbrand")
private String inbrand;
/**
* ******end*******
*/
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getSourceId() {
return sourceId;
}
public void setSourceId(Long sourceId) {
this.sourceId = sourceId;
}
public Short getNumber() {
return number;
}
public void setNumber(Short number) {
this.number = number;
}
public PublicInquiryInfo getInquiry() {
return inquiry;
}
public void setInquiry(PublicInquiryInfo inquiry) {
this.inquiry = inquiry;
}
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public String getProdCode() {
return prodCode;
}
public void setProdCode(String prodCode) {
this.prodCode = prodCode;
}
public String getCurrency() {
return currency;
}
public void setCurrency(String currency) {
this.currency = currency;
}
public Float getTaxrate() {
return taxrate;
}
public void setTaxrate(Float taxrate) {
this.taxrate = taxrate;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getFromDate() {
return fromDate;
}
public void setFromDate(Date fromDate) {
this.fromDate = fromDate;
}
public Date getToDate() {
return toDate;
}
public void setToDate(Date toDate) {
this.toDate = toDate;
}
public Date getVendFromDate() {
return vendFromDate;
}
public void setVendFromDate(Date vendFromDate) {
this.vendFromDate = vendFromDate;
}
public Date getVendToDate() {
return vendToDate;
}
public void setVendToDate(Date vendToDate) {
this.vendToDate = vendToDate;
}
public Long getVendUU() {
return vendUU;
}
public void setVendUU(Long vendUU) {
this.vendUU = vendUU;
}
public Enterprise getEnterprise() {
return enterprise;
}
public void setEnterprise(Enterprise enterprise) {
this.enterprise = enterprise;
}
public Long getVendUserUU() {
return vendUserUU;
}
public void setVendUserUU(Long vendUserUU) {
this.vendUserUU = vendUserUU;
}
public Short getAgreed() {
return agreed;
}
public void setAgreed(Short agreed) {
this.agreed = agreed;
}
public Short getStatus() {
return status;
}
public void setStatus(Short status) {
this.status = status;
}
public Short getSendStatus() {
return sendStatus;
}
public void setSendStatus(Short sendStatus) {
this.sendStatus = sendStatus;
}
public Double getMinOrderQty() {
return minOrderQty;
}
public void setMinOrderQty(Double minOrderQty) {
this.minOrderQty = minOrderQty;
}
public Double getMinPackQty() {
return minPackQty;
}
public void setMinPackQty(Double minPackQty) {
this.minPackQty = minPackQty;
}
public Short getBackStatus() {
return backStatus;
}
public void setBackStatus(Short backStatus) {
this.backStatus = backStatus;
}
public Short getReplySendStatus() {
return replySendStatus;
}
public void setReplySendStatus(Short replySendStatus) {
this.replySendStatus = replySendStatus;
}
public Short getDecideStatus() {
return decideStatus;
}
public void setDecideStatus(Short decideStatus) {
this.decideStatus = decideStatus;
}
public Short getCustLap() {
return custLap;
}
public void setCustLap(Short custLap) {
this.custLap = custLap;
}
public Long getUserUU() {
return userUU;
}
public void setUserUU(Long userUU) {
this.userUU = userUU;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserTel() {
return userTel;
}
public void setUserTel(String userTel) {
this.userTel = userTel;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getVendorprodcode() {
return vendorprodcode;
}
public void setVendorprodcode(String vendorprodcode) {
this.vendorprodcode = vendorprodcode;
}
public Long getLeadtime() {
return leadtime;
}
public void setLeadtime(Long leadtime) {
this.leadtime = leadtime;
}
public Date getErpDate() {
return erpDate;
}
public void setErpDate(Date erpDate) {
this.erpDate = erpDate;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getQutoApp() {
return qutoApp;
}
public void setQutoApp(String qutoApp) {
this.qutoApp = qutoApp;
}
public Short getInvalidStatus() {
return invalidStatus;
}
public void setInvalidStatus(Short invalidStatus) {
this.invalidStatus = invalidStatus;
}
public Double getNeedquantity() {
return needquantity;
}
public void setNeedquantity(Double needquantity) {
this.needquantity = needquantity;
}
public Short getOverdue() {
return overdue;
}
public void setOverdue(Short overdue) {
this.overdue = overdue;
}
public Short getInvalid() {
return invalid;
}
public void setInvalid(Short invalid) {
this.invalid = invalid;
}
public Short getErpstatus() {
return erpstatus;
}
public void setErpstatus(Short erpstatus) {
this.erpstatus = erpstatus ;
}
public String getKind() {
return kind;
}
public void setKind(String kind) {
this.kind = kind;
}
public String getVendName() {
return vendName;
}
public void setVendName(String vendName) {
this.vendName = vendName;
}
public String getBusinessCode() {
return businessCode;
}
public void setBusinessCode(String businessCode) {
this.businessCode = businessCode;
}
public Date getOfferTime() {
return offerTime;
}
public void setOfferTime(Date offerTime) {
this.offerTime = offerTime;
}
public List getReplies() {
return replies;
}
public void setReplies(List replies) {
this.replies = replies;
}
public String getEncapsulation() {
return encapsulation;
}
public void setEncapsulation(String encapsulation) {
this.encapsulation = encapsulation;
}
public Double getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(Double unitPrice) {
this.unitPrice = unitPrice;
}
public String getProduceDate() {
return produceDate;
}
public void setProduceDate(String produceDate) {
this.produceDate = produceDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getProdTitle() {
return prodTitle;
}
public void setProdTitle(String prodTitle) {
this.prodTitle = prodTitle;
}
public String getSpec() {
return spec;
}
public void setSpec(String spec) {
this.spec = spec;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public String getCmpCode() {
return cmpCode;
}
public void setCmpCode(String cmpCode) {
this.cmpCode = cmpCode;
}
public String getInbrand() {
return inbrand;
}
public void setInbrand(String inbrand) {
this.inbrand = inbrand;
}
@Override
public String toString() {
return "PublicInquiryItemInfo{" +
"id=" + id +
", sourceId=" + sourceId +
", number=" + number +
", inquiry=" + inquiry +
", userUU=" + userUU +
", userName='" + userName + '\'' +
", userTel='" + userTel + '\'' +
", userCode='" + userCode + '\'' +
", productId=" + productId +
", product=" + product +
", currency='" + currency + '\'' +
", taxrate=" + taxrate +
", remark='" + remark + '\'' +
", vendUU=" + vendUU +
", enterprise=" + enterprise +
", vendUserUU=" + vendUserUU +
", fromDate=" + fromDate +
", toDate=" + toDate +
", vendFromDate=" + vendFromDate +
", vendToDate=" + vendToDate +
", minOrderQty=" + minOrderQty +
", minPackQty=" + minPackQty +
", brand='" + brand + '\'' +
", vendorprodcode='" + vendorprodcode + '\'' +
", leadtime=" + leadtime +
", status=" + status +
", sendStatus=" + sendStatus +
", backStatus=" + backStatus +
", replySendStatus=" + replySendStatus +
", agreed=" + agreed +
", decideStatus=" + decideStatus +
", invalidStatus=" + invalidStatus +
", custLap=" + custLap +
", erpDate=" + erpDate +
", date=" + date +
", overdue=" + overdue +
", invalid=" + invalid +
", source='" + source + '\'' +
", qutoApp='" + qutoApp + '\'' +
", needquantity=" + needquantity +
", erpstatus=" + erpstatus +
", kind='" + kind + '\'' +
", vendName='" + vendName + '\'' +
", businessCode='" + businessCode + '\'' +
", offerTime=" + offerTime +
", replies=" + replies +
", encapsulation='" + encapsulation + '\'' +
", unitPrice=" + unitPrice +
", produceDate='" + produceDate + '\'' +
", endDate=" + endDate +
", prodCode='" + prodCode + '\'' +
", prodTitle='" + prodTitle + '\'' +
", spec='" + spec + '\'' +
", unit='" + unit + '\'' +
", cmpCode='" + cmpCode + '\'' +
", inbrand='" + inbrand + '\'' +
'}';
}
}