сортировка регистров на 5 шаге

This commit is contained in:
ialbert 2023-07-24 10:59:47 +03:00
parent 79e1867e7f
commit 6dc5133d10
2 changed files with 17 additions and 9 deletions

View file

@ -64,11 +64,15 @@ public class InspectionObligations implements ISessionStage {
RegistryStatus.POOL.getKey());
Collection<Registry> registriesToProcess = registryImdg.getCollectionObjectsBySQL(sqlCondition);
Map<Long, List<Registry>> registriesByGroup = registriesToProcess.stream().
collect(Collectors.groupingBy(Registry::getGroupId));
List<Map.Entry<Long, List<Registry>>> registriesByGroupSorted = registriesToProcess.stream().
collect(Collectors.groupingBy(Registry::getGroupId))
.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.toList();
log.info("found {} ({} groups) registries by sql: {}", registriesToProcess.size(), registriesByGroup.size(), sqlCondition);
for (Map.Entry<Long, List<Registry>> entry : registriesByGroup.entrySet()) {
log.info("found {} ({} groups) registries by sql: {}", registriesToProcess.size(), registriesByGroupSorted.size(), sqlCondition);
for (Map.Entry<Long, List<Registry>> entry : registriesByGroupSorted) {
List<Registry> group = entry.getValue();
List<Registry> obligationsInGroup = group.stream().filter(registry ->
IEnumKey.getEnumByKey(RegistryDesignation.class, registry.getRegistryDesignation()) == RegistryDesignation.O).toList();

View file

@ -58,12 +58,16 @@ public class InspectionObligationsDepositReturn implements ISessionStage {
RegistryCodeSqlBuilder.getInstance(OS_T, OM_T, TS_T, TM_T).build(),
RegistryStatus.POOL.getKey());
Map<Long, List<Registry>> registriesByGroup = registryImdg.getCollectionObjectsBySQL(sqlCondition)
.stream().
collect(Collectors.groupingBy(Registry::getGroupId));
log.info("registry groups found {}", registriesByGroup.size());
List<Map.Entry<Long, List<Registry>>> registriesByGroupSorted = registryImdg.getCollectionObjectsBySQL(sqlCondition)
.stream()
.collect(Collectors.groupingBy(Registry::getGroupId))
.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.toList();
log.info("registry groups found {}", registriesByGroupSorted.size());
for (Map.Entry<Long, List<Registry>> entry : registriesByGroup.entrySet()) {
for (Map.Entry<Long, List<Registry>> entry : registriesByGroupSorted) {
List<Registry> group = entry.getValue();
Optional<Registry> omtInGroupO = group.stream().filter(registry -> equalByRgs(OM_T, registry)).findFirst();
if (omtInGroupO.isEmpty()) {