From 8115295a64e0809246897fefb8c45de06dce0799 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期五, 23 五月 2025 21:09:12 +0800
Subject: [PATCH] 大屏

---
 ruoyi-service/ruoyi-integration/src/main/java/com/ruoyi/integration/iotda/utils/tools/StrategyUtil.java |   34 ++++++++++++++++++++++++----------
 1 files changed, 24 insertions(+), 10 deletions(-)

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 4ebf980..261e9c7 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
@@ -6,6 +6,7 @@
 import lombok.extern.slf4j.Slf4j;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalTime;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -34,22 +35,30 @@
      */
     public static void setStrategyPrice(Map<Integer, TAccountingStrategyDetail> accountingStrategyDetails,AcquisitionBillingModeReply acquisitionBillingModeReply) {
         accountingStrategyDetails.forEach((k,v)->{
+            BigDecimal electrovalence = v.getElectrovalence();
+            BigDecimal serviceCharge = v.getServiceCharge();
+            if(Objects.isNull(electrovalence)){
+                electrovalence = BigDecimal.ZERO;
+            }
+            if(Objects.isNull(serviceCharge)){
+                serviceCharge = BigDecimal.ZERO;
+            }
             switch (k){
                 case 1:
-                    acquisitionBillingModeReply.setSharp_peak_electricity_rate(v.getElectrovalence());
-//                    acquisitionBillingModeReply.setSharp_peak_service_rate(v.getServiceCharge());
+                    acquisitionBillingModeReply.setSharp_peak_electricity_rate(electrovalence);
+                    acquisitionBillingModeReply.setSharp_peak_service_rate(serviceCharge);
                     break;
                 case 2:
-                    acquisitionBillingModeReply.setPeak_electricity_rate(v.getElectrovalence());
-//                    acquisitionBillingModeReply.setPeak_service_rate(v.getServiceCharge());
+                    acquisitionBillingModeReply.setPeak_electricity_rate(electrovalence);
+                    acquisitionBillingModeReply.setPeak_service_rate(serviceCharge);
                     break;
                 case 3:
-                    acquisitionBillingModeReply.setFlat_peak_electricity_rate(v.getElectrovalence());
-//                    acquisitionBillingModeReply.setFlat_peak_service_rate(v.getServiceCharge());
+                    acquisitionBillingModeReply.setFlat_peak_electricity_rate(electrovalence);
+                    acquisitionBillingModeReply.setFlat_peak_service_rate(serviceCharge);
                     break;
                 default:
-                    acquisitionBillingModeReply.setLow_peak_electricity_rate(v.getElectrovalence());
-//                    acquisitionBillingModeReply.setLow_peak_service_rate(v.getServiceCharge());
+                    acquisitionBillingModeReply.setLow_peak_electricity_rate(electrovalence);
+                    acquisitionBillingModeReply.setLow_peak_service_rate(serviceCharge);
                     break;
             }
         });
@@ -67,8 +76,13 @@
             }
             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)){
+                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

--
Gitblit v1.7.1