From 96bc63420c54e18ab3ea675e1ca741ff1a2edbd6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 23 八月 2024 19:22:28 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TAccountingStrategyDetailServiceImpl.java |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 deletions(-)

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 2385665..979620c 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
@@ -127,16 +127,19 @@
 
     @Override
     public Boolean isStrategy24Hour(List<TAccountingStrategyDetail> accountingStrategyDetails) {
-        List<TAccountingStrategyDetail> accountingStrategyDetailList = accountingStrategyDetails.stream()
-                .sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime)).collect(Collectors.toList());
-        boolean flag = false;
-        for (int i = 0; i < accountingStrategyDetailList.size(); i++) {
-            if(i != 0){
-                if(!accountingStrategyDetailList.get(i).getStartTime().equals(accountingStrategyDetailList.get(i-1).getEndTime())) {
-                    flag = true;
-                }
-            }
-        }
-        return flag;
+        String START_OF_DAY = "00:00:00";
+        String END_OF_DAY = "24:00:00";
+        List<TAccountingStrategyDetail> sortedDetails = accountingStrategyDetails.stream()
+                .sorted(Comparator.comparing(TAccountingStrategyDetail::getStartTime))
+                .collect(Collectors.toList());
+
+        boolean isFirstElementValid = sortedDetails.isEmpty() || !START_OF_DAY.equals(sortedDetails.get(0).getStartTime());
+        boolean isLastElementValid = sortedDetails.isEmpty() || !END_OF_DAY.equals(sortedDetails.get(sortedDetails.size() - 1).getEndTime());
+
+        boolean isTimeContinuous = sortedDetails.stream()
+                .skip(1)
+                .allMatch(detail -> detail.getStartTime().equals(sortedDetails.get(sortedDetails.indexOf(detail) - 1).getEndTime()));
+
+        return isFirstElementValid || isLastElementValid || !isTimeContinuous;
     }
 }

--
Gitblit v1.7.1