From e8f18b70337c18e80dbdf906ddaad1c722a74611 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 23 九月 2024 17:24:14 +0800
Subject: [PATCH] 充电桩硬件对接

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java |  135 ++++++++++++++++++++++++++++----------------
 1 files changed, 86 insertions(+), 49 deletions(-)

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 c29b1a2..e43d689 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
@@ -16,13 +16,12 @@
 import com.ruoyi.integration.iotda.utils.tools.StrategyUtil;
 import com.ruoyi.integration.rocket.model.*;
 import com.ruoyi.integration.rocket.produce.EnhanceProduce;
+import io.swagger.annotations.ApiOperation;
 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;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
 import java.math.BigDecimal;
@@ -36,6 +35,7 @@
  */
 @Slf4j
 @RestController
+@RequestMapping("/iot")
 public class IotMessageListener {
 
     @Autowired
@@ -266,60 +266,97 @@
         return AjaxResult.success();
     }
 
-    @PostMapping(value = "/message/sendMessage")
-    public R sendMessage() {
+
+    @ApiOperation(value = "运营平台远程控制启机",tags = {"硬件接口"})
+    @GetMapping(value = "/platformStartCharging")
+    public R platformStartCharging(String orderNum,String deviceId,Long orderId,BigDecimal money) {
         // 运营平台远程控制启机
-//        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));
+        PlatformStartCharging platformStartCharging = new PlatformStartCharging();
+        platformStartCharging.setTransaction_serial_number(orderNum);
+        platformStartCharging.setCharging_pile_code(deviceId);
+        platformStartCharging.setCharging_gun_code("1");
+        platformStartCharging.setCard_number(orderId.toString());
+        platformStartCharging.setAccount_balance(money);
+        String message = iotMessageProduce.sendMessage(platformStartCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_START_CHARGING.getKey(), messageUtil.platformStartCharging(platformStartCharging));
+        return R.ok(message);
+    }
+
+    @ApiOperation(value = "运营平台远程停机",tags = {"硬件接口"})
+    @GetMapping(value = "/platformStopCharging")
+    public R platformStopCharging(String deviceId) {
         // 运营平台远程停机
-//        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));
+        PlatformStopCharging platformStopCharging = new PlatformStopCharging();
+        platformStopCharging.setCharging_pile_code(deviceId);
+        platformStopCharging.setCharging_gun_code("1");
+        String message = iotMessageProduce.sendMessage(platformStopCharging.getCharging_pile_code(), ServiceIdMenu.PLATFORM_STOP_CHARGING.getKey(),messageUtil.platformStopCharging(platformStopCharging));
+        return R.ok(message);
+    }
+
+    @ApiOperation(value = "修改余额",tags = {"硬件接口"})
+    @GetMapping(value = "/updateBalance")
+    public R updateBalance(String deviceId,Long orderId) {
         // 修改余额
-//        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));
+        UpdateBalance updateBalance = new UpdateBalance();
+        updateBalance.setCharging_pile_code(deviceId);
+        updateBalance.setCharging_gun_code("1");
+        updateBalance.setPhysical_card_number(orderId.toString());
+        updateBalance.setAccount_balance(new BigDecimal(20));
+        String message = iotMessageProduce.sendMessage(updateBalance.getCharging_pile_code(), ServiceIdMenu.UPDATE_BALANCE.getKey(),messageUtil.updateBalance(updateBalance));
+        return R.ok(message);
+    }
+
+    @ApiOperation(value = "充电桩工作参数设置",tags = {"硬件接口"})
+    @GetMapping(value = "/workingParameterSetting")
+    public R workingParameterSetting(String deviceId) {
         // 充电桩工作参数设置
-//        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));
+        WorkingParameterSetting workingParameterSetting = new WorkingParameterSetting();
+        workingParameterSetting.setCharging_pile_code(deviceId);
+        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));
+        return R.ok(message);
+    }
+
+    @ApiOperation(value = "对时设置",tags = {"硬件接口"})
+    @GetMapping(value = "/timingSetting")
+    public R timingSetting(String deviceId) {
         // 对时设置
-//        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));
+        TimingSetting timingSetting = new TimingSetting();
+        timingSetting.setCharging_pile_code(deviceId);
+        timingSetting.setCurrent_time(CP56Time2aConverter.convertToCP56Time2a(new Date()));
+        String message = iotMessageProduce.sendMessage(timingSetting.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING.getKey(),messageUtil.timingSetting(timingSetting));
+        return R.ok(message);
+    }
+
+    @ApiOperation(value = "计费模型设置",tags = {"硬件接口"})
+    @GetMapping(value = "/setupBillingModel")
+    public R setupBillingModel(String deviceId) {
         // 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));
+        SetupBillingModel setupBillingModel = new SetupBillingModel();
+        // 计费模型
+        List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailClient.getDetailListByCode(deviceId).getData();
+        Map<Integer, TAccountingStrategyDetail> strategyPrice = StrategyUtil.getStrategyPrice(accountingStrategyDetails);
+        // 价格设置
+        AcquisitionBillingModeReply acquisitionBillingModeReply = new AcquisitionBillingModeReply();
+        StrategyUtil.setStrategyPrice(strategyPrice,acquisitionBillingModeReply);
+        // 时段设置
+        StrategyUtil.setTime(accountingStrategyDetails,acquisitionBillingModeReply);
+        TAccountingStrategyDetail accountingStrategyDetail = accountingStrategyDetailClient.getDetailByCode(deviceId).getData();
+        acquisitionBillingModeReply.setBilling_model_code(accountingStrategyDetail.getId().toString());
+        acquisitionBillingModeReply.setCharging_pile_code(deviceId);
+        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));
+        return R.ok(message);
+    }
+
+    @ApiOperation(value = "远程重启",tags = {"硬件接口"})
+    @PostMapping(value = "/platformRestart")
+    public R platformRestart(String deviceId) {
         // 远程重启
         PlatformRestart platformRestart = new PlatformRestart();
-        platformRestart.setCharging_pile_code("3401231001200202");
+        platformRestart.setCharging_pile_code(deviceId);
         platformRestart.setOperate(2);
         String message = iotMessageProduce.sendMessage(platformRestart.getCharging_pile_code(), ServiceIdMenu.PLATFORM_RESTART.getKey(),messageUtil.platformRestart(platformRestart));
         return R.ok(message);

--
Gitblit v1.7.1