Browse Source

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

administrator 11 years ago
parent
commit
5f9b434ea2

+ 11 - 0
src/main/java/com/uas/platform/b2b/dao/PurchaseOrderChangeDao.java

@@ -12,6 +12,17 @@ import com.uas.platform.b2b.model.PurchaseOrderChange;
 
 
 @Repository
 @Repository
 public interface PurchaseOrderChangeDao extends JpaSpecificationExecutor<PurchaseOrderChange>, JpaRepository<PurchaseOrderChange, Long> {
 public interface PurchaseOrderChangeDao extends JpaSpecificationExecutor<PurchaseOrderChange>, JpaRepository<PurchaseOrderChange, Long> {
+
+	/**
+	 * 按所属企业及编号查找变更单
+	 * 
+	 * @param enUU
+	 * @param code
+	 * @return
+	 */
+	@Query("from PurchaseOrderChange r where r.order.enUU = :enUU and r.code = :code")
+	public List<PurchaseOrderChange> findByEnUUAndCode(@Param("enUU") long enUU, @Param("code") String code);
+
 	/**
 	/**
 	 * (买家)按回复的状态查找变更单回复信息
 	 * (买家)按回复的状态查找变更单回复信息
 	 * 
 	 * 

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

@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
 
 
 import com.uas.platform.b2b.dao.ProductDao;
 import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PurchaseOrderChangeDao;
 import com.uas.platform.b2b.dao.PurchaseOrderDao;
 import com.uas.platform.b2b.dao.PurchaseOrderDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.dao.PurchaseOrderItemDao;
 import com.uas.platform.b2b.erp.model.PurchaseChange;
 import com.uas.platform.b2b.erp.model.PurchaseChange;
@@ -32,6 +33,9 @@ public class PurchaseChangeServiceImpl implements PurchaseChangeService {
 	@Autowired
 	@Autowired
 	private ProductDao productDao;
 	private ProductDao productDao;
 
 
+	@Autowired
+	private PurchaseOrderChangeDao purchaseOrderChangeDao;
+
 	@Override
 	@Override
 	public List<PurchaseOrderChangeItem> convertPurchaseChange(List<PurchaseChange> changes) {
 	public List<PurchaseOrderChangeItem> convertPurchaseChange(List<PurchaseChange> changes) {
 		List<PurchaseOrderChangeItem> changeItems = new ArrayList<PurchaseOrderChangeItem>();
 		List<PurchaseOrderChangeItem> changeItems = new ArrayList<PurchaseOrderChangeItem>();
@@ -39,7 +43,9 @@ public class PurchaseChangeServiceImpl implements PurchaseChangeService {
 		for (PurchaseChange change : changes) {
 		for (PurchaseChange change : changes) {
 			PurchaseOrderChange orderChange = change.convert();
 			PurchaseOrderChange orderChange = change.convert();
 			List<PurchaseOrder> orders = purchaseOrderDao.findByEnUUAndCode(enUU, change.getPc_purccode());
 			List<PurchaseOrder> orders = purchaseOrderDao.findByEnUUAndCode(enUU, change.getPc_purccode());
-			if (orders.size() > 0) {
+			List<PurchaseOrderChange> orderChanges = purchaseOrderChangeDao.findByEnUUAndCode(enUU, change.getPc_code());
+			// 原采购单需存在,变更单不存在
+			if (orders.size() > 0 && orderChanges.size() == 0) {
 				orderChange.setOrder(orders.get(0));
 				orderChange.setOrder(orders.get(0));
 				orderChange.setOrderId(orders.get(0).getId());
 				orderChange.setOrderId(orders.get(0).getId());
 				if (!CollectionUtils.isEmpty(orderChange.getOrderChangeItems())) {
 				if (!CollectionUtils.isEmpty(orderChange.getOrderChangeItems())) {

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

@@ -9,6 +9,7 @@ import org.springframework.util.CollectionUtils;
 
 
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.ProductDao;
 import com.uas.platform.b2b.dao.ProductDao;
+import com.uas.platform.b2b.dao.PurchaseOrderDao;
 import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.erp.model.Purchase;
 import com.uas.platform.b2b.erp.model.Purchase;
@@ -16,6 +17,7 @@ import com.uas.platform.b2b.erp.model.PurchaseReply;
 import com.uas.platform.b2b.erp.service.PurchaseService;
 import com.uas.platform.b2b.erp.service.PurchaseService;
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.Enterprise;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.Product;
+import com.uas.platform.b2b.model.PurchaseOrder;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
 import com.uas.platform.b2b.model.PurchaseOrderAllItem;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
 import com.uas.platform.b2b.model.PurchaseOrderReply;
@@ -34,33 +36,40 @@ public class PurchaseServiceImpl implements PurchaseService {
 	private EnterpriseDao enterpriseDao;
 	private EnterpriseDao enterpriseDao;
 	@Autowired
 	@Autowired
 	private UserDao userDao;
 	private UserDao userDao;
+	@Autowired
+	private PurchaseOrderDao purchaseOrderDao;
 
 
 	@Override
 	@Override
 	public List<PurchaseOrderAllItem> convertPurchase(List<Purchase> purchases) {
 	public List<PurchaseOrderAllItem> convertPurchase(List<Purchase> purchases) {
 		List<PurchaseOrderAllItem> orderItems = new ArrayList<PurchaseOrderAllItem>();
 		List<PurchaseOrderAllItem> orderItems = new ArrayList<PurchaseOrderAllItem>();
+		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for (Purchase purchase : purchases) {
 		for (Purchase purchase : purchases) {
-			PurchaseOrderAll order = purchase.convert();
-			List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(order.getEnUU(), order.getVendUU());
-			Vendor vendor = null;
-			if (vendors.size() == 0) {
-				vendor = addVendor(order);
-			} else {
-				vendor = vendors.get(0);
-			}
-			if (vendor != null && !CollectionUtils.isEmpty(order.getOrderItems())) {
-				if (order.getVendUserUU() == null && vendors.get(0).getVendorUser() != null)
-					order.setVendUserUU(vendor.getVendorUser().getUserUU());
-				for (PurchaseOrderAllItem item : order.getOrderItems()) {
-					item.setOrder(order);
-					// 取平台的产品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());
+			// 先查看是否已存在
+			List<PurchaseOrder> orders = purchaseOrderDao.findByEnUUAndCode(enUU, purchase.getPu_code());
+			if (orders.size() == 0) {
+				PurchaseOrderAll order = purchase.convert();
+				List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(order.getEnUU(), order.getVendUU());
+				Vendor vendor = null;
+				if (vendors.size() == 0) {
+					vendor = addVendor(order);
+				} else {
+					vendor = vendors.get(0);
+				}
+				if (vendor != null && !CollectionUtils.isEmpty(order.getOrderItems())) {
+					if (order.getVendUserUU() == null && vendors.get(0).getVendorUser() != null)
+						order.setVendUserUU(vendor.getVendorUser().getUserUU());
+					for (PurchaseOrderAllItem item : order.getOrderItems()) {
+						item.setOrder(order);
+						// 取平台的产品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());
+						}
 					}
 					}
+					orderItems.addAll(order.getOrderItems());
 				}
 				}
-				orderItems.addAll(order.getOrderItems());
 			}
 			}
 		}
 		}
 		return orderItems;
 		return orderItems;