瀏覽代碼

询价单 不存在供应商关系时添加供应商-客户关系

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@916 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg 11 年之前
父節點
當前提交
34b125eec0

+ 67 - 13
src/main/java/com/uas/platform/b2b/erp/service/impl/InquiryServiceImpl.java

@@ -7,20 +7,24 @@ import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.ProductDao;
 import com.uas.platform.b2b.dao.PurchaseInquiryDao;
 import com.uas.platform.b2b.dao.PurchaseInquiryItemDao;
 import com.uas.platform.b2b.dao.SaleQuotationItemDao;
+import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.dao.VendorDao;
 import com.uas.platform.b2b.erp.model.Inquiry;
 import com.uas.platform.b2b.erp.model.InquiryDecide;
 import com.uas.platform.b2b.erp.model.InquiryDetail;
 import com.uas.platform.b2b.erp.service.InquiryService;
+import com.uas.platform.b2b.model.Enterprise;
 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.model.SaleQuotation;
 import com.uas.platform.b2b.model.SaleQuotationItem;
+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.Status;
@@ -42,6 +46,12 @@ public class InquiryServiceImpl implements InquiryService {
 
 	@Autowired
 	private SaleQuotationItemDao saleQuotationItemDao;
+	
+	@Autowired
+	private EnterpriseDao enterpriseDao;
+	
+	@Autowired
+	private UserDao userDao;
 
 	@Override
 	public List<PurchaseInquiryItem> convertInquiry(List<Inquiry> inquiries) {
@@ -54,22 +64,30 @@ public class InquiryServiceImpl implements InquiryService {
 				PurchaseInquiry purchaseInquiry = inquiry.convert();
 				if (!CollectionUtils.isEmpty(purchaseInquiry.getInquiryItems())) {
 					for (PurchaseInquiryItem item : purchaseInquiry.getInquiryItems()) {
-						// 如果询价单明细行没有指定供应商联系人,取平台中供应商资料中的联系人
-						if (item.getVendUserUU() == null || item.getVendUserUU() == 0) {
-							List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(purchaseInquiry.getEnUU(), item.getVendUU());
-							if (vendors.size() > 0)
-								item.setVendUserUU(vendors.get(0).getVendUserUU());
+						Vendor vendor = null;
+						List<Vendor> vendors = vendorDao.findByMyEnUUAndVendUU(purchaseInquiry.getEnUU(), item.getVendUU());
+						if(vendors.size() > 0) {
+							vendor = vendors.get(0);
+							// 如果询价单明细行没有指定供应商联系人,取平台中供应商资料中的联系人
+							if (item.getVendUserUU() == null || item.getVendUserUU() == 0) {
+								item.setVendUserUU(vendor.getVendUserUU());
+							}
+						} else {
+							vendor = addVendor(item);
 						}
-						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());
+						if (vendor != null) {
+							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.add(item);
 						}
 					}
-					inquiryItems.addAll(purchaseInquiry.getInquiryItems());
+					
 				}
 			}
 		}
@@ -135,4 +153,40 @@ public class InquiryServiceImpl implements InquiryService {
 		return quotationItems;
 	}
 
+	/**
+	 * 添加供应商资料
+	 * 
+	 * @param order
+	 */
+	private Vendor addVendor(PurchaseInquiryItem inquiryItem) {
+		Vendor vendor = new Vendor();
+		vendor.setMyEnUU(inquiryItem.getInquiry().getEnUU());
+		if(inquiryItem.getUserUU() != null || inquiryItem.getUserUU() != 0) {
+			vendor.setMyUserUU(inquiryItem.getUserUU());
+		} else {
+			vendor.setMyUserUU(SystemSession.getUser().getUserUU());
+		}
+		vendor.setMyUserUU(SystemSession.getUser().getUserUU());
+		Enterprise vendEnterprise = enterpriseDao.findOne(inquiryItem.getVendUU());
+		if (vendEnterprise != null) {
+			vendor.setVendorEnterprise(vendEnterprise);
+			vendor.setVendEnUU(inquiryItem.getVendUU());
+			if (inquiryItem.getVendUserUU() != null) {
+				List<User> users = userDao.findByEnUUAndUserUU(vendEnterprise.getUu(), inquiryItem.getVendUserUU());
+				if (users.size() > 0) {
+					vendor.setVendorUser(users.get(0));
+					vendor.setVendUserUU(inquiryItem.getVendUserUU());
+				} else {
+					vendor.setVendUserUU(vendEnterprise.getEnAdminuu());
+					inquiryItem.setVendUserUU(vendEnterprise.getEnAdminuu());
+				}
+			} else {
+				vendor.setVendUserUU(vendEnterprise.getEnAdminuu());
+				inquiryItem.setVendUserUU(vendEnterprise.getEnAdminuu());
+			}
+			return vendorDao.save(vendor);
+		}
+		return null;
+	}
+
 }

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

