guoqiang 5 месяцев назад
Родитель
Сommit
da2aff76d1

+ 18 - 32
jeecg-module-gather/src/main/java/org/jeecg/modules/fpgJob/LeanModelStatistics.java

@@ -377,25 +377,6 @@ public class LeanModelStatistics {
         });
     }
 
-    // 验证时间
-    public static int compareDatesByTimeStamp(Date date1, Date date2) {
-        if (date1 == null && date2 == null) {
-            return 0;
-        } else if (date1 == null) {
-            return -1;
-        } else if (date2 == null) {
-            return 1;
-        }
-        long timeStamp1 = date1.getTime();
-        long timeStamp2 = date2.getTime();
-        if (timeStamp1 < timeStamp2) {
-            return -1;
-        } else if (timeStamp1 > timeStamp2) {
-            return 1;
-        } else {
-            return 0;
-        }
-    }
 
     //精益模型统计数据
     public void leanModel(){
@@ -817,25 +798,30 @@ public class LeanModelStatistics {
      */
     public static boolean containsCreateTime(LocalDateTime createTime, String startTime, String endTime) {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        // 将字符串转换为 LocalDateTime
         LocalDateTime start_time = LocalDateTime.parse(startTime, formatter);
         LocalDateTime end_time = LocalDateTime.parse(endTime, formatter);
 
-        // 检查 createTime 的时分秒部分
-        LocalTime createTimeTime = createTime.toLocalTime();
-        LocalTime midnight = LocalTime.MIDNIGHT;
-
-        // createTime 的时分秒大于 00:00:00 时,startTime 减去一天
-        if (createTimeTime.isAfter(midnight) && end_time.isBefore(start_time)) {
-            start_time = start_time.minusDays(1);  // 将 startTime 减去一天
-        }
+        // 判断是否跨天
+        boolean isCrossDay = end_time.isBefore(start_time);
 
-        // createTime 的时分秒小于 00:00:00 时,endTime 加一天
-        if (createTimeTime.isBefore(midnight) && end_time.isBefore(start_time)) {
-            end_time = end_time.plusDays(1);  // 将 endTime 加一天
+        // 根据 createTime 调整 start_time 和 end_time
+        if (isCrossDay) {
+            // 如果 createTime 在 startTime 后且在 endTime 前,且跨天,endTime 应该加一天
+            if (createTime.isAfter(start_time) && createTime.isAfter(end_time)) {
+                end_time = end_time.plusDays(1); // 加一天到第二天
+            }
+            // 如果 createTime 在 startTime 之前且在 endTime 后,startTime 应该减去一天
+            if (createTime.isBefore(start_time) && createTime.isBefore(end_time)) {
+                start_time = start_time.minusDays(1); // 减一天
+            }
         }
 
-        // 检查createTime是否在区间内
-        return createTime!= null && (createTime.isAfter(start_time) || createTime.equals(start_time)) &&
+        // 检查 createTime 是否在调整后的区间内
+        return createTime != null && (createTime.isAfter(start_time) || createTime.equals(start_time)) &&
                 (createTime.isBefore(end_time) || createTime.equals(end_time));
     }
+
+
 }