Browse Source

客户查询供应商报价详情接口

hejq 8 years ago
parent
commit
1bef1c398f

+ 13 - 0
src/main/java/com/uas/ps/inquiry/controller/InquiryForBuyerController.java

@@ -1,6 +1,7 @@
 package com.uas.ps.inquiry.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.uas.ps.inquiry.entity.InquiryDetailInfo;
 import com.uas.ps.inquiry.model.PublicInquiryItem;
 import com.uas.ps.inquiry.model.PurcInquiry;
 import com.uas.ps.inquiry.service.InquiryService;
@@ -51,4 +52,16 @@ public class InquiryForBuyerController {
     public void decideQuote(Long id, Short status) throws Exception {
         inquiryService.decideQuote(id, status);
     }
+
+    /**
+     * 客户查询供应商报价详情
+     *
+     * @param id 报价主表id
+     * @param enuu 企业UU
+     * @return
+     */
+    @RequestMapping(value = "/detail", method = RequestMethod.GET)
+    public InquiryDetailInfo findById(Long id, Long enuu) {
+        return inquiryService.findById(id, enuu);
+    }
 }

+ 297 - 0
src/main/java/com/uas/ps/inquiry/entity/InquiryDetailInfo.java

@@ -0,0 +1,297 @@
+package com.uas.ps.inquiry.entity;
+
+
+
+import com.uas.ps.inquiry.model.Enterprise;
+
+import java.util.Date;
+import java.util.Set;
+
+public class InquiryDetailInfo {
+
+	private Long id;
+
+	/**
+	 * 询价单所属企业UU
+	 */
+	private Long enUU;
+
+	/**
+	 * 询价单所属用户UU
+	 */
+	private Long recorderUU;
+
+	/**
+	 * 询价企业
+	 */
+	private Enterprise enterprise;
+
+	/**
+	 * 流水号
+	 */
+	private String code;
+
+	/**
+	 * 单据归属日期
+	 */
+	private Date date;
+
+	/**
+	 * 录入人
+	 */
+	private String recorder;
+
+	/**
+	 * 审核人
+	 */
+	private String auditor;
+
+	/**
+	 * 报价截止日期
+	 */
+	private Date endDate;
+
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+	/**
+	 * 环保要求
+	 */
+	private String environment;
+
+	/**
+	 * 价格类型
+	 */
+	private String priceType;
+
+	/**
+	 * 来源系统单据ID
+	 */
+	private Long sourceId;
+
+	/**
+	 * 附件
+	 */
+	private Set<com.uas.ps.inquiry.model.Attach> attachs;
+
+	/**
+	 * 客户已提交
+	 */
+	private Short check;
+
+	/**
+	 * 是否过期
+	 */
+	private Short overdue;
+
+	/**
+	 * 是否公开<br>
+	 * 1、 公共<br>
+	 * 0、 不用开
+	 */
+	private Short isOpen;
+
+	/**
+	 * 应用来源,主要是为了平台公共询价做处理
+	 */
+	private String sourceApp;
+
+	/**
+	 * 物料,便于管理区分
+	 */
+	private Set<InquiryProductInfo> products;
+
+	/**
+	 * 收货地址
+	 */
+	private String ship;
+
+	/**
+	 * 发票类型
+	 */
+	private Short invoice;
+
+	/**
+	 * 询价类型
+	 */
+	private String inquirytype;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public Long getRecorderUU() {
+		return recorderUU;
+	}
+
+	public void setRecorderUU(Long recorderUU) {
+		this.recorderUU = recorderUU;
+	}
+
+	public Enterprise getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(Enterprise enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public String getAuditor() {
+		return auditor;
+	}
+
+	public void setAuditor(String auditor) {
+		this.auditor = auditor;
+	}
+
+	public Date getEndDate() {
+		return endDate;
+	}
+
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public String getEnvironment() {
+		return environment;
+	}
+
+	public void setEnvironment(String environment) {
+		this.environment = environment;
+	}
+
+	public String getPriceType() {
+		return priceType;
+	}
+
+	public void setPriceType(String priceType) {
+		this.priceType = priceType;
+	}
+
+	public Long getSourceId() {
+		return sourceId;
+	}
+
+	public void setSourceId(Long sourceId) {
+		this.sourceId = sourceId;
+	}
+
+	public Set<com.uas.ps.inquiry.model.Attach> getAttachs() {
+		return attachs;
+	}
+
+	public void setAttachs(Set<com.uas.ps.inquiry.model.Attach> attachs) {
+		this.attachs = attachs;
+	}
+
+	public Short getCheck() {
+		return check;
+	}
+
+	public void setCheck(Short check) {
+		this.check = check;
+	}
+
+	public Short getOverdue() {
+		return overdue;
+	}
+
+	public void setOverdue(Short overdue) {
+		this.overdue = overdue;
+	}
+
+	public Short getIsOpen() {
+		return isOpen;
+	}
+
+	public void setIsOpen(Short isOpen) {
+		this.isOpen = isOpen;
+	}
+
+	public String getSourceApp() {
+		return sourceApp;
+	}
+
+	public void setSourceApp(String sourceApp) {
+		this.sourceApp = sourceApp;
+	}
+
+	public Set<InquiryProductInfo> getProducts() {
+		return products;
+	}
+
+	public void setProducts(Set<InquiryProductInfo> products) {
+		this.products = products;
+	}
+
+	public String getShip() {
+		return ship;
+	}
+
+	public void setShip(String ship) {
+		this.ship = ship;
+	}
+
+	public Short getInvoice() {
+		return invoice;
+	}
+
+	public void setInvoice(Short invoice) {
+		this.invoice = invoice;
+	}
+
+	public String getInquirytype() {
+		return inquirytype;
+	}
+
+	public void setInquirytype(String inquirytype) {
+		this.inquirytype = inquirytype;
+	}
+
+}

+ 114 - 0
src/main/java/com/uas/ps/inquiry/entity/InquiryProductInfo.java

@@ -0,0 +1,114 @@
+package com.uas.ps.inquiry.entity;
+
+
+import com.uas.ps.inquiry.model.PublicInquiryItem;
+import com.uas.ps.inquiry.model.PublicInquiryItemInfo;
+
+import java.util.Set;
+
+public class InquiryProductInfo {
+
+	/**
+	 * id
+	 */
+	private Long id;
+
+	/**
+	 * 商品信息标题
+	 */
+	private String title;
+
+	/**
+	 * 产品编号
+	 */
+	private String code;
+
+	/**
+	 * 产品规格
+	 */
+	private String spec;
+
+	/**
+	 * 品牌
+	 */
+	private String brand;
+
+	/**
+	 * 单位
+	 */
+	private String unit;
+
+	/**
+	 * 询价详情
+	 */
+	private Set<PublicInquiryItem> inquiryItems;
+
+	/**
+	 * 公共询价信息明细
+	 */
+	private Set<PublicInquiryItemInfo> publicInquiryItemInfos;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getSpec() {
+		return spec;
+	}
+
+	public void setSpec(String spec) {
+		this.spec = spec;
+	}
+
+	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 Set<PublicInquiryItem> getInquiryItems() {
+		return inquiryItems;
+	}
+
+	public void setInquiryItems(Set<PublicInquiryItem> inquiryItems) {
+		this.inquiryItems = inquiryItems;
+	}
+
+	public Set<PublicInquiryItemInfo> getPublicInquiryItemInfos() {
+		return publicInquiryItemInfos;
+	}
+
+	public void setPublicInquiryItemInfos(Set<PublicInquiryItemInfo> publicInquiryItemInfos) {
+		this.publicInquiryItemInfos = publicInquiryItemInfos;
+	}
+}

+ 15 - 0
src/main/java/com/uas/ps/inquiry/model/PublicInquiryItem.java

@@ -101,6 +101,13 @@ public class PublicInquiryItem implements Serializable {
 	@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
 	 */
@@ -426,6 +433,14 @@ public class PublicInquiryItem implements Serializable {
 		this.vendUU = vendUU;
 	}
 
+	public Enterprise getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(Enterprise enterprise) {
+		this.enterprise = enterprise;
+	}
+
 	public List<PublicInquiryReply> getReplies() {
 		return replies;
 	}

+ 1 - 1
src/main/java/com/uas/ps/inquiry/model/PublicInquiryItemInfo.java

@@ -97,7 +97,7 @@ public class PublicInquiryItemInfo implements Serializable {
 	private Long vendUU;
 
 	/**
-	 * 询价企业信息
+	 * 供应商企业信息
 	 */
 	@OneToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH })
 	@JoinColumn(name = "id_venduu", insertable = false, updatable = false)

+ 10 - 0
src/main/java/com/uas/ps/inquiry/service/InquiryService.java

@@ -1,5 +1,6 @@
 package com.uas.ps.inquiry.service;
 
+import com.uas.ps.inquiry.entity.InquiryDetailInfo;
 import com.uas.ps.inquiry.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
@@ -34,4 +35,13 @@ public interface InquiryService {
      * @param status 状态
      */
     void decideQuote(Long id, Short status);
+
+    /**
+     * 针对客户,查询供应商报价详情
+     *
+     * @param id 主表id
+     * @param enuu 企业UU
+     * @return
+     */
+    InquiryDetailInfo findById(Long id, Long enuu);
 }

+ 78 - 5
src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java

@@ -1,9 +1,9 @@
 package com.uas.ps.inquiry.service.impl;
 
-import com.uas.ps.inquiry.dao.PublicInquiryItemDao;
-import com.uas.ps.inquiry.dao.PurcInquiryDao;
-import com.uas.ps.inquiry.dao.PurcInquiryItemDao;
-import com.uas.ps.inquiry.dao.PurcInquiryItemInfoDao;
+import com.uas.ps.core.util.CollectionUtils;
+import com.uas.ps.inquiry.dao.*;
+import com.uas.ps.inquiry.entity.InquiryDetailInfo;
+import com.uas.ps.inquiry.entity.InquiryProductInfo;
 import com.uas.ps.inquiry.model.*;
 import com.uas.ps.inquiry.page.PageInfo;
 import com.uas.ps.inquiry.page.SearchFilter;
@@ -23,7 +23,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import java.util.Date;
+import java.util.*;
 
 /**
  * 针对转询价报价单的数据查询操作
@@ -42,6 +42,12 @@ public class InquiryServiceImpl implements InquiryService {
     @Autowired
     private PurcInquiryDao purcInquiryDao;
 
+    @Autowired
+    private PublicInquiryDao inquiryDao;
+
+    @Autowired
+    private ProductDao productDao;
+
     /**
      * 查询公共询价列表信息
      *
@@ -100,4 +106,71 @@ public class InquiryServiceImpl implements InquiryService {
         item.setAgreed(status);
         itemDao.save(item);
     }
+
+    /**
+     * 针对客户,查询供应商报价详情
+     *
+     * @param id   主表id
+     * @param enuu 企业UU
+     * @return
+     */
+    @Override
+    public InquiryDetailInfo findById(Long id, Long enuu) {
+        PublicInquiry inquiry = inquiryDao.findOne(id);
+        InquiryDetailInfo inquiryInfo = new InquiryDetailInfo();
+        if (inquiry != null) {
+            inquiryInfo.setAttachs(inquiry.getAttachs());
+            inquiryInfo.setAuditor(inquiry.getAuditor());
+            inquiryInfo.setCheck(inquiry.getCheck());
+            inquiryInfo.setCode(inquiry.getCode());
+            inquiryInfo.setDate(inquiry.getDate());
+            inquiryInfo.setEndDate(inquiry.getEndDate());
+            inquiryInfo.setEnterprise(inquiry.getEnterprise());
+            inquiryInfo.setEnUU(inquiry.getEnUU());
+            inquiryInfo.setEnvironment(inquiry.getEnvironment());
+            inquiryInfo.setId(inquiry.getId());
+            inquiryInfo.setIsOpen(inquiry.getIsOpen());
+            inquiryInfo.setOverdue(inquiry.getOverdue());
+            inquiryInfo.setPriceType(inquiry.getPriceType());
+            inquiryInfo.setRecorder(inquiry.getRecorder());
+            inquiryInfo.setRecorderUU(inquiry.getRecorderUU());
+            inquiryInfo.setRemark(inquiry.getRemark());
+            inquiryInfo.setSourceApp(inquiry.getSourceApp());
+            inquiryInfo.setSourceId(inquiry.getSourceId());
+            inquiryInfo.setShip(inquiry.getShip());
+            inquiryInfo.setInvoice(inquiry.getInvoice());
+            inquiryInfo.setInquirytype(inquiry.getInquirytype());
+            Set<Long> ids = new HashSet<Long>();
+            List<Long> idList = new ArrayList<>();
+            Set<InquiryProductInfo> products = new HashSet<InquiryProductInfo>();
+            if (!CollectionUtils.isEmpty(inquiry.getInquiryItems())) {
+                for (PublicInquiryItem item : inquiry.getInquiryItems()) {
+                    idList.add(item.getProductId());
+                    ids.addAll(idList);
+                }
+            }
+            if (!CollectionUtils.isEmpty(ids)) {
+                for (Long idInfo : ids) {
+                    InquiryProductInfo productInfo = new InquiryProductInfo();
+                    Set<PublicInquiryItem> items = new HashSet<PublicInquiryItem>();
+                    Product product = productDao.findOne(idInfo);
+                    productInfo.setBrand(product.getBrand());
+                    productInfo.setId(product.getId());
+                    productInfo.setSpec(product.getSpec());
+                    productInfo.setCode(product.getCode());
+                    productInfo.setTitle(product.getTitle());
+                    productInfo.setUnit(product.getUnit());
+                    for (PublicInquiryItem item : inquiry.getInquiryItems()) {
+                        if (item.getProductId().equals(idInfo)) {
+                            items.add(item);
+                        }
+                    }
+                    productInfo.setInquiryItems(items);
+                    products.add(productInfo);
+                    inquiryInfo.setProducts(products);
+                }
+            }
+        }
+        return inquiryInfo;
+    }
 }