| | |
| | | package com.ruoyi.integration.rocket.listener; |
| | | |
| | | import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient; |
| | | import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; |
| | | import com.ruoyi.chargingPile.api.feignClient.FaultMessageClient; |
| | | import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail; |
| | | import com.ruoyi.chargingPile.api.model.TChargingGun; |
| | | import com.ruoyi.chargingPile.api.model.TFaultMessage; |
| | | import com.ruoyi.integration.api.model.Online; |
| | | import com.ruoyi.integration.api.model.UploadRealTimeMonitoringData; |
| | | import com.ruoyi.integration.mongodb.service.UploadRealTimeMonitoringDataService; |
| | |
| | | import com.ruoyi.order.api.model.TChargingOrder; |
| | | import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | 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 javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Objects; |
| | | |
| | | @Slf4j |
| | | @Component |
| | | @RocketMQMessageListener( |
| | | consumerGroup = "enhance_consumer_group", |
| | | topic = "rocket_enhance", |
| | | selectorExpression = "*", |
| | | messageModel = MessageModel.CLUSTERING, |
| | | consumerGroup = "charge_upload_real_time_monitoring_data", |
| | | topic = "charge_upload_real_time_monitoring_data", |
| | | selectorExpression = "upload_real_time_monitoring_data", |
| | | consumeThreadMax = 5 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够 |
| | | ) |
| | | public class UploadRealTimeMonitoringDataMessageListener extends EnhanceMessageHandler<UploadRealTimeMonitoringDataMessage> implements RocketMQListener<UploadRealTimeMonitoringDataMessage> { |
| | |
| | | private ChargingOrderClient chargingOrderClient; |
| | | @Resource |
| | | private AccountingStrategyDetailClient accountingStrategyDetailClient; |
| | | @Resource |
| | | private ChargingGunClient chargingGunClient; |
| | | @Resource |
| | | private FaultMessageClient faultMessageClient; |
| | | |
| | | |
| | | @Override |
| | |
| | | BeanUtils.copyProperties(uploadRealTimeMonitoringData, query); |
| | | chargingOrderClient.chargeMonitoring(query); |
| | | |
| | | TChargingGun chargingGun = chargingGunClient.getChargingGunByCode(message.getCharging_gun_code()).getData(); |
| | | if(Objects.nonNull(chargingGun)){ |
| | | // 存储状态信息 |
| | | TFaultMessage faultMessage = new TFaultMessage(); |
| | | if(message.getCharging_gun_status().equals(0) || message.getCharging_gun_status().equals(1)){ |
| | | faultMessage.setSiteId(chargingGun.getSiteId()); |
| | | faultMessage.setChargingPileId(chargingGun.getChargingPileId()); |
| | | faultMessage.setChargingGunId(chargingGun.getId()); |
| | | switch (message.getCharging_gun_status()){ |
| | | case 0: |
| | | faultMessage.setStatus(1); |
| | | break; |
| | | case 1: |
| | | faultMessage.setStatus(2); |
| | | break; |
| | | } |
| | | faultMessage.setDownTime(LocalDateTime.now()); |
| | | faultMessageClient.createFaultMessage(faultMessage); |
| | | }else { |
| | | // 空闲 充电 查询是否该设备之前存在离线记录或者故障记录 |
| | | faultMessage = faultMessageClient.getFaultMessageByGunId(chargingGun.getId()).getData(); |
| | | if(Objects.nonNull(faultMessage)){ |
| | | faultMessage.setEndTime(LocalDateTime.now()); |
| | | faultMessageClient.updateFaultMessage(faultMessage); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |