diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/util/Util.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/util/Util.java index 83d356bdc..be82af6fd 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/util/Util.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/util/Util.java @@ -4,10 +4,13 @@ import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.IMap; import ru.clearing.classes.statics.data.scheduler.ClearingCalendar; import ru.clearing.classes.statics.data.scheduler.Planner; +import ru.clearing.classes.statics.data.scheduler.PlannerAllToday; import ru.clearing.classes.statics.data.scheduler.PlannerTemplate; import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; +import java.util.Optional; import static ru.spcex.clearing.imdg.IMDGDistributedNames.*; @@ -15,16 +18,60 @@ public class Util { public static void makeSchedulerAllTodayMap(HazelcastInstance hazelcastInstance) { IMap plannerMap = hazelcastInstance.getMap(Map_Planner); - IMap tradingCalendarMap = hazelcastInstance.getMap(Map_ClearingCalendar); + IMap clearingCalendarMap = hazelcastInstance.getMap(Map_ClearingCalendar); IMap plannerTemplateMap = hazelcastInstance.getMap(Map_PlannerTemplate); - Boolean isTradingCalendarEmpty = tradingCalendarMap.isEmpty(); - - List listOfSchedulerOnDate = plannerMap.values().stream().filter((x) -> x.getClearingDate().isEqual(LocalDate.now())).toList(); - if (isTradingCalendarEmpty) { - //то из timeTable все активные записи. - } else { + LocalDate currentDate = LocalDate.now(); + List listOfPlannerAllToday = new ArrayList<>(); + //= plannerMap.values().stream().filter((x) -> x.getClearingDate().isEqual(currentDate)).toList(); + if (!plannerMap.isEmpty()) { + switch (currentDate.getDayOfWeek()) { + case MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY -> listOfPlannerAllToday.addAll(getPlannersOnMonday2Friday(currentDate, clearingCalendarMap, plannerTemplateMap)); + case SUNDAY, SATURDAY -> listOfPlannerAllToday.addAll(getPlannersOnSunday2Saturday()); + } } + PlannerAllToday plannerAllToday = new PlannerAllToday(); } + + private static List getPlannersOnMonday2Friday(LocalDate currentDate, IMap clearingCalendarMap, IMap plannerTemplateMap) { + List res = new ArrayList<>(); + if (clearingCalendarMap == null || clearingCalendarMap.isEmpty()) { + for (PlannerTemplate plannerTemplate : plannerTemplateMap.values()) { + res.add(createPlannerAllTodayFromPlannerTemplate(plannerTemplate)); + } + } else { + Optional clearingCalendarOptional = clearingCalendarMap.values().stream().filter((calendar) -> { + return calendar.getClearingDate().isEqual(currentDate); + }).findFirst(); + if (clearingCalendarOptional.isPresent()) { + ClearingCalendar calendar = clearingCalendarOptional.get(); + if (calendar.getDayStatus().equalsIgnoreCase("active")) { //todo уточнить какой здесь может быть статус + + } + } + } + + return res; + } + + private static List getPlannersOnSunday2Saturday() { + List res = new ArrayList<>(); + + return res; + } + + private static PlannerAllToday createPlannerAllTodayFromPlanner(Planner planner) { + PlannerAllToday res = new PlannerAllToday(); + + return res; + } + + private static PlannerAllToday createPlannerAllTodayFromPlannerTemplate(PlannerTemplate plannerTemplate) { + PlannerAllToday res = new PlannerAllToday(); + + return res; + + } + }