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 3c58d46ef..4893df23f 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 @@ -1,5 +1,16 @@ package ru.spcex.clearing.service; +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; @@ -18,13 +29,18 @@ import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.clearing.AssetOperationListRequest; import ru.spcex.clearing.platform.messaging.domain.cud.clearing.AssetOperationRequest; import ru.spcex.clearing.platform.messaging.domain.cud.clearing.CreateRegistryRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.*; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.IdentificationFundsRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryChangeRefundDateRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryChangeStatusExtractRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistryReturnDepositRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.RegistrySplitDepositActionRequest; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.service.builder.PaymentInstructionBuilderV2; import ru.spcex.clearing.service.integration.GatewayRequestCreator; import ru.spcex.clearing.service.registry.AssetTBFProcessing; +import ru.spcex.clearing.service.registry.DmiService; import ru.spcex.clearing.service.registry.RegistryManager; import ru.spcex.clearing.service.schedule.TradingTimeService; import ru.spcex.clearing.service.validation.ValidationStored; @@ -32,7 +48,18 @@ import ru.spcex.clearing.session.stage.impl.GatewayRequester; import ru.spcex.clearing.session.stage.util.RegistryUtil; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.util.services.RequestHelper; -import ru.spcex.platform.enumeration.*; +import ru.spcex.platform.enumeration.CurrencyCode; +import ru.spcex.platform.enumeration.InOutDirection; +import ru.spcex.platform.enumeration.RegistryCapacity; +import ru.spcex.platform.enumeration.RegistryDesignation; +import ru.spcex.platform.enumeration.RegistryInstrumentType; +import ru.spcex.platform.enumeration.RegistryStatus; +import ru.spcex.platform.enumeration.RegistryTradingParams; +import ru.spcex.platform.enumeration.RegistryUnit; +import ru.spcex.platform.enumeration.Sender; +import ru.spcex.platform.enumeration.TradingClearingRegistryType; +import ru.spcex.platform.enumeration.TransactionStatus; +import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -44,15 +71,6 @@ import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; -import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.stream.Stream; - import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; @Service @@ -75,6 +93,7 @@ public class RegistryService { private final TradingTimeService trdTime; private final NotificationSender notification; private final KafkaSender kafkaSender; + private final DmiService diService; private final IMessageResolver msgResolver; private final RequestHelper reqHelp; @@ -90,7 +109,7 @@ public class RegistryService { GatewayRequester gateway, TradingTimeService tradingTimeService, NotificationSender notification, - KafkaSender kafkaSender, IMessageResolver msgResolver, + KafkaSender kafkaSender, DmiService diService, IMessageResolver msgResolver, RequestHelper reqHelp, UserRoleVerification rights, AssetTBFProcessing assets) { @@ -110,6 +129,7 @@ public class RegistryService { this.trdTime = tradingTimeService; this.notification = notification; this.kafkaSender = kafkaSender; + this.diService = diService; this.assets = assets; this.gateway.setName("RgsService|DM*V"); this.msgResolver = msgResolver; @@ -341,6 +361,10 @@ public class RegistryService { Instant now = Instant.now(); dmau.setUpdated(now); asts.a__t().setUpdated(now); + Registry d_i = diService.createDmi(reqBalance, asts.a__t()); + d_i.setRegistryStatus(RegistryStatus.OK.getKey()); + registryImdg.insert(d_i); + log.debug("created {}.id={}", d_i.getRegistryCode(), d_i.getId()); //paymentInstruction PaymentInstruction pmt = PaymentInstructionBuilderV2.builder(imdgProvider) .registry(asts.a__b()) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/DmiService.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/DmiService.java index 6ff43b201..72581f901 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/DmiService.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/registry/DmiService.java @@ -1,5 +1,8 @@ package ru.spcex.clearing.service.registry; +import java.math.BigDecimal; +import java.time.Instant; +import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -8,7 +11,12 @@ import ru.clearing.classes.statics.data.sdf.SDf57; import ru.clearing.classes.statics.data.statement.Statement; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.session.stage.util.RegistryUtil; -import ru.spcex.platform.enumeration.*; +import ru.spcex.platform.enumeration.InOutSDfType; +import ru.spcex.platform.enumeration.OperationStatus; +import ru.spcex.platform.enumeration.RegistryDesignation; +import ru.spcex.platform.enumeration.RegistryStatus; +import ru.spcex.platform.enumeration.RegistryTradingParams; +import ru.spcex.platform.enumeration.RegistryUnit; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -17,10 +25,6 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder; import ru.spcex.platform.utils.log.ExceptionUtils; import ru.spcex.platform.utils.number.BigDecimalUtil; -import java.math.BigDecimal; -import java.time.Instant; -import java.util.Optional; - @Component public class DmiService { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -174,7 +178,7 @@ public class DmiService { return Optional.ofNullable(d__i); } - private Optional createDmi(Long tcrId, + public Optional createDmi(Long tcrId, String securitySymbol, BigDecimal summ) { RegistryTradingParams rgsCde = RegistryTradingParams.AM_T; @@ -190,6 +194,10 @@ public class DmiService { tcrId, securitySymbol); return Optional.empty(); } + return Optional.of(createDmi(summ, am_t)); + } + + public Registry createDmi(BigDecimal summ, Registry am_t) { Registry rgsD = am_t.clone(); RegistryManager.zeroState(rgsD); rgsD.setOpenBalance(BigDecimal.ZERO); @@ -200,6 +208,6 @@ public class DmiService { rgsD.setBalance(summ); rgsD.setRegistryStatus(RegistryStatus.PROC.getKey()); - return Optional.of(rgsD); + return rgsD; } }