Browse Source

Merge remote-tracking branch 'origin/dev-mysql' into dev-mysql

hejq 8 years ago
parent
commit
26efdb9496

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

@@ -0,0 +1,14 @@
+package com.uas.platform.b2b.dao;
+
+import com.uas.platform.b2b.model.SaleTenderItemSave;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author: huj
+ * @Date: Created in 9:15 2018/5/9.
+ */
+@Repository
+public interface SaleTenderItemSaveDao extends JpaSpecificationExecutor<SaleTenderItemSave>,JpaRepository<SaleTenderItemSave, Long> {
+}

+ 18 - 0
src/main/java/com/uas/platform/b2b/dao/SaleTenderSaveDao.java

@@ -0,0 +1,18 @@
+package com.uas.platform.b2b.dao;
+
+import com.uas.platform.b2b.model.SaleTenderSave;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @Author: huj
+ * @Date: Created in 18:15 2018/5/8.
+ */
+@Repository
+@Transactional
+public interface SaleTenderSaveDao extends JpaSpecificationExecutor<SaleTenderSave>,JpaRepository<SaleTenderSave,Long> {
+
+    SaleTenderSave findByEnUUAndVendUUAndCode(Long enUU, Long vendUU, String code);
+}

+ 143 - 0
src/main/java/com/uas/platform/b2b/model/SaleTenderItemSave.java

@@ -0,0 +1,143 @@
+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;
+
+/**
+ * @Author: huj
+ * @Date: Created in 9:03 2018/5/9.
+ */
+@Table(name = "sale$tenderitem")
+@Entity
+public class SaleTenderItemSave implements Serializable {
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @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 PurchaseTenderProd tenderProd;
+
+    /**
+     * 投标主表
+     */
+    @ManyToOne(cascade = {CascadeType.REFRESH,CascadeType.MERGE})
+    @JoinColumn(name = "sti_stid", nullable = false)
+    private SaleTenderSave 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;
+    }
+
+    @JsonIgnore
+    @JSONField(serialize = false)
+    public PurchaseTenderProd getTenderProd() {
+        return tenderProd;
+    }
+
+    public void setTenderProd(PurchaseTenderProd tenderProd) {
+        this.tenderProd = tenderProd;
+    }
+
+    public SaleTenderSave getSaleTender() {
+        return saleTender;
+    }
+
+    public void setSaleTender(SaleTenderSave  saleTender) {
+        this.saleTender = saleTender;
+    }
+}

+ 619 - 0
src/main/java/com/uas/platform/b2b/model/SaleTenderSave.java

