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;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
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.AssetOperationListRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.clearing.AssetOperationRequest;
|
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.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.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.platform.messaging.service.Status;
|
import ru.spcex.clearing.platform.messaging.service.Status;
|
||||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||||
import ru.spcex.clearing.service.builder.PaymentInstructionBuilderV2;
|
import ru.spcex.clearing.service.builder.PaymentInstructionBuilderV2;
|
||||||
import ru.spcex.clearing.service.integration.GatewayRequestCreator;
|
import ru.spcex.clearing.service.integration.GatewayRequestCreator;
|
||||||
import ru.spcex.clearing.service.registry.AssetTBFProcessing;
|
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.registry.RegistryManager;
|
||||||
import ru.spcex.clearing.service.schedule.TradingTimeService;
|
import ru.spcex.clearing.service.schedule.TradingTimeService;
|
||||||
import ru.spcex.clearing.service.validation.ValidationStored;
|
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.session.stage.util.RegistryUtil;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.util.services.RequestHelper;
|
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.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.ImdgTransaction;
|
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.IEnumKey;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
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;
|
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
|
@ -75,6 +93,7 @@ public class RegistryService {
|
||||||
private final TradingTimeService trdTime;
|
private final TradingTimeService trdTime;
|
||||||
private final NotificationSender notification;
|
private final NotificationSender notification;
|
||||||
private final KafkaSender kafkaSender;
|
private final KafkaSender kafkaSender;
|
||||||
|
private final DmiService diService;
|
||||||
|
|
||||||
private final IMessageResolver msgResolver;
|
private final IMessageResolver msgResolver;
|
||||||
private final RequestHelper reqHelp;
|
private final RequestHelper reqHelp;
|
||||||
|
|
@ -90,7 +109,7 @@ public class RegistryService {
|
||||||
GatewayRequester gateway,
|
GatewayRequester gateway,
|
||||||
TradingTimeService tradingTimeService,
|
TradingTimeService tradingTimeService,
|
||||||
NotificationSender notification,
|
NotificationSender notification,
|
||||||
KafkaSender kafkaSender, IMessageResolver msgResolver,
|
KafkaSender kafkaSender, DmiService diService, IMessageResolver msgResolver,
|
||||||
RequestHelper reqHelp,
|
RequestHelper reqHelp,
|
||||||
UserRoleVerification rights,
|
UserRoleVerification rights,
|
||||||
AssetTBFProcessing assets) {
|
AssetTBFProcessing assets) {
|
||||||
|
|
@ -110,6 +129,7 @@ public class RegistryService {
|
||||||
this.trdTime = tradingTimeService;
|
this.trdTime = tradingTimeService;
|
||||||
this.notification = notification;
|
this.notification = notification;
|
||||||
this.kafkaSender = kafkaSender;
|
this.kafkaSender = kafkaSender;
|
||||||
|
this.diService = diService;
|
||||||
this.assets = assets;
|
this.assets = assets;
|
||||||
this.gateway.setName("RgsService|DM*V");
|
this.gateway.setName("RgsService|DM*V");
|
||||||
this.msgResolver = msgResolver;
|
this.msgResolver = msgResolver;
|
||||||
|
|
@ -341,6 +361,10 @@ public class RegistryService {
|
||||||
Instant now = Instant.now();
|
Instant now = Instant.now();
|
||||||
dmau.setUpdated(now);
|
dmau.setUpdated(now);
|
||||||
asts.a__t().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
|
||||||
PaymentInstruction pmt = PaymentInstructionBuilderV2.builder(imdgProvider)
|
PaymentInstruction pmt = PaymentInstructionBuilderV2.builder(imdgProvider)
|
||||||
.registry(asts.a__b())
|
.registry(asts.a__b())
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
package ru.spcex.clearing.service.registry;
|
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.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Component;
|
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.clearing.classes.statics.data.statement.Statement;
|
||||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||||
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
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.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
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.log.ExceptionUtils;
|
||||||
import ru.spcex.platform.utils.number.BigDecimalUtil;
|
import ru.spcex.platform.utils.number.BigDecimalUtil;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class DmiService {
|
public class DmiService {
|
||||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
@ -174,7 +178,7 @@ public class DmiService {
|
||||||
return Optional.ofNullable(d__i);
|
return Optional.ofNullable(d__i);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Optional<Registry> createDmi(Long tcrId,
|
public Optional<Registry> createDmi(Long tcrId,
|
||||||
String securitySymbol,
|
String securitySymbol,
|
||||||
BigDecimal summ) {
|
BigDecimal summ) {
|
||||||
RegistryTradingParams rgsCde = RegistryTradingParams.AM_T;
|
RegistryTradingParams rgsCde = RegistryTradingParams.AM_T;
|
||||||
|
|
@ -190,6 +194,10 @@ public class DmiService {
|
||||||
tcrId, securitySymbol);
|
tcrId, securitySymbol);
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
|
return Optional.of(createDmi(summ, am_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
public Registry createDmi(BigDecimal summ, Registry am_t) {
|
||||||
Registry rgsD = am_t.clone();
|
Registry rgsD = am_t.clone();
|
||||||
RegistryManager.zeroState(rgsD);
|
RegistryManager.zeroState(rgsD);
|
||||||
rgsD.setOpenBalance(BigDecimal.ZERO);
|
rgsD.setOpenBalance(BigDecimal.ZERO);
|
||||||
|
|
@ -200,6 +208,6 @@ public class DmiService {
|
||||||
rgsD.setBalance(summ);
|
rgsD.setBalance(summ);
|
||||||
|
|
||||||
rgsD.setRegistryStatus(RegistryStatus.PROC.getKey());
|
rgsD.setRegistryStatus(RegistryStatus.PROC.getKey());
|
||||||
return Optional.of(rgsD);
|
return rgsD;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue