diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ValidationConfig.java index aa06719a5..d12745c9e 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ValidationConfig.java @@ -3,26 +3,18 @@ package ru.spcex.clearing.scheduler.config.validation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.scheduler.ClearingCalendar; import ru.clearing.classes.statics.data.security.Security; import ru.clearing.platform.dictionary.DayStatusDictionary; import ru.clearing.platform.dictionary.TaskDictionary; import ru.clearing.platform.dictionary.TaskStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; -import ru.spcex.clearing.scheduler.error.ValidationError; -import ru.spcex.clearing.scheduler.validation.rules.common.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.imdg.validation.ImdgValidationContext; -import ru.spcex.platform.utils.validation.IValidator; -import ru.spcex.platform.utils.validation.ValidatorImpl; import java.util.HashMap; import java.util.Map; import java.util.function.BiConsumer; -import java.util.function.Function; @Configuration public class ValidationConfig { @@ -39,19 +31,4 @@ public class ValidationConfig { return imdg; } - @Bean("commonDeleteRequestValidator") - public Function commonDeleteRequestValidator() { - return commonDeleteRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); - context.setValidatedObject(commonDeleteRequest); - return new ValidatorImpl<>(context, - IdPresentRule.instance("id", - CommonDeleteRequest::getId, - IMDGDistributedNames.Map_ClearingCalendar, - ClearingCalendar.class, - ValidationError.RecordNotFound) - ); - }; - } - } diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateNotBeforeRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateNotBeforeRule.java index aaa94d43e..b1df393c6 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateNotBeforeRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DateNotBeforeRule.java @@ -9,12 +9,27 @@ import java.time.LocalDate; import java.util.Optional; import java.util.function.Function; +/** + * Проверка поля с LocalDate. Условие проверки: поверяемая дата >= текущая дата + * @param Класс проверяемого объекта + */ public record DateNotBeforeRule(String fieldName, Function getter, boolean required) implements IValidationRule> { + /** + * @param fieldName Название поля класса, используется для передачи ошибки + * @param getter Метод получения проверяемой даты + * @param required Флаг обязательности поля + * @param Класс проверяемого объекта + */ public static DateNotBeforeRule instance(String fieldName, Function getter, boolean required) { return new DateNotBeforeRule<>(fieldName, getter, required); } + /** + * @param fieldName Название поля класса, используется для передачи ошибки + * @param getter Метод получения проверяемой даты + * @param Класс проверяемого объекта + */ public static DateNotBeforeRule instance(String fieldName, Function getter) { return new DateNotBeforeRule<>(fieldName, getter, true); } diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DictionaryPresentRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DictionaryPresentRule.java index 68301c308..351b9bc03 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DictionaryPresentRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/DictionaryPresentRule.java @@ -11,12 +11,26 @@ import java.util.Map; import java.util.Optional; import java.util.function.Function; +/** + * Проверка поля с кодом из словаря (таблицы *_dictionary) + * @param Класс проверяемого объекта + * @param Класс словаря + */ public record DictionaryPresentRule(String fieldName, Function getter, String dictionaryName, Class dictionaryClass, boolean required) implements IValidationRule> { + /** + * @param fieldName Название поля + * @param getter Метод получения проверяемого значения + * @param dictionaryName Название словаря (см. IMDGDistributedNames) + * @param dictionaryClass Класс словаря (классы *Dictionary.class) + * @param required Флаг обязательности + * @param Класс проверяемого объекта + * @param Класс словаря + */ public static DictionaryPresentRule instance(String fieldName, Function getter, String dictionaryName, @@ -25,6 +39,14 @@ public record DictionaryPresentRule(String fiel return new DictionaryPresentRule<>(fieldName, getter, dictionaryName, dictionaryClass, required); } + /** + * @param fieldName Название поля + * @param getter Метод получения проверяемого значения + * @param dictionaryName Название словаря (см. IMDGDistributedNames) + * @param dictionaryClass Класс словаря (классы *Dictionary.class) + * @param Класс проверяемого объекта + * @param Класс словаря + */ public static DictionaryPresentRule instance(String fieldName, Function getter, String dictionaryName, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java index 6a1cf9e58..a8ab3cd4f 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java @@ -9,11 +9,24 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; +/** + * Проверка поля со значением из множества (enum) + * @param Класс проверяемого объекта + * @param Enum + */ public record EnumPresentRule(String fieldName, Function getter, E[] enumValues, boolean required) implements IValidationRule> { + /** + * @param fieldName Название поля + * @param getter Метод получения проверяемого значения + * @param enumValues Значения из проверяемого множества (Enum.values()) + * @param required Флаг обязательности + * @param Класс проверяемого объекта + * @param Enum + */ public static EnumPresentRule instance(String fieldName, Function getter, E[] enumValues, @@ -21,6 +34,13 @@ public record EnumPresentRule(String fieldName, return new EnumPresentRule<>(fieldName, getter, enumValues, required); } + /** + * @param fieldName Название поля + * @param getter Метод получения проверяемого значения + * @param enumValues Значения из проверяемого множества (Enum.values()) + * @param Класс проверяемого объекта + * @param Enum + */ public static EnumPresentRule instance(String fieldName, Function getter, E[] enumValues) { diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/FieldRequiredRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/FieldRequiredRule.java index 80c3e5600..4abc90b45 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/FieldRequiredRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/FieldRequiredRule.java @@ -8,8 +8,19 @@ import ru.spcex.platform.utils.validation.IValidationRule; import java.util.Optional; import java.util.function.Function; +/** + * Проверка обязательности поля (not null) + * @param Класс проверяемого объекта + * @param Класс проверяемого значения + */ public record FieldRequiredRule(String fieldName, Function getter) implements IValidationRule> { + /** + * @param fieldName Название поля + * @param getter Метод получения значения + * @param Класс проверяемого объекта + * @param Класс проверяемого значения + */ public static FieldRequiredRule instance(String fieldName, Function getter) { return new FieldRequiredRule<>(fieldName, getter); } diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/IdPresentRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/IdPresentRule.java index dd71412e0..ce91ee7d2 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/IdPresentRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/IdPresentRule.java @@ -11,6 +11,11 @@ import java.util.Map; import java.util.Optional; import java.util.function.Function; +/** + * Проверка наличия связанного по Id объекта в базе + * @param Класс проверяемого объекта + * @param Класс связанного объекта + */ public record IdPresentRule( String fieldName, Function idGetter, @@ -21,6 +26,17 @@ public record IdPresentRule( boolean required ) implements IValidationRule> { + /** + * @param fieldName Название поля, содержащего Id + * @param idGetter Метод получения Id + * @param mapName Название мапы связанного объекта (см. IMDGDistributedNames) + * @param mapClass Класс связанного объекта + * @param idNotPresentError Ошибка, которая будет возвращена, если Id не найден + * @param required Флаг обязательности + * @param additionalChecks Дополнительные проверки, которые можно провести со связанным объектом + * @param Класс проверяемого объекта + * @param Класс связанного объекта + */ @SafeVarargs public static IdPresentRule instance(String fieldName, Function idGetter, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/TimeNotBeforeRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/TimeNotBeforeRule.java index 9d172e0bd..90287864e 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/TimeNotBeforeRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/TimeNotBeforeRule.java @@ -9,12 +9,27 @@ import java.time.LocalTime; import java.util.Optional; import java.util.function.Function; +/** + * Проверка поля с LocalTime. Условие проверки: проверяемое время >= текущее время + * @param Класс проверяемого объекта + */ public record TimeNotBeforeRule(String fieldName, Function getter, boolean required) implements IValidationRule> { + /** + * @param fieldName Название поля класса, используется для передачи ошибки + * @param getter Метод получения проверяемого времени + * @param required Флаг обязательности поля + * @param Класс проверяемого объекта + */ public static TimeNotBeforeRule instance(String fieldName, Function getter, boolean required) { return new TimeNotBeforeRule<>(fieldName, getter, required); } + /** + * @param fieldName Название поля класса, используется для передачи ошибки + * @param getter Метод получения проверяемого времени + * @param Класс проверяемого объекта + */ public static TimeNotBeforeRule instance(String fieldName, Function getter) { return new TimeNotBeforeRule<>(fieldName, getter, true); }