From dd53078ab5e034625342dd28546924e963cbe41c Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 19 九月 2024 17:33:30 +0800 Subject: [PATCH] 充电桩硬件对接 --- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java | 4 ++ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java | 10 +++++ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java | 16 ++++---- ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java | 5 ++ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java | 65 +++++++++++++++++++++++++++++++- ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java | 11 +++++ ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java | 9 +++- 7 files changed, 108 insertions(+), 12 deletions(-) diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java index 61b14b5..7f2650b 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java @@ -69,6 +69,11 @@ return R.fail("支付回调:" + cause.getMessage()); } + @Override + public R vipCallBack(String code, String outTradeNo) { + return R.fail("会员订单回调失败:" + cause.getMessage()); + } + @Override public R<TActivityVO> activityStatistics(TActivityStatisticsQuery dto) { diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java index 9a27b45..53b62e4 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/controller/SendMessageController.java @@ -172,6 +172,16 @@ } /** + * 对时设置 + * @param timingSetting 实体对象 + * @return + */ + @PostMapping("/timingSetting") + public String timingSetting(@RequestBody TimingSetting timingSetting){ + return iotMessageProduce.sendMessage(timingSetting.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING.getKey(),messageUtil.timingSetting(timingSetting)); + } + + /** * 对时设置应答 * @param timingSettingReply 实体对象 * @return diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java index 12ea9d4..5146187 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/enums/ServiceIdMenu.java @@ -67,6 +67,10 @@ */ WORKING_PARAMETER_SETTING ("充电桩工作参数设置","working_parameter_setting"), /** + * 对时设置 + */ + TIMING_SETTING ("对时设置","timing_setting"), + /** * 对时设置应答 */ TIMING_SETTING_REPLY ("对时设置应答","timing_setting_reply"), diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java index 06e83ab..c29b1a2 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java @@ -5,6 +5,7 @@ import com.ruoyi.chargingPile.api.dto.CheckChargingStrategyDTO; import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient; import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.integration.api.model.*; import com.ruoyi.integration.iotda.constant.SendTagConstant; @@ -17,6 +18,7 @@ import com.ruoyi.integration.rocket.produce.EnhanceProduce; 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.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -180,10 +182,10 @@ PlatformConfirmationCharging platformConfirmationCharging = new PlatformConfirmationCharging(); platformConfirmationCharging.setCharging_pile_code(chargingPileStartsChargingMessage.getCharging_pile_code()); platformConfirmationCharging.setCharging_gun_code(chargingPileStartsChargingMessage.getCharging_gun_code()); - platformConfirmationCharging.setCard_number(""); + platformConfirmationCharging.setCard_number(chargingPileStartsChargingMessage.getAccount()); platformConfirmationCharging.setAccount_balance(BigDecimal.ZERO); platformConfirmationCharging.setAuthentication(1); - // TODO + // TODO 若是失败,给出失败原因 iotMessageProduce.sendMessage(deviceId, ServiceIdMenu.PLATFORM_CONFIRMATION_CHARGING.getKey(),messageUtil.platformConfirmationCharging(platformConfirmationCharging)); break; case SendTagConstant.PLATFORM_START_CHARGING_REPLY: @@ -264,4 +266,63 @@ return AjaxResult.success(); } + @PostMapping(value = "/message/sendMessage") + public R sendMessage() { + // 运营平台远程控制启机 +// PlatformStartCharging platformStartCharging = new PlatformStartCharging(); +// platformStartCharging.setTransaction_serial_number("4200002375202409185150427245"); +// platformStartCharging.setCharging_pile_code("3401231001200202"); +// platformStartCharging.setCharging_gun_code("1"); +// platformStartCharging.setCard_number("1833063878153543681"); +// platformStartCharging.setAccount_balance(new BigDecimal(50)); +// String message = iotMessageProduce.sendMessage(platformStartCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_START_CHARGING.getKey(), messageUtil.platformStartCharging(platformStartCharging)); + // 运营平台远程停机 +// PlatformStopCharging platformStopCharging = new PlatformStopCharging(); +// platformStopCharging.setCharging_pile_code("3401231001200202"); +// platformStopCharging.setCharging_gun_code("1"); +// String message = iotMessageProduce.sendMessage(platformStopCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_STOP_CHARGING.getKey(),messageUtil.platformStopCharging(platformStopCharging)); + // 修改余额 +// UpdateBalance updateBalance = new UpdateBalance(); +// updateBalance.setCharging_pile_code("3401231001200202"); +// updateBalance.setCharging_gun_code("1"); +// updateBalance.setPhysical_card_number("1833063878153543681"); +// updateBalance.setAccount_balance(new BigDecimal(20)); +// String message = iotMessageProduce.sendMessage(updateBalance.getCharging_pile_code(), ServiceIdMenu.UPDATE_BALANCE.getKey(),messageUtil.updateBalance(updateBalance)); + // 充电桩工作参数设置 +// WorkingParameterSetting workingParameterSetting = new WorkingParameterSetting(); +// workingParameterSetting.setCharging_pile_code("3401231001200202"); +// workingParameterSetting.setAllow_work(0); +// workingParameterSetting.setMaximum_output_power(220); +// String message = iotMessageProduce.sendMessage(workingParameterSetting.getCharging_pile_code(), ServiceIdMenu.WORKING_PARAMETER_SETTING.getKey(),messageUtil.workingParameterSetting(workingParameterSetting)); + // 对时设置 +// TimingSetting timingSetting = new TimingSetting(); +// timingSetting.setCharging_pile_code("3401231001200202"); +// System.err.println(CP56Time2aConverter.convertToCP56Time2a(new Date())); +// timingSetting.setCurrent_time(CP56Time2aConverter.convertToCP56Time2a(new Date())); +// String message = iotMessageProduce.sendMessage(timingSetting.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING.getKey(),messageUtil.timingSetting(timingSetting)); + // TODO 罗 计费模型设置 +// SetupBillingModel setupBillingModel = new SetupBillingModel(); +// // 计费模型 +// List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode("3401231001200202").getData(); +// Map<Integer, TAccountingStrategyDetail> strategyPrice = StrategyUtil.getStrategyPrice(accountingStrategyDetails); +// // 价格设置 +// AcquisitionBillingModeReply acquisitionBillingModeReply = new AcquisitionBillingModeReply(); +// StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply); +// // 时段设置 +// StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply); +// TAccountingStrategyDetail accountingStrategyDetail = accountingStrategyDetailClient.getDetailByCode("3401231001200202").getData(); +// acquisitionBillingModeReply.setBilling_model_code(accountingStrategyDetail.getId().toString()); +// acquisitionBillingModeReply.setCharging_pile_code("3401231001200202"); +// acquisitionBillingModeReply.setLoss_ratio(BigDecimal.ZERO); +// BeanUtils.copyProperties(acquisitionBillingModeReply,setupBillingModel); +// System.err.println(setupBillingModel); +// String message = iotMessageProduce.sendMessage(setupBillingModel.getCharging_pile_code(), ServiceIdMenu.SETUP_BILLING_MODEL.getKey(),messageUtil.setupBillingModel(setupBillingModel)); + // 远程重启 + PlatformRestart platformRestart = new PlatformRestart(); + platformRestart.setCharging_pile_code("3401231001200202"); + platformRestart.setOperate(2); + String message = iotMessageProduce.sendMessage(platformRestart.getCharging_pile_code(), ServiceIdMenu.PLATFORM_RESTART.getKey(),messageUtil.platformRestart(platformRestart)); + return R.ok(message); + } + } \ No newline at end of file diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java index c7c76bd..5fdcac0 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/MessageUtil.java @@ -44,6 +44,8 @@ @Autowired private WorkingParameterSettingService workingParameterSettingService; @Autowired + private TimingSettingService timingSettingService; + @Autowired private TimingSettingReplyService timingSettingReplyService; @Autowired private SetupBillingModelService setupBillingModelService; @@ -205,6 +207,15 @@ } /** + * 对时设置 + * @param timingSetting 实体对象 + * @return + */ + public String timingSetting(TimingSetting timingSetting){ + timingSettingService.create(timingSetting); + return getMessageJsonString(timingSetting, ServiceIdMenu.TIMING_SETTING.getValue()); + } + /** * 对时设置应答 * @param timingSettingReply 实体对象 * @return diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java index e881666..e935937 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java @@ -67,8 +67,13 @@ } accountingStrategyDetails = accountingStrategyDetails.stream().sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)).collect(Collectors.toList()); for (TAccountingStrategyDetail accountingStrategyDetail : accountingStrategyDetails) { - if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime() + ":00").isBefore(time) - && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime() + ":00").isAfter(time)){ + String startTime = accountingStrategyDetail.getStartTime(); + String endTime = accountingStrategyDetail.getEndTime(); + if("00:00".equals(endTime)){ + endTime = "23:59"; + } + if(DateUtils.string2LocalTime(startTime + ":00").isBefore(time) + && DateUtils.string2LocalTime(endTime + ":00").isAfter(time)){ switch (i){ case 1: acquisitionBillingModeReply.setTime1(accountingStrategyDetail.getType().equals(1)?0 diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java index 6286373..0dc777d 100644 --- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java +++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java @@ -52,14 +52,14 @@ BeanUtils.copyProperties(message,acquisitionBillingMode); acquisitionBillingModeService.create(acquisitionBillingMode); // 业务处理 计费模型请求应答 1=尖阶段,2=峰阶段,3=平阶段,4=谷阶段 - List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode(message.getCharging_pile_code()).getData(); - Map<Integer, TAccountingStrategyDetail> strategyPrice = StrategyUtil.getStrategyPrice(accountingStrategyDetails); - // 价格设置 - AcquisitionBillingModeReply acquisitionBillingModeReply = new AcquisitionBillingModeReply(); - StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply); - // 时段设置 - StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply); - iotMessageProduce.sendMessage(acquisitionBillingModeReply.getCharging_pile_code(), ServiceIdMenu.ACQUISITION_BILLING_MODE_REPLY.getKey(),messageUtil.acquisitionBillingModeReply(acquisitionBillingModeReply)); +// List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode(message.getCharging_pile_code()).getData(); +// Map<Integer, TAccountingStrategyDetail> strategyPrice = StrategyUtil.getStrategyPrice(accountingStrategyDetails); +// // 价格设置 +// AcquisitionBillingModeReply acquisitionBillingModeReply = new AcquisitionBillingModeReply(); +// StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply); +// // 时段设置 +// StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply); +// iotMessageProduce.sendMessage(acquisitionBillingModeReply.getCharging_pile_code(), ServiceIdMenu.ACQUISITION_BILLING_MODE_REPLY.getKey(),messageUtil.acquisitionBillingModeReply(acquisitionBillingModeReply)); } @Override -- Gitblit v1.7.1