From a41e23347029bf69a3f59438749658252de81d2e Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 15 十月 2024 09:41:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java |  146 ++++++++++++++++++++++++++----------------------
 1 files changed, 79 insertions(+), 67 deletions(-)

diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java
index 8cc1e62..d89f907 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/ChargingMessageListener.java
@@ -22,6 +22,7 @@
 import com.ruoyi.order.api.vo.PlatformStartChargingReplyMessageVO;
 import com.ruoyi.order.api.vo.PlatformStopChargingReplyVO;
 import com.ruoyi.order.api.vo.SecurityDetectionVO;
+import com.ruoyi.order.api.vo.TransactionRecordMessageVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.rocketmq.spring.annotation.MessageModel;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
@@ -185,75 +186,82 @@
                 acquisitionBillingModeService.create(acquisitionBillingMode);
                 break;
             case SendTagConstant.UPLOAD_REAL_TIME_MONITORING_DATA:
-                UploadRealTimeMonitoringDataMessage uploadRealTimeMonitoringDataMessage = message.getUploadRealTimeMonitoringDataMessage();
-                log.info("上传实时监测数据-业务消息处理:{}",uploadRealTimeMonitoringDataMessage);
-                // 持久化消息
-                UploadRealTimeMonitoringData uploadRealTimeMonitoringData = new UploadRealTimeMonitoringData();
-                BeanUtils.copyProperties(uploadRealTimeMonitoringDataMessage,uploadRealTimeMonitoringData);
-                // 查询mogondb上一条数据
-                UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(uploadRealTimeMonitoringDataMessage.getTransaction_serial_number());
-                // 查询订单
-                TChargingOrder chargingOrder = chargingOrderClient.getOrderByCode(uploadRealTimeMonitoringDataMessage.getTransaction_serial_number()).getData();
-                // 查询当前时间段的计费策略
-                TAccountingStrategyDetail accountingStrategyDetail = accountingStrategyDetailClient.getDetailBySiteId(chargingOrder.getSiteId()).getData();
-                uploadRealTimeMonitoringData.setElectrovalence_all(accountingStrategyDetail.getElectrovalence());
-                uploadRealTimeMonitoringData.setService_charge(accountingStrategyDetail.getServiceCharge());
-                if (Objects.nonNull(data)) {
-                    uploadRealTimeMonitoringData.setLast_time(data.getLast_time());
-                    uploadRealTimeMonitoringData.setPeriod_electric_price(uploadRealTimeMonitoringDataMessage.getPaid_amount().subtract(data.getPaid_amount()));
-                    uploadRealTimeMonitoringData.setPeriod_charging_degree(uploadRealTimeMonitoringDataMessage.getCharging_degree().subtract(data.getCharging_degree()));
-                    uploadRealTimeMonitoringData.setPeriod_service_price(uploadRealTimeMonitoringDataMessage.getCharging_degree().multiply(accountingStrategyDetail.getServiceCharge()).setScale(4, RoundingMode.HALF_UP));
-                }else {
-                    log.info("首次上传实时监测数据");
-                    uploadRealTimeMonitoringData.setPeriod_electric_price(uploadRealTimeMonitoringDataMessage.getPaid_amount());
-                    uploadRealTimeMonitoringData.setPeriod_charging_degree(uploadRealTimeMonitoringDataMessage.getCharging_degree());
-                    uploadRealTimeMonitoringData.setPeriod_service_price(uploadRealTimeMonitoringDataMessage.getCharging_degree().multiply(accountingStrategyDetail.getServiceCharge()).setScale(4, RoundingMode.HALF_UP));
-                }
-                uploadRealTimeMonitoringDataService.create(uploadRealTimeMonitoringData);
-                // 业务处理
-                UploadRealTimeMonitoringDataQuery query = new UploadRealTimeMonitoringDataQuery();
-                BeanUtils.copyProperties(uploadRealTimeMonitoringData, query);
-                chargingOrderClient.chargeMonitoring(query);
-                GetChargingGunByCode code = new GetChargingGunByCode();
-                code.setCharging_pile_code(uploadRealTimeMonitoringDataMessage.getCharging_pile_code());
-                code.setCharging_gun_code(uploadRealTimeMonitoringDataMessage.getCharging_gun_code());
-                TChargingGun chargingGun = chargingGunClient.getChargingGunByCode(code).getData();
-                if(Objects.nonNull(chargingGun)){
-                    // 存储状态信息
-                    TFaultMessage faultMessage = new TFaultMessage();
-                    if(uploadRealTimeMonitoringDataMessage.getCharging_gun_status().equals(0) || uploadRealTimeMonitoringDataMessage.getCharging_gun_status().equals(1)){
-                        faultMessage.setSiteId(chargingGun.getSiteId());
-                        faultMessage.setChargingPileId(chargingGun.getChargingPileId());
-                        faultMessage.setChargingGunId(chargingGun.getId());
-                        switch (uploadRealTimeMonitoringDataMessage.getCharging_gun_status()){
-                            case 0:
-                                faultMessage.setStatus(1);
-                                chargingGun.setStatus(1);
-                                break;
-                            case 1:
-                                faultMessage.setStatus(2);
-                                chargingGun.setStatus(7);
-                                break;
-                        }
-                        faultMessage.setDownTime(LocalDateTime.now());
-                        faultMessageClient.createFaultMessage(faultMessage);
+                try {
+                    UploadRealTimeMonitoringDataMessage uploadRealTimeMonitoringDataMessage = message.getUploadRealTimeMonitoringDataMessage();
+                    log.info("上传实时监测数据-业务消息处理:{}",uploadRealTimeMonitoringDataMessage);
+                    // 持久化消息
+                    UploadRealTimeMonitoringData uploadRealTimeMonitoringData = new UploadRealTimeMonitoringData();
+                    BeanUtils.copyProperties(uploadRealTimeMonitoringDataMessage,uploadRealTimeMonitoringData);
+                    // 查询mogondb上一条数据
+                    UploadRealTimeMonitoringData data = uploadRealTimeMonitoringDataService.getLastDataById(uploadRealTimeMonitoringDataMessage.getTransaction_serial_number());
+                    // 查询订单
+                    TChargingOrder chargingOrder = chargingOrderClient.getOrderByCode(uploadRealTimeMonitoringDataMessage.getTransaction_serial_number()).getData();
+                    // 查询当前时间段的计费策略
+                    TAccountingStrategyDetail accountingStrategyDetail = accountingStrategyDetailClient.getDetailBySiteId(chargingOrder.getSiteId()).getData();
+                    uploadRealTimeMonitoringData.setElectrovalence_all(accountingStrategyDetail.getElectrovalence());
+                    uploadRealTimeMonitoringData.setService_charge(accountingStrategyDetail.getServiceCharge());
+                    if (Objects.nonNull(data)) {
+                        uploadRealTimeMonitoringData.setLast_time(data.getLast_time());
+                        uploadRealTimeMonitoringData.setPeriod_electric_price(uploadRealTimeMonitoringDataMessage.getPaid_amount().subtract(data.getPaid_amount()));
+                        uploadRealTimeMonitoringData.setPeriod_charging_degree(uploadRealTimeMonitoringDataMessage.getCharging_degree().subtract(data.getCharging_degree()));
+                        uploadRealTimeMonitoringData.setPeriod_service_price(uploadRealTimeMonitoringDataMessage.getCharging_degree().multiply(accountingStrategyDetail.getServiceCharge()).setScale(4, RoundingMode.HALF_UP));
                     }else {
-                        switch (uploadRealTimeMonitoringDataMessage.getCharging_gun_status()){
-                            case 2:
-                                chargingGun.setStatus(2);
-                                break;
-                            case 3:
-                                chargingGun.setStatus(4);
-                                break;
-                        }
-                        // 空闲 充电 查询是否该设备之前存在离线记录或者故障记录
-                        faultMessage = faultMessageClient.getFaultMessageByGunId(chargingGun.getId()).getData();
-                        if(Objects.nonNull(faultMessage)){
-                            faultMessage.setEndTime(LocalDateTime.now());
-                            faultMessageClient.updateFaultMessage(faultMessage);
-                        }
+                        log.info("首次上传实时监测数据");
+                        uploadRealTimeMonitoringData.setPeriod_electric_price(uploadRealTimeMonitoringDataMessage.getPaid_amount());
+                        uploadRealTimeMonitoringData.setPeriod_charging_degree(uploadRealTimeMonitoringDataMessage.getCharging_degree());
+                        uploadRealTimeMonitoringData.setPeriod_service_price(uploadRealTimeMonitoringDataMessage.getCharging_degree().multiply(accountingStrategyDetail.getServiceCharge()).setScale(4, RoundingMode.HALF_UP));
                     }
-                    chargingGunClient.updateChargingGunById(chargingGun);
+                    int i = uploadRealTimeMonitoringDataService.create(uploadRealTimeMonitoringData);
+                    if(i == 0){
+                        log.error("数据存储mongo失败");
+                    }
+                    // 业务处理
+                    UploadRealTimeMonitoringDataQuery query = new UploadRealTimeMonitoringDataQuery();
+                    BeanUtils.copyProperties(uploadRealTimeMonitoringData, query);
+                    chargingOrderClient.chargeMonitoring(query);
+                    GetChargingGunByCode code = new GetChargingGunByCode();
+                    code.setCharging_pile_code(uploadRealTimeMonitoringDataMessage.getCharging_pile_code());
+                    code.setCharging_gun_code(uploadRealTimeMonitoringDataMessage.getCharging_gun_code());
+                    TChargingGun chargingGun = chargingGunClient.getChargingGunByCode(code).getData();
+                    if(Objects.nonNull(chargingGun)){
+                        // 存储状态信息
+                        TFaultMessage faultMessage = new TFaultMessage();
+                        if(uploadRealTimeMonitoringDataMessage.getCharging_gun_status().equals(0) || uploadRealTimeMonitoringDataMessage.getCharging_gun_status().equals(1)){
+                            faultMessage.setSiteId(chargingGun.getSiteId());
+                            faultMessage.setChargingPileId(chargingGun.getChargingPileId());
+                            faultMessage.setChargingGunId(chargingGun.getId());
+                            switch (uploadRealTimeMonitoringDataMessage.getCharging_gun_status()){
+                                case 0:
+                                    faultMessage.setStatus(1);
+                                    chargingGun.setStatus(1);
+                                    break;
+                                case 1:
+                                    faultMessage.setStatus(2);
+                                    chargingGun.setStatus(7);
+                                    break;
+                            }
+                            faultMessage.setDownTime(LocalDateTime.now());
+                            faultMessageClient.createFaultMessage(faultMessage);
+                        }else {
+                            switch (uploadRealTimeMonitoringDataMessage.getCharging_gun_status()){
+                                case 2:
+                                    chargingGun.setStatus(2);
+                                    break;
+                                case 3:
+                                    chargingGun.setStatus(4);
+                                    break;
+                            }
+                            // 空闲 充电 查询是否该设备之前存在离线记录或者故障记录
+                            faultMessage = faultMessageClient.getFaultMessageByGunId(chargingGun.getId()).getData();
+                            if(Objects.nonNull(faultMessage)){
+                                faultMessage.setEndTime(LocalDateTime.now());
+                                faultMessageClient.updateFaultMessage(faultMessage);
+                            }
+                        }
+                        chargingGunClient.updateChargingGunById(chargingGun);
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
                 }
                 break;
             case SendTagConstant.CHARGING_HANDSHAKE:
@@ -358,6 +366,10 @@
                     chargingOrderRecord.setTotalElectricity(transactionRecordMessage.getTotal_electricity());
                     chargingOrderClient.updateChargingOrder(chargingOrderRecord);
                 }
+                //计算费用
+                TransactionRecordMessageVO vo = new TransactionRecordMessageVO();
+                BeanUtils.copyProperties(transactionRecordMessage,vo);
+                chargingOrderClient.endChargeBillingCharge(vo);
                 break;
             case SendTagConstant.UPDATE_BALANCE_REPLY:
                 UpdateBalanceReplyMessage updateBalanceReplyMessage = message.getUpdateBalanceReplyMessage();

--
Gitblit v1.7.1