Browse Source

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

administrator 11 years ago
parent
commit
14156aea58

+ 12 - 1
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderDao.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2b.dao;
 package com.uas.platform.b2b.dao;
 
 
+import java.util.List;
+
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
@@ -8,5 +10,14 @@ import com.uas.platform.b2b.model.PurchaseOrder;
 
 
 @Repository
 @Repository
 public interface PurchaseOrderDao extends JpaSpecificationExecutor<PurchaseOrder>, JpaRepository<PurchaseOrder, Long> {
 public interface PurchaseOrderDao extends JpaSpecificationExecutor<PurchaseOrder>, JpaRepository<PurchaseOrder, Long> {
-
+	
+	/**
+	 * @param enUU
+	 *            买方企业ID
+	 * @param code
+	 *            订单号
+	 * @return
+	 */
+	public List<PurchaseOrder> findByEnUUAndCode(long enUU, String code);
+	
 }
 }

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

@@ -1,7 +1,20 @@
 package com.uas.platform.b2b.erp.controller;
 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.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 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.PurchaseChange;
+import com.uas.platform.b2b.erp.service.PurchaseChangeService;
+import com.uas.platform.b2b.service.PurchaseOrderChangeService;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
 
 
 /**
 /**
  * 对买家ERP的数据接口<br>
  * 对买家ERP的数据接口<br>
@@ -13,7 +26,26 @@ import org.springframework.web.bind.annotation.RequestMapping;
 @Controller
 @Controller
 @RequestMapping("/erp/purchase/change")
 @RequestMapping("/erp/purchase/change")
 public class PurchaseChangeController {
 public class PurchaseChangeController {
-	
-	
-	
+
+	@Autowired
+	private PurchaseChangeService purchaseChangeService;
+
+	@Autowired
+	private PurchaseOrderChangeService purchaseOrderChangeService;
+
+	/**
+	 * 将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<PurchaseChange> changes = FlexJsonUtils.fromJsonArray(jsonStr, PurchaseChange.class);
+		purchaseOrderChangeService.save(purchaseChangeService.convertPurchaseChange(changes));
+	}
+
 }
 }

+ 10 - 0
src/main/java/com/uas/platform/b2b/erp/model/Purchase.java

@@ -24,6 +24,7 @@ public class Purchase {
 	private Date pu_date;
 	private Date pu_date;
 	private Long ve_uu;
 	private Long ve_uu;
 	private String pu_currency;
 	private String pu_currency;
+	private Float pu_rate;
 	private String pu_kind;
 	private String pu_kind;
 	private String pu_payments;
 	private String pu_payments;
 	private String pu_remark;
 	private String pu_remark;
@@ -73,6 +74,14 @@ public class Purchase {
 		this.pu_kind = pu_kind;
 		this.pu_kind = pu_kind;
 	}
 	}
 
 
+	public Float getPu_rate() {
+		return pu_rate;
+	}
+
+	public void setPu_rate(Float pu_rate) {
+		this.pu_rate = pu_rate;
+	}
+
 	public String getPu_payments() {
 	public String getPu_payments() {
 		return pu_payments;
 		return pu_payments;
 	}
 	}
@@ -138,6 +147,7 @@ public class Purchase {
 		PurchaseOrderAll order = new PurchaseOrderAll();
 		PurchaseOrderAll order = new PurchaseOrderAll();
 		order.setCode(this.pu_code);
 		order.setCode(this.pu_code);
 		order.setCurrency(this.pu_currency);
 		order.setCurrency(this.pu_currency);
+		order.setRate(this.pu_rate);
 		order.setDate(this.pu_date);
 		order.setDate(this.pu_date);
 		order.setEnUU(SystemSession.getUser().getEnterprise().getUu());
 		order.setEnUU(SystemSession.getUser().getEnterprise().getUu());
 		order.setUserUU(SystemSession.getUser().getUserUU());
 		order.setUserUU(SystemSession.getUser().getUserUU());

+ 160 - 3
src/main/java/com/uas/platform/b2b/erp/model/PurchaseChange.java

@@ -1,5 +1,17 @@
 package com.uas.platform.b2b.erp.model;
 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.springframework.util.CollectionUtils;
+
+import com.uas.platform.b2b.model.PurchaseOrderChange;
+import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.model.Status;
+
 /**
 /**
  * ERP系统的采购订单变更单
  * ERP系统的采购订单变更单
  * 
  * 
@@ -7,7 +19,152 @@ package com.uas.platform.b2b.erp.model;
  * 
  * 
  */
  */
 public class PurchaseChange {
 public class PurchaseChange {
-	
-	
-	
+
+	private String pc_code;
+	private String pc_purccode;
+	private Date pc_indate;
+	private String pc_recorder;
+	private String pc_payments;
+	private String pc_newpayments;
+	private String pc_currency;
+	private String pc_newcurrency;
+	private Float pc_rate;
+	private Float pc_newrate;
+	private String pc_description;
+	private String pc_remark;
+	private List<PurchaseChangeDetail> changeDetails;
+
+	public String getPc_code() {
+		return pc_code;
+	}
+
+	public void setPc_code(String pc_code) {
+		this.pc_code = pc_code;
+	}
+
+	public String getPc_purccode() {
+		return pc_purccode;
+	}
+
+	public void setPc_purccode(String pc_purccode) {
+		this.pc_purccode = pc_purccode;
+	}
+
+	public Date getPc_indate() {
+		return pc_indate;
+	}
+
+	public void setPc_indate(Date pc_indate) {
+		this.pc_indate = pc_indate;
+	}
+
+	public String getPc_recorder() {
+		return pc_recorder;
+	}
+
+	public void setPc_recorder(String pc_recorder) {
+		this.pc_recorder = pc_recorder;
+	}
+
+	public String getPc_payments() {
+		return pc_payments;
+	}
+
+	public void setPc_payments(String pc_payments) {
+		this.pc_payments = pc_payments;
+	}
+
+	public String getPc_newpayments() {
+		return pc_newpayments;
+	}
+
+	public void setPc_newpayments(String pc_newpayments) {
+		this.pc_newpayments = pc_newpayments;
+	}
+
+	public String getPc_currency() {
+		return pc_currency;
+	}
+
+	public void setPc_currency(String pc_currency) {
+		this.pc_currency = pc_currency;
+	}
+
+	public String getPc_newcurrency() {
+		return pc_newcurrency;
+	}
+
+	public void setPc_newcurrency(String pc_newcurrency) {
+		this.pc_newcurrency = pc_newcurrency;
+	}
+
+	public Float getPc_rate() {
+		return pc_rate;
+	}
+
+	public void setPc_rate(Float pc_rate) {
+		this.pc_rate = pc_rate;
+	}
+
+	public Float getPc_newrate() {
+		return pc_newrate;
+	}
+
+	public void setPc_newrate(Float pc_newrate) {
+		this.pc_newrate = pc_newrate;
+	}
+
+	public String getPc_description() {
+		return pc_description;
+	}
+
+	public void setPc_description(String pc_description) {
+		this.pc_description = pc_description;
+	}
+
+	public String getPc_remark() {
+		return pc_remark;
+	}
+
+	public void setPc_remark(String pc_remark) {
+		this.pc_remark = pc_remark;
+	}
+
+	public List<PurchaseChangeDetail> getChangeDetails() {
+		return changeDetails;
+	}
+
+	public void setChangeDetails(List<PurchaseChangeDetail> changeDetails) {
+		this.changeDetails = changeDetails;
+	}
+
+	/**
+	 * 转为平台的采购订单变更单
+	 * 
+	 * @return
+	 */
+	public PurchaseOrderChange convert() {
+		PurchaseOrderChange change = new PurchaseOrderChange();
+		change.setBackStatus((short) Status.NOT_UPLOAD.value());
+		change.setCode(this.pc_code);
+		change.setDate(this.pc_indate);
+		change.setDescription(this.pc_description);
+		change.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+		change.setNewCurrency(this.pc_newcurrency);
+		change.setNewPayments(this.pc_newpayments);
+		change.setNewRate(this.pc_newrate);
+		change.setRecorder(this.pc_recorder);
+		change.setRemark(this.pc_remark);
+		change.setSendStatus((short) Status.NOT_UPLOAD.value());
+		change.setStatus((short) Status.NOT_REPLY.value());
+		if (!CollectionUtils.isEmpty(this.changeDetails)) {
+			Set<PurchaseOrderChangeItem> changeItems = new HashSet<PurchaseOrderChangeItem>();
+			for (PurchaseChangeDetail detail : changeDetails) {
+				changeItems.add(detail.convert());
+			}
+			change.setOrderChangeItems(changeItems);
+		}
+		return change;
+	}
+
 }
 }

