在各个帧类中添加mq消息发送(部分添加用于测试)

This commit is contained in:
YAS\29473
2025-09-10 16:57:41 +08:00
parent 8e491d41ab
commit 3eb26775fc
8 changed files with 683 additions and 80 deletions

View File

@@ -1,6 +1,7 @@
package com.jsowell.netty.handler.yunkuaichong;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.constant.mq.ThirdPartyRabbitConstants;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
import com.jsowell.common.enums.ykc.ChargingFailedReasonEnum;
@@ -14,6 +15,7 @@ import com.jsowell.pile.service.OrderBasicInfoService;
import com.jsowell.thirdparty.common.CommonService;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
@@ -40,6 +42,9 @@ public class RemoteStartChargingRequestHandler extends AbstractYkcHandler {
// 引入第三方平台任务线程池
private ThreadPoolTaskExecutor thirdpartyTaskExecutor = SpringUtils.getBean("thirdpartyTaskExecutor");
@Autowired
private RabbitTemplate rabbitTemplate;
@Override
public void afterPropertiesSet() throws Exception {
YKCOperateFactory.register(type, this);
@@ -125,6 +130,33 @@ public class RemoteStartChargingRequestHandler extends AbstractYkcHandler {
}
}
}, thirdpartyTaskExecutor);
// TODO 测试mq
// 异步发送mq
CompletableFuture.runAsync(() -> {
OrderBasicInfo orderInfo = orderBasicInfoService.getOrderInfoByTransactionCode(transactionCode);
if (orderInfo == null) {
return;
}
try {
// 推送启动充电结果
Thread.sleep(1000);
rabbitTemplate.convertAndSend(ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,ThirdPartyRabbitConstants.QUEUE_CHARGE_RESULT_PUSH, orderInfo);
} catch (Exception e) {
e.printStackTrace();
}
// 启动失败, 推送第三方订单信息
if (StringUtils.equals(startResult, Constants.DOUBLE_ZERO)) {
try {
Thread.sleep(1000);
//充电订单信息推送,订单信息推送,停止充电结果推送,充电账单推送
rabbitTemplate.convertAndSend(ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,ThirdPartyRabbitConstants.QUEUE_STARTUP_CHARGING_FAILED_PUSH, orderInfo);
} catch (Exception e) {
log.error("统一推送第三方平台订单信息error, ", e);
}
}
}, thirdpartyTaskExecutor);
return null;
}
}

View File

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
import com.google.common.primitives.Bytes;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.constant.mq.ThirdPartyRabbitConstants;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
@@ -27,6 +28,7 @@ import com.jsowell.thirdparty.common.CommonService;
import com.jsowell.thirdparty.platform.service.impl.ChargeAlgorithmService;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
@@ -84,6 +86,10 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler {
@Autowired
private PersonalChargingRecordService personalChargingRecordService;
@Autowired
private RabbitTemplate rabbitTemplate;
// public static void main(String[] args) {
// // BigDecimal totalElectricity = new BigDecimal("23.73");
@@ -695,6 +701,27 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler {
}
}, thirdpartyTaskExecutor);
// TODO 测试mq
// 异步推送充电订单算法平台
CompletableFuture.runAsync(() -> {
try {
String result = chargeAlgorithmService.pushOrderInfo(finalOrderBasicInfo.getOrderCode());
log.info("异步推送充电订单算法平台 result:{}", result);
} catch (Exception e) {
log.error("异步推送充电订单算法平台 error, ", e);
}
}, thirdpartyTaskExecutor);
CompletableFuture.runAsync(() -> {
try {
rabbitTemplate.convertAndSend(ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,ThirdPartyRabbitConstants.QUEUE_CHARGE_ORDER_PUSH, finalOrderBasicInfo);
} catch (Exception e) {
log.error("推送第三方平台订单信息error, ", e);
}
}, thirdpartyTaskExecutor);
} else {
// 平台没有查到订单
orderBasicInfoService.saveAbnormalOrder(data);

View File

@@ -2,6 +2,7 @@ package com.jsowell.netty.handler.yunkuaichong;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.constant.mq.ThirdPartyRabbitConstants;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
@@ -21,6 +22,7 @@ import com.jsowell.pile.service.PileBasicInfoService;
import com.jsowell.thirdparty.common.CommonService;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
@@ -66,6 +68,9 @@ public class UploadRealTimeMonitorHandler extends AbstractYkcHandler {
@Autowired
private RedisCache redisCache;
@Autowired
private RabbitTemplate rabbitTemplate;
@Override
public byte[] supplyProcess(YKCDataProtocol ykcDataProtocol, ChannelHandlerContext channel) {
@@ -377,6 +382,26 @@ public class UploadRealTimeMonitorHandler extends AbstractYkcHandler {
}, thirdpartyTaskExecutor);
}
// TODO 测试mq
// 向mq中发送实时数据消息,给第三方服务消费
CompletableFuture.runAsync(() -> {
try {
rabbitTemplate.convertAndSend(ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,ThirdPartyRabbitConstants.QUEUE_REALTIME_DATA_PUSH, realTimeMonitorData);
} catch (Exception e){
log.error("向mq中发送实时数据消息供第三方服务消费 error, ", e);
}
if (StringUtils.equals(connectorStatus,Constants.ONE)){
// 故障
// 异步推送第三方平台告警信息
try {
rabbitTemplate.convertAndSend(ThirdPartyRabbitConstants.WCC_THIRDPARTY_NAME,ThirdPartyRabbitConstants.QUEUE_ALARM_PUSH, realTimeMonitorData.getPutGunType());
} catch (Exception e) {
log.error("统一推送第三方平台告警信息 error, ", e);
}
}
}, executor);
return null;
}

View File

@@ -371,6 +371,8 @@ public class UploadRealTimeMonitorStrategy implements AbstractYkcStrategy {
}, executor);
}
// TODO 测试
return null;
}