From bd2d8fcc580b1a081a12d1943e88400ac2fccc6a Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Mon, 23 Jun 2025 17:06:15 +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 --- ...upingRegistryKey.java => GroupRgsKey.java} | 4 ++-- .../FormingPaymentInstructionSecurities.java | 19 ++++++++++--------- .../group/RegistryLiabilitiesGroup.java | 4 ++-- .../session/stage/util/RegistryUtil.java | 13 ------------- 4 files changed, 14 insertions(+), 26 deletions(-) rename clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/component/{GroupingRegistryKey.java => GroupRgsKey.java} (76%) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/component/GroupingRegistryKey.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/component/GroupRgsKey.java similarity index 76% rename from clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/component/GroupingRegistryKey.java rename to clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/component/GroupRgsKey.java index 5c1f38463..6e526f3f7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/component/GroupingRegistryKey.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/component/GroupRgsKey.java @@ -2,12 +2,12 @@ package ru.spcex.clearing.component; import java.util.Objects; -public record GroupingRegistryKey(Long groupId, String market) { +public record GroupRgsKey(Long groupId, String market) { @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - GroupingRegistryKey that = (GroupingRegistryKey) o; + GroupRgsKey that = (GroupRgsKey) o; return Objects.equals(groupId, that.groupId) && Objects.equals(market, that.market); } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java index 766c04ce7..d18189ae6 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/impl/FormingPaymentInstructionSecurities.java @@ -24,7 +24,7 @@ import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.sdf.SDf03; import ru.clearing.classes.statics.data.sdf.SDf12; import ru.clearing.classes.statics.data.security.Security; -import ru.spcex.clearing.component.GroupingRegistryKey; +import ru.spcex.clearing.component.GroupRgsKey; import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -161,14 +161,15 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { Collection registries = selectSecurityRegistries(sessionId); log.debug("found registries.size() = {}", registries.size()); //группируем регистры по groupId и market - Map> groups = registries + Map> groups = registries .stream() - .collect(Collectors.groupingBy(r -> new GroupingRegistryKey(r.getGroupId(), r.getMarket()))); + .collect(Collectors.groupingBy(r -> new GroupRgsKey(r.getGroupId(), r.getMarket()))); log.debug("groups.size = {}", groups.size()); Map lstGroups = RegistryLiabilitiesGroup.group(groups); - for (Map.Entry> group : groups.entrySet()) { + for (Map.Entry> group : groups.entrySet()) { Long groupId = group.getKey().groupId(); + String market = group.getKey().market(); Function findByCode = rgsCode -> group.getValue() .stream() .filter(rgs -> RegistryManager.equalsByCode(rgsCode, rgs)) @@ -178,12 +179,12 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { Registry cs_t = findByCode.apply(RegistryTradingParams.TS_T); Registry ls_t = findByCode.apply(RegistryTradingParams.OS_T); if (cs_t == null || ls_t == null) { - log.error("groupId {} cmt_t {} ls_t {} - both must be present", groupId, cs_t, ls_t); + log.error("groupId/market {}/{} cmt_t {} ls_t {} - both must be present", groupId, market, cs_t, ls_t); continue; } PaymentGroup ls_t_group = lstGroups.get(ls_t.getId()); if (ls_t_group == null) { - log.debug("groupId {} cmt_t {} ls_t {} were included in a group, skipping", groupId, cs_t, ls_t); + log.debug("groupId/market {}/{} cmt_t {} ls_t {} were included in a group, skipping", groupId, market, cs_t, ls_t); continue; } @@ -194,7 +195,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { AS_T ); payerAstO.ifPresent(as_t -> { - log.debug("groupId {} cmt_t {} ls_t {} changing AS*T.id={} sender", groupId, cs_t, ls_t, as_t.getId()); + log.debug("groupId/market {}/{} cmt_t {} ls_t {} changing AS*T.id={} sender", groupId, market, cs_t, ls_t, as_t.getId()); as_t.setSettledDebit(safeBD(as_t.getSettledDebit()).add(safeBD(ls_t_group.getSum()))); setUpdatedStoreInImdg(as_t, now); }); @@ -205,7 +206,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { AS_T ); receiverAstO.ifPresent(as_t -> { - log.debug("groupId {} cmt_t {} ls_t {} changing AS*T.id={} receiver", groupId, cs_t, ls_t, as_t.getId()); + log.debug("groupId/market {}/{} cmt_t {} ls_t {} changing AS*T.id={} receiver", groupId, market, cs_t, ls_t, as_t.getId()); as_t.setSettledCredit(safeBD(as_t.getSettledCredit()).add(safeBD(ls_t_group.getSum()))); setUpdatedStoreInImdg(as_t, now); }); @@ -238,7 +239,7 @@ public class FormingPaymentInstructionSecurities implements ISessionStage { paymentInstructionImdg.insert(pmt); paymentInstructionAll.add(pmt); - log.trace("generated PaymentInstructions for groupId {}: pmtInstr.id={}", groupId, pmt.getId()); + log.trace("generated PaymentInstructions for groupId/market {}/{}: pmtInstr.id={}", groupId, market, pmt.getId()); } } { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/RegistryLiabilitiesGroup.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/RegistryLiabilitiesGroup.java index 9d8ddfeff..5be7a7127 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/RegistryLiabilitiesGroup.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/payment/group/RegistryLiabilitiesGroup.java @@ -11,7 +11,7 @@ import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.clearing.classes.statics.data.registry.Registry; -import ru.spcex.clearing.component.GroupingRegistryKey; +import ru.spcex.clearing.component.GroupRgsKey; import ru.spcex.clearing.service.registry.RegistryManager; import ru.spcex.platform.enumeration.RegistryTradingParams; import static ru.spcex.platform.enumeration.RegistryTradingParams.OS_T; @@ -22,7 +22,7 @@ import ru.spcex.platform.utils.text.TextUtil; public class RegistryLiabilitiesGroup { private static final Logger log = LoggerFactory.getLogger(RegistryLiabilitiesGroup.class); - public static Map group(Map> registriesCollection) { + public static Map group(Map> registriesCollection) { Map result = new HashMap<>(); List> lstCstGroup = registriesCollection.entrySet() .stream() diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/util/RegistryUtil.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/util/RegistryUtil.java index 8e752c590..fd79c7c5b 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/util/RegistryUtil.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/stage/util/RegistryUtil.java @@ -57,17 +57,4 @@ public class RegistryUtil { newRgsCde.setCharAt(2, '-'); return newRgsCde.toString(); } - - public static Map> groupByGroupId(Collection registries) { - HashMap> groups = new HashMap<>(); - for (Registry reg : registries) { - List lst = groups.get(reg.getGroupId()); - if (lst == null) { - lst = new ArrayList<>(); - groups.put(reg.getGroupId(), lst); - } - lst.add(reg); - } - return groups; - } }