From 4aefc1b4b446041bafa8f3864e2f8c017c4d64a8 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Fri, 23 May 2025 13:57:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8B=86=E5=88=86=E6=8B=8D=E7=85=A7?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=A1=A8=E5=88=B0=E6=AF=8F=E4=B8=AA=E9=A2=84?= =?UTF-8?q?=E7=BD=AE=E4=BD=8D=E5=86=8D=E8=AE=A1=E7=AE=97=E5=BB=B6=E8=BF=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shxy/xymanager_common/model/StatTerm.java | 12 ++-- .../impl/CameraScheduleServiceImpl.java | 64 +++++++++++++------ 2 files changed, 50 insertions(+), 26 deletions(-) diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/StatTerm.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/StatTerm.java index 1060c82..cab261d 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/StatTerm.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/StatTerm.java @@ -72,14 +72,14 @@ public class StatTerm implements Serializable { int before = 0; int delay = 0; if (interval >= 30) { - before = 2; - delay = 25; + before = 0; + delay = 29; } else if (interval >= 10) { - before = 1; - delay = 8; + before = 0; + delay = 9; } else if (interval >= 5) { - before = 1; - delay = 3; + before = 0; + delay = 4; } boolean hasNext = true; while (hasNext) { diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CameraScheduleServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CameraScheduleServiceImpl.java index 3e2d329..2aff370 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CameraScheduleServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/CameraScheduleServiceImpl.java @@ -16,6 +16,8 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; @Service @@ -79,21 +81,23 @@ public class CameraScheduleServiceImpl implements CameraScheduleService { if (item.getProtocol() == 65290 || item.getProtocol() == 65298) { list = this.changeSchedule(list); } else { - int before = 0; - int delay = 0; - if (list.size() <= 48) { - before = 2; - delay = 25; - } else if (list.size() <= 144) { - before = 1; - delay = 8; - } else if (list.size() <= 288) { - before = 1; - delay = 3; - } + HashMap> map = new HashMap<>(); for (ScheduleDetailsDto detail : list) { - detail.setBefore(before); - detail.setDelay(delay); + if (detail.getPreset() == null) { + detail.setPreset(255); + } + List child = map.get(detail.getPreset()); + if (child == null) { + child = new ArrayList<>(); + map.put(detail.getPreset(), child); + } + child.add(detail); + } + Iterator it = map.keySet().iterator(); + while (it.hasNext()) { + Integer preset = it.next(); + List child = map.get(preset); + this.changeChild(child); } } item.setList(list); @@ -111,14 +115,14 @@ public class CameraScheduleServiceImpl implements CameraScheduleService { int before = 0; int delay = 0; if (interval >= 30) { - before = 2; - delay = 25; + before = 0; + delay = 29; } else if (interval >= 10) { - before = 1; - delay = 8; + before = 0; + delay = 9; } else if (interval >= 5) { - before = 1; - delay = 3; + before = 0; + delay = 4; } int start = second.getHour() * 60 + second.getMinute(); int end = third.getHour() * 60 + third.getMinute(); @@ -138,4 +142,24 @@ public class CameraScheduleServiceImpl implements CameraScheduleService { } return result; } + + private void changeChild(List child) { + int before = 0; + int delay = 0; + if (child.size() <= 48) { + before = 0; + delay = 29; + } else if (child.size() <= 144) { + before = 0; + delay = 9; + } else if (child.size() <= 288) { + before = 0; + delay = 4; + } + for (ScheduleDetailsDto detail : child) { + detail.setBefore(before); + detail.setDelay(delay); + } + } + }