Browse Source

UAS获取投标单详情接口

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@8399 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 9 years ago
parent
commit
b91acda381

+ 0 - 36
src/main/java/com/uas/platform/b2b/controller/PurchaseTenderController.java

@@ -176,42 +176,6 @@ public class PurchaseTenderController {
 
 
 
 
 
 
-//    /**
-//     * 采购方查看投标单
-//     *
-//     * @param id
-//     * @return
-//     */
-//    @RequestMapping(value = "/item/{id}", method = RequestMethod.GET)
-//    @ResponseBody
-//    public SaleTender getBidById(@PathVariable("id") Long id) {
-//       return purchaseTenderService.findByItemId(id);
-//    }
-
-//    /**
-//     * 供应商查看投标单
-//     *
-//     * @param id
-//     * @return
-//     */
-//    @RequestMapping(value = "vendorTenderDetail/{vendUU}/{id}", method = RequestMethod.GET)
-//    @ResponseBody
-//    public SaleTender getVendorItemByIdAndEnUU(@PathVariable("vendUU")Long vendUU, @PathVariable("id") Long id) {
-//        return purchaseTenderService.findByEnUUAndId(vendUU, id);
-//    }
-
-
-//    /**
-//     * 查看评标单
-//     *
-//     * @param id
-//     * @return
-//     */
-//    @RequestMapping(value = "/items/{id}", method = RequestMethod.GET)
-//    @ResponseBody
-//    public List<SaleTender> getTenderItemsById(@PathVariable("id") Long id) {
-//        return purchaseTenderService.getItemsByTenderId(id);
-//    }
 
 
     /**
     /**
      * 招标方定标
      * 招标方定标

+ 14 - 0
src/main/java/com/uas/platform/b2b/dao/SaleTenderErpDao.java

@@ -0,0 +1,14 @@
+package com.uas.platform.b2b.dao;
+
+import com.uas.platform.b2b.model.SaleTenderErp;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * Created by dongbw on 17/03/07 14:10.
+ */
+@Repository
+public interface SaleTenderErpDao extends JpaSpecificationExecutor<SaleTenderErp>,JpaRepository<SaleTenderErp, Long> {
+
+}

+ 33 - 3
src/main/java/com/uas/platform/b2b/erp/controller/TenderController.java

@@ -152,12 +152,12 @@ public class TenderController {
     /**
     /**
      * 招标方定标
      * 招标方定标
      *
      *
-     * @param json 招标单json
+     * @param tender 招标单json
      */
      */
     @RequestMapping(value = "/decide", method = RequestMethod.POST)
     @RequestMapping(value = "/decide", method = RequestMethod.POST)
     @ResponseBody
     @ResponseBody
-    public ModelMap decideTender(@RequestBody String json) {
-        PurchaseTender purchaseTender = FlexJsonUtils.fromJson(json, PurchaseTender.class);
+    public ModelMap decideTender(@RequestBody String tender) {
+        PurchaseTender purchaseTender = FlexJsonUtils.fromJson(tender, PurchaseTender.class);
         return tenderService.decide(purchaseTender);
         return tenderService.decide(purchaseTender);
     }
     }
 
 
@@ -576,4 +576,34 @@ public class TenderController {
         return tenderService.deleteAttach(attachId);
         return tenderService.deleteAttach(attachId);
     }
     }
 
 
+    /**
+     * 招标单状态修改
+     *
+     * @param id 招标单id
+     */
+    @RequestMapping(value = "/audit/purc", method = RequestMethod.POST)
+    public ModelMap auditPurchaseTender(Long id,  Short auditStatus) {
+        return tenderService.auditPurchaseTender(id, auditStatus);
+    }
+
+    /**
+     * 投标单状态修改
+     *
+     * @param id 投标单id
+     */
+    @RequestMapping(value = "/audit/sale", method = RequestMethod.POST)
+    public ModelMap auditSaleTender(Long id, Short auditStatus) {
+        return tenderService.auditSaleTender(id, auditStatus);
+    }
+
+    /**
+     * 获取投标单详情
+     *
+     * @param id 投标单id
+     */
+    @RequestMapping(value = "/saleTender", method = RequestMethod.GET)
+    public SaleTenderErp getSaleTenderDetail(Long id, String venduu) {
+        return tenderService.getSaleTenderDetail(id, Long.valueOf(venduu));
+    }
+
 }
 }

+ 20 - 0
src/main/java/com/uas/platform/b2b/erp/service/TenderService.java

@@ -136,5 +136,25 @@ public interface TenderService {
      */
      */
     ModelMap removeSaleTender(Long id, Long vendUU);
     ModelMap removeSaleTender(Long id, Long vendUU);
 
 
+    /**
+     *  审批招标单状态修改
+     * @param id
+     * @return
+     */
+    ModelMap auditPurchaseTender(Long id, Short auditStatus);
 
 
+    /**
+     * 审批投标单状态修改
+     * @param id
+     * @return
+     */
+    ModelMap auditSaleTender(Long id, Short auditStatus);
+
+    /**
+     * 获取投标单详情
+     * @param id
+     * @param venduu
+     * @return
+     */
+    SaleTenderErp getSaleTenderDetail(Long id, Long venduu);
 }
 }

+ 31 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/TenderServiceImpl.java

@@ -38,6 +38,9 @@ public class TenderServiceImpl implements TenderService {
     @Autowired
     @Autowired
     private SaleTenderDao saleTenderDao;
     private SaleTenderDao saleTenderDao;
 
 
+    @Autowired
+    private SaleTenderErpDao saleTenderErpDao;
+
     @Autowired
     @Autowired
     private SaleTenderItemDao saleTenderItemDao;
     private SaleTenderItemDao saleTenderItemDao;
 
 
@@ -552,6 +555,34 @@ public class TenderServiceImpl implements TenderService {
         return map;
         return map;
     }
     }
 
 
+    @Override
+    public ModelMap auditPurchaseTender(Long id, Short auditStatus) {
+        ModelMap map = new ModelMap();
+        PurchaseTender purchaseTender = purchaseTenderDao.findOne(id);
+        purchaseTender.setAuditStatus(auditStatus);
+        purchaseTenderDao.save(purchaseTender);
+        map.put("success", true);
+        return map;
+    }
+
+    @Override
+    public ModelMap auditSaleTender(Long id, Short auditStatus) {
+        ModelMap map = new ModelMap();
+        SaleTender saleTender = saleTenderDao.findOne(id);
+        saleTender.setAuditStatus(auditStatus);
+        saleTenderDao.save(saleTender);
+        map.put("success", true);
+        return map;
+    }
+
+    @Override
+    public SaleTenderErp getSaleTenderDetail(Long id, Long venduu) {
+        PurchaseTender tender = purchaseTenderDao.findOne(id);
+        SaleTender saleTenderTemp = saleTenderDao.findByEnUUAndVendUUAndCode(tender.getEnUU(), venduu, tender.getCode());
+        SaleTenderErp saleTenderErp = saleTenderErpDao.findOne(saleTenderTemp.getId());
+        return saleTenderErp;
+    }
+
 
 
     /**
     /**
      * 投标
      * 投标

+ 15 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseTender.java

@@ -168,6 +168,13 @@ public class PurchaseTender implements Serializable {
     @Column(name = "pt_result", insertable = false, updatable = false)
     @Column(name = "pt_result", insertable = false, updatable = false)
     private Short result;
     private Short result;
 
 
+
+    /**
+     * 审核状态(0代表已提交,1代表已审核,uas审批流用,平台发布单据为空)
+     */
+    @Column(name = "pt_auditstatus")
+    private Short auditStatus;
+
     public Long getId() {
     public Long getId() {
         return id;
         return id;
     }
     }
@@ -359,6 +366,14 @@ public class PurchaseTender implements Serializable {
     public void setResult(Short result) {
     public void setResult(Short result) {
         this.result = result;
         this.result = result;
     }
     }
+
+    public Short getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(Short auditStatus) {
+        this.auditStatus = auditStatus;
+    }
 }
 }
 
 
 
 

+ 13 - 0
src/main/java/com/uas/platform/b2b/model/SaleTender.java

@@ -167,6 +167,12 @@ public class SaleTender implements Serializable, Comparable<SaleTender> {
     @JoinColumn(name = "st_venduu", insertable = false, updatable = false)
     @JoinColumn(name = "st_venduu", insertable = false, updatable = false)
     private EnterpriseBaseInfo enterpriseBaseInfo;
     private EnterpriseBaseInfo enterpriseBaseInfo;
 
 
+    /**
+     * 审核状态(0代表已提交,1代表已审核,uas审批流用,平台发布单据为空)
+     */
+    @Column(name = "pt_auditstatus")
+    private Short auditStatus;
+
     public SaleTender(PurchaseTender tender) {
     public SaleTender(PurchaseTender tender) {
         this.setCode(tender.getCode());
         this.setCode(tender.getCode());
         this.setCertificate(tender.getCertificate());
         this.setCertificate(tender.getCertificate());
@@ -384,4 +390,11 @@ public class SaleTender implements Serializable, Comparable<SaleTender> {
         return this.getId().compareTo(o.getId());
         return this.getId().compareTo(o.getId());
     }
     }
 
 
+    public Short getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(Short auditStatus) {
+        this.auditStatus = auditStatus;
+    }
 }
 }

+ 370 - 0
src/main/java/com/uas/platform/b2b/model/SaleTenderErp.java

@@ -0,0 +1,370 @@
+package com.uas.platform.b2b.model;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 投标单主表
+ * <p>
+ * Created by dongbw on 17/03/07 11:16.
+ */
+
+@Table(name = "sale$tender")
+@Entity
+public class SaleTenderErp implements Serializable {
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sale$tender_gen")
+    @SequenceGenerator(name = "sale$tender_gen", sequenceName = "sale$tender_seq", allocationSize = 1)
+    @Column(name = "st_id")
+    private Long id;
+
+
+    /**
+     * 招标编号
+     */
+    @Column(name = "st_code")
+    private String code;
+
+    /**
+     * 招标项目
+     */
+    @Column(name = "st_title")
+    private String title;
+
+    /**
+     * 单据最后修改时间
+     */
+    @Column(name = "st_modified")
+    private Date modified;
+
+    /**
+     * 招标单录入日期
+     */
+    @Column(name = "st_date")
+    private Date date;
+
+    /**
+     * 招标方联系人
+     */
+    @Column(name = "st_user")
+    private String user;
+
+    /**
+     * 招标方联系人电话
+     */
+    @Column(name = "st_usertel")
+    private String userTel;
+
+    /**
+     * 招标企业uu
+     */
+    @Column(name = "st_enuu")
+    private Long enUU;
+
+    /**
+     * 招标企业基本信息
+     */
+    @OneToOne(cascade = CascadeType.REFRESH )
+    @JoinColumn(name = "st_enuu", insertable = false, updatable = false)
+    private Enterprise enterprise;
+
+    /**
+     * 投标截止日期
+     */
+    @Column(name = "st_enddate")
+    private Date endDate;
+
+    /**
+     * 结果公布日期
+     */
+    @Column(name = "st_publishdate")
+    private Date publishDate;
+
+    /**
+     * 币别
+     */
+    @Column(name = "st_currency")
+    private String currency;
+
+    /**
+     * 是否开放报名(1为开放,0为指定供应商)
+     */
+    @Column(name = "st_ifopen")
+    private Short ifOpen;
+
+    /**
+     * 是否含税(1含税,0不含税)
+     */
+    @Column(name = "st_iftax")
+    private Short ifTax;
+
+    /**
+     * 收货地址
+     */
+    @Column(name = "st_shipaddress")
+    private String shipAddress;
+
+    /**
+     * 付款方式
+     */
+    @Column(name = "st_payment")
+    private String payment;
+
+    /**
+     * 发票类型(0表示不要发票, 1表示增值税普通发票, 2表示增值税专用发票)
+     */
+    @Column(name = "st_invoicetype")
+    private Short invoiceType;
+
+    /**
+     * 证照要求
+     */
+    @Column(name = "st_certificate")
+    private String certificate;
+
+    /**
+     * 投标单状态
+     */
+    @Column(name = "st_status")
+    private String status;
+
+    /**
+     * 投标附件
+     */
+    @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.REFRESH})
+    @JoinTable(name = "sale$tenderattach", joinColumns = @JoinColumn(name = "st_id", referencedColumnName = "st_id"), inverseJoinColumns = @JoinColumn(name="at_id", referencedColumnName = "at_id"))
+    private Set<Attach> bidAttaches;
+
+    /**
+     * 投标明细
+     */
+    @OneToMany(mappedBy = "saleTender", cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
+    @OrderBy("id")
+    private Set<SaleTenderItemErp> saleTenderItems;
+
+    /**
+     * 投标企业uu
+     */
+    @Column(name = "st_venduu")
+    private Long vendUU;
+
+    /**
+     * 投标企业基本信息
+     */
+    @OneToOne(cascade = CascadeType.PERSIST)
+    @JoinColumn(name = "st_venduu", insertable = false, updatable = false)
+    private EnterpriseBaseInfo enterpriseBaseInfo;
+
+    /**
+     * 审核状态(0代表已提交,1代表已审核,uas审批流用,平台发布单据为空)
+     */
+    @Column(name = "pt_auditstatus")
+    private Short auditStatus;
+
+    public SaleTenderErp() {
+    }
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public Date getModified() {
+        return modified;
+    }
+
+    public void setModified(Date modified) {
+        this.modified = modified;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public String getUser() {
+        return user;
+    }
+
+    public void setUser(String user) {
+        this.user = user;
+    }
+
+    public String getUserTel() {
+        return userTel;
+    }
+
+    public void setUserTel(String userTel) {
+        this.userTel = userTel;
+    }
+
+    public Enterprise getEnterprise() {
+        return enterprise;
+    }
+
+    public void setEnterprise(Enterprise enterprise) {
+        this.enterprise = enterprise;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public Date getPublishDate() {
+        return publishDate;
+    }
+
+    public void setPublishDate(Date publishDate) {
+        this.publishDate = publishDate;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Short getIfOpen() {
+        return ifOpen;
+    }
+
+    public void setIfOpen(Short ifOpen) {
+        this.ifOpen = ifOpen;
+    }
+
+    public Short getIfTax() {
+        return ifTax;
+    }
+
+    public void setIfTax(Short ifTax) {
+        this.ifTax = ifTax;
+    }
+
+    public String getShipAddress() {
+        return shipAddress;
+    }
+
+    public void setShipAddress(String shipAddress) {
+        this.shipAddress = shipAddress;
+    }
+
+    public String getPayment() {
+        return payment;
+    }
+
+    public void setPayment(String payment) {
+        this.payment = payment;
+    }
+
+    public Short getInvoiceType() {
+        return invoiceType;
+    }
+
+    public void setInvoiceType(Short invoiceType) {
+        this.invoiceType = invoiceType;
+    }
+
+    public String getCertificate() {
+        return certificate;
+    }
+
+    public void setCertificate(String certificate) {
+        this.certificate = certificate;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public Set<Attach> getBidAttaches() {
+        return bidAttaches;
+    }
+
+    public void setBidAttaches(Set<Attach> bidAttaches) {
+        this.bidAttaches = bidAttaches;
+    }
+
+    public Set<SaleTenderItemErp> getSaleTenderItems() {
+        return saleTenderItems;
+    }
+
+    public void setSaleTenderItems(Set<SaleTenderItemErp> saleTenderItems) {
+        this.saleTenderItems = saleTenderItems;
+    }
+
+    public EnterpriseBaseInfo getEnterpriseBaseInfo() {
+        return enterpriseBaseInfo;
+    }
+
+    public void setEnterpriseBaseInfo(EnterpriseBaseInfo enterpriseBaseInfo) {
+        this.enterpriseBaseInfo = enterpriseBaseInfo;
+    }
+
+    public Long getEnUU() {
+        return enUU;
+    }
+
+    public void setEnUU(Long enUU) {
+        this.enUU = enUU;
+    }
+
+    public Long getVendUU() {
+        return vendUU;
+    }
+
+    public void setVendUU(Long vendUU) {
+        this.vendUU = vendUU;
+    }
+
+    public Short getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(Short auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+}

+ 147 - 0
src/main/java/com/uas/platform/b2b/model/SaleTenderItemErp.java

@@ -0,0 +1,147 @@
+package com.uas.platform.b2b.model;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ *  投标单明细
+ * Created by dongbw
+ * 17/03/30 11:53.
+ */
+@Table(name = "sale$tenderitem")
+@Entity
+public class SaleTenderItemErp implements Serializable{
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sale$tenderitem_gen")
+    @SequenceGenerator(name = "sale$tenderitem_gen", sequenceName = "sale$tenderitem_seq", allocationSize = 1)
+    @Column(name = "sti_id")
+    private Long id;
+
+
+    /**
+     * 税率
+     */
+    @Column(name = "sti_taxrate")
+    private Long taxrate;
+
+    /**
+     * 单价
+     */
+    @Column(name = "sti_price")
+    private Double price;
+
+    /**
+     * 采购周期
+     */
+    @Column(name = "sti_cycle")
+    private Long cycle;
+
+    /**
+     * 说明
+     */
+    @Column(name = "sti_description")
+    private String description;
+
+    /**
+     * 中标状态(为空表示未处理,0表示未中标,1表示已中标)
+     */
+    @Column(name = "sti_applystatus")
+    private Short applyStatus;
+
+//    /**
+//     * 投标状态(用于search项目的单据过滤,是否投标其实可以通过是否存在价格判断)
+//     */
+//    @Column(name = "sti_status")
+//    private String status;
+
+    /**
+     * 招标产品明细
+     */
+    @ManyToOne(cascade = {CascadeType.REFRESH, CascadeType.MERGE})
+    @JoinColumn(name = "sti_tpid", nullable = false)
+    private SaleTenderProdErp tenderProd;
+
+    /**
+     * 投标主表
+     */
+    @ManyToOne(cascade = {CascadeType.REFRESH}, fetch = FetchType.LAZY)
+    @JoinColumn(name = "sti_stid", nullable = false)
+    private SaleTenderErp saleTender;
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Long taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public Long getCycle() {
+        return cycle;
+    }
+
+    public void setCycle(Long cycle) {
+        this.cycle = cycle;
+    }
+
+    public Short getApplyStatus() {
+        return applyStatus;
+    }
+
+    public void setApplyStatus(Short applyStatus) {
+        this.applyStatus = applyStatus;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+
+    public SaleTenderProdErp getTenderProd() {
+        return tenderProd;
+    }
+
+    public void setTenderProd(SaleTenderProdErp tenderProd) {
+        this.tenderProd = tenderProd;
+    }
+
+    @JsonIgnore
+    @JSONField(serialize = false)
+    public SaleTenderErp getSaleTender() {
+        return saleTender;
+    }
+
+    public void setSaleTender(SaleTenderErp saleTender) {
+        this.saleTender = saleTender;
+    }
+}

+ 153 - 0
src/main/java/com/uas/platform/b2b/model/SaleTenderProdErp.java

@@ -0,0 +1,153 @@
+package com.uas.platform.b2b.model;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ * 招标单产品信息
+ *
+ * Created by dongbw
+ * 17/03/30 10:00.
+ */
+@Table( name = "purc$tenderprod")
+@Entity
+public class SaleTenderProdErp implements Serializable {
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$tenderprod_gen")
+    @SequenceGenerator(name = "purc$tenderprod_gen", sequenceName = "purc$tenderprod_seq", allocationSize = 1)
+    @Column(name = "tp_id")
+    private Long id;
+
+    /**
+     * 序号,用于按序显示
+     */
+    @Column(name = "tp_index")
+    private Short index;
+
+    /**
+     * 物料名称
+     */
+    @Column(name = "tp_prodtitle")
+    private String prodTitle;
+
+    /**
+     * 物料规格
+     */
+    @Column(name = "tp_prodspec")
+    private String prodSpec;
+
+    /**
+     * 物料型号
+     */
+    @Column(name = "tp_prodcode")
+    private String prodCode;
+
+    /**
+     * 品牌
+     */
+    @Column(name = "tp_brand")
+    private String brand;
+
+    /**
+     * 单位
+     */
+    @Column(name = "tp_unit")
+    private String unit;
+
+    /**
+     * 采购数量
+     */
+    @Column(name = "tp_qty")
+    private Long qty;
+
+    /**
+     * 投标明细
+     */
+    @OneToMany(mappedBy = "tenderProd", cascade = CascadeType.REFRESH, fetch = FetchType.LAZY)
+    @OrderBy("id")
+    private Set<SaleTenderItemErp> saleTenderItems;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Short getIndex() {
+        return index;
+    }
+
+    public void setIndex(Short index) {
+        this.index = index;
+    }
+
+    public String getProdTitle() {
+        return prodTitle;
+    }
+
+    public void setProdTitle(String prodTitle) {
+        this.prodTitle = prodTitle;
+    }
+
+    public String getProdCode() {
+        return prodCode;
+    }
+
+    public void setProdCode(String prodCode) {
+        this.prodCode = prodCode;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public Long getQty() {
+        return qty;
+    }
+
+    public void setQty(Long qty) {
+        this.qty = qty;
+    }
+
+    public String getProdSpec() {
+        return prodSpec;
+    }
+
+    public void setProdSpec(String prodSpec) {
+        this.prodSpec = prodSpec;
+    }
+
+    @JsonIgnore
+    @JSONField(serialize = false)
+    public Set<SaleTenderItemErp> getSaleTenderItems() {
+        return saleTenderItems;
+    }
+
+    public void setSaleTenderItems(Set<SaleTenderItemErp> saleTenderItems) {
+        this.saleTenderItems = saleTenderItems;
+    }
+}