diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/InspectionObligationsV2Action.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/InspectionObligationsV2Action.java index 652d5a2d6..9abc82939 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/InspectionObligationsV2Action.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/InspectionObligationsV2Action.java @@ -20,7 +20,6 @@ import org.springframework.context.annotation.Scope; import org.springframework.statemachine.StateContext; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.registry.Registry; -import ru.spcex.clearing.component.predicate.cash.registry.AssetByObligationCashedPredicate; import ru.spcex.clearing.component.predicate.cash.registry.AssetByTcrCompanyAccountCashedPredicate; import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.error.RgsError; @@ -161,9 +160,9 @@ public class InspectionObligationsV2Action extends AbstractSessionActionForOkErr checkResults.add(new CheckResult(obligation, false)); continue; } - ImdgPredicate assetPrdct = AssetByObligationCashedPredicate - .getPredicate(obligation) - .cashed(rgsPb, a__fCash); + ImdgPredicate assetPrdct = AssetByTcrCompanyAccountCashedPredicate + .getPredicate(obligation, A__F.type(obligation.getRegistryInstrumentType())) + .cashed(rgsPb, a___Cash); Registry asset = registryImdg.getFirstObjectByPredicate(assetPrdct); if (asset == null) { log.warn("Not found asset by registry.id={}", obligation.getId()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationAction.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationAction.java index ee18097e8..c42149e8d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationAction.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/RequirementAndObligationCreationAction.java @@ -32,6 +32,7 @@ import ru.clearing.classes.statics.data.registry.Registry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.classes.statics.data.registry.TradingClearingRegistryList; import ru.clearing.classes.statics.data.security.CurrencyPairSecurity; +import ru.clearing.classes.statics.data.security.DigitalCertificateSecurity; import ru.clearing.classes.statics.data.security.MoneyMarketSecurity; import ru.clearing.classes.statics.data.security.Security; import ru.clearing.platform.dictionary.CurrencyPairDictionary; @@ -90,6 +91,7 @@ public class RequirementAndObligationCreationAction extends AbstractSessionActio private final Imdg monMrktSecImdg; private final Imdg eqtySecImdg; private final Imdg currPairDictImdg; + private final Imdg digitCertSecImdg; private final Imdg currImdg; private final TcrSearcher tcrSearcher; private final SecuritySelector secSelector; @@ -114,6 +116,7 @@ public class RequirementAndObligationCreationAction extends AbstractSessionActio this.monMrktSecImdg = imdgProvider.getCashingImdg(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class, cash.monMrktSecCash); this.eqtySecImdg = imdgProvider.getCashingImdg(IMDGDistributedNames.Map_EquitySecurity, EquitySecurity.class, cash.eqtySecCash); this.currPairDictImdg = imdgProvider.getCashingImdg(IMDGDistributedNames.Map_CurrencyPairDictionary, CurrencyPairDictionary.class, cash.currPairDictCash); + this.digitCertSecImdg = imdgProvider.getCashingImdg(IMDGDistributedNames.Map_DigitalCertificateSecurity, DigitalCertificateSecurity.class, cash.digitCertSecCash); this.currImdg = imdgProvider.getCashingImdg(IMDGDistributedNames.Map_Currency, Currency.class, null); @@ -122,7 +125,8 @@ public class RequirementAndObligationCreationAction extends AbstractSessionActio this.secSelector = new SecuritySelector<>(castSecImdg(fixIncSecImdg), castSecImdg(monMrktSecImdg), castSecImdg(eqtySecImdg), - castSecImdg(currPairSecImdg)); + castSecImdg(currPairSecImdg), + castSecImdg(digitCertSecImdg)); } private static Imdg castSecImdg(Imdg m) { @@ -431,6 +435,7 @@ public class RequirementAndObligationCreationAction extends AbstractSessionActio protected final CashV2 monMrktSecCash; protected final CashV2 eqtySecCash; protected final CashV2 currPairDictCash; + protected final CashV2 digitCertSecCash; protected final CashV2ByIdAndString tcrListCash; public RequirementsAndObligationCreationCash() { @@ -447,6 +452,7 @@ public class RequirementAndObligationCreationAction extends AbstractSessionActio monMrktSecCash = add(new CashV2ById<>("monMrktSecCash")); eqtySecCash = add(new CashV2ById<>("eqtySecCash")); currPairDictCash = add(new CashV2ById<>("currPairDictCash")); + digitCertSecCash = add(new CashV2ById<>("digitCertSecCash")); tcrListCash = add(new CashV2ByIdAndString<>("tcrListCash", tcrList -> new CashV2ByIdAndString.CustomKey(tcrList.getTradingClearingRegistryId(), tcrList.getCurrency()))); } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/Sdf56Action.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/Sdf56Action.java index 0d1b765d2..1d38b3750 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/Sdf56Action.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/session/state/action/Sdf56Action.java @@ -27,6 +27,7 @@ import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.specific.StatementRevisePredicate; +import ru.spcex.platform.utils.text.UuidUtil; import ru.spcex.platform.utils.time.TimeUtil; @Service @@ -88,6 +89,7 @@ public class Sdf56Action extends AbstractSessionActionForOkErrorHandling { sDf56.setEnd_datetime(String.valueOf(now.toEpochMilli())); sDf56.setGenerationTime(now); sDf56.setGenerationId(idGenerator.nextId()); + sDf56.setMessageId(UuidUtil.withoutHyphens()); sDf56Imdg.insert(sDf56); SdfClearingRequest requestForExporter = new SdfClearingRequest(); requestForExporter.setGroupId(sDf56.getGenerationId());