+ 148 - 0
src/main/java/com/uas/platform/b2b/erp/model/PurchaseChangeDetail.java

@@ -1,5 +1,12 @@
 package com.uas.platform.b2b.erp.model;
 package com.uas.platform.b2b.erp.model;
 
 
+import java.util.Date;
+
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
+import com.uas.platform.b2b.model.PurchaseOrderItem;
+import com.uas.platform.b2b.support.SystemSession;
+
 /**
 /**
  * ERP系统的采购订单变更单明细
  * ERP系统的采购订单变更单明细
  * 
  * 
@@ -8,4 +15,145 @@ package com.uas.platform.b2b.erp.model;
  */
  */
 public class PurchaseChangeDetail {
 public class PurchaseChangeDetail {
 
 
+	private short pcd_detno;
+	private short pcd_pddetno;
+	private String pcd_prodcode;
+	private String pcd_newprodcode;
+	private Double pcd_oldqty;
+	private Double pcd_newqty;
+	private Double pcd_oldprice;
+	private Double pcd_newprice;
+	private Date pcd_olddelivery;
+	private Date pcd_newdelivery;
+	private Float pcd_taxrate;
+	private Float pcd_newtaxrate;
+	private String pcd_remark;
+
+	public short getPcd_detno() {
+		return pcd_detno;
+	}
+
+	public void setPcd_detno(short pcd_detno) {
+		this.pcd_detno = pcd_detno;
+	}
+
+	public short getPcd_pddetno() {
+		return pcd_pddetno;
+	}
+
+	public void setPcd_pddetno(short pcd_pddetno) {
+		this.pcd_pddetno = pcd_pddetno;
+	}
+
+	public String getPcd_prodcode() {
+		return pcd_prodcode;
+	}
+
+	public void setPcd_prodcode(String pcd_prodcode) {
+		this.pcd_prodcode = pcd_prodcode;
+	}
+
+	public String getPcd_newprodcode() {
+		return pcd_newprodcode;
+	}
+
+	public void setPcd_newprodcode(String pcd_newprodcode) {
+		this.pcd_newprodcode = pcd_newprodcode;
+	}
+
+	public Double getPcd_oldqty() {
+		return pcd_oldqty;
+	}
+
+	public void setPcd_oldqty(Double pcd_oldqty) {
+		this.pcd_oldqty = pcd_oldqty;
+	}
+
+	public Double getPcd_newqty() {
+		return pcd_newqty;
+	}
+
+	public void setPcd_newqty(Double pcd_newqty) {
+		this.pcd_newqty = pcd_newqty;
+	}
+
+	public Double getPcd_oldprice() {
+		return pcd_oldprice;
+	}
+
+	public void setPcd_oldprice(Double pcd_oldprice) {
+		this.pcd_oldprice = pcd_oldprice;
+	}
+
+	public Double getPcd_newprice() {
+		return pcd_newprice;
+	}
+
+	public void setPcd_newprice(Double pcd_newprice) {
+		this.pcd_newprice = pcd_newprice;
+	}
+
+	public Date getPcd_olddelivery() {
+		return pcd_olddelivery;
+	}
+
+	public void setPcd_olddelivery(Date pcd_olddelivery) {
+		this.pcd_olddelivery = pcd_olddelivery;
+	}
+
+	public Date getPcd_newdelivery() {
+		return pcd_newdelivery;
+	}
+
+	public void setPcd_newdelivery(Date pcd_newdelivery) {
+		this.pcd_newdelivery = pcd_newdelivery;
+	}
+
+	public Float getPcd_taxrate() {
+		return pcd_taxrate;
+	}
+
+	public void setPcd_taxrate(Float pcd_taxrate) {
+		this.pcd_taxrate = pcd_taxrate;
+	}
+
+	public Float getPcd_newtaxrate() {
+		return pcd_newtaxrate;
+	}
+
+	public void setPcd_newtaxrate(Float pcd_newtaxrate) {
+		this.pcd_newtaxrate = pcd_newtaxrate;
+	}
+
+	public String getPcd_remark() {
+		return pcd_remark;
+	}
+
+	public void setPcd_remark(String pcd_remark) {
+		this.pcd_remark = pcd_remark;
+	}
+
+	/**
+	 * 转为平台的采购订单变更单明细
+	 * 
+	 * @return
+	 */
+	public PurchaseOrderChangeItem convert() {
+		PurchaseOrderChangeItem changeItem = new PurchaseOrderChangeItem();
+		changeItem.setNewDelivery(this.pcd_newdelivery);
+		changeItem.setNewPrice(this.pcd_newprice);
+		changeItem.setNewQty(this.pcd_newqty);
+		changeItem.setNewTaxrate(this.pcd_newtaxrate);
+		changeItem.setNumber(this.pcd_detno);
+		changeItem.setRemark(this.pcd_remark);
+		PurchaseOrderItem orderItem = new PurchaseOrderItem();
+		orderItem.setNumber(this.pcd_pddetno);
+		changeItem.setOrderItem(orderItem);
+		Product newProduct = new Product();
+		newProduct.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+		newProduct.setCode(this.pcd_newprodcode);
+		changeItem.setNewProduct(newProduct);
+		return changeItem;
+	}
+
 }
 }

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

