From e5239c7a2469207e2bbe89786a0c4a197656354e Mon Sep 17 00:00:00 2001 From: psemenkov Date: Thu, 20 Apr 2023 11:18:06 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-268=20?= =?UTF-8?q?=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB=20=D0=BC=D0=BE=D0=B4=D1=83?= =?UTF-8?q?=D0=BB=D1=8C=20cleaning-builders=20=D0=B4=D0=BB=D1=8F=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B8=D1=85=20=D0=B1=D0=B8=D0=BB=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=BE=D0=B2.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20Pl?= =?UTF-8?q?annerAllTodayBuilder=20=D0=B8=20ISchedulerChecker=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=B8=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20PlannerAllToday.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clearing-parent/cleaning-builders/pom.xml | 37 +++++++++++ .../scheduler/PlannerAllTodayBuilder.java | 64 +++++++++++++++++++ .../clearing/scheduler/ISchedulerChecker.java | 34 ++++++++++ 3 files changed, 135 insertions(+) create mode 100644 clearing-parent/cleaning-builders/pom.xml create mode 100644 clearing-parent/cleaning-builders/src/main/java/ru/spcex/clearing/scheduler/PlannerAllTodayBuilder.java create mode 100644 clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/scheduler/ISchedulerChecker.java 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; + } +}