@@ -0,0 +1,619 @@
+package com.uas.platform.b2b.model;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.uas.platform.b2b.erp.model.SaleTenderItemErp;
+import com.uas.platform.b2b.temporary.model.TenderContactInfo;
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+/**
+ * 投标单主表 (uas招标需要投标状态根据公布结果时间判断,用视图处理,
+ *            投标单保存时,报错此处不允许虚拟列,所以这个实体还是用投标单表)
+ *            仅用于保存投标单
+ * <p>
+ * Created by dongbw on 17/03/07 11:16.
+ */
+
+@Table(name = "sale$tender")
+@Entity
+public class SaleTenderSave implements Serializable, Comparable<SaleTender> {
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @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;
+
+    /**
+     * 供应商联系人uu
+     */
+    @Column(name = "st_useruu")
+    private Long useruu;
+
+    /**
+     * 联系人
+     */
+    @OneToOne
+    @JoinColumn(name = "st_useruu", insertable = false, updatable = false)
+    private UserBaseInfo userInfo;
+
+    /**
+     * 招标发起人uu
+     */
+    @Column(name = "st_recorderuu")
+    private Long recorderuu;
+
+    /**
+     * 招标发起人
+     */
+    @OneToOne(cascade = CascadeType.REFRESH )
+    @JoinColumn(name = "st_recorderuu", insertable = false, updatable = false)
+    private UserBaseInfo recorder;
+
+    /**
+     * 供应商联系人电话
+     */
+    @Column(name = "st_usertel")
+    private String userTel;
+
+    /**
+     * 供应商联系人邮箱
+     */
+    @Column(name = "st_useremail")
+    private String userEmail;
+
+    /**
+     * 招标企业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_ispublish")
+    private Short isPublish;
+
+    /**
+     * 是否含税(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<SaleTenderItem> 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 = "st_auditstatus")
+    private Short auditStatus;
+
+    /**
+     * 招标单id(消息跳转url用)
+     */
+    @Column(name = "st_ptid")
+    private Long ptId;
+
+    /**
+     * 是否已过期,根据enddate判断,为视图虚拟列 0 未过期,1已过期
+     * @param tender
+     */
+    @Column(name = "st_overdue", insertable = false, updatable = false)
+    private Short overdue;
+
+    /**
+     * 是否已过期,根据publishdate判断,为视图虚拟列 0 未公布,1已公布
+     * @param tender
+     */
+    @Column(name = "st_result", insertable = false, updatable = false)
+    private Short result;
+
+    /**
+     * 是否全包 (1为全包,0为部分供料)
+     */
+    @Column(name = "st_ifall")
+    private Short ifAll;
+
+    /**
+     * 总项目周期(天 全包模式用)
+     */
+    @Column(name = "st_cycle")
+    private Long cycle;
+
+    /**
+     * 金额总计(全包模式用)
+     */
+    @Column(name = "st_totalmoney")
+    private Double totalMoney;
+
+    /**
+     * 税率(% 全包模式用)
+     */
+    @Column(name = "st_taxrate")
+    private Integer taxrate;
+
+    /**
+     * 提问截止时间
+     */
+    @Column(name = "st_questionenddate")
+    private Date questionEndDate;
+
+    /**
+     * 是否已截止提问,根据questionEndDate判断,为视图虚拟列 0 未截止提问,1已截止
+     * @param tender
+     */
+    @Column(name = "st_questionend", insertable = false, updatable = false)
+    private Short questionEnd;
+
+    public SaleTenderSave(PurchaseTender tender) {
+        this.setCode(tender.getCode());
+        this.setCertificate(tender.getCertificate());
+        this.setCurrency(tender.getCurrency());
+        this.setDate(new Date());
+        this.setEndDate(tender.getEndDate());
+        this.setEnterprise(tender.getEnterprise());
+        this.setIfOpen(tender.getIfOpen());
+        this.setIsPublish(tender.getIsPublish());
+        this.setIfTax(tender.getIfTax());
+        this.setInvoiceType(tender.getInvoiceType());
+        this.setModified(tender.getModified());
+        this.setPayment(tender.getPayment());
+        this.setPublishDate(tender.getPublishDate());
+        this.setShipAddress(tender.getShipAddress());
+        this.setStatus("待投标");// 转了投标单,默认是待投标状态
+        this.setTitle(tender.getTitle());
+        this.setEnUU(tender.getEnUU());
+        this.setRecorderuu(tender.getUseruu());
+        this.setPtId(tender.getId());
+        this.setIfAll(tender.getIfAll());
+        this.setQuestionEndDate(tender.getQuestionEndDate());
+    }
+
+    public SaleTenderSave() {
+    }
+
+
+    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 Long getUseruu() {
+        return useruu;
+    }
+
+    public void setUseruu(Long useruu) {
+        this.useruu = useruu;
+    }
+
+    public UserBaseInfo getUserInfo() {
+        return userInfo;
+    }
+
+    public void setUserInfo(UserBaseInfo userInfo) {
+        this.userInfo = userInfo;
+    }
+
+    public Short getIfOpen() {
+        return ifOpen;
+    }
+
+    public void setIfOpen(Short ifOpen) {
+        this.ifOpen = ifOpen;
+    }
+
+    public Short getIsPublish() {
+        return isPublish;
+    }
+
+    public void setIsPublish(Short isPublish) {
+        this.isPublish = isPublish;
+    }
+
+    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;
+    }
+
+    @JsonIgnore
+    @JSONField(serialize = false)
+    public Set<SaleTenderItem> getSaleTenderItems() {
+        return saleTenderItems;
+    }
+
+    public void setSaleTenderItems(Set<SaleTenderItem> 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;
+    }
+
+    @Override
+    public int compareTo(SaleTender o) {
+        return this.getId().compareTo(o.getId());
+    }
+
+    public Short getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(Short auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    public Long getRecorderuu() {
+        return recorderuu;
+    }
+
+    public void setRecorderuu(Long recorderuu) {
+        this.recorderuu = recorderuu;
+    }
+
+    public UserBaseInfo getRecorder() {
+        return recorder;
+    }
+
+    public void setRecorder(UserBaseInfo recorder) {
+        this.recorder = recorder;
+    }
+
+    public Long getPtId() {
+        return ptId;
+    }
+
+    public void setPtId(Long ptId) {
+        this.ptId = ptId;
+    }
+
+    public Short getOverdue() {
+        return overdue;
+    }
+
+    public void setOverdue(Short overdue) {
+        this.overdue = overdue;
+    }
+
+    public Short getResult() {
+        return result;
+    }
+
+    public void setResult(Short result) {
+        this.result = result;
+    }
+
+    public String getUserEmail() {
+        return userEmail;
+    }
+
+    public void setUserEmail(String userEmail) {
+        this.userEmail = userEmail;
+    }
+
+    public Short getIfAll() {
+        return ifAll;
+    }
+
+    public void setIfAll(Short ifAll) {
+        this.ifAll = ifAll;
+    }
+
+    public Long getCycle() {
+        return cycle;
+    }
+
+    public void setCycle(Long cycle) {
+        this.cycle = cycle;
+    }
+
+    public Double getTotalMoney() {
+        return totalMoney;
+    }
+
+    public void setTotalMoney(Double totalMoney) {
+        this.totalMoney = totalMoney;
+    }
+
+    public Integer getTaxrate() {
+        return taxrate;
+    }
+
+    public void setTaxrate(Integer taxrate) {
+        this.taxrate = taxrate;
+    }
+
+    public Date getQuestionEndDate() {
+        return questionEndDate;
+    }
+
+    public void setQuestionEndDate(Date questionEndDate) {
+        this.questionEndDate = questionEndDate;
+    }
+
+    public Short getQuestionEnd() {
+        return questionEnd;
+    }
+
+    public void setQuestionEnd(Short questionEnd) {
+        this.questionEnd = questionEnd;
+    }
+}

