From 56dabbd28f16bc70d1b8f4add44ffea506173d6c Mon Sep 17 00:00:00 2001 From: ialbert Date: Tue, 22 Jul 2025 16:33:09 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-886=20?= =?UTF-8?q?=D0=BD=D0=BE=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B5=D0=B9=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BD=D0=B0=203=D0=BC=20=D1=88=D0=B0=D0=B3?= =?UTF-8?q?=D0=B5=20=D1=81=D0=B5=D1=81=D1=81=D0=B8=D0=B9:=20=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=B0=D1=82=D1=8C=20=D0=B2=D1=81=D0=B5=20=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=BF=D0=BE=20=D1=80=D0=B5=D0=B3?= =?UTF-8?q?=D0=B8=D1=81=D1=82=D1=80=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../state/action/ObligationAdmissionAction.java | 7 +++---- .../clearing/session/state/model/RgsErr.java | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) 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; } }