diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligations.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligations.java index 290b09cef..81d73d088 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligations.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/InspectionObligations.java @@ -107,7 +107,19 @@ public class InspectionObligations implements ISessionStage { collect(Collectors.groupingBy(Registry::getGroupId)) .entrySet() .stream() - .sorted(Map.Entry.comparingByKey()) + .sorted((entry1, entry2) -> { + long minId1 = entry1.getValue().stream() + .mapToLong(Registry::getId) + .min() + .orElse(Long.MIN_VALUE); + + long minId2 = entry2.getValue().stream() + .mapToLong(Registry::getId) + .min() + .orElse(Long.MIN_VALUE); + + return Long.compare(minId1, minId2); + }) .toList(); log.info("found {} ({} groups) registries by sql: {}", registriesToProcess.size(), registriesByGroupSorted.size(), sqlCondition);