Browse Source

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@348 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d

administrator 11 years ago
parent
commit
89a07fe4d8

+ 23 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseInquiryDao.java

@@ -0,0 +1,23 @@
+package com.uas.platform.b2b.dao;
+
+import java.util.List;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+import com.uas.platform.b2b.model.PurchaseInquiry;
+
+@Repository
+public interface PurchaseInquiryDao extends JpaSpecificationExecutor<PurchaseInquiry>, JpaRepository<PurchaseInquiry, Long> {
+
+	/**
+	 * @param enUU
+	 *            询价方企业ID
+	 * @param code
+	 *            流水号
+	 * @return
+	 */
+	public List<PurchaseInquiry> findByEnUUAndCode(long enUU, String code);
+
+}

+ 53 - 0
src/main/java/com/uas/platform/b2b/erp/controller/InquiryController.java

@@ -0,0 +1,53 @@
+package com.uas.platform.b2b.erp.controller;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.uas.platform.b2b.erp.model.Inquiry;
+import com.uas.platform.b2b.erp.service.InquiryService;
+import com.uas.platform.b2b.service.PurchaseInquiryService;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+
+/**
+ * 对买家ERP的数据接口<br>
+ * 买家询价单处理
+ * 
+ * @author yingp
+ * 
+ */
+@Controller
+@RequestMapping("/erp/purchase/inquiry")
+public class InquiryController {
+
+	@Autowired
+	private InquiryService inquiryService;
+
+	@Autowired
+	private PurchaseInquiryService purchaseInquiryService;
+
+	/**
+	 * 将买家ERP的采购询价写到平台
+	 * 
+	 * @param data
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(method = RequestMethod.POST)
+	@ResponseBody
+	public void savePurchases(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<Inquiry> inquiries = FlexJsonUtils.fromJsonArray(jsonStr, Inquiry.class);
+		purchaseInquiryService.save(inquiryService.convertInquiry(inquiries));
+	}
+	
+	
+
+}

+ 2 - 2
src/main/java/com/uas/platform/b2b/erp/controller/PurchaseChangeController.java

@@ -35,7 +35,7 @@ public class PurchaseChangeController {
 	private PurchaseOrderChangeService purchaseOrderChangeService;
 
 	/**
-	 * 将ERP的采购订单变更单写到平台
+	 * 将ERP的采购变更单写到平台
 	 * 
 	 * @param data
 	 * @return
@@ -50,7 +50,7 @@ public class PurchaseChangeController {
 	}
 
 	/**
-	 * 买家ERP获取平台的变更单的回复信息
+	 * 买家ERP从平台获取变更单的回复信息
 	 * 
 	 * @return
 	 */

+ 119 - 0
src/main/java/com/uas/platform/b2b/erp/model/Inquiry.java

@@ -0,0 +1,119 @@
+package com.uas.platform.b2b.erp.model;
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+
+import com.uas.platform.b2b.model.PurchaseInquiry;
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+import com.uas.platform.b2b.support.SystemSession;
+
+/**
+ * 买家ERP系统的采购询价单
+ * 
+ * @author yingp
+ * 
+ */
+public class Inquiry {
+
+	private String in_code;
+	private Date in_date;
+	private String in_recorder;
+	private String in_auditor;
+	private Date in_recorddate;
+	private Date in_enddate;
+	private String in_remark;
+	private List<InquiryDetail> details;
+
+	public String getIn_code() {
+		return in_code;
+	}
+
+	public void setIn_code(String in_code) {
+		this.in_code = in_code;
+	}
+
+	public Date getIn_date() {
+		return in_date;
+	}
+
+	public void setIn_date(Date in_date) {
+		this.in_date = in_date;
+	}
+
+	public String getIn_recorder() {
+		return in_recorder;
+	}
+
+	public void setIn_recorder(String in_recorder) {
+		this.in_recorder = in_recorder;
+	}
+
+	public String getIn_auditor() {
+		return in_auditor;
+	}
+
+	public void setIn_auditor(String in_auditor) {
+		this.in_auditor = in_auditor;
+	}
+
+	public Date getIn_recorddate() {
+		return in_recorddate;
+	}
+
+	public void setIn_recorddate(Date in_recorddate) {
+		this.in_recorddate = in_recorddate;
+	}
+
+	public Date getIn_enddate() {
+		return in_enddate;
+	}
+
+	public void setIn_enddate(Date in_enddate) {
+		this.in_enddate = in_enddate;
+	}
+
+	public String getIn_remark() {
+		return in_remark;
+	}
+
+	public void setIn_remark(String in_remark) {
+		this.in_remark = in_remark;
+	}
+
+	public List<InquiryDetail> getDetails() {
+		return details;
+	}
+
+	public void setDetails(List<InquiryDetail> details) {
+		this.details = details;
+	}
+
+	/**
+	 * 转为平台的采购询价
+	 * 
+	 * @return
+	 */
+	public PurchaseInquiry convert() {
+		PurchaseInquiry inquiry = new PurchaseInquiry();
+		inquiry.setCode(this.in_code);
+		inquiry.setDate(this.in_date);
+		inquiry.setEndDate(this.in_enddate);
+		inquiry.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+		inquiry.setEnterprise(SystemSession.getUser().getEnterprise());
+		inquiry.setRecorder(this.in_recorder);
+		inquiry.setRemark(this.in_remark);
+		if (!CollectionUtils.isEmpty(this.details)) {
+			Set<PurchaseInquiryItem> inquiryItems = new HashSet<PurchaseInquiryItem>();
+			for (InquiryDetail detail : details) {
+				inquiryItems.add(detail.convert());
+			}
+			inquiry.setInquiryItems(inquiryItems);
+		}
+		return inquiry;
+	}
+
+}

+ 89 - 0
src/main/java/com/uas/platform/b2b/erp/model/InquiryDetail.java

@@ -0,0 +1,89 @@
+package com.uas.platform.b2b.erp.model;
+
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+import com.uas.platform.b2b.support.SystemSession;
+
+/**
+ * 买家ERP系统的采购询价单明细
+ * 
+ * @author yingp
+ * 
+ */
+public class InquiryDetail {
+
+	private short id_detno;
+	private String id_prodcode;
+	private String id_currency;
+	private Float id_rate;
+	private Long id_venduu;
+	private String id_remark;
+
+	public short getId_detno() {
+		return id_detno;
+	}
+
+	public void setId_detno(short id_detno) {
+		this.id_detno = id_detno;
+	}
+
+	public String getId_prodcode() {
+		return id_prodcode;
+	}
+
+	public void setId_prodcode(String id_prodcode) {
+		this.id_prodcode = id_prodcode;
+	}
+
+	public String getId_currency() {
+		return id_currency;
+	}
+
+	public void setId_currency(String id_currency) {
+		this.id_currency = id_currency;
+	}
+
+	public Float getId_rate() {
+		return id_rate;
+	}
+
+	public void setId_rate(Float id_rate) {
+		this.id_rate = id_rate;
+	}
+
+	public Long getId_venduu() {
+		return id_venduu;
+	}
+
+	public void setId_venduu(Long id_venduu) {
+		this.id_venduu = id_venduu;
+	}
+
+	public String getId_remark() {
+		return id_remark;
+	}
+
+	public void setId_remark(String id_remark) {
+		this.id_remark = id_remark;
+	}
+
+	/**
+	 * 转为平台的采购询价明细
+	 * 
+	 * @return
+	 */
+	public PurchaseInquiryItem convert() {
+		PurchaseInquiryItem inquiryItem = new PurchaseInquiryItem();
+		inquiryItem.setCurrency(this.id_currency);
+		inquiryItem.setNumber(this.id_detno);
+		inquiryItem.setRemark(this.id_remark);
+		inquiryItem.setTaxrate(this.id_rate);
+		inquiryItem.setVendUU(this.id_venduu);
+		Product product = new Product();
+		product.setCode(this.id_prodcode);
+		product.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+		inquiryItem.setProduct(product);
+		return inquiryItem;
+	}
+
+}

+ 1 - 0
src/main/java/com/uas/platform/b2b/erp/model/SaleDown.java

@@ -133,6 +133,7 @@ public class SaleDown {
 		this.sa_pocode = order.getCode();
 		this.sa_shipby = order.getShipAddress();
 		this.sa_recorddate = new Date();
+		this.sa_payments = order.getPayments();
 		if (!CollectionUtils.isEmpty(order.getOrderItems())) {
 			List<SaleDownDetail> details = new ArrayList<SaleDownDetail>();
 			for (PurchaseOrderAllItem item : order.getOrderItems()) {

+ 18 - 0
src/main/java/com/uas/platform/b2b/erp/service/InquiryService.java

@@ -0,0 +1,18 @@
+package com.uas.platform.b2b.erp.service;
+
+import java.util.List;
+
+import com.uas.platform.b2b.erp.model.Inquiry;
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+
+public interface InquiryService {
+
+	/**
+	 * 将ERP系统的采购询价,转为平台的询价单
+	 * 
+	 * @param inquiries
+	 * @return
+	 */
+	List<PurchaseInquiryItem> convertInquiry(List<Inquiry> inquiries);
+
+}

+ 55 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/InquiryServiceImpl.java

@@ -0,0 +1,55 @@
+package com.uas.platform.b2b.erp.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PurchaseInquiryDao;
+import com.uas.platform.b2b.erp.model.Inquiry;
+import com.uas.platform.b2b.erp.service.InquiryService;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurchaseInquiry;
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+import com.uas.platform.b2b.support.SystemSession;
+
+@Service
+public class InquiryServiceImpl implements InquiryService {
+
+	@Autowired
+	private ProductDao productDao;
+
+	@Autowired
+	private PurchaseInquiryDao purchaseInquiryDao;
+
+	@Override
+	public List<PurchaseInquiryItem> convertInquiry(List<Inquiry> inquiries) {
+		List<PurchaseInquiryItem> inquiryItems = new ArrayList<PurchaseInquiryItem>();
+		long enUU = SystemSession.getUser().getEnterprise().getUu();
+		for (Inquiry inquiry : inquiries) {
+			// 先查看是否已存在
+			List<PurchaseInquiry> inquiries2 = purchaseInquiryDao.findByEnUUAndCode(enUU, inquiry.getIn_code());
+			if (inquiries2.size() == 0) {
+				PurchaseInquiry purchaseInquiry = inquiry.convert();
+				if (!CollectionUtils.isEmpty(purchaseInquiry.getInquiryItems())) {
+					for (PurchaseInquiryItem item : purchaseInquiry.getInquiryItems()) {
+						item.setInquiry(purchaseInquiry);
+						// 取平台的产品ID
+						Product product = item.getProduct();
+						List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(), product.getCode());
+						if (products.size() > 0) {
+							item.setProduct(products.get(0));
+							item.setProductId(products.get(0).getId());
+						}
+					}
+					inquiryItems.addAll(purchaseInquiry.getInquiryItems());
+				}
+			}
+		}
+		return inquiryItems;
+	}
+
+}

+ 181 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseInquiry.java

@@ -0,0 +1,181 @@
+package com.uas.platform.b2b.model;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Set;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.OrderBy;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+import org.codehaus.jackson.annotate.JsonIgnore;
+
+/**
+ * 平台里面,以供应商的角度来查看采购询价单
+ * 
+ * @author yingp
+ *
+ */
+@Table(name = "purc$inquiry")
+@Entity
+public class PurchaseInquiry implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 2147648497108840786L;
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$inquiry_gen")
+	@SequenceGenerator(name = "purc$inquiry_gen", sequenceName = "purc$inquiry_seq", allocationSize = 1)
+	@Column(name = "in_id")
+	private Long id;
+
+	/**
+	 * 询价单所属企业UU
+	 */
+	@Column(name = "in_enuu")
+	private Long enUU;
+
+	/**
+	 * 询价企业
+	 */
+	@OneToOne(cascade = { CascadeType.MERGE })
+	@JoinColumn(name = "in_enuu", insertable = false, updatable = false)
+	private Enterprise enterprise;
+
+	/**
+	 * 流水号
+	 */
+	@Column(name = "in_code")
+	private String code;
+
+	/**
+	 * 单据归属日期
+	 */
+	@Column(name = "in_date")
+	private Date date;
+
+	/**
+	 * 录入人
+	 */
+	@Column(name = "in_recorder")
+	private String recorder;
+
+	/**
+	 * 审核人
+	 */
+	@Column(name = "in_auditor")
+	private String auditor;
+
+	/**
+	 * 报价截止日期
+	 */
+	@Column(name = "in_enddate")
+	private Date endDate;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "in_remark")
+	private String remark;
+
+	/**
+	 * 询价明细
+	 */
+	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OrderBy("number")
+	private Set<PurchaseInquiryItem> inquiryItems;
+
+	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 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 Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
+	public Enterprise getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(Enterprise enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	@JsonIgnore
+	public Set<PurchaseInquiryItem> getInquiryItems() {
+		return inquiryItems;
+	}
+
+	public void setInquiryItems(Set<PurchaseInquiryItem> inquiryItems) {
+		this.inquiryItems = inquiryItems;
+	}
+
+}

+ 149 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseInquiryItem.java

@@ -0,0 +1,149 @@
+package com.uas.platform.b2b.model;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.SequenceGenerator;
+import javax.persistence.Table;
+
+/**
+ * 平台里面,以供应商的角度来查看采购询价单明细
+ * 
+ * @author yingp
+ *
+ */
+@Table(name = "purc$inquiryitems")
+@Entity
+public class PurchaseInquiryItem {
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$inquiryitems_gen")
+	@SequenceGenerator(name = "purc$inquiryitems_gen", sequenceName = "purc$inquiryitems_seq", allocationSize = 1)
+	@Column(name = "id_id")
+	private Long id;
+
+	/**
+	 * 序号
+	 */
+	@Column(name = "id_number")
+	private Short number;
+
+	/**
+	 * 询价单
+	 */
+	@ManyToOne(cascade = CascadeType.ALL, optional = true)
+	@JoinColumn(name = "id_inid", nullable = false)
+	private PurchaseInquiry inquiry;
+
+	/**
+	 * 产品
+	 */
+	@OneToOne(cascade = { CascadeType.REFRESH })
+	@JoinColumn(name = "id_prid", insertable = false, updatable = false)
+	private Product product;
+
+	@Column(name = "id_prid")
+	private Long productId;
+
+	/**
+	 * 币种
+	 */
+	@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;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Short getNumber() {
+		return number;
+	}
+
+	public void setNumber(Short number) {
+		this.number = number;
+	}
+
+	public PurchaseInquiry getInquiry() {
+		return inquiry;
+	}
+
+	public void setInquiry(PurchaseInquiry inquiry) {
+		this.inquiry = inquiry;
+	}
+
+	public Product getProduct() {
+		return product;
+	}
+
+	public void setProduct(Product product) {
+		this.product = product;
+	}
+
+	public Long getProductId() {
+		return productId;
+	}
+
+	public void setProductId(Long productId) {
+		this.productId = productId;
+	}
+
+	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 Long getVendUU() {
+		return vendUU;
+	}
+
+	public void setVendUU(Long vendUU) {
+		this.vendUU = vendUU;
+	}
+}

+ 18 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseInquiryService.java

@@ -0,0 +1,18 @@
+package com.uas.platform.b2b.service;
+
+import java.util.List;
+
+import com.uas.platform.b2b.model.PurchaseInquiryItem;
+
+public interface PurchaseInquiryService {
+
+	/**
+	 * 批量保存、修改采购询价
+	 * 
+	 * @param items
+	 *            询价明细
+	 * @return
+	 */
+	public void save(List<PurchaseInquiryItem> items);
+
+}