+ 24 - 7
src/main/java/com/uas/platform/b2b/service/impl/PurchaseTenderServiceImpl.java

@@ -114,6 +114,12 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
     @Autowired
     private PurchaseTenderAnswerDao purchaseTenderAnswerDao;
 
+    @Autowired
+    private SaleTenderSaveDao saleTenderSaveDao;
+
+    @Autowired
+    private  SaleTenderItemSaveDao saleTenderItemSaveDao;
+
 
     /**
      *  发布或保存(新录入单据)
@@ -463,22 +469,33 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
                     enBaseInfo = new EnterpriseBaseInfo(enterprise.getUu(), enterprise.getEnBussinessCode(), enterprise.getEnName(), enterprise.getEnAddress());
                     enterpriseBaseInfoDao.save(enBaseInfo);
                 }
-                SaleTenderItem tenderItem = new SaleTenderItem();
+                //SaleTenderItem tenderItem = new SaleTenderItem();
+                SaleTenderItemSave saleTenderItemSave = new SaleTenderItemSave();
                 // 找不到投标单主表才新建一个
                 if (tender.getEnUU() != null && tender.getCode() != null) {
                     SaleTender saleTender = saleTenderDao.findByEnUUAndVendUUAndCode(tender.getEnUU(), vendUU, tender.getCode());
+                    SaleTenderSave saleTenderSave = saleTenderSaveDao.findByEnUUAndVendUUAndCode(tender.getEnUU(), vendUU, tender.getCode());
                     if (null == saleTender) { // 不存在投标单说明未转投标单,进行新增投标单操作
-                        saleTender = new SaleTender(tender);
+                        /*saleTender = new SaleTender(tender);
                         saleTender.setUseruu(SystemSession.getUser().getUserUU());
                         saleTender.setUser(SystemSession.getUser().getUserName());
                         saleTender.setUserTel(SystemSession.getUser().getUserTel());
                         saleTender.setUserEmail(SystemSession.getUser().getUserEmail());
-                        saleTender.setVendUU(vendUU);
-                        saleTenderDao.save(saleTender);
+                        saleTender.setVendUU(vendUU);*/
+                        saleTenderSave = new SaleTenderSave(tender);
+                        saleTenderSave.setUseruu(SystemSession.getUser().getUserUU());
+                        saleTenderSave.setUser(SystemSession.getUser().getUserName());
+                        saleTenderSave.setUserTel(SystemSession.getUser().getUserTel());
+                        saleTenderSave.setUserEmail(SystemSession.getUser().getUserEmail());
+                        saleTenderSave.setVendUU(vendUU);
+                        saleTenderSaveDao.save(saleTenderSave);
                     }
-                    tenderItem.setSaleTender(saleTender);
-                    tenderItem.setTenderProd(tenderProd);
-                    saleTenderItemDao.save(tenderItem);
+                    //tenderItem.setSaleTender(saleTender);
+                    //tenderItem.setTenderProd(tenderProd);
+                    //saleTenderItemDao.save(tenderItem);
+                    saleTenderItemSave.setSaleTender(saleTenderSave);
+                    saleTenderItemSave.setTenderProd(tenderProd);
+                    saleTenderItemSaveDao.save(saleTenderItemSave);
                 }
             }
         }