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