From 1110278d6a9a922bedcf53602749d7c9993139c4 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Tue, 24 Jun 2025 10:43:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=BA=D0=B0=20registry=20=D1=81=20=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=BC=20market=20=D0=B8=20groupId=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=88=D0=B0=D0=B3=D0=B0=207=20=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D0=B2=D0=BD=D0=BE=D0=B9=20=D1=81=D0=B5=D1=81=D1=81?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../registry/PaymentStateMarkService.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/PaymentStateMarkService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/PaymentStateMarkService.java index 9aaf4694f..375738de0 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/PaymentStateMarkService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/PaymentStateMarkService.java @@ -14,6 +14,7 @@ import org.springframework.stereotype.Component; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanyRoleSet; import ru.clearing.classes.statics.data.registry.Registry; +import ru.spcex.clearing.component.GroupRgsKey; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.service.AssetTrio; import ru.spcex.clearing.session.stage.util.RegistryUtil; @@ -56,15 +57,16 @@ public class PaymentStateMarkService { pb.equals("registryStatus", RegistryStatus.OK.getKey()) ); Collection claimsAndLiabilities = rgsImdg.getCollectionObjectsByPredicate(prdct); - Map> groups = claimsAndLiabilities + Map> groups = claimsAndLiabilities .stream() .filter(rgs -> rgs.getValueDate() != null) .filter(rgs -> rgs.getSettlementDate() != null) .filter(rgs -> rgs.getSettlementDate().equals(rgs.getValueDate())) - .collect(Collectors.groupingBy(Registry::getGroupId)); + .collect(Collectors.groupingBy(registry -> new GroupRgsKey(registry.getGroupId(), registry.getMarket()))); log.debug("found {} ({} groups) CM*T/LM*T by {}", claimsAndLiabilities.size(), groups.size(), prdct.toString()); - for (Map.Entry> group : groups.entrySet()) { - Long groupId = group.getKey(); + for (Map.Entry> group : groups.entrySet()) { + Long groupId = group.getKey().groupId(); + String market = group.getKey().market(); Function findRgs = (rd) -> group.getValue() .stream() .filter(rgs -> rd.equalsByKey(rgs.getRegistryDesignation())) @@ -73,7 +75,7 @@ public class PaymentStateMarkService { Registry cm_t = findRgs.apply(RegistryDesignation.T); Registry lm_t = findRgs.apply(RegistryDesignation.O); if (cm_t == null || lm_t == null) { - log.warn("groupId {}, coudn't find CM*T or LM*T", groupId); + log.warn("groupId/market {}/{}, coudn't find CM*T or LM*T", groupId, market); continue; } CompanyRoleSet initRole = cmpRoleImdg.getFirstObjectBySQL( @@ -84,7 +86,8 @@ public class PaymentStateMarkService { ) ); if (initRole == null) { - log.debug("groupId {}, initiator (lm*t.id={}) does not have ODEP role", groupId, lm_t.getId()); + log.debug("groupId/market {}/{}, initiator (lm*t.id={}) does not have ODEP role", groupId, + market, lm_t.getId()); continue; } Registry dm_v = cm_t.clone(); @@ -95,8 +98,8 @@ public class PaymentStateMarkService { dm_v.setBalance(cm_t.getBalance()); dm_v.setRegistryStatus(RegistryStatus.PROC.getKey()); rgsImdg.insert(dm_v); - log.debug("groupId {}, lm*t.id={}, cm*t.id={} created dm*v.id={}", - groupId, lm_t.getId(), cm_t.getId(), dm_v.getId()); + log.debug("groupId/market {}/{}, lm*t.id={}, cm*t.id={} created dm*v.id={}", + groupId, market, lm_t.getId(), cm_t.getId(), dm_v.getId()); Optional assetsFound = assets.searchMoneyByAccAndCompany(cm_t.getCompanyId(), cm_t.getAccountId()); assetsFound.ifPresent(assetTrio -> assets.process(assetTrio.a__b(), assetTrio.a__t(), assetTrio.a__f(), BigDecimal.ZERO));