From 133695076fbde70f807ba85e8b041840f4ce57cf Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 19 六月 2025 16:55:52 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java | 196 +++++++++++++++++++----------------------------- 1 files changed, 78 insertions(+), 118 deletions(-) diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java index 3577505..e1206f3 100644 --- a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java +++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/rocket/produce/ChargingMessageListener.java @@ -23,8 +23,6 @@ import org.apache.rocketmq.spring.annotation.MessageModel; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.core.RocketMQListener; -import org.springframework.beans.BeanUtils; -import org.springframework.cloud.stream.annotation.StreamListener; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; @@ -42,10 +40,9 @@ messageModel = MessageModel.CLUSTERING, consumerGroup = "jianguan_message", topic = "jianguan_message", - selectorExpression = "jianguan_message", - consumeThreadMax = 64 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够 + selectorExpression = "jianguan_message" ) -public class ChargingMessageListener extends EnhanceMessageHandler<JianGuanMessage> implements RocketMQListener<JianGuanMessage> { +public class ChargingMessageListener implements RocketMQListener<JianGuanMessage> { @Resource private ChargingOrderClient chargingOrderClient; @@ -66,9 +63,12 @@ private final static String operatorId = "906171535"; - @StreamListener("input") + + /** + * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型 + */ @Override - protected void handleMessage(JianGuanMessage message) throws Exception { + public void onMessage(JianGuanMessage message) { log.info("rocket收到的消息内容:{}", message); String serviceId = message.getServiceId(); if (!StringUtils.hasLength(serviceId)) { @@ -219,124 +219,84 @@ supEquipChargeStatus.setTotalPower(chargingOrder2.getElectrovalence()); tcecSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), supEquipChargeStatus); // 川逸充 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("StartChargeSeq",chargingOrder2.getCode()); - jsonObject.put("ConnectorID",chargingGun2.getFullNumber()); - //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束) - int tempStatus = 0; - switch (chargingOrder2.getStatus()){ - case 1: - tempStatus=1; + if (chargingOrder2.getRechargePaymentType()==3){ + JSONObject jsonObject = new JSONObject(); + jsonObject.put("StartChargeSeq",chargingOrder2.getCode()); + jsonObject.put("ConnectorID",chargingGun2.getFullNumber()); + //状态(0=未知,1=等待中/已插枪,2=启动中,3=充电中,4=停止中,5=已结束) + int tempStatus = 0; + switch (chargingOrder2.getStatus()){ + case 1: + tempStatus=1; - case 2: - tempStatus=1; - jsonObject.put("StartChargeSeqStat",tempStatus); - LocalDateTime startTime = chargingOrder2.getStartTime(); - if (startTime!=null){ - jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - }else{ + case 2: + tempStatus=1; + jsonObject.put("StartChargeSeqStat",tempStatus); + LocalDateTime startTime = chargingOrder2.getStartTime(); + if (startTime!=null){ + jsonObject.put("StartTime",startTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + }else{ + LocalDateTime now = LocalDateTime.now(); + // 转化为yyyy-MM-dd HH:mm:ss格式字符串 + jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + } + chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject); + break; + case 4: + + case 5: + jsonObject.put("StartChargeSeqStat",4); + int temp = 0; + //充电枪状态(1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障) + switch (chargingGun2.getStatus()){ + case 1: + temp = 0; + break; + case 2: + temp=1; + break; + case 3: + temp=2; + break; + case 4: + temp=3; + break; + case 5: + temp=4; + break; + case 6: + temp=4; + break; + case 7: + temp = 255; + break; + } + jsonObject.put("ConnectorStatus",temp); + + jsonObject.put("CurrentA",chargingOrder2.getCurrent()); + jsonObject.put("VoltageA",chargingOrder2.getVoltage()); + LocalDateTime startTime2 = chargingOrder2.getStartTime(); + + if (startTime2!=null){ + jsonObject.put("StartTime",startTime2.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + }else{ + LocalDateTime now = LocalDateTime.now(); + // 转化为yyyy-MM-dd HH:mm:ss格式字符串 + jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + } LocalDateTime now = LocalDateTime.now(); // 转化为yyyy-MM-dd HH:mm:ss格式字符串 - jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - } - chuanYiChongSuperviseUtil.notificationStationStatus(new Operator(), jsonObject); - break; - case 4: - - case 5: - jsonObject.put("StartChargeSeqStat",4); - int temp = 0; - //充电枪状态(1=离线,2=空闲,3=占用(未充电),4=占用(充电中),5=占用(已充满),6=占用(预约锁定),7=故障) - switch (chargingGun2.getStatus()){ - case 1: - temp = 0; - break; - case 2: - temp=1; - break; - case 3: - temp=2; - break; - case 4: - temp=3; - break; - case 5: - temp=4; - break; - case 6: - temp=4; - break; - case 7: - temp = 255; - break; - } - jsonObject.put("ConnectorStatus",temp); - - jsonObject.put("CurrentA",chargingOrder2.getCurrent()); - jsonObject.put("VoltageA",chargingOrder2.getVoltage()); - LocalDateTime startTime2 = chargingOrder2.getStartTime(); - - if (startTime2!=null){ - jsonObject.put("StartTime",startTime2.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - }else{ - LocalDateTime now = LocalDateTime.now(); - // 转化为yyyy-MM-dd HH:mm:ss格式字符串 - jsonObject.put("StartTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - } - LocalDateTime now = LocalDateTime.now(); - // 转化为yyyy-MM-dd HH:mm:ss格式字符串 - jsonObject.put("EndTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - jsonObject.put("TotalPower",chargingOrder2.getElectricity()); - jsonObject.put("TotalMoney",chargingOrder2.getOrderAmount()); - chuanYiChongSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), jsonObject); - break; + jsonObject.put("EndTime",now.format(java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + jsonObject.put("TotalPower",chargingOrder2.getElectricity()); + jsonObject.put("TotalMoney",chargingOrder2.getOrderAmount()); + chuanYiChongSuperviseUtil.notificationSupEquipChargeStatus(new Operator(), jsonObject); + break; + } } + break; } - } - - - @Override - protected void handleMaxRetriesExceeded(JianGuanMessage message) { - // 当超过指定重试次数消息时此处方法会被调用 - // 生产中可以进行回退或其他业务操作 - log.error("消息消费失败,请执行后续处理"); - } - - - /** - * 是否执行重试机制 - */ - @Override - protected boolean isRetry() { - return true; - } - - @Override - protected boolean throwException() { - // 是否抛出异常,false搭配retry自行处理异常 - return false; - } - - /** - * 若需要处理消息过滤,在父级中进行统一处理,或者在此处实现之后,自行处理 - * - * @param message 待处理消息 - * @return true: 本次消息被过滤,false:不过滤 - */ - @Override - protected boolean filter(JianGuanMessage message) { - // 此处可做消息过滤 - return false; - } - - /** - * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型 - */ - @Override - public void onMessage(JianGuanMessage message) { - super.dispatchMessage(message); } } \ No newline at end of file -- Gitblit v1.7.1