@@ -61,12 +61,12 @@ public class PurchaseServiceImpl implements PurchaseService {
 				Vendor vendor = null;
 				if (vendors.size() == 0) {//供应商资料在平台上不存在
 					vendor = addVendor(order);//添加企业的供应商资料
+					if (order.getVendUserUU() == null)//单据不包含供应商联系人UU号&&供应商列表中有供应商联系人
+						order.setVendUserUU(vendor.getVendorUser().getUserUU());//将供应商列表中的联系人设为单据的供应商联系人
 				} else {//供应商资料在平台上存在
 					vendor = vendors.get(0);
 				}
 				if (vendor != null && !CollectionUtils.isEmpty(order.getOrderItems())) {//平台中存在供应商的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
@@ -112,8 +112,23 @@ public class PurchaseServiceImpl implements PurchaseService {
 	private Vendor addVendor(PurchaseOrderAll order) {
 		Vendor vendor = new Vendor();
 		vendor.setMyEnUU(order.getEnUU());
-		vendor.setMyUserUU(SystemSession.getUser().getUserUU());
+		//买方用户(联系人)
+		//1、单据存在买方用户UU号:买方企业存在对应uu号的用户,设为该用户;买方企业不存在对应uu号的用户,供应商和单据设为当前用户(管理员)
+		//2、单据不存在买方用户UU号:供应商和单据设为当前用户(管理员)
+		if(order.getUserUU() != null && order.getUserUU() != 0) {
+			List<User> myUsers = userDao.findByEnUUAndUserUU(order.getEnUU(), order.getUserUU());
+			if(myUsers.size() > 0) {
+				vendor.setMyUserUU(order.getUserUU());
+			} else {
+				vendor.setMyUserUU(SystemSession.getUser().getUserUU());
+				order.setUserUU(SystemSession.getUser().getUserUU());
+			}
+		} else {
+			vendor.setMyUserUU(SystemSession.getUser().getUserUU());
+			order.setUserUU(SystemSession.getUser().getUserUU());
+		}
 		Enterprise enterprise = enterpriseDao.findOne(order.getVendUU());
+		//供应商企业UU号存在对应的企业
 		if (enterprise != null) {
 			vendor.setVendorEnterprise(enterprise);
 			vendor.setVendEnUU(order.getVendUU());
@@ -122,7 +137,13 @@ public class PurchaseServiceImpl implements PurchaseService {
 				if (users.size() > 0) {
 					vendor.setVendorUser(users.get(0));
 					vendor.setVendUserUU(order.getVendUserUU());
+				} else {
+					vendor.setVendUserUU(enterprise.getEnAdminuu());
+					order.setVendUserUU(enterprise.getEnAdminuu());
 				}
+			} else {
+				vendor.setVendUserUU(enterprise.getEnAdminuu());
+				order.setVendUserUU(enterprise.getEnAdminuu());
 			}
 			return vendorDao.save(vendor);
 		}