diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/ObligationAdmissionAction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/ObligationAdmissionAction.java index 47cf70fe4..aacc303f1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/ObligationAdmissionAction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/ObligationAdmissionAction.java @@ -7,7 +7,6 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; import org.slf4j.Logger; @@ -88,10 +87,10 @@ public class ObligationAdmissionAction extends AbstractSessionActionForOkErrorHa List rgsGroup = grpEntry.getValue(); for (Registry rgs : rgsGroup) { IValidator validator = valFor(rgs); - Optional error = validator.tillFirstError(); - error.ifPresent(e -> { + Collection errors = validator.validateAll(); + errors.forEach(e -> { groupErrors.add(e); - errs.add(new RgsErr(rgs, messageResolver.resolve(e))); + errs.add(new RgsErr(rgs, messageResolver.resolve(e), e.getSubject())); }); } if (!groupErrors.isEmpty()) { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/model/RgsErr.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/model/RgsErr.java index 719c2cea1..c90558fcd 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/model/RgsErr.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/model/RgsErr.java @@ -2,16 +2,24 @@ package ru.spcex.clearing.session.state.model; import java.util.Objects; import ru.clearing.classes.statics.data.registry.Registry; +import ru.spcex.platform.utils.enumeration.IEnumId; public class RgsErr { private Registry rgs; private String err; + private IEnumId subj; public RgsErr(Registry rgs, String err) { this.rgs = rgs; this.err = err; } + public RgsErr(Registry rgs, String err, IEnumId subj) { + this.rgs = rgs; + this.err = err; + this.subj = subj; + } + public Registry getRgs() { return rgs; } @@ -40,7 +48,13 @@ public class RgsErr { public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof RgsErr other)) return false; + boolean meaningEqual; + if (subj != null && other.subj != null) { + meaningEqual = subj.equals(other.subj); + } else { + meaningEqual = Objects.equals(err, other.err); + } return rgs.getTradingClearingRegistryId().equals(other.rgs.getTradingClearingRegistryId()) - && Objects.equals(err, other.err); + && meaningEqual; } }