Просмотр исходного кода

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

administrator 11 лет назад
Родитель
Сommit
3d5743d9e7

+ 12 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderAllItemDao.java

@@ -0,0 +1,12 @@
+package com.uas.platform.b2b.dao;
+
+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.PurchaseOrderAllItem;
+
+@Repository
+public interface PurchaseOrderAllItemDao extends JpaSpecificationExecutor<PurchaseOrderAllItem>, JpaRepository<PurchaseOrderAllItem, Long> {
+
+}

+ 51 - 0
src/main/java/com/uas/platform/b2b/erp/controller/ProductController.java

@@ -0,0 +1,51 @@
+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.Prod;
+import com.uas.platform.b2b.erp.service.ProdService;
+import com.uas.platform.b2b.service.ProductService;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+
+/**
+ * 对ERP的数据接口<br>
+ * 产品处理
+ * 
+ * @author yingp
+ * 
+ */
+@Controller
+@RequestMapping("/erp/product")
+public class ProductController {
+
+	@Autowired
+	private ProdService prodService;
+
+	@Autowired
+	private ProductService productService;
+
+	/**
+	 * 将ERP的产品资料写到平台
+	 * 
+	 * @param data
+	 * @return
+	 * @throws UnsupportedEncodingException
+	 */
+	@RequestMapping(method = RequestMethod.POST)
+	@ResponseBody
+	public void saveProducts(@RequestParam("data") String data) throws UnsupportedEncodingException {
+		String jsonStr = URLDecoder.decode(data, "UTF-8");
+		List<Prod> prods = FlexJsonUtils.fromJsonArray(jsonStr, Prod.class);
+		productService.save(prodService.convertProduct(prods));
+	}
+
+}

+ 4 - 3
src/main/java/com/uas/platform/b2b/erp/model/Purchase.java

