This commit is contained in:
parent
f92941a2fc
commit
5d40c9db34
2 changed files with 51 additions and 19 deletions
|
|
@ -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())
|
||||
|
|
|
|||
|
|
@ -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<Registry> createDmi(Long tcrId,
|
||||
public Optional<Registry> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue