From 7320cba2abc7beb1f990fb4fd52dc577b8d609dc Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期四, 05 九月 2024 10:44:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java            |    8 
 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/constant/SendTagConstant.java                        |    2 
 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/iotda/utils/tools/MessageUtil.java                         |   12 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/CP56Time2aConverter.java                 |   39 +++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java   |   24 +
 /dev/null                                                                                                                      |   78 -------
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TimingSettingMessageListener.java          |   93 ++++++++
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java                         |   10 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java            |   10 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/AcquisitionBillingModeMessageListener.java |   28 ++
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java |    5 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java      |    7 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java      |   21 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/listener/IotMessageListener.java               |    4 
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TimingSettingMessage.java                     |   17 +
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java                        |  258 +++++++++++++++++++++++
 18 files changed, 522 insertions(+), 108 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java
index 32d4226..844dbb9 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/AccountingStrategyDetailFallbackFactory.java
@@ -44,6 +44,11 @@
 			public R<List<TAccountingStrategyDetail>> getListByAccountingStrategyId(Integer id) {
 				throw new RuntimeException("根据计费策略主表id策略明细失败:" + throwable.getMessage());
 			}
+
+			@Override
+			public R<List<TAccountingStrategyDetail>> getDetailListByCode(String code) {
+				return R.fail("通过桩编号查询当前使用的策略明细列表失败:" + throwable.getMessage());
+			}
 		};
 	}
 }
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java
index b6a231a..94a055e 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/AccountingStrategyDetailClient.java
@@ -51,4 +51,11 @@
 	 */
 	@PostMapping("/t-accounting-strategy-detail/getListByAccountingStrategyId")
 	R<List<TAccountingStrategyDetail>> getListByAccountingStrategyId(@RequestParam("id") Integer id);
+	/**
+	 * 通过桩编号查询当前使用的策略明细列表
+	 * @param code
+	 * @return
+	 */
+	@PostMapping("/t-accounting-strategy-detail/getDetailListByCode")
+	R<List<TAccountingStrategyDetail>> getDetailListByCode(@RequestParam("code") String code);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
index dd60b9e..2a28707 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -111,6 +111,11 @@
         if(flag){
             return AjaxResult.error("计费模板时间设置有误差");
         }
+        // 判断同阶段是否价格不一致
+        Boolean flag1 = accountingStrategyDetailService.isStrategyPriceConsistent(dto.getAccountingStrategyDetails());
+        if(!flag1){
+            return AjaxResult.error("同阶段费率值需一致");
+        }
         Long userId = SecurityUtils.getLoginUser().getUserid();
         dto.setUserId(userId);
         accountingStrategyService.save(dto);
@@ -131,6 +136,11 @@
         if(flag){
             return AjaxResult.error("计费模板时间设置有误差");
         }
+        // 判断同阶段是否价格不一致
+        Boolean flag1 = accountingStrategyDetailService.isStrategyPriceConsistent(dto.getAccountingStrategyDetails());
+        if(!flag1){
+            return AjaxResult.error("同阶段费率值需一致");
+        }
         // 判断修改的计费策略是否为已通过
         if(dto.getAuditStatus() == 3 || dto.getAuditStatus() == 4){
             // 查询是否有下级审核中的策略
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
index 100cca8..35c031e 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyDetailController.java
@@ -154,5 +154,26 @@
         List<TAccountingStrategyDetail> list = accountingStrategyDetailService.list(new LambdaQueryWrapper<TAccountingStrategyDetail>().eq(TAccountingStrategyDetail::getAccountingStrategyId, id));
         return R.ok(list);
     }
+
+    /**
+     * 通过桩编号查询当前使用的策略明细列表
+     * @param code
+     * @return
+     */
+    @PostMapping("/t-accounting-strategy-detail/getDetailListByCode")
+    public R<List<TAccountingStrategyDetail>> getDetailListByCode(@RequestParam("code") String code){
+        // 查询桩
+        TChargingPile chargingPile = chargingPileService.getOne(Wrappers.lambdaQuery(TChargingPile.class)
+                .eq(TChargingPile::getCode,code)
+                .last("LIMIT 1"));
+        if(Objects.isNull(chargingPile)){
+            return R.fail("未查询到该桩设备");
+        }
+        Site site = siteService.getById(chargingPile.getSiteId());
+        TAccountingStrategy accountingStrategy = accountingStrategyService.getById(site.getAccountingStrategyId());
+        List<TAccountingStrategyDetail> accountingStrategyDetails = accountingStrategyDetailService.list(Wrappers.<TAccountingStrategyDetail>lambdaQuery()
+                .eq(TAccountingStrategyDetail::getAccountingStrategyId, accountingStrategy.getId()));
+        return R.ok(accountingStrategyDetails);
+    }
 }
 
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java
index 245e8d3..835a46c 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TAccountingStrategyDetailService.java
@@ -44,4 +44,12 @@
      * @return
      */
     Boolean isStrategy24Hour(List<TAccountingStrategyDetail> accountingStrategyDetails);
+
+    /**
+     * 判断同阶段是否价格不一致
+     * @param accountingStrategyDetails
+     * @return
+     */
+    Boolean isStrategyPriceConsistent(List<TAccountingStrategyDetail> accountingStrategyDetails);
+
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
index 9b2aaab..2412c8c 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java
@@ -24,10 +24,7 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalTime;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -146,4 +143,23 @@
 
         return isFirstElementValid || !isTimeContinuous;
     }
+
+    @Override
+    public Boolean isStrategyPriceConsistent(List<TAccountingStrategyDetail> accountingStrategyDetails) {
+        Map<Integer, BigDecimal> phaseToServiceFee = new HashMap<>();
+        for (TAccountingStrategyDetail detail : accountingStrategyDetails) {
+            Integer type = detail.getType();
+            BigDecimal serviceFee = detail.getServiceCharge();
+
+            if (phaseToServiceFee.containsKey(type)) {
+                BigDecimal existingFee = phaseToServiceFee.get(type);
+                if (!existingFee.equals(serviceFee)) {
+                    return false; // 发现不一致的服务费
+                }
+            } else {
+                phaseToServiceFee.put(type, serviceFee);
+            }
+        }
+        return true; // 所有相同阶段的服务费一致
+    }
 }
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java
index 8708f9f..8466119 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/constant/SendTagConstant.java
@@ -89,7 +89,7 @@
 	/**
 	 * 对时设置应答
 	 */
-	public static final String TIMING_SETTING_REPLY ="timing_setting_reply";
+	public static final String TIMING_SETTING ="timing_setting";
 	/**
 	 * 计费模型应答
 	 */
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 1dde7c6..9a27b45 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,13 +172,13 @@
     }
 
     /**
-     * 对时设置
-     * @param timingSetting 实体对象
+     * 对时设置应答
+     * @param timingSettingReply 实体对象
      * @return
      */
-    @PostMapping("/timingSetting")
-    public String timingSetting(@RequestBody TimingSetting timingSetting){
-        return  iotMessageProduce.sendMessage(timingSetting.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING.getKey(),messageUtil.timingSetting(timingSetting));
+    @PostMapping("/timingSettingReply")
+    public String timingSettingReply(@RequestBody TimingSettingReply timingSettingReply){
+        return  iotMessageProduce.sendMessage(timingSettingReply.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING_REPLY.getKey(),messageUtil.timingSettingReply(timingSettingReply));
     }
 
     /**
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 6acaba3..12ea9d4 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,9 +67,9 @@
 	 */
 	 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 3883fad..51caba0 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
@@ -95,8 +95,8 @@
             case SendTagConstant.WORKING_PARAMETER_SETTING_REPLY:
                 sendResult = enhanceProduce.workingParameterSettingReplyMessage(content);
                 break;
-            case SendTagConstant.TIMING_SETTING_REPLY:
-                sendResult = enhanceProduce.timingSettingReplyMessage(content);
+            case SendTagConstant.TIMING_SETTING:
+                sendResult = enhanceProduce.timingSettingMessage(content);
                 break;
             case SendTagConstant.SETUP_BILLING_MODEL_REPLY:
                 sendResult = enhanceProduce.setupBillingModelReplyMessage(content);
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/CP56Time2aConverter.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/CP56Time2aConverter.java
new file mode 100644
index 0000000..3a6b0c5
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/CP56Time2aConverter.java
@@ -0,0 +1,39 @@
+package com.ruoyi.integration.iotda.utils.tools;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+public class CP56Time2aConverter {
+ 
+    public static String convertToCP56Time2a(Date date) {
+        try {
+            DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
+            GregorianCalendar calendar = new GregorianCalendar();
+            calendar.setTime(date);
+            TimeZone timeZone = calendar.getTimeZone();
+            XMLGregorianCalendar xmlGregorianCalendar = datatypeFactory.newXMLGregorianCalendar(
+                    calendar.get(Calendar.YEAR),
+                    calendar.get(Calendar.MONTH)+1,
+                    calendar.get(Calendar.DAY_OF_MONTH),
+                    calendar.get(Calendar.HOUR_OF_DAY),
+                    calendar.get(Calendar.MINUTE),
+                    calendar.get(Calendar.SECOND),
+                    calendar.get(Calendar.MILLISECOND),
+                    (timeZone.getRawOffset() / (60 * 1000)));
+            return xmlGregorianCalendar.toXMLFormat();
+        } catch (DatatypeConfigurationException e) {
+            throw new RuntimeException("Error creating DatatypeFactory", e);
+        }
+    }
+ 
+    public static void main(String[] args) {
+        Date now = new Date();
+        String cp56Time2a = convertToCP56Time2a(now);
+        System.out.println("CP56Time2a: " + cp56Time2a);
+    }
+}
\ 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 ff62d42..c7c76bd 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,7 +44,7 @@
     @Autowired
     private WorkingParameterSettingService workingParameterSettingService;
     @Autowired
-    private TimingSettingService timingSettingService;
+    private TimingSettingReplyService timingSettingReplyService;
     @Autowired
     private SetupBillingModelService setupBillingModelService;
     @Autowired
@@ -205,13 +205,13 @@
     }
 
     /**
-     * 对时设置
-     * @param timingSetting 实体对象
+     * 对时设置应答
+     * @param timingSettingReply 实体对象
      * @return
      */
-    public String timingSetting(TimingSetting timingSetting){
-        timingSettingService.create(timingSetting);
-        return  getMessageJsonString(timingSetting, ServiceIdMenu.TIMING_SETTING.getValue());
+    public String timingSettingReply(TimingSettingReply timingSettingReply){
+        timingSettingReplyService.create(timingSettingReply);
+        return  getMessageJsonString(timingSettingReply, ServiceIdMenu.TIMING_SETTING_REPLY.getValue());
     }
 
     /**
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 732dec1..4ebf980 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
@@ -1,19 +1,271 @@
 package com.ruoyi.integration.iotda.utils.tools;
 
+import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.integration.api.model.AcquisitionBillingModeReply;
 import lombok.extern.slf4j.Slf4j;
 
 import java.io.Serializable;
+import java.time.LocalTime;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Slf4j
 public class StrategyUtil implements Serializable {
 
 
     /**
-     * 校验计费模版是否准确
+     * 获取计费模版的价格
      * @return
      */
-    public static boolean checkStrategy() {
-        return true;
+    public static Map<Integer, TAccountingStrategyDetail> getStrategyPrice(List<TAccountingStrategyDetail> accountingStrategyDetails) {
+        Map<Integer, TAccountingStrategyDetail> phaseToServiceFee = new HashMap<>();
+        for (TAccountingStrategyDetail detail : accountingStrategyDetails) {
+            Integer type = detail.getType();
+            if (!phaseToServiceFee.containsKey(type)) {
+                phaseToServiceFee.put(type, detail);
+            }
+        }
+        return phaseToServiceFee;
+    }
+    /**
+     * 计费模版的价格设置
+     * @return
+     */
+    public static void setStrategyPrice(Map<Integer, TAccountingStrategyDetail> accountingStrategyDetails,AcquisitionBillingModeReply acquisitionBillingModeReply) {
+        accountingStrategyDetails.forEach((k,v)->{
+            switch (k){
+                case 1:
+                    acquisitionBillingModeReply.setSharp_peak_electricity_rate(v.getElectrovalence());
+//                    acquisitionBillingModeReply.setSharp_peak_service_rate(v.getServiceCharge());
+                    break;
+                case 2:
+                    acquisitionBillingModeReply.setPeak_electricity_rate(v.getElectrovalence());
+//                    acquisitionBillingModeReply.setPeak_service_rate(v.getServiceCharge());
+                    break;
+                case 3:
+                    acquisitionBillingModeReply.setFlat_peak_electricity_rate(v.getElectrovalence());
+//                    acquisitionBillingModeReply.setFlat_peak_service_rate(v.getServiceCharge());
+                    break;
+                default:
+                    acquisitionBillingModeReply.setLow_peak_electricity_rate(v.getElectrovalence());
+//                    acquisitionBillingModeReply.setLow_peak_service_rate(v.getServiceCharge());
+                    break;
+            }
+        });
+    }
+
+    /**
+     * 计费模版的时段设置
+     * @return
+     */
+    public static void setTime(List<TAccountingStrategyDetail> accountingStrategyDetails,AcquisitionBillingModeReply acquisitionBillingModeReply) {
+        LocalTime time = LocalTime.of(0, 15, 0);
+        for (int i = 1; i <= 48; i++) {
+            if(i != 1){
+                time = time.plusMinutes(30);
+            }
+            accountingStrategyDetails = accountingStrategyDetails.stream().sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)).collect(Collectors.toList());
+            for (TAccountingStrategyDetail accountingStrategyDetail : accountingStrategyDetails) {
+                if(DateUtils.string2LocalTime(accountingStrategyDetail.getStartTime()).isBefore(time)
+                        && DateUtils.string2LocalTime(accountingStrategyDetail.getEndTime()).isAfter(time)){
+                    switch (i){
+                        case 1:
+                            acquisitionBillingModeReply.setTime1(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 2:
+                            acquisitionBillingModeReply.setTime2(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 3:
+                            acquisitionBillingModeReply.setTime3(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 4:
+                            acquisitionBillingModeReply.setTime4(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 5:
+                            acquisitionBillingModeReply.setTime5(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 6:
+                            acquisitionBillingModeReply.setTime6(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 7:
+                            acquisitionBillingModeReply.setTime7(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 8:
+                            acquisitionBillingModeReply.setTime8(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 9:
+                            acquisitionBillingModeReply.setTime9(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 10:
+                            acquisitionBillingModeReply.setTime10(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 11:
+                            acquisitionBillingModeReply.setTime11(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 12:
+                            acquisitionBillingModeReply.setTime12(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 13:
+                            acquisitionBillingModeReply.setTime13(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 14:
+                            acquisitionBillingModeReply.setTime14(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 15:
+                            acquisitionBillingModeReply.setTime15(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 16:
+                            acquisitionBillingModeReply.setTime16(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 17:
+                            acquisitionBillingModeReply.setTime17(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 18:
+                            acquisitionBillingModeReply.setTime18(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 19:
+                            acquisitionBillingModeReply.setTime19(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 20:
+                            acquisitionBillingModeReply.setTime20(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 21:
+                            acquisitionBillingModeReply.setTime21(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 22:
+                            acquisitionBillingModeReply.setTime22(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 23:
+                            acquisitionBillingModeReply.setTime23(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 24:
+                            acquisitionBillingModeReply.setTime24(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 25:
+                            acquisitionBillingModeReply.setTime25(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 26:
+                            acquisitionBillingModeReply.setTime26(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 27:
+                            acquisitionBillingModeReply.setTime27(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 28:
+                            acquisitionBillingModeReply.setTime28(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 29:
+                            acquisitionBillingModeReply.setTime29(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 30:
+                            acquisitionBillingModeReply.setTime30(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 31:
+                            acquisitionBillingModeReply.setTime31(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 32:
+                            acquisitionBillingModeReply.setTime32(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 33:
+                            acquisitionBillingModeReply.setTime33(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 34:
+                            acquisitionBillingModeReply.setTime34(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 35:
+                            acquisitionBillingModeReply.setTime35(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 36:
+                            acquisitionBillingModeReply.setTime36(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 37:
+                            acquisitionBillingModeReply.setTime37(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 38:
+                            acquisitionBillingModeReply.setTime38(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 39:
+                            acquisitionBillingModeReply.setTime39(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 40:
+                            acquisitionBillingModeReply.setTime40(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 41:
+                            acquisitionBillingModeReply.setTime41(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 42:
+                            acquisitionBillingModeReply.setTime42(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 43:
+                            acquisitionBillingModeReply.setTime43(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 44:
+                            acquisitionBillingModeReply.setTime44(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 45:
+                            acquisitionBillingModeReply.setTime45(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 46:
+                            acquisitionBillingModeReply.setTime46(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 47:
+                            acquisitionBillingModeReply.setTime47(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                        case 48:
+                            acquisitionBillingModeReply.setTime48(accountingStrategyDetail.getType().equals(1)?0
+                                    :accountingStrategyDetail.getType().equals(2)?1:accountingStrategyDetail.getType().equals(3)?2:3);
+                            break;
+                    }
+                }
+            }
+        }
     }
 
 }
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 28b3de3..cc9a8cc 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
@@ -1,7 +1,14 @@
 package com.ruoyi.integration.rocket.listener;
 
+import com.ruoyi.chargingPile.api.feignClient.AccountingStrategyDetailClient;
+import com.ruoyi.chargingPile.api.model.TAccountingStrategyDetail;
 import com.ruoyi.integration.api.model.AcquisitionBillingMode;
+import com.ruoyi.integration.api.model.AcquisitionBillingModeReply;
 import com.ruoyi.integration.api.model.Online;
+import com.ruoyi.integration.iotda.enums.ServiceIdMenu;
+import com.ruoyi.integration.iotda.utils.produce.IotMessageProduce;
+import com.ruoyi.integration.iotda.utils.tools.MessageUtil;
+import com.ruoyi.integration.iotda.utils.tools.StrategyUtil;
 import com.ruoyi.integration.mongodb.service.AcquisitionBillingModeService;
 import com.ruoyi.integration.rocket.model.AcquisitionBillingModeMessage;
 import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
@@ -11,6 +18,10 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 @Slf4j
 @Component
@@ -24,7 +35,12 @@
 
     @Autowired
     private AcquisitionBillingModeService acquisitionBillingModeService;
-
+    @Autowired
+    private AccountingStrategyDetailClient accountingStrategyDetailClient;
+    @Autowired
+    private IotMessageProduce iotMessageProduce;
+    @Autowired
+    private MessageUtil messageUtil;
     @Override
     protected void handleMessage(AcquisitionBillingModeMessage message) throws Exception {
         // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
@@ -33,7 +49,15 @@
         AcquisitionBillingMode acquisitionBillingMode = new AcquisitionBillingMode();
         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));
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TimingSettingMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TimingSettingMessageListener.java
new file mode 100644
index 0000000..4269c93
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TimingSettingMessageListener.java
@@ -0,0 +1,93 @@
+package com.ruoyi.integration.rocket.listener;
+
+import com.ruoyi.integration.api.model.TimingSetting;
+import com.ruoyi.integration.api.model.TimingSettingReply;
+import com.ruoyi.integration.iotda.enums.ServiceIdMenu;
+import com.ruoyi.integration.iotda.utils.produce.IotMessageProduce;
+import com.ruoyi.integration.iotda.utils.tools.CP56Time2aConverter;
+import com.ruoyi.integration.iotda.utils.tools.MessageUtil;
+import com.ruoyi.integration.mongodb.service.TimingSettingReplyService;
+import com.ruoyi.integration.mongodb.service.TimingSettingService;
+import com.ruoyi.integration.rocket.model.TimingSettingMessage;
+import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+@RocketMQMessageListener(
+        consumerGroup = "enhance_consumer_group",
+        topic = "rocket_enhance",
+        selectorExpression = "*",
+        consumeThreadMax = 5 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够
+)
+public class TimingSettingMessageListener extends EnhanceMessageHandler<TimingSettingMessage> implements RocketMQListener<TimingSettingMessage> {
+
+    @Autowired
+    private TimingSettingService timingSettingService;
+    @Autowired
+    private IotMessageProduce iotMessageProduce;
+    @Autowired
+    private MessageUtil messageUtil;
+    @Override
+    protected void handleMessage(TimingSettingMessage message) throws Exception {
+        // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
+        log.info("对时设置-业务消息处理:{}",message);
+        // 持久化消息
+        TimingSetting timingSetting = new TimingSetting();
+        BeanUtils.copyProperties(message,timingSetting);
+        timingSettingService.create(timingSetting);
+        // 业务处理  对时设置应答
+        TimingSettingReply timingSettingReply = new TimingSettingReply();
+        timingSettingReply.setCharging_pile_code(message.getCharging_pile_code());
+        timingSettingReply.setCurrent_time(CP56Time2aConverter.convertToCP56Time2a(new Date()));
+        iotMessageProduce.sendMessage(timingSettingReply.getCharging_pile_code(), ServiceIdMenu.TIMING_SETTING_REPLY.getKey(),messageUtil.timingSettingReply(timingSettingReply));
+    }
+
+    @Override
+    protected void handleMaxRetriesExceeded(TimingSettingMessage message) {
+        // 当超过指定重试次数消息时此处方法会被调用
+        // 生产中可以进行回退或其他业务操作
+        log.error("消息消费失败,请执行后续处理");
+    }
+
+
+    /**
+     * 是否执行重试机制
+     */
+    @Override
+    protected boolean isRetry() {
+        return true;
+    }
+
+    @Override
+    protected boolean throwException() {
+        // 是否抛出异常,false搭配retry自行处理异常
+        return false;
+    }
+
+    /**
+     * 若需要处理消息过滤,在父级中进行统一处理,或者在此处实现之后,自行处理
+     * @param message 待处理消息
+     * @return true: 本次消息被过滤,false:不过滤
+     */
+    @Override
+    protected boolean filter(TimingSettingMessage message) {
+        // 此处可做消息过滤
+        return false;
+    }
+
+    /**
+     * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型
+     */
+    @Override
+    public void onMessage(TimingSettingMessage message) {
+        super.dispatchMessage(message);
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TimingSettingReplyMessageListener.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TimingSettingReplyMessageListener.java
deleted file mode 100644
index 09cdf0d..0000000
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/listener/TimingSettingReplyMessageListener.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.ruoyi.integration.rocket.listener;
-
-import com.ruoyi.integration.api.model.Online;
-import com.ruoyi.integration.api.model.TimingSettingReply;
-import com.ruoyi.integration.mongodb.service.TimingSettingReplyService;
-import com.ruoyi.integration.rocket.model.TimingSettingReplyMessage;
-import com.ruoyi.integration.rocket.util.EnhanceMessageHandler;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
-import org.apache.rocketmq.spring.core.RocketMQListener;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@Slf4j
-@Component
-@RocketMQMessageListener(
-        consumerGroup = "enhance_consumer_group",
-        topic = "rocket_enhance",
-        selectorExpression = "*",
-        consumeThreadMax = 5 //默认是64个线程并发消息,配置 consumeThreadMax 参数指定并发消费线程数,避免太大导致资源不够
-)
-public class TimingSettingReplyMessageListener extends EnhanceMessageHandler<TimingSettingReplyMessage> implements RocketMQListener<TimingSettingReplyMessage> {
-
-    @Autowired
-    private TimingSettingReplyService timingSettingReplyService;
-    @Override
-    protected void handleMessage(TimingSettingReplyMessage message) throws Exception {
-        // 此时这里才是最终的业务处理,代码只需要处理资源类关闭异常,其他的可以交给父类重试
-        log.info("对时设置应答-业务消息处理:{}",message);
-        // 持久化消息
-        TimingSettingReply timingSettingReply = new TimingSettingReply();
-        BeanUtils.copyProperties(message,timingSettingReply);
-        timingSettingReplyService.create(timingSettingReply);
-        // 业务处理
-    }
-
-    @Override
-    protected void handleMaxRetriesExceeded(TimingSettingReplyMessage message) {
-        // 当超过指定重试次数消息时此处方法会被调用
-        // 生产中可以进行回退或其他业务操作
-        log.error("消息消费失败,请执行后续处理");
-    }
-
-
-    /**
-     * 是否执行重试机制
-     */
-    @Override
-    protected boolean isRetry() {
-        return true;
-    }
-
-    @Override
-    protected boolean throwException() {
-        // 是否抛出异常,false搭配retry自行处理异常
-        return false;
-    }
-
-    /**
-     * 若需要处理消息过滤,在父级中进行统一处理,或者在此处实现之后,自行处理
-     * @param message 待处理消息
-     * @return true: 本次消息被过滤,false:不过滤
-     */
-    @Override
-    protected boolean filter(TimingSettingReplyMessage message) {
-        // 此处可做消息过滤
-        return false;
-    }
-
-    /**
-     * 监听消费消息,不需要执行业务处理,委派给父类做基础操作,父类做完基础操作后会调用子类的实际处理类型
-     */
-    @Override
-    public void onMessage(TimingSettingReplyMessage message) {
-        super.dispatchMessage(message);
-    }
-}
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TimingSettingMessage.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TimingSettingMessage.java
new file mode 100644
index 0000000..6b7186c
--- /dev/null
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/model/TimingSettingMessage.java
@@ -0,0 +1,17 @@
+package com.ruoyi.integration.rocket.model;
+
+import com.ruoyi.integration.rocket.base.BaseMessage;
+import lombok.Data;
+
+/**
+ * 对时设置
+ **/
+
+@Data
+public class TimingSettingMessage extends BaseMessage {
+
+    private String charging_pile_code; //桩编码
+    private String current_time; //当前时间
+}
+
+
diff --git a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java
index 611c3b3..a851ff7 100644
--- a/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java
+++ b/ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/rocket/produce/EnhanceProduce.java
@@ -253,15 +253,15 @@
     }
 
     /**
-     * 对时设置应答
+     * 对时设置
      */
-    public SendResult timingSettingReplyMessage(JSONObject jsonObject) {
-        TimingSettingReplyMessage message = JSON.parseObject(jsonObject.toJSONString(),TimingSettingReplyMessage.class);
+    public SendResult timingSettingMessage(JSONObject jsonObject) {
+        TimingSettingMessage message = JSON.parseObject(jsonObject.toJSONString(),TimingSettingMessage.class);
         // 设置业务key
         message.setKey(UUID.randomUUID().toString());
         // 设置消息来源,便于查询
-        message.setSource(SendTagConstant.TIMING_SETTING_REPLY);
-        return rocketMQEnhanceTemplate.send(TOPIC, SendTagConstant.TIMING_SETTING_REPLY, message);
+        message.setSource(SendTagConstant.TIMING_SETTING);
+        return rocketMQEnhanceTemplate.send(TOPIC, SendTagConstant.TIMING_SETTING, message);
     }
 
     /**

--
Gitblit v1.7.1