@@ -139,7 +139,8 @@ public class Purchase {
 		order.setCode(this.pu_code);
 		order.setCurrency(this.pu_currency);
 		order.setDate(this.pu_date);
-		order.setEnterprise(SystemSession.getUser().getEnterprise());
+		order.setEnUU(SystemSession.getUser().getEnterprise().getUu());
+		order.setUserUU(SystemSession.getUser().getUserUU());
 		order.setPayments(this.pu_payments);
 		order.setRemark(this.pu_remark);
 		order.setShipAddress(this.pu_shipaddresscode);
@@ -148,9 +149,9 @@ public class Purchase {
 		order.setType(this.pu_kind);
 		order.setVendUU(this.ve_uu);
 		order.setAuditor(this.pu_auditman);
-		if(!CollectionUtils.isEmpty(this.purchaseDetails)) {
+		if (!CollectionUtils.isEmpty(this.purchaseDetails)) {
 			Set<PurchaseOrderAllItem> items = new HashSet<PurchaseOrderAllItem>();
-			for(PurchaseDetail detail:this.purchaseDetails) {
+			for (PurchaseDetail detail : this.purchaseDetails) {
 				items.add(detail.convert());
 			}
 			order.setOrderItems(items);

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

@@ -102,7 +102,7 @@ public class PurchaseDetail {
 		item.setTaxrate(this.pd_rate);
 		item.setStatus((short) Status.NOT_REPLY.value());
 		Product product = new Product();
-		product.setCode(this.pd_code);
+		product.setCode(this.pd_prodcode);
 		product.setEnUU(SystemSession.getUser().getEnterprise().getUu());
 		item.setProduct(product);
 		return item;

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

@@ -0,0 +1,18 @@
+package com.uas.platform.b2b.erp.service;
+
+import java.util.List;
+
+import com.uas.platform.b2b.erp.model.Prod;
+import com.uas.platform.b2b.model.Product;
+
+public interface ProdService {
+	
+	/**
+	 * 将ERP系统的产品,转为平台的产品
+	 * 
+	 * @param prods
+	 * @return
+	 */
+	List<Product> convertProduct(List<Prod> prods);
+	
+}

+ 2 - 2
src/main/java/com/uas/platform/b2b/erp/service/PurchaseService.java

@@ -4,7 +4,7 @@ import java.util.List;
 
 import com.uas.platform.b2b.erp.model.Purchase;
 import com.uas.platform.b2b.erp.model.PurchaseReply;
-import com.uas.platform.b2b.model.PurchaseOrderAll;
+import com.uas.platform.b2b.model.PurchaseOrderAllItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 
 public interface PurchaseService {
@@ -15,7 +15,7 @@ public interface PurchaseService {
 	 * @param purchases
 	 * @return
 	 */
-	List<PurchaseOrderAll> convertPurchase(List<Purchase> purchases);
+	List<PurchaseOrderAllItem> convertPurchase(List<Purchase> purchases);
 
 	/**
 	 * 将平台的订单回复。转为ERP的回复

+ 34 - 0
src/main/java/com/uas/platform/b2b/erp/service/impl/ProdServiceImpl.java

@@ -0,0 +1,34 @@
+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.erp.model.Prod;
+import com.uas.platform.b2b.erp.service.ProdService;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.support.SystemSession;
+
+@Service
+public class ProdServiceImpl implements ProdService {
+	
+	@Autowired
+	private ProductDao productDao;
+
+	@Override
+	public List<Product> convertProduct(List<Prod> prods) {
+		List<Product> products = new ArrayList<Product>();
+		long enUU = SystemSession.getUser().getEnterprise().getUu();
+		for(Prod prod:prods) {
+			List<Product> prodResult = productDao.findByEnUUAndCode(enUU, prod.getPr_code());
+			if(CollectionUtils.isEmpty(prodResult))
+				products.add(prod.convert());
+		}
+		return products;
+	}
+	
+}

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

@@ -23,22 +23,25 @@ public class PurchaseServiceImpl implements PurchaseService {
 	private ProductDao productDao;
 
 	@Override
-	public List<PurchaseOrderAll> convertPurchase(List<Purchase> purchases) {
-		List<PurchaseOrderAll> orders = new ArrayList<PurchaseOrderAll>();
+	public List<PurchaseOrderAllItem> convertPurchase(List<Purchase> purchases) {
+		List<PurchaseOrderAllItem> orderItems = new ArrayList<PurchaseOrderAllItem>();
 		for (Purchase purchase : purchases) {
 			PurchaseOrderAll order = purchase.convert();
 			// 取平台的产品ID
 			if (!CollectionUtils.isEmpty(order.getOrderItems())) {
 				for (PurchaseOrderAllItem item : order.getOrderItems()) {
+					item.setOrder(order);
 					Product product = item.getProduct();
 					List<Product> products = productDao.findByEnUUAndCode(product.getEnUU(), product.getCode());
-					if (products.size() > 0)
+					if (products.size() > 0) {
 						item.setProduct(products.get(0));
+						item.setProductId(products.get(0).getId());
+					}
 				}
+				orderItems.addAll(order.getOrderItems());
 			}
-			orders.add(order);
 		}
-		return orders;
+		return orderItems;
 	}
 
 	@Override

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

@@ -35,6 +35,12 @@ public class PurchaseOrderAll {
 	@SequenceGenerator(name = "purc$orders_gen", sequenceName = "purc$orders_seq", allocationSize = 1)
 	@Column(name = "pu_id")
 	private Long id;
+	
+	/**
+	 * 采购企业UU
+	 */
+	@Column(name = "pu_enuu")
+	private Long enUU;
 
 	/**
 	 * 采购企业
@@ -124,7 +130,8 @@ public class PurchaseOrderAll {
 	/**
 	 * 采购单明细
 	 */
-	@OneToMany(mappedBy = "order", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
+	@OneToMany(mappedBy = "order", cascade = { CascadeType.REFRESH, CascadeType.PERSIST, CascadeType.REMOVE,
+			CascadeType.MERGE }, fetch = FetchType.EAGER)
 	@Where(clause = "pd_status = 200")
 	@OrderBy("pd_number")
 	private Set<PurchaseOrderAllItem> orderItems;
@@ -137,6 +144,14 @@ public class PurchaseOrderAll {
 		this.id = id;
 	}
 
+	public Long getEnUU() {
+		return enUU;
+	}
+
+	public void setEnUU(Long enUU) {
+		this.enUU = enUU;
+	}
+
 	public Enterprise getEnterprise() {
 		return enterprise;
 	}

+ 10 - 3
src/main/java/com/uas/platform/b2b/model/PurchaseOrderAllItem.java

@@ -5,7 +5,6 @@ import java.util.Date;
 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;
@@ -34,7 +33,7 @@ public class PurchaseOrderAllItem {
 	/**
 	 * 采购订单
 	 */
-	@ManyToOne(/*fetch = FetchType.EAGER, */cascade = CascadeType.REFRESH, optional = false)
+	@ManyToOne(cascade = CascadeType.ALL, optional = true)
 	@JoinColumn(name = "pd_puid", nullable = false)
 	private PurchaseOrderAll order;
 
@@ -47,7 +46,7 @@ public class PurchaseOrderAllItem {
 	/**
 	 * 产品
 	 */
-	@OneToOne(cascade = { CascadeType.ALL })
+	@OneToOne(cascade = { CascadeType.REFRESH })
 	@JoinColumn(name = "pd_prid", insertable = false, updatable = false)
 	private Product product;
 
@@ -130,6 +129,14 @@ public class PurchaseOrderAllItem {
 		this.number = number;
 	}
 
+	public PurchaseOrderAll getOrder() {
+		return order;
+	}
+
+	public void setOrder(PurchaseOrderAll order) {
+		this.order = order;
+	}
+
 	public Long getProductId() {
 		return productId;
 	}

+ 16 - 0
src/main/java/com/uas/platform/b2b/service/ProductService.java

@@ -0,0 +1,16 @@
+package com.uas.platform.b2b.service;
+
+import java.util.List;
+
+import com.uas.platform.b2b.model.Product;
+
+public interface ProductService {
+
+	/**
+	 * 批量保存产品
+	 * 
+	 * @param products
+	 * @return
+	 */
+	public List<Product> save(List<Product> products);
+}

+ 2 - 1
src/main/java/com/uas/platform/b2b/service/PurchaseOrderService.java

@@ -6,6 +6,7 @@ import org.springframework.data.domain.Page;
 
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
+import com.uas.platform.b2b.model.PurchaseOrderAllItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 import com.uas.platform.core.model.PageInfo;
 
@@ -17,7 +18,7 @@ public interface PurchaseOrderService {
 	 * @param orders
 	 * @return
 	 */
-	public List<PurchaseOrderAll> save(List<PurchaseOrderAll> orders);
+	public void save(List<PurchaseOrderAllItem> orders);
 
 	/**
 	 * 分页查找订单

+ 23 - 0
src/main/java/com/uas/platform/b2b/service/impl/ProductServiceImpl.java

@@ -0,0 +1,23 @@
+package com.uas.platform.b2b.service.impl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.service.ProductService;
+
+@Service
+public class ProductServiceImpl implements ProductService {
+	
+	@Autowired
+	private ProductDao productDao;
+
+	@Override
+	public List<Product> save(List<Product> products) {
+		return productDao.save(products);
+	}
+	
+}

+ 13 - 7
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -15,11 +15,13 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
+import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
 import com.uas.platform.b2b.dao.PurchaseOrderDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.dao.PurchaseOrderReplyDao;
 import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
+import com.uas.platform.b2b.model.PurchaseOrderAllItem;
 import com.uas.platform.b2b.model.PurchaseOrderItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 import com.uas.platform.b2b.service.PurchaseOrderService;
@@ -44,8 +46,11 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	@Autowired
 	private PurchaseOrderItemDao purchaseOrderItemDao;
 
-	public List<PurchaseOrderAll> save(List<PurchaseOrderAll> orders) {
-		return purchaseOrderAllDao.save(orders);
+	@Autowired
+	private PurchaseOrderAllItemDao purchaseOrderAllItemDao;
+
+	public void save(List<PurchaseOrderAllItem> orderItems) {
+		purchaseOrderAllItemDao.save(orderItems);
 	}
 
 	public Page<PurchaseOrder> findAllByPageInfo(final PageInfo pageInfo) {
@@ -84,7 +89,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 		if (item.getReplyQty() > item.getQty())
 			throw new IllegalOperatorException("回复的数量合计超过了订单数量");
 		// 该行回复状态
-		item.setStatus((short) (Double.compare(item.getReplyQty(), item.getQty()) == 0 ? Status.REPLIED.value() : Status.NOT_REPLY.value()));
+		item.setStatus((short) (Double.compare(item.getReplyQty(), item.getQty()) == 0 ? Status.REPLIED.value()
+				: Status.NOT_REPLY.value()));
 		purchaseOrderReplyDao.save(reply);
 		purchaseOrderItemDao.save(item);
 		// 订单主记录状态
@@ -97,8 +103,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 
 	@Override
 	public PurchaseOrderAll findByCode(String code) {
-		List<PurchaseOrderAll> purchaseOrderAlls = purchaseOrderAllDao.findByVendUUAndCode(SystemSession.getUser().getEnterprise().getUu(),
-				code);
+		List<PurchaseOrderAll> purchaseOrderAlls = purchaseOrderAllDao.findByVendUUAndCode(SystemSession.getUser()
+				.getEnterprise().getUu(), code);
 		if (purchaseOrderAlls.size() == 0)
 			throw new NotFoundException(code);
 		return purchaseOrderAlls.get(0);
@@ -136,8 +142,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 
 	@Override
 	public List<PurchaseOrderReply> findNotUploadReply() {
-		return purchaseOrderReplyDao
-				.findByEnUUAndStatus(SystemSession.getUser().getEnterprise().getUu(), (short) Status.NOT_UPLOAD.value());
+		return purchaseOrderReplyDao.findByEnUUAndStatus(SystemSession.getUser().getEnterprise().getUu(),
+				(short) Status.NOT_UPLOAD.value());
 	}
 
 }