From 881b89a0c0d07f5fc89784423799ab136e2f3f37 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期二, 24 三月 2026 12:34:18 +0800
Subject: [PATCH] 1

---
 zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java |   51 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java b/zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java
index 1674c4a..3dab8bf 100644
--- a/zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java
+++ b/zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java
@@ -1,6 +1,5 @@
 package com.zy.acs.gateway.handler;
 
-import com.alibaba.fastjson.JSON;
 import com.zy.acs.common.constant.RedisConstant;
 import com.zy.acs.common.domain.AgvProtocol;
 import com.zy.acs.common.domain.mq.DeviceMessage;
@@ -39,7 +38,6 @@
     private RabbitTemplate rabbitTemplate;
 
 
-
     @Override
     @SuppressWarnings("all")
     protected boolean channelRead0(ChannelHandlerContext ctx, AgvPackage pac) throws Exception {
@@ -48,7 +46,8 @@
 
         final String uniqueNo = pac.getHeader().getUniqueNo();
 
-        label : switch (pac.getHeader().getProtocolType()){
+        label:
+        switch (pac.getHeader().getProtocolType()) {
             case PATH_ACK:      // 璺緞鍖� ack
 
                 AGV_01_UP agv_01_up = (AGV_01_UP) pac.getBody().getMessageBody();
@@ -65,8 +64,9 @@
                 ctx.writeAndFlush(pathAckPac);
 
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PATH_ACK.name()), new DeviceMessage(pac.getSourceHexStr()));
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PATH_ACK_RESPONSE.name()), new DeviceMessage(pathAckPac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PATH_ACK.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PATH_ACK_RESPONSE.name()), new DeviceMessage(pathAckPac.getSourceHexStr()));
+
 
                 break label;
 
@@ -75,7 +75,8 @@
                 AGV_06_UP agv_06_up = (AGV_06_UP) pac.getBody().getMessageBody();
                 redis.push(RedisConstant.AGV_COMPLETE_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_06_up));
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PICK_PLACE_REQUEST.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.PICK_PLACE_REQUEST.name()), new DeviceMessage(pac.getSourceHexStr()));
+
 
                 break label;
 
@@ -87,7 +88,8 @@
                         , pac.getHeader().getUniqueNo() + "_" + agv_02_up.getSerialNo()
                         , agv_02_up);
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.COMMAND_ACK.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.COMMAND_ACK.name()), new DeviceMessage(pac.getSourceHexStr()));
+
 
                 break label;
 
@@ -98,7 +100,8 @@
                 redis.push(RedisConstant.AGV_COMPLETE_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_11_up));
 
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.ACTION_COMPLETE.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.ACTION_COMPLETE.name()), new DeviceMessage(pac.getSourceHexStr()));
+
 
                 // 鍔ㄤ綔瀹屾垚搴旂瓟
                 if (null != ackType) {
@@ -108,8 +111,8 @@
                     agv_a1_down.setAckSign((byte) agv_11_up.getCompleteCode());
 
                     ctx.writeAndFlush(ackPac);
+                    saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ackType.name()), new DeviceMessage(ackPac.getSourceHexStr()));
 
-                    rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ackType.name()), new DeviceMessage(ackPac.getSourceHexStr()));
                 }
 
                 break label;
@@ -127,7 +130,8 @@
 //
 //                });
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.DATA_CODE_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.DATA_CODE_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+
 
                 break label;
 
@@ -143,9 +147,9 @@
 //                    }
 //
 //                });
-
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.DATA_WITHOUT_CODE_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.DATA_WITHOUT_CODE_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+
 
                 break label;
 
@@ -169,10 +173,11 @@
 //
 //                });
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.HEARTBEAT_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.HEARTBEAT_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+
 
                 break label;
-                
+
             case SILO_REPORT:  // 鏂欎粨淇℃伅鍖�
 
                 AGV_70_UP agv_70_up = (AGV_70_UP) pac.getBody().getMessageBody();
@@ -185,9 +190,8 @@
 //                    }
 //
 //                });
-
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.SILO_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.SILO_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
 
                 break label;
 
@@ -196,14 +200,14 @@
                 AGV_F0_UP agv_f0_up = (AGV_F0_UP) pac.getBody().getMessageBody();
                 redis.push(RedisConstant.AGV_DATA_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_f0_up));
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.LOGIN_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.LOGIN_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
 
                 // 鐧诲綍搴旂瓟
                 if (null != ackType) {
                     AgvPackage ackPac = AckMsgBuilder.ofSuccess(pac, ackType);
 
                     ctx.writeAndFlush(ackPac);
-                    rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ackType.name()), new DeviceMessage(ackPac.getSourceHexStr()));
+                    saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_DOWN.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ackType.name()), new DeviceMessage(ackPac.getSourceHexStr()));
                 }
 
                 // 30s redis
@@ -217,7 +221,7 @@
                 redis.push(RedisConstant.AGV_DATA_FLAG, AgvProtocol.build(uniqueNo).setMessageBody(agv_04_up));
 
                 // 鍐欏叆闃熷垪
-                rabbitTemplate.convertAndSend(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.FAULT_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
+                saveLogToMq(RabbitmqConstant.TOPIC_EXCHANGE, RabbitmqConstant.ROUTING_KEY_UP.replaceFirst(RabbitmqConstant.SPILT_REGEX, uniqueNo).replaceFirst(RabbitmqConstant.SPILT_REGEX, ProtocolType.FAULT_REPORT.name()), new DeviceMessage(pac.getSourceHexStr()));
 
                 break label;
 
@@ -242,7 +246,14 @@
         }
     }
 
-
+    public void saveLogToMq(String topic_exchange, String routingKey, DeviceMessage message) {
+        if (rabbitTemplate.isRunning()) {
+            // 鍐欏叆闃熷垪
+            rabbitTemplate.convertAndSend(topic_exchange, routingKey, message);
+        } else {
+            log.warn("RabbitTemplate is not running, message not sent");
+        }
+    }
 
 
 }

--
Gitblit v1.9.1