diff --git a/clearing-parent/cleaning-builders/pom.xml b/clearing-parent/cleaning-builders/pom.xml
new file mode 100644
index 000000000..5a55de34e
--- /dev/null
+++ b/clearing-parent/cleaning-builders/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+
+ ru.spcex.clearing
+ clearing-parent
+ SPCEX-1.0.0.0
+
+
+ cleaning-builders
+ cleaning-builders
+ Cleaning builders module
+ SPCEX-1.0.0.0
+ jar
+
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ ru.spcex.clearing
+ classes
+ SPCEX-1.0.0.0
+ compile
+
+
+ ru.spcex.platform
+ platform-enum
+
+
+
\ No newline at end of file
diff --git a/clearing-parent/cleaning-builders/src/main/java/ru/spcex/clearing/scheduler/PlannerAllTodayBuilder.java b/clearing-parent/cleaning-builders/src/main/java/ru/spcex/clearing/scheduler/PlannerAllTodayBuilder.java
new file mode 100644
index 000000000..afca5a269
--- /dev/null
+++ b/clearing-parent/cleaning-builders/src/main/java/ru/spcex/clearing/scheduler/PlannerAllTodayBuilder.java
@@ -0,0 +1,64 @@
+package ru.spcex.clearing.scheduler;
+
+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 ru.spcex.platform.enumeration.Parent;
+
+import java.time.LocalDate;
+import java.time.LocalTime;
+
+public class PlannerAllTodayBuilder {
+ private Long id;
+ private String task;
+ private LocalTime taskTime;
+ private LocalDate clearingDate;
+ private String market;
+ private String taskStatus;
+ private Long companyId;
+ private Long securityId;
+ private String parent;
+
+ public static PlannerAllTodayBuilder builder() {
+ return new PlannerAllTodayBuilder();
+ }
+ private PlannerAllTodayBuilder(){}
+
+ public PlannerAllTodayBuilder append(PlannerTemplate plannerTemplate){
+ this.task = plannerTemplate.getTask();
+ this.taskTime = plannerTemplate.getTaskTime();
+ this.taskStatus = plannerTemplate.getTaskStatus();
+ this.companyId = plannerTemplate.getCompanyId();
+ this.securityId = plannerTemplate.getSecurityId();
+ this.parent = Parent.Planner.getKey();
+ this.id = plannerTemplate.getId();
+ return this;
+ }
+
+ public PlannerAllTodayBuilder append(Planner plannerTemplate){
+ this.task = plannerTemplate.getTask();
+ this.taskTime = plannerTemplate.getTaskTime();
+ this.clearingDate = plannerTemplate.getClearingDate();
+ this.market = plannerTemplate.getMarket();
+ this.taskStatus = plannerTemplate.getTaskStatus();
+ this.companyId = plannerTemplate.getCompanyId();
+ this.securityId = plannerTemplate.getSecurityId();
+ this.parent = Parent.Planner.getKey();
+ this.id = plannerTemplate.getId();
+ return this;
+ }
+
+ public PlannerAllToday build() {
+ PlannerAllToday res = new PlannerAllToday();
+ res.setTask(this.task);
+ res.setTaskTime(this.taskTime);
+ res.setClearingDate(this.clearingDate);
+ res.setMarket(this.market);
+ res.setTaskStatus(this.taskStatus);
+ res.setCompanyId(this.companyId);
+ res.setSecurityId(this.securityId);
+ res.setParent(this.parent);
+ res.setParentId(this.id);
+ return res;
+ }
+}
diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/scheduler/ISchedulerChecker.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/scheduler/ISchedulerChecker.java
new file mode 100644
index 000000000..5e5dc4d2a
--- /dev/null
+++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/scheduler/ISchedulerChecker.java
@@ -0,0 +1,34 @@
+package ru.spcex.clearing.scheduler;
+
+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.spcex.platform.enumeration.DayStatus;
+
+import java.time.LocalDate;
+
+public class ISchedulerChecker {
+
+ public static boolean isValidPlanner(Planner planner, LocalDate currentDate) {
+ return planner.getTaskStatus() != null && (planner.getClearingDate() == null || planner.getClearingDate().isEqual(currentDate));
+ }
+
+ public static boolean needRemoveByPlanner(Planner planner, PlannerAllToday plannerAllToday) {
+ return (planner.getTaskTime() != null && planner.getTaskTime().equals(plannerAllToday.getTaskTime()))
+ && (planner.getCompanyId() != null && planner.getCompanyId().equals(plannerAllToday.getCompanyId()))
+ && (planner.getSecurityId() != null && planner.getSecurityId().equals(plannerAllToday.getSecurityId()))
+ && (planner.getTask() != null && planner.getTask().equalsIgnoreCase(plannerAllToday.getTask()));
+ }
+
+ /**
+ * @param isWeekend тек.день=СБ-ВС
+ */
+ public static boolean isValidWorkday(ClearingCalendar clearingCalendar, boolean isWeekend) {
+ if (clearingCalendar.getDayStatus() != null && clearingCalendar.getDayStatus().equalsIgnoreCase(DayStatus.Workday.getKey())) {
+ if (isWeekend) {
+ return clearingCalendar.getCompanyId() != null && clearingCalendar.getCompanyId() != 0;
+ } else return true;
+ }
+ return false;
+ }
+}