Ver Fonte

更改采购预测传输实现

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@623 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg há 11 anos atrás
pai
commit
080eb1ead5

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

@@ -3,11 +3,11 @@ package com.uas.platform.b2b.erp.service;
 import java.util.List;
 
 import com.uas.platform.b2b.erp.model.PurchaseForecast;
-import com.uas.platform.b2b.model.PurchaseForecastAll;
+import com.uas.platform.b2b.model.PurchaseForecastAllItem;
 
 
 public interface PurchaseForecastService {
 
-	List<PurchaseForecastAll> convertPurchaseForecast(List<PurchaseForecast> purchaseForecasts);
+	List<PurchaseForecastAllItem> convertPurchaseForecast(List<PurchaseForecast> purchaseForecasts);
 
 }

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

@@ -3,11 +3,11 @@ package com.uas.platform.b2b.erp.service;
 import java.util.List;
 
 import com.uas.platform.b2b.erp.model.SaleForecastDown;
-import com.uas.platform.b2b.model.PurchaseForecastAll;
+import com.uas.platform.b2b.model.PurchaseForecastAllItem;
 
 public interface SaleForecastDownService {
 
 	List<SaleForecastDown> convertPurchaseForecastDown(
-			List<PurchaseForecastAll> Orders);	
+			List<PurchaseForecastAllItem> items);
 
 }

+ 66 - 67
src/main/java/com/uas/platform/b2b/erp/service/impl/PurchaseForecastServiceImpl.java

@@ -1,9 +1,7 @@
 package com.uas.platform.b2b.erp.service.impl;
 
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -22,7 +20,6 @@ import com.uas.platform.b2b.model.PurchaseForecastAllItem;
 import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.support.SystemSession;
-import com.uas.platform.core.model.Constant;
 import com.uas.platform.b2b.erp.model.PurchaseForecast;
 
 @Service
@@ -39,74 +36,90 @@ public class PurchaseForecastServiceImpl implements PurchaseForecastService {
 	@Autowired
 	private PurchaseForecastAllDao purchaseForecastDao;
 	@Override
-	public List<PurchaseForecastAll> convertPurchaseForecast(List<PurchaseForecast> purchaseForecasts) {
-		// TODO Auto-generated method stub
-		List<PurchaseForecastAll> orderItems = new ArrayList<PurchaseForecastAll>();
-		System.out.println(purchaseForecasts);
+	public List<PurchaseForecastAllItem> convertPurchaseForecast(List<PurchaseForecast> purchaseForecasts) {
+		List<PurchaseForecastAllItem> items = new ArrayList<PurchaseForecastAllItem>();
 		long enUU = SystemSession.getUser().getEnterprise().getUu();
 		for (PurchaseForecast purchaseForecast : purchaseForecasts) {
 			// 先查看是否已存在
-			List<PurchaseForecastAll> orders = purchaseForecastDao.findByEnUUAndCode(enUU, purchaseForecast.getPf_code());
-			if (orders.size() == 0) {
-				PurchaseForecastAll order = purchaseForecast.convert();//将order的UserUU set 为em_uu
-				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.getForecastItems())) {//平台中存在供应商的UU&&单据有明细行
-					if (order.getVendUserUU() == null && vendors.get(0).getVendorUser() != null)//单据不包含供应商联系人UU号&&供应商列表中有供应商联系人
-						order.setVendUserUU(vendor.getVendorUser().getUserUU());//将供应商列表中的联系人设为单据的供应商联系人
-					User user = order.getUser();//单据采购员
-					if (order.getUserUU() != null) {//单据采购员uu不为空
-						List<User> users = userDao.findUserByUserUU(order.getUserUU());//根据单据采购员uu获取users
-						if (users.size() == 0)//平台中不存在单据采购员UU的用户
-							user = addUser(user);//新增当前企业的一个user
-						else//平台中存在单据采购员UU的用户
-							user = users.get(0);
-					} else {//单据采购员uu为空
-						user = addUser(user);//新增当前企业的一个user
+			List<PurchaseForecastAll> forecasts = purchaseForecastDao.findByEnUUAndCode(enUU, purchaseForecast.getPf_code());
+			if (forecasts.size() == 0) {
+				PurchaseForecastAll forecast = purchaseForecast.convert();
+				if (!CollectionUtils.isEmpty(forecast.getForecastItems())) {
+					//设置User
+					if(forecast.getUser().getUserUU() != null) {
+						List<User> users = userDao.findByEnUUAndUserUU(enUU, forecast.getUser().getUserUU());
+						if(users.size() > 0) {
+							forecast.setUser(users.get(0));
+							forecast.setUserUU(users.get(0).getUserUU());
+						} else {
+							forecast.setUser(SystemSession.getUser());
+							forecast.setUserUU(SystemSession.getUser().getUserUU());
+						}
+					} else {
+						forecast.setUser(SystemSession.getUser());
+						forecast.setUserUU(SystemSession.getUser().getUserUU());
 					}
-					order.setUser(user);
-					order.setUserUU(user.getUserUU());//如果单据包含平台存在的UU号,即为这个UU号,否则新增一个当前企业的user(UU序列生成)
-					for (PurchaseForecastAllItem item : order.getForecastItems()) {
-						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());
-						}						
+					//对明细遍历
+					for (PurchaseForecastAllItem item : forecast.getForecastItems()) {
+						item.setOrder(forecast);
+						if (item.getVendUU() != null) {//明细中有供应商uu号
+							List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(enUU, item.getVendUU());
+							Vendor vendor = null;
+							if(vendors.size() == 0) {
+								vendor = addVendor(item);
+							} else {
+								vendor = vendors.get(0);
+							}
+							List<Product> products = productDao.findByEnUUAndCode(enUU, item.getProduct().getCode());
+							if (products.size() > 0 && vendor != null) {
+								item.setVendUU(vendor.getVendEnUU());
+								if(item.getVendUserUU() != null && item.getVendUserUU() != 0) {
+									List<User> vendUsers = userDao.findByEnUUAndUserUU(vendor.getVendEnUU(), item.getVendUserUU());
+									if(vendUsers.size() == 0) {
+										//平台中的供应商企业不存在供应商联系人uu的用户
+										//则设为平台中供应商列表中的供应商联系人UU
+										item.setVendUserUU(vendors.get(0).getVendUserUU());
+									}
+								}else {
+									//买方ERP中供应商资料没有设置供应商联系人uu
+									//则设为平台中供应商列表中的供应商联系人UU
+									item.setVendUserUU(vendors.get(0).getVendUserUU());
+								}
+								item.setProduct(products.get(0));
+								item.setProductId(products.get(0).getId());
+								item.setOrder(forecast);
+								items.add(item);
+							}
+						}
 					}
-					orderItems.add(order);
 				}
 			}
 		}
-		System.out.println(orderItems);
-		return orderItems;
+		return items;
 	}
 
 	/**
 	 * 添加供应商资料
 	 * 
-	 * @param order
+	 * @param forecast
 	 */
-	private Vendor addVendor(PurchaseForecastAll order) {
-		Vendor vendor = new Vendor();
-		vendor.setMyEnUU(order.getEnUU());
-		vendor.setMyUserUU(SystemSession.getUser().getUserUU());
-		Enterprise enterprise = enterpriseDao.findOne(order.getVendUU());
+	private Vendor addVendor(PurchaseForecastAllItem forecastItem) {
+		Enterprise enterprise = enterpriseDao.findOne(forecastItem.getVendUU());
 		if (enterprise != null) {
+			Vendor vendor = new Vendor();
+			vendor.setMyEnUU(forecastItem.getOrder().getEnUU());
+			if(forecastItem.getOrder().getUserUU() != null && userDao.findOne(forecastItem.getOrder().getUserUU()) != null)
+				vendor.setMyUserUU(forecastItem.getOrder().getUserUU());
+			else {
+				vendor.setMyUserUU(SystemSession.getUser().getUserUU());
+			}
 			vendor.setVendorEnterprise(enterprise);
-			vendor.setVendEnUU(order.getVendUU());
-			if (order.getVendUserUU() != null) {
-				List<User> users = userDao.findByEnUUAndUserUU(enterprise.getUu(), order.getVendUserUU());
+			vendor.setVendEnUU(enterprise.getUu());
+			if (forecastItem.getVendUserUU() != null) {
+				List<User> users = userDao.findByEnUUAndUserUU(enterprise.getUu(), forecastItem.getVendUserUU());
 				if (users.size() > 0) {
 					vendor.setVendorUser(users.get(0));
-					vendor.setVendUserUU(order.getVendUserUU());
+					vendor.setVendUserUU(forecastItem.getVendUserUU());
 				}
 			}
 			return vendorDao.save(vendor);
@@ -114,18 +127,4 @@ public class PurchaseForecastServiceImpl implements PurchaseForecastService {
 		return null;
 	}
 	
-	/**
-	 * 添加用户
-	 * 
-	 * @param user
-	 * @return
-	 */
-	private User addUser(User user) {
-		user.setUserUU(null);
-		user.setEnable(Constant.NO);
-		Set<Enterprise> enterprises = new HashSet<Enterprise>();
-		enterprises.add(SystemSession.getUser().getEnterprise());
-		user.setEnterprises(enterprises);
-		return userDao.save(user);
-	}
 }

+ 17 - 7
src/main/java/com/uas/platform/b2b/erp/service/impl/SaleForecastDownServiceImpl.java

@@ -1,24 +1,34 @@
 package com.uas.platform.b2b.erp.service.impl;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.stereotype.Service;
 
 import com.uas.platform.b2b.erp.model.SaleForecastDown;
+import com.uas.platform.b2b.erp.model.SaleForecastDownDet;
 import com.uas.platform.b2b.erp.service.SaleForecastDownService;
-import com.uas.platform.b2b.model.PurchaseForecastAll;
-
+import com.uas.platform.b2b.model.PurchaseForecastAllItem;
 @Service
 public class SaleForecastDownServiceImpl implements SaleForecastDownService {
 
 	@Override
-	public List<SaleForecastDown> convertPurchaseForecastDown(List<PurchaseForecastAll> orders) {
-		List<SaleForecastDown> sales = new ArrayList<SaleForecastDown>();
-		for (PurchaseForecastAll order : orders) {
-			System.out.println("A:" + order);
-			sales.add(new SaleForecastDown(order));
+	public List<SaleForecastDown> convertPurchaseForecastDown(
+			List<PurchaseForecastAllItem> items ) {
+		Map<Long, SaleForecastDown> forecastMap = new HashMap<Long, SaleForecastDown>();
+		for(PurchaseForecastAllItem item : items) {
+			if(!forecastMap.containsKey(item.getOrder().getId())) {
+				forecastMap.put(item.getOrder().getId(), new SaleForecastDown(item));
+			} else {
+				SaleForecastDown forecastDown = forecastMap.get(item.getOrder().getId());
+				List<SaleForecastDownDet> dets = forecastDown.getSaleForecastDownDets();
+				dets.add(new SaleForecastDownDet(item));
+				forecastDown.setSaleForecastDownDets(dets);
+			}
 		}
+		List<SaleForecastDown> sales = new ArrayList<SaleForecastDown>(forecastMap.values());
 		return sales;
 	}