From 47bcf7acc81fa56152cf796caa57a6628b9197cc Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 19 Feb 2025 15:49:20 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-815 --- .../clearing/service/RegistryService.java | 20 +++++++++++++++++++ .../service/registry/AssetTBFProcessing.java | 14 +++++++++++++ .../enumeration/RegistryTradingParams.java | 9 +++++++++ 3 files changed, 43 insertions(+) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java index aa2540f66..08ddc276d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/RegistryService.java @@ -258,6 +258,26 @@ public class RegistryService { Stream.of(assets.a__t(), assets.a__b(), assets.a__f()) .forEach(a -> { + RegistryTradingParams rgsCde = RegistryTradingParams.of( + a.getRegistryDesignation(), + a.getRegistryInstrumentType(), + a.getRegistryCapacity(), + a.getRegistryUnit()); + Collection assetFound = this.assets.searchByParamsWithoutStatusCondition( + a.getAccount(), + a.getSecuritySymbol(), + a.getCompanyId(), + rgsCde + ); + if (!assetFound.isEmpty()) { + String idsFound = assetFound + .stream() + .map(Registry::getId) + .map(Object::toString) + .collect(Collectors.joining(";", "[", "]")); + log.debug("TCR#id={} account#id={} company#id={}: {} asset already present: (#id={}), skipping;", + tcr.getId(), acc.getId(), cmp.getId(), a.getRegistryCode(), idsFound); + } a.setRegistryStatus(RegistryStatus.PROC.getKey()); registryImdg.insert(a); }); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java index b84db65a9..b3c9ed381 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/AssetTBFProcessing.java @@ -135,6 +135,20 @@ public class AssetTBFProcessing { return rgsImdg.getCollectionObjectsByPredicate(d__iPrdct); } + public Collection searchByParamsWithoutStatusCondition(String account, + String securitySymbol, + Long companyId, + RegistryTradingParams params) { + ImdgPredicateBuilder pb = rgsImdg.predicateBuilder(); + ImdgPredicate d__iPrdct = pb.and( + pb.equals("account", account), + pb.equals("securitySymbol", securitySymbol), + pb.equals("companyId", companyId), + pb.sql(RegistryCodeSqlBuilder.getInstance(params).build()) + ); + return rgsImdg.getCollectionObjectsByPredicate(d__iPrdct); + } + public void processByAm_b(Registry am_b, BigDecimal sum) { Optional am_f = rgsMng.findRegByUnit(am_b.getCompanyId(), am_b.getAccountId(), diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java index 39ef654c0..3255ac403 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryTradingParams.java @@ -16,6 +16,15 @@ public record RegistryTradingParams(RegistryDesignation registryDesignation, return isEqualDesignation && isEqualInstrumentType && isEqualCapacity && isEqualUnit; } + public static RegistryTradingParams of(String dsgn, String insType, String cap, String unit) { + return new RegistryTradingParams( + IEnumKey.getEnumByKey(RegistryDesignation.class, dsgn), + IEnumKey.getEnumByKey(RegistryInstrumentType.class, insType), + IEnumKey.getEnumByKey(RegistryCapacity.class, cap), + IEnumKey.getEnumByKey(RegistryUnit.class, unit) + ); + } + public RegistryTradingParams dsgn(RegistryDesignation registryDesignation) { return new RegistryTradingParams(registryDesignation, registryInstrumentType,