| | |
| | | |
| | | |
| | | public void handleMessage(ChargingMessage message){ |
| | | log.info("收到的消息内容:{}",message); |
| | | String serviceId = message.getServiceId(); |
| | | if(!StringUtils.hasLength(serviceId)){ |
| | | return; |
| | |
| | | switch (serviceId){ |
| | | case SendTagConstant.ONLINE: |
| | | OnlineMessage onlineMessage = message.getOnlineMessage(); |
| | | log.info("充电桩登录认证业务消息处理:{}",onlineMessage); |
| | | // 持久化消息 |
| | | Online online = new Online(); |
| | | BeanUtils.copyProperties(onlineMessage,online); |
| | |
| | | break; |
| | | case SendTagConstant.PING: |
| | | PingMessage pingMessage = message.getPingMessage(); |
| | | log.info("充电桩心跳包-业务消息处理:{}",pingMessage); |
| | | // 持久化消息 |
| | | Ping ping = new Ping(); |
| | | BeanUtils.copyProperties(pingMessage,ping); |
| | |
| | | break; |
| | | case SendTagConstant.END_CHARGE: |
| | | EndChargeMessage endChargeMessage = message.getEndChargeMessage(); |
| | | log.info("充电结束-业务消息处理:{}",endChargeMessage); |
| | | // 持久化消息 |
| | | EndCharge endCharge = new EndCharge(); |
| | | BeanUtils.copyProperties(endChargeMessage,endCharge); |
| | |
| | | break; |
| | | case SendTagConstant.ERROR_MESSAGE: |
| | | ErrorMessageMessage errorMessageMessage1 = message.getErrorMessageMessage(); |
| | | log.info("错误报文-业务消息处理:{}",errorMessageMessage1); |
| | | // 持久化消息 |
| | | // ErrorMessageMessage errorMessageMessage = new ErrorMessageMessage(); |
| | | // BeanUtils.copyProperties(errorMessageMessage1,errorMessageMessage); |
| | |
| | | break; |
| | | case SendTagConstant.BILLING_MODE_VERIFY: |
| | | BillingModeVerifyMessage billingModeVerifyMessage = message.getBillingModeVerifyMessage(); |
| | | log.info("计费模型验证请求-业务消息处理:{}",billingModeVerifyMessage); |
| | | // 持久化消息 |
| | | // BillingModeVerify billingModeVerify = new BillingModeVerify(); |
| | | // BeanUtils.copyProperties(billingModeVerifyMessage,billingModeVerify); |
| | |
| | | break; |
| | | case SendTagConstant.ACQUISITION_BILLING_MODE: |
| | | AcquisitionBillingModeMessage acquisitionBillingModeMessage = message.getAcquisitionBillingModeMessage(); |
| | | log.info("充电桩计费模型请求-业务消息处理:{}",acquisitionBillingModeMessage); |
| | | // 持久化消息 |
| | | AcquisitionBillingMode acquisitionBillingMode = new AcquisitionBillingMode(); |
| | | BeanUtils.copyProperties(acquisitionBillingModeMessage,acquisitionBillingMode); |
| | |
| | | } |
| | | redisTemplate.opsForValue().set("upload_real_time_monitoring_data:" + transaction_serial_number, System.currentTimeMillis(), 1, TimeUnit.MINUTES); |
| | | try { |
| | | log.info("上传实时监测数据-业务消息处理:{}",uploadRealTimeMonitoringDataMessage); |
| | | // 持久化消息 |
| | | UploadRealTimeMonitoringData uploadRealTimeMonitoringData = new UploadRealTimeMonitoringData(); |
| | | BeanUtils.copyProperties(uploadRealTimeMonitoringDataMessage,uploadRealTimeMonitoringData); |
| | |
| | | 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)); |
| | |
| | | break; |
| | | case SendTagConstant.CHARGING_HANDSHAKE: |
| | | ChargingHandshakeMessage chargingHandshakeMessage = message.getChargingHandshakeMessage(); |
| | | log.info("充电握手-业务消息处理:{}",chargingHandshakeMessage); |
| | | // 持久化消息 |
| | | ChargingHandshake chargingHandshake = new ChargingHandshake(); |
| | | BeanUtils.copyProperties(chargingHandshakeMessage,chargingHandshake); |
| | |
| | | break; |
| | | case SendTagConstant.PARAMETER_SETTING: |
| | | ParameterSettingMessage parameterSettingMessage = message.getParameterSettingMessage(); |
| | | log.info("参数配置-业务消息处理:{}",parameterSettingMessage); |
| | | // 持久化消息 |
| | | // ParameterSetting parameterSetting = new ParameterSetting(); |
| | | // BeanUtils.copyProperties(parameterSettingMessage,parameterSetting); |
| | |
| | | break; |
| | | case SendTagConstant.BMS_ABORT: |
| | | BmsAbortMessage bmsAbortMessage = message.getBmsAbortMessage(); |
| | | log.info("充电阶段BMS中止-业务消息处理:{}",bmsAbortMessage); |
| | | // 持久化消息 |
| | | BmsAbort bmsAbort = new BmsAbort(); |
| | | BeanUtils.copyProperties(bmsAbortMessage,bmsAbort); |
| | |
| | | break; |
| | | case SendTagConstant.MOTOR_ABORT: |
| | | MotorAbortMessage motorAbortMessage = message.getMotorAbortMessage(); |
| | | log.info("充电阶段充电机中止-业务消息处理:{}",motorAbortMessage); |
| | | // 持久化消息 |
| | | MotorAbort motorAbort = new MotorAbort(); |
| | | BeanUtils.copyProperties(motorAbortMessage,motorAbort); |
| | |
| | | break; |
| | | case SendTagConstant.BMS_DEMAND_AND_CHARGER_EXPORTATION: |
| | | BmsDemandAndChargerExportationMessage bmsDemandAndChargerExportationMessage = message.getBmsDemandAndChargerExportationMessage(); |
| | | log.info("充电过程BMS需求、充电机输出-业务消息处理:{}",bmsDemandAndChargerExportationMessage); |
| | | String transaction_serial_number1 = bmsDemandAndChargerExportationMessage.getTransaction_serial_number(); |
| | | Object o1 = redisTemplate.opsForValue().get("bms_demand_and_charger_exportation:" + transaction_serial_number1); |
| | | if(null != o1){ |
| | |
| | | break; |
| | | case SendTagConstant.BMS_INFORMATION: |
| | | BmsInformationMessage bmsInformationMessage = message.getBmsInformationMessage(); |
| | | log.info("充电过程BMS信息-业务消息处理:{}",bmsInformationMessage); |
| | | String transaction_serial_number2 = bmsInformationMessage.getTransaction_serial_number(); |
| | | Object o2 = redisTemplate.opsForValue().get("bms_information:" + transaction_serial_number2); |
| | | if(null != o2){ |
| | |
| | | break; |
| | | case SendTagConstant.CHARGING_PILE_STARTS_CHARGING: |
| | | ChargingPileStartsChargingMessage chargingPileStartsChargingMessage = message.getChargingPileStartsChargingMessage(); |
| | | log.info("充电桩主动申请启动充电-业务消息处理:{}",chargingPileStartsChargingMessage); |
| | | // 持久化消息 |
| | | ChargingPileStartsCharging chargingPileStartsCharging = new ChargingPileStartsCharging(); |
| | | BeanUtils.copyProperties(chargingPileStartsChargingMessage,chargingPileStartsCharging); |
| | |
| | | break; |
| | | case SendTagConstant.PLATFORM_START_CHARGING_REPLY: |
| | | PlatformStartChargingReplyMessage platformStartChargingReplyMessage = message.getPlatformStartChargingReplyMessage(); |
| | | log.info("远程启机命令回复-业务消息处理:{}",platformStartChargingReplyMessage); |
| | | // 持久化消息 |
| | | PlatformStartChargingReply platformStartChargingReply = new PlatformStartChargingReply(); |
| | | BeanUtils.copyProperties(platformStartChargingReplyMessage,platformStartChargingReply); |
| | |
| | | break; |
| | | case SendTagConstant.PLATFORM_STOP_CHARGING_REPLY: |
| | | PlatformStopChargingReplyMessage platformStopChargingReplyMessage = message.getPlatformStopChargingReplyMessage(); |
| | | log.info("远程停机命令回复-业务消息处理:{}",platformStopChargingReplyMessage); |
| | | // 持久化消息 |
| | | PlatformStopChargingReply platformStopChargingReply = new PlatformStopChargingReply(); |
| | | BeanUtils.copyProperties(platformStopChargingReplyMessage,platformStopChargingReply); |
| | |
| | | break; |
| | | case SendTagConstant.TRANSACTION_RECORD: |
| | | TransactionRecordMessage transactionRecordMessage = message.getTransactionRecordMessage(); |
| | | log.info("交易记录-业务消息处理:{}",transactionRecordMessage); |
| | | transactionRecordMessage.setResult(JSONObject.toJSONString(transactionRecordMessage)); |
| | | // 持久化消息 |
| | | TransactionRecord transactionRecord = new TransactionRecord(); |
| | |
| | | break; |
| | | case SendTagConstant.UPDATE_BALANCE_REPLY: |
| | | UpdateBalanceReplyMessage updateBalanceReplyMessage = message.getUpdateBalanceReplyMessage(); |
| | | log.info("余额更新应答-业务消息处理:{}",updateBalanceReplyMessage); |
| | | // 持久化消息 |
| | | UpdateBalanceReply updateBalanceReply = new UpdateBalanceReply(); |
| | | BeanUtils.copyProperties(updateBalanceReplyMessage,updateBalanceReply); |
| | |
| | | break; |
| | | case SendTagConstant.SYNCHRONIZE_OFFLINE_CARD_REPLY: |
| | | SynchronizeOfflineCardReplyMessage synchronizeOfflineCardReplyMessage = message.getSynchronizeOfflineCardReplyMessage(); |
| | | log.info("卡数据同步应答-业务消息处理:{}",synchronizeOfflineCardReplyMessage); |
| | | // 持久化消息 |
| | | SynchronizeOfflineCardReply synchronizeOfflineCardReply = new SynchronizeOfflineCardReply(); |
| | | BeanUtils.copyProperties(synchronizeOfflineCardReplyMessage,synchronizeOfflineCardReply); |
| | |
| | | break; |
| | | case SendTagConstant.CLEAR_OFFLINE_CARD_REPLY: |
| | | ClearOfflineCardReplyMessage clearOfflineCardReplyMessage = message.getClearOfflineCardReplyMessage(); |
| | | log.info("离线卡数据清除应答-业务消息处理:{}",clearOfflineCardReplyMessage); |
| | | // 持久化消息 |
| | | ClearOfflineCardReply clearOfflineCardReply = new ClearOfflineCardReply(); |
| | | BeanUtils.copyProperties(clearOfflineCardReplyMessage,clearOfflineCardReply); |
| | |
| | | break; |
| | | case SendTagConstant.WORKING_PARAMETER_SETTING_REPLY: |
| | | WorkingParameterSettingReplyMessage workingParameterSettingReplyMessage = message.getWorkingParameterSettingReplyMessage(); |
| | | log.info("充电桩工作参数设置应答-业务消息处理:{}",workingParameterSettingReplyMessage); |
| | | // 持久化消息 |
| | | WorkingParameterSettingReply workingParameterSettingReply = new WorkingParameterSettingReply(); |
| | | BeanUtils.copyProperties(workingParameterSettingReplyMessage,workingParameterSettingReply); |
| | |
| | | break; |
| | | case SendTagConstant.TIMING_SETTING: |
| | | TimingSettingMessage timingSettingMessage = message.getTimingSettingMessage(); |
| | | log.info("对时设置-业务消息处理:{}",timingSettingMessage); |
| | | // 持久化消息 |
| | | // TimingSetting timingSetting = new TimingSetting(); |
| | | // BeanUtils.copyProperties(timingSettingMessage,timingSetting); |
| | |
| | | break; |
| | | case SendTagConstant.SETUP_BILLING_MODEL_REPLY: |
| | | SetupBillingModelReplyMessage setupBillingModelReplyMessage = message.getSetupBillingModelReplyMessage(); |
| | | log.info("计费模型应答-业务消息处理:{}",setupBillingModelReplyMessage); |
| | | // 持久化消息 |
| | | SetupBillingModelReply setupBillingModelReply = new SetupBillingModelReply(); |
| | | BeanUtils.copyProperties(setupBillingModelReplyMessage,setupBillingModelReply); |
| | |
| | | break; |
| | | case SendTagConstant.GROUND_LOCK_REAL_TIME_DATA: |
| | | GroundLockRealTimeDataMessage groundLockRealTimeDataMessage = message.getGroundLockRealTimeDataMessage(); |
| | | log.info("地锁数据上送(充电桩上送)-业务消息处理:{}",groundLockRealTimeDataMessage); |
| | | // 持久化消息 |
| | | GroundLockRealTimeData groundLockRealTimeData = new GroundLockRealTimeData(); |
| | | BeanUtils.copyProperties(groundLockRealTimeDataMessage,groundLockRealTimeData); |
| | |
| | | break; |
| | | case SendTagConstant.CHARGING_PILE_RETURNS_GROUND_LOCK_DATA: |
| | | ChargingPileReturnsGroundLockDataMessage chargingPileReturnsGroundLockDataMessage = message.getChargingPileReturnsGroundLockDataMessage(); |
| | | log.info("充电桩返回数据(上行)-业务消息处理:{}",chargingPileReturnsGroundLockDataMessage); |
| | | // 持久化消息 |
| | | ChargingPileReturnsGroundLockData chargingPileReturnsGroundLockData = new ChargingPileReturnsGroundLockData(); |
| | | BeanUtils.copyProperties(chargingPileReturnsGroundLockDataMessage,chargingPileReturnsGroundLockData); |
| | |
| | | break; |
| | | case SendTagConstant.PLATFORM_RESTART_REPLY: |
| | | PlatformRestartReplyMessage platformRestartReplyMessage = message.getPlatformRestartReplyMessage(); |
| | | log.info("远程重启应答-业务消息处理:{}",platformRestartReplyMessage); |
| | | // 持久化消息 |
| | | PlatformRestartReply platformRestartReply = new PlatformRestartReply(); |
| | | BeanUtils.copyProperties(platformRestartReplyMessage,platformRestartReply); |
| | |
| | | break; |
| | | case SendTagConstant.QR_CODE_DELIVERY_REPLY: |
| | | QrCodeDeliveryReplyMessage qrCodeDeliveryReplyMessage = message.getQrCodeDeliveryReplyMessage(); |
| | | log.info("二维码下发应答-业务消息处理:{}",qrCodeDeliveryReplyMessage); |
| | | QrCodeDeliveryReply qrCodeDeliveryReply = new QrCodeDeliveryReply(); |
| | | BeanUtils.copyProperties(qrCodeDeliveryReplyMessage,qrCodeDeliveryReply); |
| | | qrCodeDeliveryReplyService.create(qrCodeDeliveryReply); |
| | | break; |
| | | case SendTagConstant.SECURITY_DETECTION: |
| | | SecurityDetectionMessage securityDetectionMessage = message.getSecurityDetectionMessage(); |
| | | log.info("安全监测-业务消息处理:{}",securityDetectionMessage); |
| | | SecurityDetection securityDetection = new SecurityDetection(); |
| | | BeanUtils.copyProperties(securityDetectionMessage,securityDetection); |
| | | securityDetectionService.create(securityDetection); |