Browse Source

feat: 增加发送订单及结案状态上传的消息队列消息

suntg 7 years ago
parent
commit
c7f736f422

+ 8 - 0
src/main/java/com/uas/platform/b2b/service/impl/BaseInfoServiceImpl.java

@@ -30,6 +30,8 @@ import com.uas.platform.b2b.service.ComponentService;
 import com.uas.platform.b2b.service.OrderRedDotService;
 import com.uas.platform.b2b.service.OrderRedDotService;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
 import com.uas.platform.b2b.support.UsageBufferedLogger;
+import com.uas.platform.b2b.support.mq.RabbitSendService;
+import com.uas.platform.b2b.support.mq.config.RabbitMqConfig;
 import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
 import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
 import com.uas.platform.b2b.temporary.model.NewPurcOrder;
 import com.uas.platform.b2b.temporary.model.NewPurcOrder;
 import com.uas.platform.b2b.temporary.model.OrderItems;
 import com.uas.platform.b2b.temporary.model.OrderItems;
@@ -60,6 +62,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
 import org.springframework.ui.ModelMap;
 
 
+import javax.annotation.Resource;
 import javax.transaction.Transactional;
 import javax.transaction.Transactional;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
@@ -110,6 +113,9 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 	@Autowired
 	@Autowired
     private OrderRedDotService redDotService;
     private OrderRedDotService redDotService;
 
 