@@ -22,6 +22,7 @@ public class SaleDown {
 	private Date sa_recorddate;
 	private Date sa_recorddate;
 	private String sa_payments;
 	private String sa_payments;
 	private String sa_currency;
 	private String sa_currency;
+	private Float sa_rate;
 	private String sa_shipby;
 	private String sa_shipby;
 	private List<SaleDownDetail> saleDownDetails;
 	private List<SaleDownDetail> saleDownDetails;
 
 
@@ -89,6 +90,14 @@ public class SaleDown {
 		this.sa_currency = sa_currency;
 		this.sa_currency = sa_currency;
 	}
 	}
 
 
+	public Float getSa_rate() {
+		return sa_rate;
+	}
+
+	public void setSa_rate(Float sa_rate) {
+		this.sa_rate = sa_rate;
+	}
+
 	public String getSa_shipby() {
 	public String getSa_shipby() {
 		return sa_shipby;
 		return sa_shipby;
 	}
 	}
@@ -119,6 +128,7 @@ public class SaleDown {
 		this.sa_code = order.getCode();
 		this.sa_code = order.getCode();
 		this.sa_customeruu = order.getEnUU();
 		this.sa_customeruu = order.getEnUU();
 		this.sa_currency = order.getCurrency();
 		this.sa_currency = order.getCurrency();
+		this.sa_rate = order.getRate();
 		this.sa_date = order.getDate();
 		this.sa_date = order.getDate();
 		this.sa_pocode = order.getCode();
 		this.sa_pocode = order.getCode();
 		this.sa_shipby = order.getShipAddress();
 		this.sa_shipby = order.getShipAddress();

+ 6 - 0
src/main/java/com/uas/platform/b2b/erp/model/SaleDownChange.java

@@ -1,5 +1,11 @@
 package com.uas.platform.b2b.erp.model;
 package com.uas.platform.b2b.erp.model;
 
 
+/**
+ * ERP系统的客户采购订单变更单
+ * 
+ * @author yingp
+ * 
+ */
 public class SaleDownChange {
 public class SaleDownChange {
 
 
 }
 }

+ 6 - 0
src/main/java/com/uas/platform/b2b/erp/model/SaleDownChangeDetail.java

@@ -1,5 +1,11 @@
 package com.uas.platform.b2b.erp.model;
 package com.uas.platform.b2b.erp.model;
 
 
+/**
+ * ERP系统的客户采购订单变更单明细
+ * 
+ * @author yingp
+ * 
+ */
 public class SaleDownChangeDetail {
 public class SaleDownChangeDetail {
 
 
 }
 }

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

@@ -0,0 +1,18 @@
+package com.uas.platform.b2b.erp.service;
+
+import java.util.List;
+
+import com.uas.platform.b2b.erp.model.PurchaseChange;
+import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
+
+public interface PurchaseChangeService {
+
+	/**
+	 * 将ERP系统的采购订单变更单,转为平台的订单变更单
+	 * 
+	 * @param changes
+	 * @return
+	 */
+	List<PurchaseOrderChangeItem> convertPurchaseChange(List<PurchaseChange> changes);
+
+}

+ 64 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseChangeServiceImpl.java

@@ -0,0 +1,64 @@
+package com.uas.platform.b2b.erp.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PurchaseOrderDao;
+import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
+import com.uas.platform.b2b.erp.model.PurchaseChange;
+import com.uas.platform.b2b.erp.service.PurchaseChangeService;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurchaseOrder;
+import com.uas.platform.b2b.model.PurchaseOrderChange;
+import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
+import com.uas.platform.b2b.model.PurchaseOrderItem;
+import com.uas.platform.b2b.support.SystemSession;
+
+@Service
+public class PurchaseChangeServiceImpl implements PurchaseChangeService {
+
+	@Autowired
+	private PurchaseOrderDao purchaseOrderDao;
+
+	@Autowired
+	private PurchaseOrderItemDao purchaseOrderItemDao;
+
+	@Autowired
+	private ProductDao productDao;
+
+	@Override
+	public List<PurchaseOrderChangeItem> convertPurchaseChange(List<PurchaseChange> changes) {
+		List<PurchaseOrderChangeItem> changeItems = new ArrayList<PurchaseOrderChangeItem>();
+		long enUU = SystemSession.getUser().getEnterprise().getUu();
+		for (PurchaseChange change : changes) {
+			PurchaseOrderChange orderChange = change.convert();
+			List<PurchaseOrder> orders = purchaseOrderDao.findByEnUUAndCode(enUU, change.getPc_purccode());
+			if (orders.size() > 0) {
+				orderChange.setOrder(orders.get(0));
+				if (!CollectionUtils.isEmpty(orderChange.getOrderChangeItems())) {
+					for (PurchaseOrderChangeItem item : orderChange.getOrderChangeItems()) {
+						// 取订单明细ID
+						List<PurchaseOrderItem> orderItems = purchaseOrderItemDao.findByEnUUAndOrderCodeAndNumber(enUU, orderChange
+								.getOrder().getCode(), item.getOrderItem().getNumber());
+						if (orderItems.size() > 0)
+							item.setOrderItem(orderItems.get(0));
+						// 取平台的产品ID
+						Product newProduct = item.getNewProduct();
+						List<Product> products = productDao.findByEnUUAndCode(newProduct.getEnUU(), newProduct.getCode());
+						if (products.size() > 0)
+							item.setNewProduct(products.get(0));
+						item.setOrderChange(orderChange);
+					}
+					changeItems.addAll(orderChange.getOrderChangeItems());
+				}
+			}
+		}
+		return changeItems;
+	}
+
+}

+ 1 - 1
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseServiceImpl.java

@@ -27,10 +27,10 @@ public class PurchaseServiceImpl implements PurchaseService {
 		List<PurchaseOrderAllItem> orderItems = new ArrayList<PurchaseOrderAllItem>();
 		List<PurchaseOrderAllItem> orderItems = new ArrayList<PurchaseOrderAllItem>();
 		for (Purchase purchase : purchases) {
 		for (Purchase purchase : purchases) {
 			PurchaseOrderAll order = purchase.convert();
 			PurchaseOrderAll order = purchase.convert();
-			// 取平台的产品ID
 			if (!CollectionUtils.isEmpty(order.getOrderItems())) {
 			if (!CollectionUtils.isEmpty(order.getOrderItems())) {
 				for (PurchaseOrderAllItem item : order.getOrderItems()) {
 				for (PurchaseOrderAllItem item : order.getOrderItems()) {
 					item.setOrder(order);
 					item.setOrder(order);
+					// 取平台的产品ID
 					Product product = item.getProduct();
 					Product product = item.getProduct();
 					List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(), product.getCode());
 					List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(), product.getCode());
 					if (products.size() > 0) {
 					if (products.size() > 0) {

+ 21 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseOrder.java

@@ -7,6 +7,12 @@ import javax.persistence.Entity;
 import javax.persistence.Id;
 import javax.persistence.Id;
 import javax.persistence.Table;
 import javax.persistence.Table;
 
 
+/**
+ * 平台里面,以供应商的角度来查看采购订单
+ * 
+ * @author yingp
+ *
+ */
 @Table(name = "purc$orders")
 @Table(name = "purc$orders")
 @Entity
 @Entity
 public class PurchaseOrder implements Serializable {
 public class PurchaseOrder implements Serializable {
@@ -14,7 +20,7 @@ public class PurchaseOrder implements Serializable {
 	/**
 	/**
 	 * 
 	 * 
 	 */
 	 */
-	private static final long serialVersionUID = 1L;
+	private static final long serialVersionUID = 8022534626635555144L;
 
 
 	@Id
 	@Id
 	@Column(name = "pu_id")
 	@Column(name = "pu_id")
@@ -92,6 +98,12 @@ public class PurchaseOrder implements Serializable {
 	@Column(name = "pu_currency")
 	@Column(name = "pu_currency")
 	private String currency;
 	private String currency;
 
 
+	/**
+	 * 汇率
+	 */
+	@Column(name = "pu_rate")
+	private Float rate;
+
 	/**
 	/**
 	 * 付款方式
 	 * 付款方式
 	 */
 	 */
@@ -214,6 +226,14 @@ public class PurchaseOrder implements Serializable {
 		this.currency = currency;
 		this.currency = currency;
 	}
 	}
 
 
+	public Float getRate() {
+		return rate;
+	}
+
+	public void setRate(Float rate) {
+		this.rate = rate;
+	}
+
 	public String getPayments() {
 	public String getPayments() {
 		return payments;
 		return payments;
 	}
 	}

+ 15 - 1
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAll.java

@@ -20,7 +20,7 @@ import javax.persistence.Table;
 import org.hibernate.annotations.Where;
 import org.hibernate.annotations.Where;
 
 
 /**
 /**
- * 以供应商的角度来查看采购订单 <br>
+ * 平台里面,以供应商的角度来查看采购订单 <br>
  * 级联采购明细
  * 级联采购明细
  * 
  * 
  * @author yingp
  * @author yingp
@@ -114,6 +114,12 @@ public class PurchaseOrderAll {
 	 */
 	 */
 	@Column(name = "pu_currency")
 	@Column(name = "pu_currency")
 	private String currency;
 	private String currency;
+	
+	/**
+	 * 汇率
+	 */
+	@Column(name = "pu_rate")
+	private Float rate;
 
 
 	/**
 	/**
 	 * 付款方式
 	 * 付款方式
@@ -254,6 +260,14 @@ public class PurchaseOrderAll {
 		this.currency = currency;
 		this.currency = currency;
 	}
 	}
 
 
+	public Float getRate() {
+		return rate;
+	}
+
+	public void setRate(Float rate) {
+		this.rate = rate;
+	}
+
 	public String getPayments() {
 	public String getPayments() {
 		return payments;
 		return payments;
 	}
 	}

+ 277 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderChange.java

@@ -0,0 +1,277 @@
+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;
+
+/**
+ * 平台里面,以供应商的角度来查看采购订单变更单 <br>
+ * 级联变更明细
+ * 
+ * @author yingp
+ *
+ */
+@Table(name = "purc$changes")
+@Entity
+public class PurchaseOrderChange implements Serializable {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -8957353551959748654L;
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$changes_gen")
+	@SequenceGenerator(name = "purc$changes_gen", sequenceName = "purc$changes_seq", allocationSize = 1)
+	@Column(name = "pc_id")
+	private Long id;
+
+	/**
+	 * 采购变更单所属企业UU
+	 */
+	@Column(name = "pc_enuu")
+	private Long enUU;
+
+	/**
+	 * 采购变更单号
+	 */
+	@Column(name = "pc_code")
+	private String code;
+
+	/**
+	 * 录单人
+	 */
+	@Column(name = "pc_recorder")
+	private String recorder;
+
+	/**
+	 * 单据录入日期
+	 */
+	@Column(name = "pc_indate")
+	private Date date;
+
+	/**
+	 * 变更内容描述
+	 */
+	@Column(name = "pc_description")
+	private String description;
+
+	/**
+	 * 备注
+	 */
+	@Column(name = "pc_remark")
+	private String remark;
+
+	/**
+	 * 从平台传到供应商ERP的状态
+	 */
+	@Column(name = "pc_sendstatus")
+	private Short sendStatus;
+
+	/**
+	 * 状态(未回复、已回复)
+	 */
+	@Column(name = "pc_status")
+	private Short status;
+
+	/**
+	 * 卖家是否同意了买家的变更请求(1,0)
+	 */
+	@Column(name = "pc_agreed")
+	private Short agreed;
+
+	/**
+	 * 回复备注
+	 */
+	@Column(name = "pc_replyremark")
+	private String replyRemark;
+	
+	/**
+	 * 从平台传回复信息到买方ERP的状态
+	 */
+	@Column(name = "pc_backstatus")
+	private Short backStatus;
+
+	/**
+	 * 新付款方式
+	 */
+	@Column(name = "pc_newpayments")
+	private String newPayments;
+
+	/**
+	 * 新付款币种
+	 */
+	@Column(name = "pc_newcurrency")
+	private String newCurrency;
+
+	/**
+	 * 新汇率
+	 */
+	@Column(name = "pc_newrate")
+	private Float newRate;
+
+	/**
+	 * 采购订单
+	 */
+	@OneToOne(cascade = { CascadeType.MERGE })
+	@JoinColumn(name = "pc_puid", insertable = false, updatable = false)
+	private PurchaseOrder order;
+
+	/**
+	 * 采购变更单明细
+	 */
+	@OneToMany(mappedBy = "orderChange", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.MERGE }, fetch = FetchType.EAGER)
+	@OrderBy("pcd_number")
+	private Set<PurchaseOrderChangeItem> orderChangeItems;
+
+	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 String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getRecorder() {
+		return recorder;
+	}
+
+	public void setRecorder(String recorder) {
+		this.recorder = recorder;
+	}
+
+	public Date getDate() {
+		return date;
+	}
+
+	public void setDate(Date date) {
+		this.date = date;
+	}
+
+	public String getDescription() {
+		return description;
+	}
+
+	public void setDescription(String description) {
+		this.description = description;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public Short getSendStatus() {
+		return sendStatus;
+	}
+
+	public void setSendStatus(Short sendStatus) {
+		this.sendStatus = sendStatus;
+	}
+
+	public String getNewPayments() {
+		return newPayments;
+	}
+
+	public void setNewPayments(String newPayments) {
+		this.newPayments = newPayments;
+	}
+
+	public String getNewCurrency() {
+		return newCurrency;
+	}
+
+	public void setNewCurrency(String newCurrency) {
+		this.newCurrency = newCurrency;
+	}
+
+	public Float getNewRate() {
+		return newRate;
+	}
+
+	public void setNewRate(Float newRate) {
+		this.newRate = newRate;
+	}
+
+	public PurchaseOrder getOrder() {
+		return order;
+	}
+
+	public void setOrder(PurchaseOrder order) {
+		this.order = order;
+	}
+
+	public Set<PurchaseOrderChangeItem> getOrderChangeItems() {
+		return orderChangeItems;
+	}
+
+	public void setOrderChangeItems(Set<PurchaseOrderChangeItem> orderChangeItems) {
+		this.orderChangeItems = orderChangeItems;
+	}
+
+	public Short getStatus() {
+		return status;
+	}
+
+	public void setStatus(Short status) {
+		this.status = status;
+	}
+
+	public Short getAgreed() {
+		return agreed;
+	}
+
+	public void setAgreed(Short agreed) {
+		this.agreed = agreed;
+	}
+
+	public String getReplyRemark() {
+		return replyRemark;
+	}
+
+	public void setReplyRemark(String replyRemark) {
+		this.replyRemark = replyRemark;
+	}
+
+	public Short getBackStatus() {
+		return backStatus;
+	}
+
+	public void setBackStatus(Short backStatus) {
+		this.backStatus = backStatus;
+	}
+
+}

+ 170 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderChangeItem.java

@@ -0,0 +1,170 @@
+package com.uas.platform.b2b.model;
+
+import java.util.Date;
+
+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$changeitems")
+@Entity
+public class PurchaseOrderChangeItem {
+	
+	@Id
+	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "purc$changeitems_gen")
+	@SequenceGenerator(name = "purc$changeitems_gen", sequenceName = "purc$changeitems_seq", allocationSize = 1)
+	@Column(name = "pcd_id")
+	private Long id;
+	
+	/**
+	 * 序号
+	 */
+	@Column(name = "pcd_number")
+	private Short number;
+	
+	/**
+	 * 采购订单变更单
+	 */
+	@ManyToOne(cascade = CascadeType.ALL, optional = true)
+	@JoinColumn(name = "pcd_pcid", nullable = false)
+	private PurchaseOrderChange orderChange;
+	
+	/**
+	 * 采购订单明细
+	 */
+	@OneToOne(cascade = { CascadeType.MERGE })
+	@JoinColumn(name = "pcd_pdid", insertable = false, updatable = false)
+	private PurchaseOrderItem orderItem;
+	
+	/**
+	 * 新产品
+	 */
+	@OneToOne(cascade = { CascadeType.ALL })
+	@JoinColumn(name = "pd_newprid", insertable = false, updatable = false)
+	private Product newProduct;
+	
+	/**
+	 * 新数量
+	 */
+	@Column(name = "pd_newqty")
+	private Double newQty;
+	
+	/**
+	 * 新含税单价
+	 */
+	@Column(name = "pd_newprice")
+	private Double newPrice;
+	
+	/**
+	 * 新税率
+	 */
+	@Column(name = "pd_newtaxrate")
+	private Float newTaxrate;
+	
+	/**
+	 * 新交货日期
+	 */
+	@Column(name = "pd_newdelivery")
+	private Date newDelivery;
+	
+	/**
+	 * 备注
+	 */
+	@Column(name = "pcd_remark")
+	private String remark;
+
+	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 PurchaseOrderChange getOrderChange() {
+		return orderChange;
+	}
+
+	public void setOrderChange(PurchaseOrderChange orderChange) {
+		this.orderChange = orderChange;
+	}
+
+	public PurchaseOrderItem getOrderItem() {
+		return orderItem;
+	}
+
+	public void setOrderItem(PurchaseOrderItem orderItem) {
+		this.orderItem = orderItem;
+	}
+
+	public Product getNewProduct() {
+		return newProduct;
+	}
+
+	public void setNewProduct(Product newProduct) {
+		this.newProduct = newProduct;
+	}
+
+	public Double getNewQty() {
+		return newQty;
+	}
+
+	public void setNewQty(Double newQty) {
+		this.newQty = newQty;
+	}
+
+	public Double getNewPrice() {
+		return newPrice;
+	}
+
+	public void setNewPrice(Double newPrice) {
+		this.newPrice = newPrice;
+	}
+
+	public Float getNewTaxrate() {
+		return newTaxrate;
+	}
+
+	public void setNewTaxrate(Float newTaxrate) {
+		this.newTaxrate = newTaxrate;
+	}
+
+	public Date getNewDelivery() {
+		return newDelivery;
+	}
+
+	public void setNewDelivery(Date newDelivery) {
+		this.newDelivery = newDelivery;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+	
+}

+ 6 - 0
src/main/java/com/uas/platform/b2b/model/PurchaseOrderItem.java

@@ -11,6 +11,12 @@ import javax.persistence.ManyToOne;
 import javax.persistence.OneToOne;
 import javax.persistence.OneToOne;
 import javax.persistence.Table;
 import javax.persistence.Table;
 
 
+/**
+ * 平台里面,以供应商的角度来查看采购订单明细
+ * 
+ * @author yingp
+ *
+ */
 @Table(name = "purc$orderitems")
 @Table(name = "purc$orderitems")
 @Entity
 @Entity
 public class PurchaseOrderItem {
 public class PurchaseOrderItem {

+ 17 - 0
src/main/java/com/uas/platform/b2b/service/PurchaseOrderChangeService.java

@@ -0,0 +1,17 @@
+package com.uas.platform.b2b.service;
+
+import java.util.List;
+
+import com.uas.platform.b2b.model.PurchaseOrderChangeItem;
+
+public interface PurchaseOrderChangeService {
+
+	/**
+	 * 批量保存、修改采购订单变更单
+	 * 
+	 * @param changeItems
+	 * @return
+	 */
+	public void save(List<PurchaseOrderChangeItem> changeItems);
+
+}