File was renamed from ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageUtil.java |
| | |
| | | package com.ruoyi.integration.rocket.produce; |
| | | package com.ruoyi.integration.iotda.utils.tools; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient; |
| | | import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient; |
| | | import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient; |
| | | import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail; |
| | | import com.ruoyi.chargingPile.api.model.TChargingGun; |
| | | import com.ruoyi.chargingPile.api.vo.UpdateChargingPileStatusVo; |
| | | import com.ruoyi.integration.api.model.*; |
| | | import com.ruoyi.integration.drainage.TCECPushUtil; |
| | | import com.ruoyi.integration.iotda.constant.SendTagConstant; |
| | | import com.ruoyi.integration.iotda.model.*; |
| | | import com.ruoyi.integration.mongodb.service.*; |
| | | import com.ruoyi.integration.rocket.model.*; |
| | | import com.ruoyi.order.api.feignClient.ChargingOrderClient; |
| | | import com.ruoyi.order.api.model.TChargingOrder; |
| | | import com.ruoyi.order.api.query.UploadRealTimeMonitoringDataQuery; |
| | |
| | | import com.ruoyi.order.api.vo.SecurityDetectionVO; |
| | | import com.ruoyi.order.api.vo.TransactionRecordMessageVO; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.rocketmq.client.producer.SendResult; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | |
| | | import javax.annotation.Resource; |
| | | import java.math.RoundingMode; |
| | | import java.util.Objects; |
| | | import java.util.Set; |
| | | import java.util.concurrent.LinkedBlockingQueue; |
| | | import java.util.concurrent.ThreadPoolExecutor; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | |
| | |
| | | private QrCodeDeliveryReplyService qrCodeDeliveryReplyService; |
| | | @Autowired |
| | | private SecurityDetectionService securityDetectionService; |
| | | @Autowired |
| | | private TCECPushUtil tcecPushUtil; |
| | | |
| | | @Resource |
| | | private ChargingPileClient chargingPileClient; |
| | | @Resource |
| | | private ChargingGunClient chargingGunClient; |
| | | |
| | | @Resource |
| | | private RedisTemplate redisTemplate; |
| | | @Autowired |
| | | private EnhanceProduce enhanceProduce; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public void handleMessage(com.ruoyi.integration.rocket.model.ChargingMessage message){ |
| | | public void handleMessage(ChargingMessage message){ |
| | | log.info("收到的消息内容:{}",message); |
| | | String serviceId = message.getServiceId(); |
| | | if(!StringUtils.hasLength(serviceId)){ |
| | |
| | | vo1.setPile_code(pingMessage.getCharging_pile_code()); |
| | | vo1.setStatus(pingMessage.getCharging_gun_status()); |
| | | chargingPileClient.updateChargingPileStatus(vo1); |
| | | // 监管平台推送充电设备状态 |
| | | String gunCode = pingMessage.getCharging_pile_code() + pingMessage.getCharging_gun_code(); |
| | | ChargingMessage chargingMessage = new ChargingMessage(); |
| | | chargingMessage.setServiceId(SendTagConstant.GUN_STATUS); |
| | | GunStatusMessage gunStatusMessage = new GunStatusMessage(); |
| | | gunStatusMessage.setFullNumber(gunCode); |
| | | chargingMessage.setGunStatusMessage(gunStatusMessage); |
| | | SendResult sendResult = enhanceProduce.gunStatusMessage(chargingMessage); |
| | | break; |
| | | case SendTagConstant.END_CHARGE: |
| | | EndChargeMessage endChargeMessage = message.getEndChargeMessage(); |
| | |
| | | endChargeService.create(endCharge); |
| | | // 业务处理 |
| | | chargingOrderClient.endCharge(endCharge.getTransaction_serial_number()); |
| | | // 订单id |
| | | String transactionSerialNumber = endCharge.getTransaction_serial_number(); |
| | | ChargingOrderMessage chargingOrderMessage = new ChargingOrderMessage(); |
| | | chargingOrderMessage.setOrderNumber(transactionSerialNumber); |
| | | // 推送充电订单信息 |
| | | ChargingMessage chargingMessage1 = new ChargingMessage(); |
| | | chargingMessage1.setServiceId(SendTagConstant.ORDER_INFO); |
| | | chargingMessage1.setOrderMessage(chargingOrderMessage); |
| | | enhanceProduce.orderInfoMessage(chargingMessage1); |
| | | // 推送充电订单状态 |
| | | ChargingMessage chargingMessage2 = new ChargingMessage(); |
| | | chargingMessage2.setServiceId(SendTagConstant.ORDER_STATUS); |
| | | chargingMessage2.setOrderMessage(chargingOrderMessage); |
| | | enhanceProduce.orderStatusMessage(chargingMessage2); |
| | | break; |
| | | case SendTagConstant.ERROR_MESSAGE: |
| | | ErrorMessageMessage errorMessageMessage1 = message.getErrorMessageMessage(); |
| | |
| | | UploadRealTimeMonitoringDataQuery query = new UploadRealTimeMonitoringDataQuery(); |
| | | BeanUtils.copyProperties(uploadRealTimeMonitoringData, query); |
| | | chargingOrderClient.chargeMonitoring(query); |
| | | // 订单id |
| | | ChargingOrderMessage chargingOrderMessage3 = new ChargingOrderMessage(); |
| | | chargingOrderMessage3.setOrderNumber(chargingOrder.getCode()); |
| | | // 推送充电订单信息 |
| | | ChargingMessage chargingMessage4 = new ChargingMessage(); |
| | | chargingMessage4.setServiceId(SendTagConstant.ORDER_STATUS); |
| | | chargingMessage4.setOrderMessage(chargingOrderMessage3); |
| | | enhanceProduce.orderInfoMessage(chargingMessage4); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | //计算费用 |
| | | TransactionRecordMessageVO vo = new TransactionRecordMessageVO(); |
| | | BeanUtils.copyProperties(transactionRecordMessage,vo); |
| | | int code = chargingOrderClient.endChargeBillingCharge(vo).getCode(); |
| | | if(200 != code){ |
| | | //失败后添加到队列中继续处理数据 |
| | | redisTemplate.opsForSet().add(SendTagConstant.TRANSACTION_RECORD, transactionRecordMessage.getTransaction_serial_number()); |
| | | } |
| | | chargingOrderClient.endChargeBillingCharge(vo); |
| | | |
| | | // 添加实时上传记录结束记录 |
| | | // 添加实时上传结束记录 |
| | | // 查询mogondb上一条数据 |
| | | UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(transactionRecordMessage.getTransaction_serial_number()); |
| | | if(Objects.nonNull(data) && data.getStatus() != 5){ |