+	@Resource
+	private RabbitSendService rabbitSendService;
+
 	
 	
 	/**
 	/**
 	 * 批量导入物料资料
 	 * 批量导入物料资料
@@ -603,6 +609,8 @@ public class BaseInfoServiceImpl implements BaseInfoService {
 			logger.log("平台增加采购单", "平台新增采购单(id=" + order.getId() + ")", SystemSession.getUser().getUserUU(),
 			logger.log("平台增加采购单", "平台新增采购单(id=" + order.getId() + ")", SystemSession.getUser().getUserUU(),
 					SystemSession.getUser().getIp());
 					SystemSession.getUser().getIp());
 			map.put("success", "采购单添加成功");
 			map.put("success", "采购单添加成功");
+			// 发送上传订单到SAAS的消息队列
+			rabbitSendService.sendMessage(RabbitMqConfig.QUEUE_SAAS_SALE_DOWN_NAME, "POST_SALE_ORDER", order.getId());
 		}
 		}
 		map.put("id", order.getId());
 		map.put("id", order.getId());
 		// 保存这次下单的付款方式,方便下次自动带入
 		// 保存这次下单的付款方式,方便下次自动带入

+ 17 - 1
src/main/java/com/uas/platform/b2b/service/impl/PurchaseOrderServiceImpl.java

@@ -48,6 +48,8 @@ import com.uas.platform.b2b.service.PurchaseOrderService;
 import com.uas.platform.b2b.support.SPageUtils;
 import com.uas.platform.b2b.support.SPageUtils;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.XingePusher;
 import com.uas.platform.b2b.support.XingePusher;
+import com.uas.platform.b2b.support.mq.RabbitSendService;
+import com.uas.platform.b2b.support.mq.config.RabbitMqConfig;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.exception.NotFoundException;
 import com.uas.platform.core.exception.NotFoundException;
 import com.uas.platform.core.model.Constant;
 import com.uas.platform.core.model.Constant;
@@ -64,6 +66,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
 
 
+import javax.annotation.Resource;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.JoinType;
 import javax.persistence.criteria.JoinType;
@@ -134,6 +137,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	@Autowired
 	@Autowired
     private OrderRedDotService redDotService;
     private OrderRedDotService redDotService;
 
 
+	@Resource
+	private RabbitSendService rabbitSendService;
+
 	@Override
 	@Override
 	public void save(List<PurcOrderInfoItem> orderItems) {
 	public void save(List<PurcOrderInfoItem> orderItems) {
 	 	orderItems = purcOrderInfoItemDao.save(orderItems);
 	 	orderItems = purcOrderInfoItemDao.save(orderItems);
@@ -158,6 +164,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 					personalProductService.covertPersonalProduct(item.getProductId(), "erp上传采购单");
 					personalProductService.covertPersonalProduct(item.getProductId(), "erp上传采购单");
                 }
                 }
             }
             }
+            // 发送上传SAAS的消息队列消息
+			rabbitSendService.sendMessage(RabbitMqConfig.QUEUE_SAAS_SALE_DOWN_NAME, "POST_SALE_ORDER", orderAll.getId());
 		}
 		}
 		Set<OrderRedDotAll> redDotAllSet = new HashSet<>();
 		Set<OrderRedDotAll> redDotAllSet = new HashSet<>();
         orderAlls.forEach(orderInfo -> {
         orderAlls.forEach(orderInfo -> {
@@ -288,6 +296,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 	private PurchaseOrder updateOrderStatus(long orderId) {
 	private PurchaseOrder updateOrderStatus(long orderId) {
 		int notReply = purchaseOrderItemDao.getCountByStatus(orderId, (short) Status.NOT_REPLY.value());
 		int notReply = purchaseOrderItemDao.getCountByStatus(orderId, (short) Status.NOT_REPLY.value());
 		PurchaseOrder order = purchaseOrderDao.findOne(orderId);
 		PurchaseOrder order = purchaseOrderDao.findOne(orderId);
+		// 原有结案状态
+		Short oldEndStatus = order.getEnd();
 		if (order.getDisplay() == 1) {
 		if (order.getDisplay() == 1) {
 			// 设置查看状态为已查看
 			// 设置查看状态为已查看
             order.setDisplay(Constant.NO);
             order.setDisplay(Constant.NO);
@@ -305,6 +315,11 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
             order.setEnd(Constant.NO);
             order.setEnd(Constant.NO);
         }
         }
 		order = purchaseOrderDao.save(order);
 		order = purchaseOrderDao.save(order);
+		// 如果新的结案状态与原有结案状态不一致
+		if (!order.getEnd().equals(oldEndStatus)) {
+			// 生成上传采购订单结案状态到SAAS的消息队列消息
+			rabbitSendService.sendMessage(RabbitMqConfig.QUEUE_SAAS_SALE_DOWN_NAME, "POST_SALE_ORDER_END", orderId);
+		}
 		return order;
 		return order;
 	}
 	}
 
 
@@ -468,13 +483,14 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
 
 
 	@Override
 	@Override
 	public void saveItems(List<PurchaseOrderItem> items) {
 	public void saveItems(List<PurchaseOrderItem> items) {
-		purchaseOrderItemDao.save(items);
+		items = purchaseOrderItemDao.save(items);
 		List<PurchaseOrderItem> eventItems = new ArrayList<>();
 		List<PurchaseOrderItem> eventItems = new ArrayList<>();
 		for (PurchaseOrderItem item : items) {
 		for (PurchaseOrderItem item : items) {
 			if (NumberUtil.nvl(item.getAcceptQty(), 0).doubleValue() < item.getQty() + NumberUtil.nvl(item.getReturnQty(), 0).doubleValue()) {
 			if (NumberUtil.nvl(item.getAcceptQty(), 0).doubleValue() < item.getQty() + NumberUtil.nvl(item.getReturnQty(), 0).doubleValue()) {
 				eventItems.add(item);
 				eventItems.add(item);
 			}
 			}
 		}
 		}
+
 		ContextUtils.publishEvent(new PurchaseOrderEndReleaseEvent(PurchaseOrderItem.distinctItem(eventItems)));
 		ContextUtils.publishEvent(new PurchaseOrderEndReleaseEvent(PurchaseOrderItem.distinctItem(eventItems)));
 		for (PurchaseOrderItem item : items)
 		for (PurchaseOrderItem item : items)
 			// 明细结案情况下,明细状态为已回复(即不再处理),此时同时修改主记录状态
 			// 明细结案情况下,明细状态为已回复(即不再处理),此时同时修改主记录状态