Commit 8705a55d by 汪志阳

fix:离床时间跨天处理

parent 1e0979e1
...@@ -95,9 +95,8 @@ public class OffBedAlarm implements IAlarm { ...@@ -95,9 +95,8 @@ public class OffBedAlarm implements IAlarm {
return; return;
} }
LocalDateTime startTime = timeRange.get(0); LocalDateTime startTime = timeRange.get(0);
LocalDateTime endTime = timeRange.get(1); LocalDateTime endTime = "1".equals(ruleConfig.getEndTimeType()) ? timeRange.get(1).plusDays(1) : timeRange.get(1);
Integer duration = ruleConfig.getDuration(); Integer duration = ruleConfig.getDuration();
boolean isNextDay = "1".equals(ruleConfig.getEndTimeType());
String personState = Convert.toStr(properties.get("person")); String personState = Convert.toStr(properties.get("person"));
boolean isOffBed = "0".equals(personState); boolean isOffBed = "0".equals(personState);
// 1-有人 0-无人 // 1-有人 0-无人
...@@ -138,9 +137,6 @@ public class OffBedAlarm implements IAlarm { ...@@ -138,9 +137,6 @@ public class OffBedAlarm implements IAlarm {
return; return;
} }
} }
if (isNextDay) {
endTime = endTime.plusDays(1);
}
LocalDateTime validEndTime = endTime.plusMinutes(duration); LocalDateTime validEndTime = endTime.plusMinutes(duration);
// 离床时间在范围时间内(小于范围结束时间-持续分钟) // 离床时间在范围时间内(小于范围结束时间-持续分钟)
boolean isOffBedValid = firstOffBedTime.isAfter(startTime) && firstOffBedTime.isBefore(validEndTime); boolean isOffBedValid = firstOffBedTime.isAfter(startTime) && firstOffBedTime.isBefore(validEndTime);
...@@ -193,9 +189,11 @@ public class OffBedAlarm implements IAlarm { ...@@ -193,9 +189,11 @@ public class OffBedAlarm implements IAlarm {
} }
public static void main(String[] args) { public static void main(String[] args) {
LocalDateTime startTime = LocalDateTime.of(2023,12,12,15,43); LocalDateTime startTime = LocalDateTime.of(2023, 12, 12, 23, 59);
System.out.println(startTime); long second = startTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
System.out.println(startTime.plusDays(1)); LocalDateTime firstOffBedTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(second), ZoneOffset.of("+8"));
System.out.println(second);
System.out.println(firstOffBedTime);
} }
private void sendToRedis(AlarmRedisDTO alarmRedisDTO, String deviceId) { private void sendToRedis(AlarmRedisDTO alarmRedisDTO, String deviceId) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment