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 660276ed7..fdf71e069 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 @@ -81,20 +81,24 @@ public class ObligationAdmissionAction extends AbstractSessionActionForOkErrorHa log.info("found {} ({} groups) registries with sessionId {}", registries.size(), byGroups.size(), sessionId); Map rgsToUpdate = new HashMap<>(); List errs = new ArrayList<>(); + List groupErrors = new ArrayList<>(); for (Map.Entry> grpEntry : byGroups.entrySet()) { - EnumMessage groupError = null; List rgsGroup = grpEntry.getValue(); for (Registry rgs : rgsGroup) { IValidator validator = valFor(rgs); Optional error = validator.tillFirstError(); - if (error.isPresent()) { - groupError = error.get(); - errs.add(new RgsErr(rgs, messageResolver.resolve(groupError))); - break; - } + error.ifPresent(e -> { + groupErrors.add(e); + errs.add(new RgsErr(rgs, messageResolver.resolve(e))); + }); } - if (groupError != null) { - log.warn("error {} for registries groupId/market = {}/{}", messageResolver.resolve(groupError), + if (!groupErrors.isEmpty()) { + String groupError = groupErrors + .stream() + .map(messageResolver::resolve) + .collect(Collectors.joining(";", "[", "]")); + log.warn("error {} for registries groupId/market = {}/{}", + groupError, grpEntry.getKey().groupId(), grpEntry.getKey().market()); for (Registry rgs : rgsGroup) { rgs.setRegistryStatus(RegistryStatus.NACK.getKey()); @@ -102,6 +106,7 @@ public class ObligationAdmissionAction extends AbstractSessionActionForOkErrorHa rgsToUpdate.put(rgs.getId(), rgs); } } + groupErrors.clear(); } ctx.getExtendedState().getVariables().put(DataEnum.obligationAdmissionStashedRgs, rgsToUpdate);