From 675c3b5d83b928c2bfbb84cd99a7d3f222d4432c Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 05 三月 2026 10:18:16 +0800
Subject: [PATCH] 1

---
 zy-acs-gateway/src/main/java/com/zy/acs/gateway/handler/AgvPackageServerHandler.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 49 insertions(+), 1 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 5a9d201..1674c4a 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,18 +1,22 @@
 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;
 import com.zy.acs.common.domain.protocol.*;
 import com.zy.acs.common.utils.RedisSupport;
 import com.zy.acs.gateway.AbstractInboundHandler;
 import com.zy.acs.gateway.Executors;
 import com.zy.acs.gateway.constant.ProtocolType;
+import com.zy.acs.gateway.constant.RabbitmqConstant;
 import com.zy.acs.gateway.domain.AgvPackage;
 import com.zy.acs.gateway.process.AckMsgBuilder;
 import io.netty.channel.ChannelHandler;
 import io.netty.channel.ChannelHandlerContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -31,6 +35,11 @@
     @Autowired
     private Executors executors;
 
+    @Autowired
+    private RabbitTemplate rabbitTemplate;
+
+
+
     @Override
     @SuppressWarnings("all")
     protected boolean channelRead0(ChannelHandlerContext ctx, AgvPackage pac) throws Exception {
@@ -48,6 +57,26 @@
                         , pac.getHeader().getUniqueNo() + "_" + agv_01_up.getSerialNo()
                         , agv_01_up);
 
+                AgvPackage pathAckPac = AckMsgBuilder.ofSuccess(pac, ProtocolType.PATH_ACK_RESPONSE);
+
+                AGV_B1_DOWN agv_b1_down = (AGV_B1_DOWN) pathAckPac.getBody().getMessageBody();
+                agv_b1_down.setSerialNo(agv_01_up.getSerialNo());
+                agv_b1_down.setPathLen(agv_01_up.getPathLen());
+                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()));
+
+                break label;
+
+            case PICK_PLACE_REQUEST:   // 鍙栨斁璐ц姹傚寘
+
+                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()));
+
                 break label;
 
             case COMMAND_ACK:   // 鍛戒护鍖� ack
@@ -57,6 +86,8 @@
                 redis.setObject(RedisConstant.AGV_CMD_UP_FLAG
                         , 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()));
 
                 break label;
 
@@ -66,6 +97,9 @@
                 AGV_11_UP agv_11_up = (AGV_11_UP) pac.getBody().getMessageBody();
                 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()));
+
                 // 鍔ㄤ綔瀹屾垚搴旂瓟
                 if (null != ackType) {
                     AgvPackage ackPac = AckMsgBuilder.ofSuccess(pac, ackType);
@@ -74,8 +108,9 @@
                     agv_a1_down.setAckSign((byte) agv_11_up.getCompleteCode());
 
                     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()));
+                }
 
                 break label;
 
@@ -91,6 +126,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()));
 
                 break label;
 
@@ -107,6 +144,8 @@
 //
 //                });
 
+                // 鍐欏叆闃熷垪
+                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()));
 
                 break label;
 
@@ -129,6 +168,8 @@
 //                    }
 //
 //                });
+                // 鍐欏叆闃熷垪
+                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()));
 
                 break label;
                 
@@ -145,6 +186,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()));
 
                 break label;
 
@@ -152,12 +195,15 @@
 
                 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()));
 
                 // 鐧诲綍搴旂瓟
                 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()));
                 }
 
                 // 30s redis
@@ -170,6 +216,8 @@
                 AGV_04_UP agv_04_up = (AGV_04_UP) pac.getBody().getMessageBody();
                 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()));
 
                 break label;
 

--
Gitblit v1.9.1