Browse Source

修改erp订单上传到b2b不产生消息的问题

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7532 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
dongbw 9 years ago
parent
commit
7939fa7f36

+ 3 - 2
src/main/java/com/uas/platform/b2b/event/PurchaseOrderSaveReleaseEvent.java

@@ -4,7 +4,8 @@ import com.uas.platform.b2b.model.PagingRelease;
 import com.uas.platform.b2b.model.PagingReleaseDetail;
 import com.uas.platform.b2b.model.PurchaseOrderAll;
 
-import java.util.*;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 采购订单保存时生成消息事件
@@ -32,7 +33,7 @@ public class PurchaseOrderSaveReleaseEvent extends SaveReleaseEvent<PagingReleas
         Date date = new Date();
         String codeValue = orderAll.getCode();
         String from = "B2B";
-        if (orderAll.getErpId() != null && orderAll.getStatus() == 200) { // erp传到平台的单据,包含erpId字段记录来源
+        if (orderAll.getErpId() != null) { // erp传到平台的单据,包含erpId字段记录来源
             from = "ERP";
         }
         String type = "新增采购订单";

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

@@ -3,7 +3,6 @@ package com.uas.platform.b2b.service.impl;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.dao.*;
 import com.uas.platform.b2b.event.PurchaseOrderReplyReleaseEvent;
-import com.uas.platform.b2b.event.PurchaseOrderSaveEvent;
 import com.uas.platform.b2b.event.PurchaseOrderSaveReleaseEvent;
 import com.uas.platform.b2b.model.*;
 import com.uas.platform.b2b.search.SearchService;
@@ -69,6 +68,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	@Autowired
 	private UserBaseInfoDao userBaseInfoDao;
 
+	@Autowired
+	private UserDao userDao;
+
 	@Autowired
 	private SearchService searchService;
 
@@ -78,8 +80,27 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	@Override
 	public void save(List<PurchaseOrderAllItem> orderItems) {
 		List<PurchaseOrderAllItem> newOrderItems = purchaseOrderAllItemDao.save(orderItems);
-		ContextUtils.publishEvent(new PurchaseOrderSaveEvent(PurchaseOrderAllItem.distinct(newOrderItems)));
-		ContextUtils.publishEvent(new PurchaseOrderSaveReleaseEvent(PurchaseOrderAllItem.distinct(newOrderItems)));
+//		ContextUtils.publishEvent(new PurchaseOrderSaveEvent(PurchaseOrderAllItem.distinct(newOrderItems)));
+		List<PurchaseOrderAll> orderAlls = PurchaseOrderAllItem.distinct(newOrderItems);
+		List<PurchaseOrderAll> newOrderAlls = new ArrayList<>();
+		for (PurchaseOrderAll orderAll : orderAlls) {
+			if (orderAll.getUser() == null) {
+				User user = userDao.findOne(orderAll.getUserUU());
+				if (user == null) {
+
+					Enterprise enterprise = enterpriseDao.findOne(orderAll.getEnUU());
+					user = userDao.findOne(enterprise.getEnAdminuu());
+				}
+				orderAll.setUser(user);
+			}
+			User vendorUser = userDao.findOne(orderAll.getVendUserUU());
+			if (vendorUser == null) { // 如果不存在对应的vendorUser,消息中就设置为企业管理员
+				Enterprise vendor = enterpriseDao.findOne(orderAll.getVendUU());
+				orderAll.setVendUserUU(vendor.getEnAdminuu());
+			}
+			newOrderAlls.add(orderAll);
+		}
+		ContextUtils.publishEvent(new PurchaseOrderSaveReleaseEvent(orderAlls));
 	}
 
 	@Override