From ed47b5291b65076204fc4aa924716987d9b364fb Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 3 May 2023 17:29:23 +0300 Subject: [PATCH 01/60] http://jira.mfd.msk:8088/browse/CLS-277 --- .../ru/spcex/clearing/config/KafkaConfig.java | 12 + .../clearing/config/ValidationConfig.java | 22 ++ .../spcex/clearing/error/ClearingError.java | 8 +- .../service/ExecutionDepositComponent.java | 278 +++++++----------- .../validation/STradesValidationRule.java | 111 +++++++ .../service/validation/ValidationStored.java | 5 + .../spcex/platform/enumeration/Section.java | 24 ++ .../messaging/service/sender/KafkaSender.java | 11 + .../service/sender/KafkaSenderBuilder.java | 2 + .../sender/KafkaSenderBuilderImpl.java | 6 + .../sender/KafkaSyncRequestReplySender.java | 78 +++++ 11 files changed, 380 insertions(+), 177 deletions(-) create mode 100644 clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java create mode 100644 clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ValidationStored.java create mode 100644 platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Section.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSyncRequestReplySender.java diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/KafkaConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/KafkaConfig.java index 0a281b5e1..5a7e0add1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/KafkaConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/KafkaConfig.java @@ -46,4 +46,16 @@ public class KafkaConfig { }) .build(); } + + @Autowired + @Bean("kafkaSenderWithoutRequestInfo") + public KafkaSender kafkaSenderWithoutRequestInfo(Producer kafkaProducer, ImdgProvider imdgProvider) { + ImdgId imdgIdGenerator = imdgProvider.getImdgIdGenerator(); + return KafkaSender + .setup() + .producer(kafkaProducer) + .idGenerator(imdgIdGenerator::nextId) + .saveRequestInfo(false) + .build(); + } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java index 18854bb55..90024d854 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java @@ -7,9 +7,13 @@ import ru.clearing.classes.statics.data.account.AccountBalance; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.execution.ExecutionDeposit; +import ru.clearing.classes.statics.data.misc.STrades; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.classes.statics.data.security.Security; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.service.validation.ClrngValidationStored; import ru.spcex.clearing.service.validation.ExecutionDepositValidationRule; +import ru.spcex.clearing.service.validation.STradesValidationRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.ClearingCategory; import ru.spcex.platform.imdg.api.Imdg; @@ -22,6 +26,7 @@ import java.util.HashMap; import java.util.Map; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Function; @Configuration public class ValidationConfig { @@ -36,6 +41,9 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_Company, Company.class); addImdg.accept(IMDGDistributedNames.Map_Account, Account.class); addImdg.accept(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); + addImdg.accept(IMDGDistributedNames.Map_Security, Security.class); + addImdg.accept(IMDGDistributedNames.Map_Company, Company.class); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); } /** @@ -63,4 +71,18 @@ public class ValidationConfig { }; } + @Bean("sTradesValidator") + public Function sTradesValidator() { + return sTrades -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(sTrades); + addImdg.accept(context, IMDGDistributedNames.Map_Security); + addImdg.accept(context, IMDGDistributedNames.Map_Company); + addImdg.accept(context, IMDGDistributedNames.Map_TradingClearingRegistry); + return new ValidatorImpl<>(context, + STradesValidationRule.SecurityPresent, + STradesValidationRule.CompanyPresent, + STradesValidationRule.TradingClearingRegistryPresent); + }; + } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java index 2e9d0341c..91ec6aa4d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/error/ClearingError.java @@ -1,13 +1,17 @@ package ru.spcex.clearing.error; -import ru.spcex.platform.utils.enumeration.IEnumId; +import ru.spcex.platform.utils.enumeration.IErrorEnumId; -public enum ClearingError implements IEnumId { +public enum ClearingError implements IErrorEnumId { GeneralError(5400L), RecordNotFound(5406L), CompanyCreditCheck(5412L), CompanyDebitCheck(5413L), CompanyNotFound(5410L), + SecurityNotFound(5416L), + TradingClearingRegistryNotFound(5418L), + TradingClearingRegistryNotActive(5419L), + NewDealsNotFound(5423L), ; private final Long id; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java index 7cb432dcd..8ad8ec77d 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java @@ -1,11 +1,10 @@ package ru.spcex.clearing.service; import org.apache.kafka.clients.producer.Producer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.apache.kafka.clients.producer.RecordMetadata; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -14,33 +13,31 @@ import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.execution.ExecutionDeposit; import ru.clearing.classes.statics.data.misc.Listing; import ru.clearing.classes.statics.data.misc.STrades; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.classes.statics.data.security.Security; import ru.spcex.clearing.error.ClearingError; import ru.spcex.clearing.error.ClearingException; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.ActionType; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.registry.DealRegisterNewRequest; -import ru.spcex.platform.enumeration.Allowed; -import ru.spcex.platform.enumeration.Market; -import ru.spcex.platform.enumeration.MoneyFlowSide; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.service.validation.ValidationStored; +import ru.spcex.platform.enumeration.*; 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.ImdgPredicate; -import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; -import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.enumeration.*; import ru.spcex.platform.utils.log.ExceptionUtils; import ru.spcex.platform.utils.time.TimeUtil; +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.concurrent.ExecutionException; -import java.util.concurrent.Future; -import java.util.stream.Collectors; +import java.util.Collection; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; /** * 1.35. executionDeposit - Сделки @@ -64,10 +61,15 @@ public class ExecutionDepositComponent { Long tradeNum; Instant tradingDay; + private final IMessageResolver msgResolver = new SimpleMessageResolver(); + private final Function stradesValidator; + private final KafkaSender kafkaSender; @Autowired - public ExecutionDepositComponent(ImdgProvider imdgProvider, Producer kafka) { + public ExecutionDepositComponent(ImdgProvider imdgProvider, Producer kafka, + @Qualifier("sTradesValidator") Function stradesValidator, + @Qualifier("kafkaSenderWithoutRequestInfo") KafkaSender kafkaSender) { this.imdgProvider = imdgProvider; this.sTradeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class); this.securityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class); @@ -78,6 +80,8 @@ public class ExecutionDepositComponent { this.idGenerator = imdgProvider.getImdgIdGenerator(); this.kafka = kafka; + this.stradesValidator = stradesValidator; + this.kafkaSender = kafkaSender; resetTradingDay(); } @@ -98,102 +102,53 @@ public class ExecutionDepositComponent { public void processNewTS() { log.debug("Start check new S_TRADE after {}", tradingDay); - Collection sTrades; - { - ImdgPredicateBuilder pb = sTradeImdg.predicateBuilder(); - ImdgPredicate sql = pb.greatEqual("tradeDateTime", tradingDay); - sTrades = sTradeImdg.getCollectionObjectsByPredicate(sql); - } - log.info("Found {} new s_trade with trade_num>{}", sTrades.size(), tradeNum); + //выбираем STrades на сегодня с правильным section + Collection sTrades = sTradeImdg.getCollectionObjectsByFieldValues(Map.of( + "tradeDate", LocalDate.now(), + "section", Section.MKR.getKey() + )); + log.info("Found {} s_trade for today", sTrades.size()); if (sTrades.isEmpty()) { - log.info("No new sTrades."); + logError(ClearingError.NewDealsNotFound); return; } - // Выявление новых сделок необходимо выполнить следующие контрольные проверки: - - // Проверить все инструменты. - Set secCodesOfSecurity; - { - Set secCodesOfSTrade = sTrades.stream().map(STrades::getSecCode).filter(Objects::nonNull).collect(Collectors.toSet()); - log.debug("Verify {} instruments for {} STrade's.", secCodesOfSTrade.size(), sTrades.size()); - ImdgPredicate allIn = securityImdg.predicateBuilder().in("securitySymbol", secCodesOfSTrade.toArray(new String[0])); - Collection foundSecurities = securityImdg.getCollectionObjectsByPredicate(allIn); - secCodesOfSecurity = foundSecurities.stream().map(Security::getSecuritySymbol).filter(Objects::nonNull).collect(Collectors.toSet()); - if (secCodesOfSecurity.containsAll(secCodesOfSTrade)) { - log.debug("All {} Security found by {} secCodes from STrade", - secCodesOfSecurity.size(), secCodesOfSTrade.size()); - } else { - HashSet notFoundSymbol = new HashSet<>(secCodesOfSTrade); - notFoundSymbol.removeAll(secCodesOfSecurity); - log.info("Found only {} Security by {} secCodes from STrade. Not found: {}", - secCodesOfSecurity.size(), secCodesOfSTrade.size(), notFoundSymbol); + //убираем уже добавленные в ExecutionDeposit + sTrades.removeIf(sTrd -> { + Side sTrdSide = IEnumKey.getEnumByKey(Side.class, sTrd.getOperation()); + if (sTrdSide == null || !(sTrdSide.equals(Side.BUY) || sTrdSide.equals(Side.SELL))) { + log.warn("cannot parse strade.tradeNum={} strade.operation {}", sTrd.getTradeNum(), sTrd.getOperation()); + return true; } - } + MoneyFlowSide excDepSide = sTrdSide.equals(Side.BUY) ? MoneyFlowSide.BUY : MoneyFlowSide.SELL; + return executionDepositImdg.getSingleObjectByFieldValues( + Map.of("tradingDate", sTrd.getTradeDate(), + "exchangeExecutionId", sTrd.getTradeNum(), + "side", excDepSide.getKey())) != null; + }); + log.info("{} strades left after already-added filtering", sTrades.size()); - // Необходимо проверять отсутствие ExecutionDeposit с exchangeExecutionId и clearingDate и side. - // Но при этом, во время создания новых ExecutionDeposit по STrade, TradeNum могут повторяться. - LocalDate today = LocalDate.now(); + for (STrades sTrd : sTrades) { + log.trace("S_TRADE[{}] new", sTrd.getId()); - for (STrades trade : sTrades) { - log.trace("Check s_trade[{}].tradeNum={} operation={} on date {}", trade.getId(), trade.getTradeNum(), trade.getOperation(), today); - boolean existEDeposit; - { - ImdgPredicateBuilder pb = executionDepositImdg.predicateBuilder(); - - ImdgPredicate predicateOperation = pb.equals("side", trade.getOperation()); - if ("B".equalsIgnoreCase(trade.getOperation())) { - predicateOperation = pb.or(predicateOperation, pb.equals("side", MoneyFlowSide.BUY.getKey())); - } -// if ("BUY".equalsIgnoreCase(trade.getOperation())) { -// predicateOperation = pb.or(predicateOperation, pb.equals("side", "B")); -// } - if ("S".equalsIgnoreCase(trade.getOperation())) { - predicateOperation = pb.or(predicateOperation, pb.equals("side", MoneyFlowSide.SELL.getKey())); - } -// if ("SELL".equalsIgnoreCase(trade.getOperation())) { -// predicateOperation = pb.or(predicateOperation, pb.equals("side", "S")); -// } - - ImdgPredicate predicate = pb.and( - pb.equals("exchangeExecutionId", trade.getTradeNum()), - pb.equals("clearingDate", today), - predicateOperation - ); - Collection existsEDeposit = executionDepositImdg.getCollectionObjectsByPredicate(predicate); -// Collection existsEDeposit=executionDepositImdg.getCollectionObjectsByFieldValues(Map.of( -// "exchangeExecutionId", trade.getTradeNum(), -// "clearingDate", today -// )); - existEDeposit = !existsEDeposit.isEmpty(); - log.trace("Check exist ExecutionDeposit, SQL \"{}\", found {}, exist {}", predicate, existsEDeposit.size(), existEDeposit); + //проверки + IValidator validator = stradesValidator.apply(sTrd); + Optional error = validator.tillFirstError(); + if (error.isPresent()) { + logError(sTrd.getId(), error.get()); + continue; } - - if (!existEDeposit) { - log.trace("S_TRADE[{}] new", trade.getId()); - - // Проверка secCode - if (!secCodesOfSecurity.contains(trade.getSecCode())) { - log.error("Error {}: STrade[{}].secCode={} not found", - ClearingError.RecordNotFound.getId(), trade.getId(), trade.getSecCode()); - continue; - } - - ExecutionDeposit newED; - try { - newED = createExecutionDeposit(trade, null, null); - executionDepositImdg.insert(newED); - sendNotification(newED); - log.debug("New executionDeposit.id={} was created.", newED.getId()); - } catch (ClearingException ce) { - auditMessage(ce); - } catch (Exception e) { - log.error("When create new ExecutionDeposit by STrade[{}] error: {}", trade.getId(), ExceptionUtils.getStackTrace(e)); - } - - } else { - log.trace("S_TRADE[{}] already has executionDeposit: exchangeExecutionId={} on date {}", trade.getId(), trade.getTradeNum(), today); + ExecutionDeposit newED; + try { + newED = createExecutionDeposit(sTrd, validator); + executionDepositImdg.insert(newED); + sendNotification(newED); + log.debug("New executionDeposit.id={} was created.", newED.getId()); + } catch (ClearingException ce) { + auditMessage(ce); + } catch (Exception e) { + log.error("When create new ExecutionDeposit by STrade[{}] error: {}", sTrd.getId(), ExceptionUtils.getStackTrace(e)); } } @@ -207,106 +162,79 @@ public class ExecutionDepositComponent { log.error("AUDIT error code {}: {}", ce.getEnumMsg(), ce.getMessage()); } - protected void auditMessage(String message, Object... ids) { - String txt = message; - if (ids != null && ids.length > 0) { - txt += " object:" + Arrays.toString(ids); - } - log.error("audit \"clearing-service\", errorText: {}", txt); - } - - protected void sendNotification(ExecutionDeposit forED) { + protected void sendNotification(ExecutionDeposit forED) throws ClearingException { final String destination = Consts.REGISTRY_DEAL_REGISTER_NEW; DealRegisterNewRequest requestPayload = new DealRegisterNewRequest(); requestPayload.setExecutionId(forED.getId()); requestPayload.setExchangeExecutionId(forED.getExchangeExecutionId()); -// requestPayload.setId(idGenerator.nextId()); - - BaseRequest request = new BaseRequest<>(); - request.setId(idGenerator.nextId()); - request.setActionType(ActionType.NEW); - request.setRequestPayload(requestPayload); - log.trace("Send to {} new ExecutionDeposit[{}]", destination, forED.getId()); - Future send = kafka.send(new ProducerRecord<>(destination, request)); - try { - send.get(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new RuntimeException(e); - } catch (ExecutionException e) { - throw new RuntimeException(e); + Long generatedRequestId = kafkaSender.sendRequestToQueue(destination, requestPayload); + if (generatedRequestId == null) { + throw new RuntimeException("failed to send request to " + destination); } } protected ExecutionDeposit createExecutionDeposit(STrades sTrades, - Allowed coverageStatus, Long sessionId) throws ClearingException { - Account account = null; // todo CLS-275 accountImdg.getSingleObjectByFieldValues(Map.of("account", sTrades.getMoneyAccount())); - Security security = securityImdg.getSingleObjectByFieldValues(Map.of("securitySymbol", sTrades.getSecCode())); - if (security == null) { - log.warn("security securitySymbol=\"{}\" not found", sTrades.getSecCode()); - throw new ClearingException(new EnumMessage(ClearingError.RecordNotFound, sTrades.getSecCode())); - } - Listing listing = null; - if (security != null) { - listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", security.getId())); - } - Company company = companyImdg.getSingleObjectByFieldValues(Map.of("tradingCode", sTrades.getFirmId())); - if (company == null) { - throw new ClearingException(new EnumMessage(ClearingError.CompanyNotFound, sTrades.getFirmId())); - } + IValidator validator) throws ClearingException { + Security security = validator.getStored(ValidationStored.STradesSecurity); + Company company = validator.getStored(ValidationStored.STradesCompany); + Company counterCompany = validator.getStored(ValidationStored.STradesCounterCompany); + TradingClearingRegistry rgstr = validator.getStored(ValidationStored.STradesTradingClearingRegistry); + Listing listing = listingImdg.getSingleObjectByFieldValues(Map.of("securityId", security.getId())); - return createExecutionDeposit(sTrades, account, listing, company, security, coverageStatus, sessionId); - } - - private ExecutionDeposit createExecutionDeposit(STrades sTrades, Account account, Listing listing, - Company company, Security security, - Allowed coverageStatus, Long sessionId) { ExecutionDeposit eDeposit = new ExecutionDeposit(); - eDeposit.setId(idGenerator.nextId()); final Instant now = Instant.now(); - final LocalDate nowDay = TimeUtil.toLocalDate(now); eDeposit.setCreated(now); - eDeposit.setTradingDate(nowDay); - eDeposit.setClearingDate(nowDay); - + eDeposit.setTradingDate(sTrades.getTradeDate()); + eDeposit.setClearingDate(TimeUtil.toLocalDate(now)); eDeposit.setExchangeExecutionId(sTrades.getTradeNum()); eDeposit.setExchangeExecutionTime(sTrades.getTradeDateTime()); - if (account != null) { - // todo CLS-275 eDeposit.setAccountId(account.getId()); - } + eDeposit.setTradingClearingRegistryId(rgstr.getId()); eDeposit.setMarket(Market.mkrs.getKey()); eDeposit.setPrice(sTrades.getPrice()); eDeposit.setLots(sTrades.getQty()); if (listing != null && listing.getLotSize() != null && eDeposit.getLots() != null) { - BigDecimal quantity = eDeposit.getLots().multiply(listing.getLotSize()); - eDeposit.setQuantity(quantity); + BigDecimal lots = eDeposit.getLots(); + BigDecimal listingLotSize = listing.getLotSize(); + if (listingLotSize != null && lots != null) { + eDeposit.setQuantity(lots.multiply(listingLotSize)); + } } eDeposit.setFirstLegAmount(sTrades.getValue()); eDeposit.setSecondLegAmount(sTrades.getValue()); - //eDeposit.setInterestAmount(null); - String operation = sTrades.getOperation(); //Символьный код по справочнику moneyFlowSide), соответствующий значению из s_trade.operation (sTrade.getOperation()) - if ("B".equalsIgnoreCase(operation)) { - operation = MoneyFlowSide.BUY.getKey(); + { + Side sTradeSide = IEnumKey.getEnumByKey(Side.class, sTrades.getOperation()); + if (sTradeSide != null) { + switch (sTradeSide) { + case BUY -> eDeposit.setSide(MoneyFlowSide.BUY.getKey()); + case SELL -> eDeposit.setSide(MoneyFlowSide.SELL.getKey()); + } + } } - if ("S".equalsIgnoreCase(operation)) { - operation = MoneyFlowSide.SELL.getKey(); - } - eDeposit.setSide(operation); - eDeposit.setSettlementCurrency("RUB"); // (справочник currencyCode) + eDeposit.setSettlementCurrency(CurrencyCode.RUB.getKey()); eDeposit.setCompanyId(company.getId()); - // todo CLS-275 eDeposit.setDuration(sTrades.getDaysToMatDate()); - eDeposit.setFirstLegSettlementDate(nowDay); - eDeposit.setSecondLegSettlementDate(sTrades.getSettleDate()); - //eDeposit.setFirstLegSettlementCode(null); - //eDeposit.setSecondLegSettlementCode(null); + eDeposit.setDuration(sTrades.getRepoTerm()); + eDeposit.setFirstLegSettlementDate(sTrades.getTradeDate()); + { + LocalDate sTrdSettleDate = sTrades.getSettleDate(); + if (sTrdSettleDate != null) { + eDeposit.setSecondLegSettlementDate(sTrdSettleDate.plusDays(sTrades.getRepoTerm())); + } + } + eDeposit.setFirstLegSettlementCode(sTrades.getSettleCode()); + eDeposit.setSecondLegSettlementCode(sTrades.getSettleCode()); eDeposit.setSecurityFullName(security.getFullName()); eDeposit.setSecuritySymbol(security.getSecuritySymbol()); eDeposit.setSecurityId(security.getId()); - //eDeposit.setCounterPartyId(null); - eDeposit.setCoverageStatus(coverageStatus == null ? null : coverageStatus.getKey()); // Заполняется по справочнику allowed в результате расчета требований и обязательств. TODO - eDeposit.setSessionId(sessionId); - + eDeposit.setContract(sTrades.getClassCode()); + eDeposit.setCounterPartyId(counterCompany.getId()); return eDeposit; } + private void logError(IEnumId subject, Object... args) { + log.warn("{}", msgResolver.resolve(new EnumMessage(subject, args))); + } + + private void logError(Long sTradeId, EnumMessage msg) { + log.warn("sTrade id={} {}", sTradeId, msgResolver.resolve(msg)); + } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java new file mode 100644 index 000000000..7673e340e --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/STradesValidationRule.java @@ -0,0 +1,111 @@ +package ru.spcex.clearing.service.validation; + +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.misc.STrades; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.classes.statics.data.security.Security; +import ru.spcex.clearing.error.ClearingError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.enumeration.IEnumKey; +import ru.spcex.platform.utils.text.TextUtil; +import ru.spcex.platform.utils.validation.IValidationRule; + +import java.util.Map; +import java.util.Optional; + +public enum STradesValidationRule implements IValidationRule> { + + // 2.1. Найти в security запись, у которой security.securitySymbol=sTrades.secCode. + // Если такой записи нет, записать в лог ошибку (5416) "Инструмент %s не найден". + SecurityPresent() { + @Override + public Optional validate(ImdgValidationContext context) { + STrades validatedObject = context.getValidatedObject(); + if (TextUtil.isEmpty(validatedObject.getSecCode())) { + return of(ClearingError.SecurityNotFound, validatedObject.getSecCode()); + } + Imdg securityImdg = context.obtainMap(IMDGDistributedNames.Map_Security, Security.class); + Security security = securityImdg.getSingleObjectByFieldValues(Map.of("securitySymbol", validatedObject.getSecCode())); + if (security == null) { + return of(ClearingError.SecurityNotFound, validatedObject.getSecCode()); + } + context.storeObject(ValidationStored.STradesSecurity, security); + return empty(); + } + }, + // 2.2. Найти в company запись, у которой company.tradingCode=sTrades.firmId. + // Если такой записи нет, записать в лог ошибку (5410) "Компания %s не найдена". + CompanyPresent() { + @Override + public Optional validate(ImdgValidationContext context) { + STrades validatedObject = context.getValidatedObject(); + if (TextUtil.isEmpty(validatedObject.getFirmId())) { + return of(ClearingError.CompanyNotFound, validatedObject.getFirmId()); + } + Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); + Company company = companyImdg.getSingleObjectByFieldValues(Map.of("tradingCode", validatedObject.getFirmId())); + if (company == null) { + return of(ClearingError.CompanyNotFound, validatedObject.getFirmId()); + } + context.storeObject(ValidationStored.STradesCompany, company); + return empty(); + } + }, + CounterCompanyPresent() { + @Override + public Optional validate(ImdgValidationContext context) { + STrades validatedObject = context.getValidatedObject(); + if (TextUtil.isEmpty(validatedObject.getCpFirmId())) { + return of(ClearingError.CompanyNotFound, validatedObject.getCpFirmId()); + } + Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); + Company company = companyImdg.getSingleObjectByFieldValues(Map.of("tradingCode", validatedObject.getCpFirmId())); + if (company == null) { + return of(ClearingError.CompanyNotFound, validatedObject.getCpFirmId()); + } + context.storeObject(ValidationStored.STradesCounterCompany, company); + return empty(); + } + }, + // 2.3. Найти в tradingClearingRegistry запись, у которой tradingClearingRegistry.code=sTrades.account + // и tradingClearingRegistry.companyId=companyId, найденому в предыдущем пункте. + // Если такой записи нет, записать в лог ошибку (5418) "Торгово-клиринговый регистр %s не найден для компании %s". + TradingClearingRegistryPresent() { + @Override + public Optional validate(ImdgValidationContext context) { + STrades validatedObject = context.getValidatedObject(); + if (TextUtil.isEmpty(validatedObject.getAccount())) { + return of(ClearingError.TradingClearingRegistryNotFound, validatedObject.getAccount()); + } + if (context.getStoredObject(ValidationStored.STradesCompany) == null) { //maybe unnecessary + return of(ClearingError.CompanyNotFound, validatedObject.getSecCode()); + } + Imdg registryImdg = context.obtainMap(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); + TradingClearingRegistry tcRegister = registryImdg.getSingleObjectByFieldValues( + Map.of("code", validatedObject.getAccount(), + "companyId", ((Company) context.getStoredObject(ValidationStored.STradesCompany)).getId() + )); + if (tcRegister == null) { + return of(ClearingError.TradingClearingRegistryNotFound, validatedObject.getAccount()); + } + // 2.4. Проверить, что найденный торгово-клиринговый регистр в активном состоянии: + // tradingClearingRegistry.status≠BLKD/SSPD/CLOS (см. справочник serviceStatus). + // Иначе записать в лог ошибку (5419) "Торгово-клиринговый регистр %s неактивен". + ServiceStatus status = IEnumKey.getEnumByKey(ServiceStatus.class, tcRegister.getStatus()); + if (IEnumKey.contains(status, ServiceStatus.Blocked, ServiceStatus.Suspended, ServiceStatus.Closed)) { + return of(ClearingError.TradingClearingRegistryNotActive, validatedObject.getAccount()); + } + context.storeObject(ValidationStored.STradesTradingClearingRegistry, tcRegister); + return empty(); + } + }; + + @Override + public String ruleName() { + return "STradesValidationRule." + name(); + } +} \ No newline at end of file diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ValidationStored.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ValidationStored.java new file mode 100644 index 000000000..e1c671c24 --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/validation/ValidationStored.java @@ -0,0 +1,5 @@ +package ru.spcex.clearing.service.validation; + +public enum ValidationStored { + STradesCompany, STradesCounterCompany, STradesSecurity, STradesTradingClearingRegistry +} diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Section.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Section.java new file mode 100644 index 000000000..ec74d7252 --- /dev/null +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Section.java @@ -0,0 +1,24 @@ +package ru.spcex.platform.enumeration; + +import ru.spcex.platform.utils.enumeration.IEnumKey; + +public enum Section implements IEnumKey { + MKR("MKR"), + FOND("FOND"); + + Section(String key) { + this.key = key; + } + + private String key; + + @Override + public String getKey() { + return this.key; + } + + @Override + public boolean equalsByKey(String key) { + return IEnumKey.super.equalsByKey(key); + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java index 6b321bc90..613966cc8 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java @@ -24,6 +24,7 @@ public class KafkaSender { private Producer kafka; private Supplier idGenerator; private Function imdgGenerator; + private boolean saveRequestInfo = true; KafkaSender() { this.allImdgMaps = new ConcurrentHashMap<>(); @@ -55,6 +56,12 @@ public class KafkaSender { } private void saveRequestToStorage(String destination, BaseRequest request) { + if (!saveRequestInfo) { + return; + } + if (imdgGenerator == null) { + throw new IllegalStateException("imdgGenerator is null"); + } KafkaImdgInsert imdgInsert = getImdg(destination); RequestInfo requestInfo = RequestInfo.create(request.getId()); imdgInsert.insert(requestInfo); @@ -76,4 +83,8 @@ public class KafkaSender { void setImdgProvider(Function imdgGenerator) { this.imdgGenerator = imdgGenerator; } + + void setSaveRequestInfo(boolean saveRequestInfo) { + this.saveRequestInfo = saveRequestInfo; + } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSenderBuilder.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSenderBuilder.java index f07f23463..0a6d2f6af 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSenderBuilder.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSenderBuilder.java @@ -12,5 +12,7 @@ public interface KafkaSenderBuilder { KafkaSenderBuilder imdgProvider(Function imdgGenerator); + KafkaSenderBuilder saveRequestInfo(boolean saveRequestInfo); + KafkaSender build(); } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSenderBuilderImpl.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSenderBuilderImpl.java index d20b848ec..0e89ad5cb 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSenderBuilderImpl.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSenderBuilderImpl.java @@ -31,6 +31,12 @@ public class KafkaSenderBuilderImpl implements KafkaSenderBuilder{ return this; } + @Override + public KafkaSenderBuilder saveRequestInfo(boolean saveRequestInfo) { + kafkaSender.setSaveRequestInfo(saveRequestInfo); + return this; + } + @Override public KafkaSender build() { return kafkaSender; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSyncRequestReplySender.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSyncRequestReplySender.java new file mode 100644 index 000000000..2d176d8e6 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSyncRequestReplySender.java @@ -0,0 +1,78 @@ +package ru.spcex.clearing.platform.messaging.service.sender; + +import org.apache.kafka.clients.producer.Producer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.apache.kafka.clients.producer.RecordMetadata; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.kafka.requestreply.ReplyingKafkaTemplate; +import ru.spcex.clearing.platform.messaging.domain.ActionType; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; +import ru.spcex.clearing.platform.messaging.service.RequestInfo; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.utils.log.ExceptionUtils; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; +import java.util.function.Function; +import java.util.function.Supplier; + +public class KafkaSyncRequestReplySender { + private final Logger log = LoggerFactory.getLogger(getClass()); + private final Map allImdgMaps; + private Producer kafka; + private Supplier idGenerator; + private Function imdgGenerator; + private ReplyingKafkaTemplate kafkaTemplate; + + KafkaSyncRequestReplySender() { + this.allImdgMaps = new ConcurrentHashMap<>(); + } + + public static KafkaSenderBuilderImpl setup() { + return new KafkaSenderBuilderImpl(); + } + + + public Long sendRequestToQueue(String destination, Object requestPayload) { + BaseRequest request = new BaseRequest<>(); + request.setId(idGenerator.get()); + request.setActionType(ActionType.SYSTEM); + request.setRequestPayload(requestPayload); + //сохраняет данные о запросе в хранилище + saveRequestToStorage(destination, request); + Future send = kafka.send(new ProducerRecord<>(destination, request)); + try { + send.get(); + } catch (InterruptedException | ExecutionException e) { + log.error(ExceptionUtils.getStackTrace(e)); + return null; + } + return request.getId(); + } + + private void saveRequestToStorage(String destination, BaseRequest request) { + KafkaImdgInsert imdgInsert = getImdg(destination); + RequestInfo requestInfo = RequestInfo.create(request.getId()); + imdgInsert.insert(requestInfo); + } + + @SuppressWarnings("unchecked") + private KafkaImdgInsert getImdg(String mapName) { + return allImdgMaps.computeIfAbsent(mapName, (mapName1) -> imdgGenerator.apply(mapName)); + } + + void setProducer(Producer kafka) { + this.kafka = kafka; + } + + void setIdGenerator(Supplier idGenerator) { + this.idGenerator = idGenerator; + } + + void setImdgProvider(Function imdgGenerator) { + this.imdgGenerator = imdgGenerator; + } +} From 93d707961c4152a1f5028c512c287c8e4889c4f7 Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 3 May 2023 17:47:19 +0300 Subject: [PATCH 02/60] TradingClearingRegistryService in progress --- ...adingClearingRegistryValidationConfig.java | 130 +++++++++++++ .../config/validation/ValidationConfig.java | 2 + .../clearing/account/errors/AccountError.java | 3 +- .../TradingClearingRegistryService.java | 179 ++++++++++++++++++ .../TradingClearingRegistryController.java | 4 +- ...TradingClearingRegistryControllerTest.java | 4 +- .../registry/TradingClearingRegistry.java | 1 + .../TradingClearingRegistryPurpose.java | 20 ++ .../platform/messaging/domain/Consts.java | 2 +- 9 files changed, 339 insertions(+), 6 deletions(-) create mode 100644 clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java create mode 100644 clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java create mode 100644 platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryPurpose.java diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java new file mode 100644 index 000000000..4cfd24e05 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -0,0 +1,130 @@ +package ru.spcex.clearing.account.config.validation; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; +import ru.spcex.clearing.account.errors.AccountError; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; +import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; +import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; +import ru.spcex.clearing.validation.common.rules.IdPresentRule; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.validation.IValidator; +import ru.spcex.platform.utils.validation.ValidatorImpl; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; + +@Configuration +public class TradingClearingRegistryValidationConfig { + @Bean("tradingClearingRegistryNewRequest") + public Function tradingClearingRegistryNewRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryNewRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryNewRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + return new ValidatorImpl<>(context, + IdPresentRule.instance("companyId", + TradingClearingRegistryNewRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + AccountError.RequiredFieldEmpty, + AccountError.CompanyNotFound), + FieldRequiredRule.instance("moneyAccountId", + TradingClearingRegistryNewRequest::getMoneyAccountId, + AccountError.RequiredFieldEmpty, + moneyAccountId -> { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByID(moneyAccountId); + if (account == null) return AccountError.AccountNotFound; + return null; + }), + FieldRequiredRule.instance("depoAccountId", + TradingClearingRegistryNewRequest::getDepoAccountId, + AccountError.RequiredFieldEmpty, + false, + depoAccountId -> { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByID(depoAccountId); + if (account == null) return AccountError.AccountNotFound; + return null; + }), + DictionaryPresentRule.instance("status", + TradingClearingRegistryNewRequest::getStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false, + statusValue -> { + String statusCode = statusValue.getCode(); + if (WorkflowStatus.Active.equalsByKey(statusCode)) return null; + return AccountError.WrongFieldValue; + }) + ); + }; + } + + @Bean("tradingClearingRegistryUpdateRequest") + public Function tradingClearingRegistryUpdateRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryUpdateRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryUpdateRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + TradingClearingRegistryUpdateRequest::getId, + IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class, + AccountError.RequiredFieldEmpty, + AccountError.TradingClearingRegistryNotFound), + DictionaryPresentRule.instance("status", + TradingClearingRegistryUpdateRequest::getStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false) + ); + }; + } + + @Bean("tradingClearingRegistryBlockRequest") + public Function tradingClearingRegistryBlockRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryBlockRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryBlockRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + CommonDeleteRequest::getId, + IMDGDistributedNames.Map_TradingClearingRegistry, + TradingClearingRegistry.class, + AccountError.RequiredFieldEmpty, + AccountError.TradingClearingRegistryNotFound) + ); + }; + } +} diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java index 36cebc49d..e9d50af15 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java @@ -11,6 +11,7 @@ import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary; import ru.clearing.platform.dictionary.CurrencyCodeDictionary; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -39,6 +40,7 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_BankAccount, BankAccount.class); addImdg.accept(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class); return imdg; } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java index 82789613d..7a4b12852 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java @@ -12,7 +12,8 @@ public enum AccountError implements IErrorEnumId { CompanyNotFound(5013L), CompanyNotActive(5014L), InfoAccountAlreadyExist(5015L), - ClearingCategoryNotFound(5019L) + ClearingCategoryNotFound(5019L), + TradingClearingRegistryNotFound(5022L), ; private final Long id; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java new file mode 100644 index 000000000..43a903066 --- /dev/null +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -0,0 +1,179 @@ +package ru.spcex.clearing.account.service; + +import org.apache.kafka.clients.consumer.Consumer; +import org.apache.kafka.clients.producer.Producer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; +import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.clearing.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.validation.IValidator; + +import java.time.Instant; +import java.util.function.Function; + +@Service +public class TradingClearingRegistryService extends QueueConsumer implements InitializingBean { + private final Logger log = LoggerFactory.getLogger(getClass()); + + private final ValidationHelper validationHelper; + private final UserRoleVerification userRoleVerification; + + private final Imdg tradingClearingRegistryImdg; + private final Imdg depoAccountImdg; + private final Imdg clearingAccountImdg; + private final Imdg companyImdg; + + private final Function tradingClearingRegistryUpdateRequestValidator; + private final Function tradingClearingRegistryNewRequestValidator; + private final Function tradingClearingRegistryBlockRequestValidator; + + public TradingClearingRegistryService(Consumer kafkaQueue, + Producer kafkaProducer, + ImdgProvider imdgProvider, + ValidationHelper validationHelper, + UserRoleVerification userRoleVerification, + @Qualifier("tradingClearingRegistryNewRequest") + Function tradingClearingRegistryNewRequestValidator, + @Qualifier("tradingClearingRegistryUpdateRequest") + Function tradingClearingRegistryUpdateRequestValidator, + @Qualifier("tradingClearingRegistryBlockRequest") + Function tradingClearingRegistryBlockRequestValidator) { + super(kafkaQueue, kafkaProducer); + this.validationHelper = validationHelper; + this.userRoleVerification = userRoleVerification; + this.tradingClearingRegistryNewRequestValidator = tradingClearingRegistryNewRequestValidator; + this.tradingClearingRegistryImdg = imdgProvider.getImdg( + IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class + ); + this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; + this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; + } + + @Override + public void afterPropertiesSet() throws Exception { + init(); + callback(TradingClearingRegistryNewRequest.class) + .setConsumer(this::tradingClearingRegistryNew) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, callbacks::put); + callback(TradingClearingRegistryUpdateRequest.class) + .setConsumer(this::tradingClearingRegistryUpdate) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, callbacks::put); + callback(CommonDeleteRequest.class) + .setConsumer(this::tradingClearingRegistryBlock) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); + } + + public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { + log.debug("TradingClearingRegistryNewRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryNewRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + TradingClearingRegistryNewRequest req = userRequest.getRequestPayload(); + + Long id = tradingClearingRegistryImdg.nextIDSequenceFor(); + TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry(); + tradingClearingRegistry.setId(id); + tradingClearingRegistry.setCompanyId(req.getCompanyId()); + tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); + tradingClearingRegistry.setDepoAaccountId(req.getDepoAccountId()); + tradingClearingRegistry.setStatus(WorkflowStatus.Active.getKey()); + + // todo tradingClearingRegistryType из соответствующего параметра очереди но в запросе он не фигурирует + // пока оставил вычисление аналогичное автоматическому добавлению ТКР + String tradingRegistryType; + if (req.getDepoAccountId() != null) { + DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()); + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + tradingRegistryType = clearingAccount.getClearingAccountType(); + } + tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); + + TradingClearingRegistryPurpose registryPurpose; + if (req.getDepoAccountId() != null) registryPurpose = TradingClearingRegistryPurpose.C; + else registryPurpose = TradingClearingRegistryPurpose.M; + tradingClearingRegistry.setTradingClearingRegistryPurpose(registryPurpose.getKey()); + + Company company = companyImdg.getSingleObjectByID(req.getCompanyId()); + String code = company.getClearingCode() + registryPurpose.getKey() + registryPurpose; + if (registryPurpose == TradingClearingRegistryPurpose.C) code += tradingRegistryType + id; + else code += "AT" + id; + tradingClearingRegistry.setCode(code); + + Instant now = Instant.now(); + tradingClearingRegistry.setCreated(now); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.insert(tradingClearingRegistry); + + log.debug("successfully processed, id {}", id); + return null; + } + + public RequestInfoUpdate tradingClearingRegistryUpdate(BaseRequest userRequest) { + log.debug("TradingClearingRegistryUpdateRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryUpdateRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + TradingClearingRegistryUpdateRequest req = userRequest.getRequestPayload(); + TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); + + if (req.getStatus() != null) tradingClearingRegistry.setStatus(req.getStatus()); + + Instant now = Instant.now(); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.update(tradingClearingRegistry); + + log.debug("successfully processed, id {}", tradingClearingRegistry.getId()); + return null; + } + + public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest userRequest) { + log.debug("TradingClearingRegistryBlockRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryBlockRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + CommonDeleteRequest req = userRequest.getRequestPayload(); + TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); + + tradingClearingRegistry.setStatus(WorkflowStatus.Blocked.getKey()); + + tradingClearingRegistryImdg.update(tradingClearingRegistry); + + log.debug("successfully processed, id {}", tradingClearingRegistry.getId()); + return null; + } +} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java index 0d984ff0f..50c5984ab 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryController.java @@ -10,9 +10,9 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; +import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryUpdateAction; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; @@ -69,7 +69,7 @@ public class TradingClearingRegistryController extends AbstractQueueController { @PathVariable("id") Long id) throws ExecutionException, InterruptedException { CommonDeleteAction deleteAction = new CommonDeleteAction(); deleteAction.setId(id); - return processRequest(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_DELETE, deleteAction); + return processRequest(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, deleteAction); } @ApiOperation(value = "get TradingClearingRegistry by id.") diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java index c45ddd2ed..be9151b6b 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/registry/TradingClearingRegistryControllerTest.java @@ -6,9 +6,9 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; +import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryNewAction; import ru.spcex.clearing.backendapi.controller.request.cud.registry.TradingClearingRegistryUpdateAction; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; import ru.spcex.clearing.backendapi.controller.response.entity.registry.TradingClearingRegistryBackendGetById; import ru.spcex.clearing.backendapi.controller.response.entity.registry.TradingClearingRegistryBackendGetFields; import ru.spcex.clearing.backendapi.domain.actions.IAction; @@ -97,7 +97,7 @@ class TradingClearingRegistryControllerTest extends AbstractControllerTest { deleteAction.setId(id); //ACT and ASSERT checkDeletingByRestApi(REST_URL, id); - checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_DELETE, deleteAction); + checkSendedMessegeFromKafka(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, deleteAction); } /** diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java index 9fa9a6050..91bb3ca6f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/registry/TradingClearingRegistry.java @@ -15,6 +15,7 @@ public class TradingClearingRegistry extends BusinessObject { private Long companyId; private String code; private Long moneyAccountId; + // todo fix typo private Long depoAaccountId; private String tradingClearingRegistryType; private String tradingClearingRegistryLevel; diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryPurpose.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryPurpose.java new file mode 100644 index 000000000..724d5519d --- /dev/null +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/TradingClearingRegistryPurpose.java @@ -0,0 +1,20 @@ +package ru.spcex.platform.enumeration; + +import ru.spcex.platform.utils.enumeration.IEnumKey; + +public enum TradingClearingRegistryPurpose implements IEnumKey { + M("M"), + C("C"), + ; + + private final String key; + + TradingClearingRegistryPurpose(String key) { + this.key = key; + } + + @Override + public String getKey() { + return key; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index 9842d71ef..4a9861ffd 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -83,7 +83,7 @@ public interface Consts { String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update"; - String DESTINATION_TRADING_CLEARING_REGISTRY_DELETE = "trading-clearing-registry-delete"; + String DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK = "trading-clearing-registry-block"; String DESTINATION_SDF08_NEW = "s-df-08-new"; String DESTINATION_SDF02_NEW = "s-df-02-new"; From 246dc403af9e68581c4ae9b7df948ee8d9ceefa7 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 3 May 2023 17:31:27 +0300 Subject: [PATCH 03/60] http://jira.mfd.msk:8088/browse/CLS-277 --- .../sender/KafkaSyncRequestReplySender.java | 78 ------------------- 1 file changed, 78 deletions(-) delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSyncRequestReplySender.java diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSyncRequestReplySender.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSyncRequestReplySender.java deleted file mode 100644 index 2d176d8e6..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSyncRequestReplySender.java +++ /dev/null @@ -1,78 +0,0 @@ -package ru.spcex.clearing.platform.messaging.service.sender; - -import org.apache.kafka.clients.producer.Producer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.apache.kafka.clients.producer.RecordMetadata; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.kafka.requestreply.ReplyingKafkaTemplate; -import ru.spcex.clearing.platform.messaging.domain.ActionType; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.service.RequestInfo; -import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.utils.log.ExceptionUtils; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Future; -import java.util.function.Function; -import java.util.function.Supplier; - -public class KafkaSyncRequestReplySender { - private final Logger log = LoggerFactory.getLogger(getClass()); - private final Map allImdgMaps; - private Producer kafka; - private Supplier idGenerator; - private Function imdgGenerator; - private ReplyingKafkaTemplate kafkaTemplate; - - KafkaSyncRequestReplySender() { - this.allImdgMaps = new ConcurrentHashMap<>(); - } - - public static KafkaSenderBuilderImpl setup() { - return new KafkaSenderBuilderImpl(); - } - - - public Long sendRequestToQueue(String destination, Object requestPayload) { - BaseRequest request = new BaseRequest<>(); - request.setId(idGenerator.get()); - request.setActionType(ActionType.SYSTEM); - request.setRequestPayload(requestPayload); - //сохраняет данные о запросе в хранилище - saveRequestToStorage(destination, request); - Future send = kafka.send(new ProducerRecord<>(destination, request)); - try { - send.get(); - } catch (InterruptedException | ExecutionException e) { - log.error(ExceptionUtils.getStackTrace(e)); - return null; - } - return request.getId(); - } - - private void saveRequestToStorage(String destination, BaseRequest request) { - KafkaImdgInsert imdgInsert = getImdg(destination); - RequestInfo requestInfo = RequestInfo.create(request.getId()); - imdgInsert.insert(requestInfo); - } - - @SuppressWarnings("unchecked") - private KafkaImdgInsert getImdg(String mapName) { - return allImdgMaps.computeIfAbsent(mapName, (mapName1) -> imdgGenerator.apply(mapName)); - } - - void setProducer(Producer kafka) { - this.kafka = kafka; - } - - void setIdGenerator(Supplier idGenerator) { - this.idGenerator = idGenerator; - } - - void setImdgProvider(Function imdgGenerator) { - this.imdgGenerator = imdgGenerator; - } -} From cd8118dad5266f6cda6af9f7c527affeef768443 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 3 May 2023 18:23:17 +0300 Subject: [PATCH 04/60] http://jira.mfd.msk:8088/browse/CLS-277 --- .../src/main/java/ru/spcex/clearing/config/ValidationConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java index 90024d854..f4677be37 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/config/ValidationConfig.java @@ -82,6 +82,7 @@ public class ValidationConfig { return new ValidatorImpl<>(context, STradesValidationRule.SecurityPresent, STradesValidationRule.CompanyPresent, + STradesValidationRule.CounterCompanyPresent, STradesValidationRule.TradingClearingRegistryPresent); }; } From ac3e3252691aa53781fdde1c9a706f5e30face64 Mon Sep 17 00:00:00 2001 From: ialbert Date: Wed, 3 May 2023 18:27:18 +0300 Subject: [PATCH 05/60] http://jira.mfd.msk:8088/browse/CLS-277 cleanup --- .../service/ExecutionDepositComponent.java | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java index 8ad8ec77d..5b0e2bc8e 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java @@ -8,7 +8,6 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.execution.ExecutionDeposit; import ru.clearing.classes.statics.data.misc.Listing; @@ -24,7 +23,6 @@ import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.service.validation.ValidationStored; import ru.spcex.platform.enumeration.*; 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.utils.enumeration.*; import ru.spcex.platform.utils.log.ExceptionUtils; @@ -48,17 +46,11 @@ import java.util.function.Function; public class ExecutionDepositComponent { private final Logger log = LoggerFactory.getLogger(getClass()); - private final ImdgProvider imdgProvider; - private Imdg sTradeImdg; - private Imdg securityImdg; - private Imdg executionDepositImdg; - private Imdg companyImdg; - private Imdg accountImdg; - private Imdg listingImdg; - - private ImdgId idGenerator; - Producer kafka; + private final Imdg sTradeImdg; + private final Imdg executionDepositImdg; + private final Imdg listingImdg; + //fixme ждать ТЗ Long tradeNum; Instant tradingDay; private final IMessageResolver msgResolver = new SimpleMessageResolver(); @@ -70,16 +62,9 @@ public class ExecutionDepositComponent { public ExecutionDepositComponent(ImdgProvider imdgProvider, Producer kafka, @Qualifier("sTradesValidator") Function stradesValidator, @Qualifier("kafkaSenderWithoutRequestInfo") KafkaSender kafkaSender) { - this.imdgProvider = imdgProvider; this.sTradeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class); - this.securityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class); this.executionDepositImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class); - this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); - this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class); - - this.idGenerator = imdgProvider.getImdgIdGenerator(); - this.kafka = kafka; this.stradesValidator = stradesValidator; this.kafkaSender = kafkaSender; @@ -152,7 +137,6 @@ public class ExecutionDepositComponent { } } - Long newMaxTradeNum = sTrades.stream().mapToLong(STrades::getTradeNum).max().orElseGet(() -> tradeNum); log.info("Process completed. Next tradeNum is {}", newMaxTradeNum); } From be93eb1ded5dae914155c77dea2ebb3c59872c2f Mon Sep 17 00:00:00 2001 From: ialbert Date: Thu, 4 May 2023 12:37:47 +0300 Subject: [PATCH 06/60] http://jira.mfd.msk:8088/browse/CLS-278 --- .../service/ExecutionDepositComponent.java | 2 + .../service/ExecutionFondComponent.java | 218 ++++++++++++++++++ .../ru/spcex/platform/enumeration/Market.java | 2 +- .../cud/registry/DealRegisterNewRequest.java | 20 +- .../domain/cud/registry/ExecutionType.java | 5 + .../json/deserialize/EnumDeserializer.java | 27 +++ .../ExecutionTypeDeserializer.java | 11 + 7 files changed, 280 insertions(+), 5 deletions(-) create mode 100644 clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionFondComponent.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ExecutionType.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/json/deserialize/EnumDeserializer.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/json/deserialize/enumeration/ExecutionTypeDeserializer.java diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java index 5b0e2bc8e..81cddeb36 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionDepositComponent.java @@ -19,6 +19,7 @@ import ru.spcex.clearing.error.ClearingException; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.registry.DealRegisterNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.ExecutionType; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.service.validation.ValidationStored; import ru.spcex.platform.enumeration.*; @@ -151,6 +152,7 @@ public class ExecutionDepositComponent { DealRegisterNewRequest requestPayload = new DealRegisterNewRequest(); requestPayload.setExecutionId(forED.getId()); requestPayload.setExchangeExecutionId(forED.getExchangeExecutionId()); + requestPayload.setExecutionType(ExecutionType.deposit); Long generatedRequestId = kafkaSender.sendRequestToQueue(destination, requestPayload); if (generatedRequestId == null) { throw new RuntimeException("failed to send request to " + destination); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionFondComponent.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionFondComponent.java new file mode 100644 index 000000000..b6abd2ca6 --- /dev/null +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/ExecutionFondComponent.java @@ -0,0 +1,218 @@ +package ru.spcex.clearing.service; + +import org.apache.kafka.clients.producer.Producer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.account.ClientCode; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.execution.ExecutionFond; +import ru.clearing.classes.statics.data.misc.Listing; +import ru.clearing.classes.statics.data.misc.STrades; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.classes.statics.data.security.Security; +import ru.spcex.clearing.error.ClearingError; +import ru.spcex.clearing.error.ClearingException; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.DealRegisterNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.ExecutionType; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.service.validation.ValidationStored; +import ru.spcex.platform.enumeration.*; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.enumeration.*; +import ru.spcex.platform.utils.log.ExceptionUtils; +import ru.spcex.platform.utils.time.TimeUtil; +import ru.spcex.platform.utils.validation.IValidator; + +import java.time.Instant; +import java.time.LocalDate; +import java.util.Collection; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; + +@Component +@EnableScheduling +public class ExecutionFondComponent { + private final Logger log = LoggerFactory.getLogger(getClass()); + + private final Imdg sTradeImdg; + private final Imdg executionFondImdg; + private final Imdg listingImdg; + private final Imdg clientCodeImdg; + + //fixme ждать ТЗ + Long tradeNum; + Instant tradingDay; + private final IMessageResolver msgResolver = new SimpleMessageResolver(); + private final Function stradesValidator; + private final KafkaSender kafkaSender; + + + @Autowired + public ExecutionFondComponent(ImdgProvider imdgProvider, Producer kafka, + @Qualifier("sTradesValidator") Function stradesValidator, + @Qualifier("kafkaSenderWithoutRequestInfo") KafkaSender kafkaSender) { + this.sTradeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class); + this.executionFondImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class); + this.listingImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Listing, Listing.class); + this.clientCodeImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClientCode, ClientCode.class); + this.stradesValidator = stradesValidator; + this.kafkaSender = kafkaSender; + + resetTradingDay(); + } + + /** + * Сбрасывать каждый день в 01:00:01 "0 1 0 1 * ?" + */ + @Scheduled(cron = "0 1 0 1 * ?") + public void resetTradingDay() { + log.trace("Recheck today trading day for search STrade. Current state: tradeNum={}, tradeDat={}", tradeNum, tradingDay); + Instant today = TimeUtil.localDateToInstant(LocalDate.now()); + if (tradingDay == null || !tradingDay.equals(today)) { + tradeNum = -1L; + tradingDay = today; + } + log.info("Reset trading day for search STrade: tradeNum={}, tradeDat={}", tradeNum, tradingDay); + } + + public void processNewTS() { + log.debug("Start check new S_TRADE after {}", tradingDay); + //выбираем STrades на сегодня с правильным section + Collection sTrades = sTradeImdg.getCollectionObjectsByFieldValues(Map.of( + "tradeDate", LocalDate.now(), + "section", Section.FOND.getKey() + )); + log.info("Found {} s_trade for today", sTrades.size()); + + if (sTrades.isEmpty()) { + logError(ClearingError.NewDealsNotFound); + return; + } + + //убираем уже добавленные в ExecutionDeposit + sTrades.removeIf(sTrd -> { + Side sTrdSide = IEnumKey.getEnumByKey(Side.class, sTrd.getOperation()); + if (sTrdSide == null || !(sTrdSide.equals(Side.BUY) || sTrdSide.equals(Side.SELL))) { + log.warn("cannot parse strade.tradeNum={} strade.operation {}", sTrd.getTradeNum(), sTrd.getOperation()); + return true; + } + MoneyFlowSide excDepSide = sTrdSide.equals(Side.BUY) ? MoneyFlowSide.BUY : MoneyFlowSide.SELL; + return executionFondImdg.getSingleObjectByFieldValues( + Map.of("tradingDate", sTrd.getTradeDate(), + "exchangeExecutionId", sTrd.getTradeNum(), + "side", excDepSide.getKey())) != null; + }); + log.info("{} strades left after already-added filtering", sTrades.size()); + + for (STrades sTrd : sTrades) { + log.trace("S_TRADE[{}] new", sTrd.getId()); + + //проверки + IValidator validator = stradesValidator.apply(sTrd); + Optional error = validator.tillFirstError(); + if (error.isPresent()) { + logError(sTrd.getId(), error.get()); + continue; + } + ExecutionFond newED; + try { + newED = createExecutionFond(sTrd, validator); + executionFondImdg.insert(newED); + sendNotification(newED); + log.debug("New executionDeposit.id={} was created.", newED.getId()); + } catch (ClearingException ce) { + auditMessage(ce); + } catch (Exception e) { + log.error("When create new ExecutionDeposit by STrade[{}] error: {}", sTrd.getId(), ExceptionUtils.getStackTrace(e)); + } + } + + Long newMaxTradeNum = sTrades.stream().mapToLong(STrades::getTradeNum).max().orElseGet(() -> tradeNum); + log.info("Process completed. Next tradeNum is {}", newMaxTradeNum); + } + + + protected void auditMessage(ClearingException ce) { + log.error("AUDIT error code {}: {}", ce.getEnumMsg(), ce.getMessage()); + } + + protected void sendNotification(ExecutionFond forEF) throws ClearingException { + final String destination = Consts.REGISTRY_DEAL_REGISTER_NEW; + DealRegisterNewRequest requestPayload = new DealRegisterNewRequest(); + requestPayload.setExecutionId(forEF.getId()); + requestPayload.setExchangeExecutionId(forEF.getExchangeExecutionId()); + requestPayload.setExecutionType(ExecutionType.fond); + Long generatedRequestId = kafkaSender.sendRequestToQueue(destination, requestPayload); + if (generatedRequestId == null) { + throw new RuntimeException("failed to send request to " + destination); + } + } + + protected ExecutionFond createExecutionFond(STrades sTrades, + IValidator validator) throws ClearingException { + Security security = validator.getStored(ValidationStored.STradesSecurity); + Company company = validator.getStored(ValidationStored.STradesCompany); + Company counterCompany = validator.getStored(ValidationStored.STradesCounterCompany); + TradingClearingRegistry rgstr = validator.getStored(ValidationStored.STradesTradingClearingRegistry); + ClientCode clientCode = clientCodeImdg.getSingleObjectByFieldValues(Map.of("code", sTrades.getClientCode())); + + ExecutionFond eFond = new ExecutionFond(); + final Instant now = Instant.now(); + eFond.setCreated(now); + eFond.setTradingDate(sTrades.getTradeDate()); + eFond.setClearingDate(TimeUtil.toLocalDate(now)); + eFond.setExchangeExecutionId(sTrades.getTradeNum()); + eFond.setExchangeExecutionTime(sTrades.getTradeDateTime()); + eFond.setTradingClearingRegistryId(rgstr.getId()); + eFond.setMarket(Market.fond.getKey()); + eFond.setPrice(sTrades.getPrice()); + eFond.setLots(sTrades.getQty()); + eFond.setQuantity(sTrades.getQtyPcs()); + { + Side sTradeSide = IEnumKey.getEnumByKey(Side.class, sTrades.getOperation()); + if (sTradeSide != null) { + switch (sTradeSide) { + case BUY -> eFond.setSide(MoneyFlowSide.BUY.getKey()); + case SELL -> eFond.setSide(MoneyFlowSide.SELL.getKey()); + } + } + } + //fixme символьный код по справочнику currencyCode, соответствующий значению из sTrades.settleCurrency + eFond.setSettlementCurrency(CurrencyCode.RUB.getKey()); + //fixme micro vs milli + eFond.setExchangeExecutionMicroseconds(Instant.ofEpochMilli(sTrades.getTradeTimeMs())); + eFond.setCompanyId(company.getId()); + eFond.setDuration(sTrades.getRepoTerm()); + eFond.setComment(sTrades.getBrokerRef()); + if (clientCode != null) { + eFond.setClientCodeId(clientCode.getId()); + } + eFond.setSettlementDate(sTrades.getSettleDate()); + eFond.setSettlementCode(sTrades.getSettleCode()); + eFond.setSecurityFullName(security.getFullName()); + eFond.setSecuritySymbol(security.getSecuritySymbol()); + eFond.setSecurityId(security.getId()); + eFond.setInterestAmount(sTrades.getAccruedint()); + eFond.setExchangeOrderId(sTrades.getOrderNum()); + eFond.setSettlementAmount(sTrades.getValue()); + eFond.setCounterPartyId(counterCompany.getId()); + return eFond; + } + + private void logError(IEnumId subject, Object... args) { + log.warn("{}", msgResolver.resolve(new EnumMessage(subject, args))); + } + + private void logError(Long sTradeId, EnumMessage msg) { + log.warn("sTrade id={} {}", sTradeId, msgResolver.resolve(msg)); + } +} diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Market.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Market.java index 8d20c67ef..e8f048253 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Market.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Market.java @@ -3,7 +3,7 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; public enum Market implements IEnumKey { - mkrs("MKRS"); + mkrs("MKRS"), fond("FOND"); private final String key; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/DealRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/DealRegisterNewRequest.java index 0e37c8711..0954ca33f 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/DealRegisterNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/DealRegisterNewRequest.java @@ -2,10 +2,10 @@ package ru.spcex.clearing.platform.messaging.domain.cud.registry; import com.fasterxml.jackson.annotation.JsonProperty; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import ru.spcex.clearing.platform.messaging.domain.json.deserialize.enumeration.ExecutionTypeDeserializer; +import ru.spcex.clearing.platform.messaging.domain.json.serialize.EnumSerializer; public class DealRegisterNewRequest { @@ -15,6 +15,11 @@ public class DealRegisterNewRequest { @JsonProperty public Long exchangeExecutionId; + @JsonSerialize(using = EnumSerializer.class) + @JsonDeserialize(using = ExecutionTypeDeserializer.class) + @JsonProperty + public ExecutionType executionType; + public Long getExecutionId() { return executionId; @@ -32,4 +37,11 @@ public class DealRegisterNewRequest { this.exchangeExecutionId = exchangeExecutionId; } + public ExecutionType getExecutionType() { + return executionType; + } + + public void setExecutionType(ExecutionType executionType) { + this.executionType = executionType; + } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ExecutionType.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ExecutionType.java new file mode 100644 index 000000000..aa6206e1e --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ExecutionType.java @@ -0,0 +1,5 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.registry; + +public enum ExecutionType { + deposit, fond; +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/json/deserialize/EnumDeserializer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/json/deserialize/EnumDeserializer.java new file mode 100644 index 000000000..4be4955f2 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/json/deserialize/EnumDeserializer.java @@ -0,0 +1,27 @@ +package ru.spcex.clearing.platform.messaging.domain.json.deserialize; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; + +public abstract class EnumDeserializer> extends JsonDeserializer { + + @Override + public T deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String v = p.getText(); + if (v == null || v.length() == 0) { + return null; + } + for (T enumConstant : getEnumClass().getEnumConstants()) { + if (enumConstant.name().equalsIgnoreCase(v)) { + return enumConstant; + } + } + throw new JsonParseException(p, "couldn't parse " + getEnumClass().getSimpleName() + " value '" + v + "'"); + } + + protected abstract Class getEnumClass(); +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/json/deserialize/enumeration/ExecutionTypeDeserializer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/json/deserialize/enumeration/ExecutionTypeDeserializer.java new file mode 100644 index 000000000..56c50fae5 --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/json/deserialize/enumeration/ExecutionTypeDeserializer.java @@ -0,0 +1,11 @@ +package ru.spcex.clearing.platform.messaging.domain.json.deserialize.enumeration; + +import ru.spcex.clearing.platform.messaging.domain.cud.registry.ExecutionType; +import ru.spcex.clearing.platform.messaging.domain.json.deserialize.EnumDeserializer; + +public class ExecutionTypeDeserializer extends EnumDeserializer { + @Override + protected Class getEnumClass() { + return ExecutionType.class; + } +} From 2a6d4e38b9890be91c2f16b8ac77fd9303af93a3 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Thu, 4 May 2023 13:18:41 +0300 Subject: [PATCH 07/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-262?= =?UTF-8?q?=20=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D0=BB=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D0=B9=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clearing-parent/lim-exporter/pom.xml | 109 ++++++++++++++++++ .../lim/exporter/LimExportApplication.java | 18 +++ .../settings/ExportLimServiceSettings.java | 50 ++++++++ .../lim/exporter/config/settings/Store.java | 14 +++ .../src/main/resources/application.properties | 18 +++ .../src/main/resources/logback.xml | 37 ++++++ clearing-parent/pom.xml | 1 + 7 files changed, 247 insertions(+) create mode 100644 clearing-parent/lim-exporter/pom.xml create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/LimExportApplication.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/Store.java create mode 100644 clearing-parent/lim-exporter/src/main/resources/application.properties create mode 100644 clearing-parent/lim-exporter/src/main/resources/logback.xml diff --git a/clearing-parent/lim-exporter/pom.xml b/clearing-parent/lim-exporter/pom.xml new file mode 100644 index 000000000..879ff7543 --- /dev/null +++ b/clearing-parent/lim-exporter/pom.xml @@ -0,0 +1,109 @@ + + 4.0.0 + lim-exporter + Lim exporter + SPCEX-1.0.0.0 + jar + + + ru.spcex.clearing + clearing-parent + SPCEX-1.0.0.0 + + + + 17 + 17 + UTF-8 + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.integration + spring-integration-sftp + + + + + ru.spcex.clearing + classes + SPCEX-1.0.0.0 + compile + + + ru.spcex.platform + platform-messaging + + + ru.spcex.platform + platform-imdg-api-hazelcast-impl + + + ru.spcex.platform + platform-enum + + + + + org.springframework.boot + spring-boot-starter-test + test + + + ru.spcex.clearing + test-clearing + test + + + + + + + src/main/resources + + application.properties + + false + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + ${project.artifactId} + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.21.0 + + + org.junit.platform + junit-platform-surefire-provider + 1.2.0-M1 + + + org.junit.jupiter + junit-jupiter-engine + 5.2.0-M1 + + + + + + + diff --git a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/LimExportApplication.java b/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/LimExportApplication.java new file mode 100644 index 000000000..9a6c8f8a2 --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/LimExportApplication.java @@ -0,0 +1,18 @@ +package ru.clearing.lim.exporter; + +import org.slf4j.LoggerFactory; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; + +@SpringBootApplication +public class LimExportApplication { + public static void main(String[] args) { + try { + SpringApplicationBuilder builder = new SpringApplicationBuilder(LimExportApplication.class); + builder.run(args); + } catch (Throwable e) { + LoggerFactory.getLogger(LimExportApplication.class).error("DBF-Loader start failed: {} -> {}", e.getClass().getSimpleName(), e.getMessage()); + System.exit(-1); + } + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java b/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java new file mode 100644 index 000000000..ff437e161 --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java @@ -0,0 +1,50 @@ +package ru.clearing.lim.exporter.config.settings; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.PropertySource; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.platform.messaging.config.element.KafkaConsumerSettings; +import ru.spcex.clearing.platform.messaging.config.element.KafkaProducerSettings; +import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; + +@Component +@PropertySource("file:${spring.config.location}/application.properties") +@ConfigurationProperties("export-dbf-service") +public class ExportLimServiceSettings { + private HazelcastClientParams hazelcast; + private KafkaConsumerSettings kafkaConsumer; + private KafkaProducerSettings kafkaProducer; + private Store store; + + public HazelcastClientParams getHazelcast() { + return hazelcast; + } + + public void setHazelcast(HazelcastClientParams hazelcast) { + this.hazelcast = hazelcast; + } + + public KafkaConsumerSettings getKafkaConsumer() { + return kafkaConsumer; + } + + public void setKafkaConsumer(KafkaConsumerSettings kafkaConsumer) { + this.kafkaConsumer = kafkaConsumer; + } + + public Store getStore() { + return store; + } + + public void setStore(Store store) { + this.store = store; + } + + public KafkaProducerSettings getKafkaProducer() { + return kafkaProducer; + } + + public void setKafkaProducer(KafkaProducerSettings kafkaProducer) { + this.kafkaProducer = kafkaProducer; + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/Store.java b/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/Store.java new file mode 100644 index 000000000..4adebe4d9 --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/Store.java @@ -0,0 +1,14 @@ +package ru.clearing.lim.exporter.config.settings; + +public class Store { + + private String outDir; + + public String getOutDir() { + return outDir; + } + + public void setOutDir(String outDir) { + this.outDir = outDir; + } +} diff --git a/clearing-parent/lim-exporter/src/main/resources/application.properties b/clearing-parent/lim-exporter/src/main/resources/application.properties new file mode 100644 index 000000000..471634fbb --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/resources/application.properties @@ -0,0 +1,18 @@ +spring.main.web-application-type=none + +export-lim-service.hazelcast.cluster-members=10.200.200.181:5701 +export-lim-service.hazelcast.login=dev +export-lim-service.hazelcast.password=dev-pass + +export-lim-service.common.encoding=cp866 +export-lim-service.common.threads-count=10 + +export-lim-service.store.out-dir=d:\\trash\\clearing\\exporter\\out\\ + +export-lim-service.kafka-consumer.bootstrap-servers=localhost:9092 +export-lim-service.kafka-consumer.group-id=dev-group-balance-service +export-lim-service.kafka-consumer.enable-auto-commit=false +export-lim-service.kafka-consumer.session-timeout-ms=30000 +export-lim-service.kafka-consumer.auto-offset-reset=latest +export-lim-service.kafka-consumer.linger-ms=1 +export-lim-service.kafka-consumer.buffer-memory=33554432 diff --git a/clearing-parent/lim-exporter/src/main/resources/logback.xml b/clearing-parent/lim-exporter/src/main/resources/logback.xml new file mode 100644 index 000000000..d1a27ddbf --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/resources/logback.xml @@ -0,0 +1,37 @@ + + + + + UTF-8 + %date{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + ./logs/lim-exporter.log + + UTF-8 + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + ../logs/lim-exporter.%i.log + + 1 + 10 + + + 500MB + + + + + + + + + + + + + \ No newline at end of file diff --git a/clearing-parent/pom.xml b/clearing-parent/pom.xml index 9ff3b6aab..245ed2fa0 100644 --- a/clearing-parent/pom.xml +++ b/clearing-parent/pom.xml @@ -36,6 +36,7 @@ registry-service test-clearing cleaning-builders + lim-exporter From 71203b08e78906e58ce7d55b7758e19c62da4295 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 09:51:10 +0300 Subject: [PATCH 08/60] http://jira.mfd.msk:8088/browse/CLS-271 fix statuses --- .../validation/AccountValidationConfig.java | 27 ++++--- .../BankAccountValidationConfig.java | 3 +- .../ClearingAccountValidationConfig.java | 6 +- .../DepoAccountValidationConfig.java | 4 +- ...adingClearingRegistryValidationConfig.java | 73 ++++++++++++++++++- .../config/validation/ValidationConfig.java | 4 +- .../account/service/AccountService.java | 4 +- .../account/service/BankAccountService.java | 6 +- .../service/ClearingAccountService.java | 12 +-- .../account/service/DepoAccountService.java | 4 +- .../service/InformationAccountService.java | 4 +- .../TradingClearingRegistryService.java | 13 ++++ .../account/service/AccountServiceTest.java | 21 ++++-- .../service/ClearingAccountServiceTest.java | 6 +- .../service/DepoAccountServiceTest.java | 2 +- .../InformationAccountServiceTest.java | 2 +- .../platform/messaging/domain/Consts.java | 1 + 17 files changed, 144 insertions(+), 48 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java index cb654bc0e..8f9cd76eb 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java @@ -5,18 +5,19 @@ import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.AccountTypeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountUpdateRequest; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; -import ru.spcex.clearing.validation.common.rules.EnumPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -45,6 +46,7 @@ public class AccountValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); addImdg.accept(IMDGDistributedNames.Map_AccountTypeDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", @@ -69,12 +71,15 @@ public class AccountValidationConfig { if (accounts.isEmpty()) return null; return AccountError.AccountAlreadyExist; }), - FieldRequiredRule.instance("status", + DictionaryPresentRule.instance("status", CorrespondentAccountNewRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, false, statusValue -> { - if (statusValue == null || AccountStatus.ACTIVE.equalsByKey(statusValue)) return null; + if (ServiceStatus.Active.equalsByKey(statusValue.getCode())) return null; return AccountError.WrongFieldValue; }), DictionaryPresentRule.instance("accountType", @@ -127,16 +132,16 @@ public class AccountValidationConfig { error = Objects.equals(company.getId(), correspondentAccountUpdateRequest.getCompanyId()) ? error : AccountError.WrongFieldValue; return error; }), - EnumPresentRule.instance("status", + DictionaryPresentRule.instance("status", CorrespondentAccountUpdateRequest::getStatus, - AccountStatus.values(), - false, - AccountError.WrongFieldValue, - AccountError.RequiredFieldEmpty), + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue), DictionaryPresentRule.instance("accountType", CorrespondentAccountUpdateRequest::getAccountType, - IMDGDistributedNames.Map_AccountTypeDictionary, - AccountTypeDictionary.class, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, accountType -> { @@ -164,7 +169,7 @@ public class AccountValidationConfig { AccountError.RequiredFieldEmpty, AccountError.AccountNotFound, account -> { - if (AccountStatus.ACTIVE.equalsByKey(account.getStatus())) return null; + if (WorkflowStatus.Active.equalsByKey(account.getStatus())) return null; return AccountError.AccountNotActive; }) ); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java index 1c2ca6ab6..c4c350bb4 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java @@ -17,6 +17,7 @@ import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -62,7 +63,7 @@ public class BankAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Bank.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java index cb3c2368e..9c9cb0ba6 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ClearingAccountValidationConfig.java @@ -13,8 +13,8 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -60,7 +60,7 @@ public class ClearingAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, @@ -102,7 +102,7 @@ public class ClearingAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java index 10277912b..c3bbca5ff 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/DepoAccountValidationConfig.java @@ -10,8 +10,8 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewReq import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -56,7 +56,7 @@ public class DepoAccountValidationConfig { ); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", accountValue); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java index 4cfd24e05..27e0c6581 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -5,6 +5,7 @@ import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -15,6 +16,7 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.validation.ImdgValidationContext; @@ -27,6 +29,71 @@ import java.util.function.Function; @Configuration public class TradingClearingRegistryValidationConfig { + @Bean("tradingClearingRegistryAutoNewRequest") + public Function tradingClearingRegistryAutoNewRequestValidator( + Map> imdgForValidation + ) { + return tradingClearingRegistryAutoNewRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(tradingClearingRegistryAutoNewRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + return new ValidatorImpl<>(context, + IdPresentRule.instance("companyId", + TradingClearingRegistryNewRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + AccountError.RequiredFieldEmpty, + AccountError.CompanyNotFound), + FieldRequiredRule.instance("moneyAccountId", + TradingClearingRegistryNewRequest::getMoneyAccountId, + AccountError.RequiredFieldEmpty, + moneyAccountId -> { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByID(moneyAccountId); + if (account == null) return AccountError.AccountNotFound; + return null; + }), + FieldRequiredRule.instance("depoAccountId", + TradingClearingRegistryNewRequest::getDepoAccountId, + AccountError.RequiredFieldEmpty, + false, + depoAccountId -> { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Account account = accountImdg.getSingleObjectByID(depoAccountId); + if (account == null) return AccountError.AccountNotFound; + return null; + }), + DictionaryPresentRule.instance("status", + TradingClearingRegistryNewRequest::getStatus, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, + AccountError.RequiredFieldEmpty, + AccountError.WrongFieldValue, + false, + statusValue -> { + Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); + Long moneyAccountId = tradingClearingRegistryAutoNewRequest.getMoneyAccountId(); + Long depoAccountId = tradingClearingRegistryAutoNewRequest.getDepoAccountId(); + Account moneyAccount = accountImdg.getSingleObjectByID(moneyAccountId); + Account depoAccount = depoAccountId != null ? accountImdg.getSingleObjectByID(depoAccountId) : null; + if ( + (depoAccount != null && (ServiceStatus.Active.equalsByKey(depoAccount.getStatus()) || ServiceStatus.Reopened.equalsByKey(depoAccount.getStatus()))) && + (ServiceStatus.Active.equalsByKey(moneyAccount.getStatus()) || ServiceStatus.Reopened.equalsByKey(moneyAccount.getStatus())) + ) { + + } + + String statusCode = statusValue.getCode(); + if (WorkflowStatus.Active.equalsByKey(statusCode)) return null; + return AccountError.WrongFieldValue; + }) + ); + }; + } + @Bean("tradingClearingRegistryNewRequest") public Function tradingClearingRegistryNewRequestValidator( Map> imdgForValidation @@ -66,14 +133,14 @@ public class TradingClearingRegistryValidationConfig { }), DictionaryPresentRule.instance("status", TradingClearingRegistryNewRequest::getStatus, - IMDGDistributedNames.Map_WorkflowStatusDictionary, - WorkflowStatusDictionary.class, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, false, statusValue -> { String statusCode = statusValue.getCode(); - if (WorkflowStatus.Active.equalsByKey(statusCode)) return null; + if (ServiceStatus.Active.equalsByKey(statusCode)) return null; return AccountError.WrongFieldValue; }) ); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java index 43cbba292..fd41493df 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java @@ -12,7 +12,7 @@ import ru.clearing.classes.statics.data.company.Company; import ru.clearing.platform.dictionary.AccountTypeDictionary; import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary; import ru.clearing.platform.dictionary.CurrencyCodeDictionary; -import ru.clearing.platform.dictionary.WorkflowStatusDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.classes.base.SpcexObjectBase; @@ -41,7 +41,7 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_BankAccount, BankAccount.class); addImdg.accept(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); - addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class); return imdg; } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java index 81df09673..fdc36e84d 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java @@ -28,8 +28,8 @@ import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.ClearingCategory; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; @@ -173,7 +173,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { CommonDeleteRequest request = userRequest.getRequestPayload(); Account account = accountMap.getSingleObjectByID(request.getId()); - account.setStatus(AccountStatus.BLOCKED.getKey()); + account.setStatus(ServiceStatus.Blocked.getKey()); account.setUpdated(Instant.now()); accountMap.update(account); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java index 1940cc5a9..de0fb0be8 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java @@ -20,8 +20,8 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -101,7 +101,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Bank.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -207,7 +207,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId()); Account account = accountMap.getSingleObjectByID(bankAccount.getAccountId()); - account.setStatus(AccountStatus.BLOCKED.getKey()); + account.setStatus(ServiceStatus.Blocked.getKey()); account.setUpdated(Instant.now()); ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java index 03f148353..a4ceddaa6 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java @@ -20,8 +20,8 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -92,7 +92,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Clrn.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); @@ -137,7 +137,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin ClearingAccountUpdateRequest req = userRequest.getRequestPayload(); ImdgPredicateBuilder pb = accountImdg.predicateBuilder(); ImdgPredicate accountValuePredicate = pb.equals("account", req.getAccount()); - ImdgPredicate accountStatusPredicate = pb.equals("status", AccountStatus.ACTIVE.getKey()); + ImdgPredicate accountStatusPredicate = pb.equals("status", ServiceStatus.Active.getKey()); ImdgPredicate accountTypePredicate = pb.equals("accountType", AccountType.Clrn.getKey()); ImdgPredicate finalPredicate = pb.and(accountValuePredicate, accountStatusPredicate, @@ -156,9 +156,9 @@ public class ClearingAccountService extends QueueConsumer implements Initializin } Integer statusValue = req.getStatus(); - if (statusValue == 0) account.setStatus(AccountStatus.BLOCKED.getKey()); - else if (statusValue == 1) account.setStatus(AccountStatus.ACTIVE.getKey()); - else if (statusValue == 2) account.setStatus(AccountStatus.CLOSE.getKey()); + if (statusValue == 0) account.setStatus(ServiceStatus.Blocked.getKey()); + else if (statusValue == 1) account.setStatus(ServiceStatus.Active.getKey()); + else if (statusValue == 2) account.setStatus(ServiceStatus.Closed.getKey()); account.setUpdated(Instant.now()); accountImdg.update(account); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java index 625e909f5..719820108 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java @@ -16,8 +16,8 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewReq import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -74,7 +74,7 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea Account account = new Account(); account.setAccount(req.getAccount()); account.setAccountType(AccountType.Depo.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(req.getCompanyId()); account.setCreated(now); account.setUpdated(now); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java index 2c74b2086..5bb94636b 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java @@ -19,8 +19,8 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.AccountStatus; import ru.spcex.platform.enumeration.AccountType; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; @@ -105,7 +105,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali Account account = new Account(); account.setAccount(accountValue); account.setAccountType(AccountType.Info.getKey()); - account.setStatus(AccountStatus.ACTIVE.getKey()); + account.setStatus(ServiceStatus.Active.getKey()); account.setCompanyId(userRequest.getRequestPayload().getCompanyId()); account.setCreated(now); account.setUpdated(now); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index 43a903066..cec060ea0 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -74,6 +74,9 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini @Override public void afterPropertiesSet() throws Exception { init(); + callback(TradingClearingRegistryNewRequest.class) + .setConsumer(this::tradingClearingRegistryAutoNew) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, callbacks::put); callback(TradingClearingRegistryNewRequest.class) .setConsumer(this::tradingClearingRegistryNew) .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, callbacks::put); @@ -85,6 +88,16 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); } + public RequestInfoUpdate tradingClearingRegistryAutoNew(BaseRequest userRequest) { + log.debug("TradingClearingRegistryAutoNewRequest received"); + + + + Long id = null; + log.debug("successfully processed, id {}", id); + return null; + } + public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { log.debug("TradingClearingRegistryNewRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java index b2d53c3dc..e0e7383b0 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/AccountServiceTest.java @@ -19,6 +19,7 @@ import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.platform.dictionary.AccountTypeDictionary; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.config.BeanConfiguration; import ru.spcex.clearing.account.config.HazelcastServiceTestConfiguration; import ru.spcex.clearing.account.config.KafkaConfigTest; @@ -87,6 +88,7 @@ class AccountServiceTest { private Imdg accountTypeDictionaryImdg; private Imdg clearingMemberCategoryImdg; private Imdg relationImdg; + private Imdg serviceStatusDictionaryImdg; @PostConstruct private void init() { @@ -106,6 +108,13 @@ class AccountServiceTest { relationImdg = hazelcastServiceTest.getImdg( IMDGDistributedNames.Map_Relation, Relation.class ); + serviceStatusDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class + ); + ServiceStatusDictionary serviceStatusDictionary = new ServiceStatusDictionary(); + serviceStatusDictionary.setCode(ServiceStatus.Active.getKey()); + serviceStatusDictionary.setName(ServiceStatus.Active.getKey()); + serviceStatusDictionaryImdg.insert(serviceStatusDictionary); Company company = new Company(); company.setId(companyId); @@ -137,13 +146,13 @@ class AccountServiceTest { correspondentAccountNewRequest.setAccount(uniqueAccount); correspondentAccountNewRequest.setAccountType(AccountType.Corr.getKey()); correspondentAccountNewRequest.setCompanyId(companyId); - correspondentAccountNewRequest.setStatus(AccountStatus.ACTIVE.getKey()); + correspondentAccountNewRequest.setStatus(ServiceStatus.Active.getKey()); Account predictableAccount = new Account(); predictableAccount.setAccount(uniqueAccount); predictableAccount.setAccountType(AccountType.Corr.getKey()); predictableAccount.setCompanyId(companyId); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); String jsonString = getJsonStringForNew(correspondentAccountNewRequest, 0L); @@ -169,14 +178,14 @@ class AccountServiceTest { Account existAccount = new Account(); existAccount.setAccount(account); existAccount.setAccountType(AccountType.Corr.getKey()); - existAccount.setStatus(AccountStatus.CLOSE.getKey()); + existAccount.setStatus(ServiceStatus.Closed.getKey()); existAccount.setCompanyId(companyId); Long accountId = accountImdg.insert(existAccount); CorrespondentAccountUpdateRequest correspondentAccountUpdateRequest = new CorrespondentAccountUpdateRequest(); correspondentAccountUpdateRequest.setAccount(account); correspondentAccountUpdateRequest.setAccountType(AccountType.Corr.getKey()); - correspondentAccountUpdateRequest.setStatus(AccountStatus.ACTIVE.getKey()); + correspondentAccountUpdateRequest.setStatus(ServiceStatus.Active.getKey()); correspondentAccountUpdateRequest.setCompanyId(companyId); correspondentAccountUpdateRequest.setId(accountId); @@ -204,7 +213,7 @@ class AccountServiceTest { Account existAccount = new Account(); existAccount.setAccount(account); existAccount.setAccountType(AccountType.Corr.getKey()); - existAccount.setStatus(AccountStatus.ACTIVE.getKey()); + existAccount.setStatus(ServiceStatus.Active.getKey()); existAccount.setCompanyId(companyId); Long accountId = accountImdg.insert(existAccount); @@ -224,7 +233,7 @@ class AccountServiceTest { waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); Account resultBlock = accountImdg.getSingleObjectByID(accountId); - existAccount.setStatus(AccountStatus.BLOCKED.getKey()); + existAccount.setStatus(ServiceStatus.Blocked.getKey()); existAccount.setUpdated(resultBlock.getUpdated()); ACCOUNT_MATCHER.assertMatch(existAccount, resultBlock); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java index da67ac384..45509b2c8 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/ClearingAccountServiceTest.java @@ -156,7 +156,7 @@ class ClearingAccountServiceTest { Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); predictableAccount.setAccountType(AccountType.Clrn.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); @@ -182,7 +182,7 @@ class ClearingAccountServiceTest { void clearingAccountUpdate() { Account existAccount = new Account(); existAccount.setAccount(ACCOUNT_VALUE); - existAccount.setStatus(AccountStatus.ACTIVE.getKey()); + existAccount.setStatus(ServiceStatus.Active.getKey()); existAccount.setAccountType(AccountType.Clrn.getKey()); Long accountId = accountImdg.insert(existAccount); @@ -193,7 +193,7 @@ class ClearingAccountServiceTest { Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); - predictableAccount.setStatus(AccountStatus.BLOCKED.getKey()); + predictableAccount.setStatus(ServiceStatus.Blocked.getKey()); predictableAccount.setAccountType(AccountType.Clrn.getKey()); clearingAccountImdg.insert(existClearingAccount); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java index 0d6ea0bcb..79dd222f8 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/DepoAccountServiceTest.java @@ -155,7 +155,7 @@ class DepoAccountServiceTest { Account predictableAccount = new Account(); predictableAccount.setAccount(ACCOUNT_VALUE); predictableAccount.setAccountType(AccountType.Depo.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java index 176245ab5..54879a30b 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/InformationAccountServiceTest.java @@ -144,7 +144,7 @@ class InformationAccountServiceTest { Account predictableAccount = new Account(); predictableAccount.setAccountType(AccountType.Info.getKey()); - predictableAccount.setStatus(AccountStatus.ACTIVE.getKey()); + predictableAccount.setStatus(ServiceStatus.Active.getKey()); predictableAccount.setRelationId(relationId); predictableAccount.setCompanyId(companyId); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index c250e2a6e..d6b06bcf7 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -81,6 +81,7 @@ public interface Consts { String DESTINATION_CLIENT_CODE_UPDATE = "client-code-update"; String DESTINATION_CLIENT_CODE_DELETE = "client-code-delete"; + String DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW = "trading-clearing-registry-auto-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update"; String DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK = "trading-clearing-registry-block"; From 9d1a3784472a3ac0f7c94fdba53b72bdd1e126cb Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 10:45:01 +0300 Subject: [PATCH 09/60] http://jira.mfd.msk:8088/browse/CLS-271 TradingClearingRegistryService --- ...adingClearingRegistryValidationConfig.java | 76 ++--------------- .../TradingClearingRegistryService.java | 83 +++++++++++++------ .../platform/messaging/domain/Consts.java | 1 - 3 files changed, 62 insertions(+), 98 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java index 27e0c6581..b32ebb6e5 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -6,7 +6,6 @@ import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.ServiceStatusDictionary; -import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; @@ -17,7 +16,6 @@ import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; import ru.spcex.platform.classes.base.SpcexObjectBase; import ru.spcex.platform.enumeration.ServiceStatus; -import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.validation.ImdgValidationContext; import ru.spcex.platform.utils.validation.IValidator; @@ -29,70 +27,6 @@ import java.util.function.Function; @Configuration public class TradingClearingRegistryValidationConfig { - @Bean("tradingClearingRegistryAutoNewRequest") - public Function tradingClearingRegistryAutoNewRequestValidator( - Map> imdgForValidation - ) { - return tradingClearingRegistryAutoNewRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); - context.setValidatedObject(tradingClearingRegistryAutoNewRequest); - Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); - addImdg.accept(IMDGDistributedNames.Map_Company); - addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); - return new ValidatorImpl<>(context, - IdPresentRule.instance("companyId", - TradingClearingRegistryNewRequest::getCompanyId, - IMDGDistributedNames.Map_Company, - Company.class, - AccountError.RequiredFieldEmpty, - AccountError.CompanyNotFound), - FieldRequiredRule.instance("moneyAccountId", - TradingClearingRegistryNewRequest::getMoneyAccountId, - AccountError.RequiredFieldEmpty, - moneyAccountId -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByID(moneyAccountId); - if (account == null) return AccountError.AccountNotFound; - return null; - }), - FieldRequiredRule.instance("depoAccountId", - TradingClearingRegistryNewRequest::getDepoAccountId, - AccountError.RequiredFieldEmpty, - false, - depoAccountId -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByID(depoAccountId); - if (account == null) return AccountError.AccountNotFound; - return null; - }), - DictionaryPresentRule.instance("status", - TradingClearingRegistryNewRequest::getStatus, - IMDGDistributedNames.Map_ServiceStatusDictionary, - ServiceStatusDictionary.class, - AccountError.RequiredFieldEmpty, - AccountError.WrongFieldValue, - false, - statusValue -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Long moneyAccountId = tradingClearingRegistryAutoNewRequest.getMoneyAccountId(); - Long depoAccountId = tradingClearingRegistryAutoNewRequest.getDepoAccountId(); - Account moneyAccount = accountImdg.getSingleObjectByID(moneyAccountId); - Account depoAccount = depoAccountId != null ? accountImdg.getSingleObjectByID(depoAccountId) : null; - if ( - (depoAccount != null && (ServiceStatus.Active.equalsByKey(depoAccount.getStatus()) || ServiceStatus.Reopened.equalsByKey(depoAccount.getStatus()))) && - (ServiceStatus.Active.equalsByKey(moneyAccount.getStatus()) || ServiceStatus.Reopened.equalsByKey(moneyAccount.getStatus())) - ) { - - } - - String statusCode = statusValue.getCode(); - if (WorkflowStatus.Active.equalsByKey(statusCode)) return null; - return AccountError.WrongFieldValue; - }) - ); - }; - } @Bean("tradingClearingRegistryNewRequest") public Function tradingClearingRegistryNewRequestValidator( @@ -104,7 +38,7 @@ public class TradingClearingRegistryValidationConfig { Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); addImdg.accept(IMDGDistributedNames.Map_Account); - addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", TradingClearingRegistryNewRequest::getCompanyId, @@ -131,6 +65,8 @@ public class TradingClearingRegistryValidationConfig { if (account == null) return AccountError.AccountNotFound; return null; }), + // todo на будущее: нужна ли эта проверка, если при добавлении регистра статус заполняется автоматически + // на основе полей moneyAccountId и depoAccountId, то же касается TradingClearingRegistryNewRequest, нужно ли там поле status DictionaryPresentRule.instance("status", TradingClearingRegistryNewRequest::getStatus, IMDGDistributedNames.Map_ServiceStatusDictionary, @@ -155,7 +91,7 @@ public class TradingClearingRegistryValidationConfig { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(tradingClearingRegistryUpdateRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); - addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); return new ValidatorImpl<>(context, IdPresentRule.instance("id", @@ -166,8 +102,8 @@ public class TradingClearingRegistryValidationConfig { AccountError.TradingClearingRegistryNotFound), DictionaryPresentRule.instance("status", TradingClearingRegistryUpdateRequest::getStatus, - IMDGDistributedNames.Map_WorkflowStatusDictionary, - WorkflowStatusDictionary.class, + IMDGDistributedNames.Map_ServiceStatusDictionary, + ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, false) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index cec060ea0..c4855b536 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -7,10 +7,12 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.account.DepoAccount; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -19,15 +21,20 @@ import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingR import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; -import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.enumeration.EnumMessage; +import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; +import java.util.Arrays; +import java.util.List; import java.util.function.Function; @Service @@ -40,23 +47,27 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final Imdg tradingClearingRegistryImdg; private final Imdg depoAccountImdg; private final Imdg clearingAccountImdg; + private final Imdg accountImdg; private final Imdg companyImdg; private final Function tradingClearingRegistryUpdateRequestValidator; private final Function tradingClearingRegistryNewRequestValidator; private final Function tradingClearingRegistryBlockRequestValidator; + private final IMessageResolver messageResolver; + public TradingClearingRegistryService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, ValidationHelper validationHelper, UserRoleVerification userRoleVerification, + IMessageResolver messageResolver, @Qualifier("tradingClearingRegistryNewRequest") Function tradingClearingRegistryNewRequestValidator, @Qualifier("tradingClearingRegistryUpdateRequest") Function tradingClearingRegistryUpdateRequestValidator, @Qualifier("tradingClearingRegistryBlockRequest") - Function tradingClearingRegistryBlockRequestValidator) { + Function tradingClearingRegistryBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.validationHelper = validationHelper; this.userRoleVerification = userRoleVerification; @@ -67,16 +78,15 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; + this.messageResolver = messageResolver; } @Override public void afterPropertiesSet() throws Exception { init(); - callback(TradingClearingRegistryNewRequest.class) - .setConsumer(this::tradingClearingRegistryAutoNew) - .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, callbacks::put); callback(TradingClearingRegistryNewRequest.class) .setConsumer(this::tradingClearingRegistryNew) .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, callbacks::put); @@ -88,18 +98,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); } - public RequestInfoUpdate tradingClearingRegistryAutoNew(BaseRequest userRequest) { - log.debug("TradingClearingRegistryAutoNewRequest received"); - - - - Long id = null; - log.debug("successfully processed, id {}", id); - return null; - } - public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { - log.debug("TradingClearingRegistryNewRequest received"); + log.debug("TradingClearingRegistryAutoNewRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -114,18 +114,46 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini tradingClearingRegistry.setCompanyId(req.getCompanyId()); tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); tradingClearingRegistry.setDepoAaccountId(req.getDepoAccountId()); - tradingClearingRegistry.setStatus(WorkflowStatus.Active.getKey()); - // todo tradingClearingRegistryType из соответствующего параметра очереди но в запросе он не фигурирует - // пока оставил вычисление аналогичное автоматическому добавлению ТКР - String tradingRegistryType; - if (req.getDepoAccountId() != null) { - DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()); - tradingRegistryType = depoAccount.getDepoAccountType(); + DepoAccount depoAccount = req.getDepoAccountId() != null ? depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; + Account depoAccountMain = depoAccount != null ? accountImdg.getSingleObjectByID(depoAccount.getAccountId()) : null; + + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + Account clearingAccountMain = accountImdg.getSingleObjectByID(clearingAccount.getAccountId()); + + List activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); + String status = null; + if (depoAccountMain != null) { + if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(clearingAccountMain.getStatus())) + status = ServiceStatus.Active.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + status = ServiceStatus.Blocked.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + status = ServiceStatus.Suspended.getKey(); + if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + status = ServiceStatus.Closed.getKey(); } else { - ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); - tradingRegistryType = clearingAccount.getClearingAccountType(); + if (activeStatuses.contains(clearingAccountMain.getStatus())) + status = ServiceStatus.Active.getKey(); + if (clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + status = ServiceStatus.Blocked.getKey(); + if (clearingAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + status = ServiceStatus.Suspended.getKey(); + if (clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + status = ServiceStatus.Closed.getKey(); } + if (status == null) { + String errMsg = messageResolver.resolve(new EnumMessage(AccountError.WrongFieldValue, req.getMoneyAccountId())); + return new RequestInfoUpdate() + .setStatus(Status.Error) + .setMessage(errMsg) + .setId(userRequest.getId()); + } + tradingClearingRegistry.setStatus(status); + + String tradingRegistryType; + if (depoAccount != null) tradingRegistryType = depoAccount.getDepoAccountType(); + else tradingRegistryType = clearingAccount.getClearingAccountType(); tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); TradingClearingRegistryPurpose registryPurpose; @@ -134,7 +162,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini tradingClearingRegistry.setTradingClearingRegistryPurpose(registryPurpose.getKey()); Company company = companyImdg.getSingleObjectByID(req.getCompanyId()); - String code = company.getClearingCode() + registryPurpose.getKey() + registryPurpose; + String code = "%4s".formatted(company.getClearingCode()).replace(' ', '0'); + code += registryPurpose.getKey(); if (registryPurpose == TradingClearingRegistryPurpose.C) code += tradingRegistryType + id; else code += "AT" + id; tradingClearingRegistry.setCode(code); @@ -182,7 +211,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini CommonDeleteRequest req = userRequest.getRequestPayload(); TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); - tradingClearingRegistry.setStatus(WorkflowStatus.Blocked.getKey()); + tradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); tradingClearingRegistryImdg.update(tradingClearingRegistry); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index d6b06bcf7..c250e2a6e 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -81,7 +81,6 @@ public interface Consts { String DESTINATION_CLIENT_CODE_UPDATE = "client-code-update"; String DESTINATION_CLIENT_CODE_DELETE = "client-code-delete"; - String DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW = "trading-clearing-registry-auto-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update"; String DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK = "trading-clearing-registry-block"; From 31950816619fb1cd6509733fad20e4b8f71ee283 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 13:59:43 +0300 Subject: [PATCH 10/60] http://jira.mfd.msk:8088/browse/CLS-271 TradingClearingRegistryServiceTest --- .../validation/AccountValidationConfig.java | 8 +- .../BankAccountValidationConfig.java | 8 +- ...adingClearingRegistryValidationConfig.java | 29 +- .../config/validation/ValidationConfig.java | 8 +- .../account/service/AccountService.java | 12 +- .../account/service/BankAccountService.java | 14 +- .../TradingClearingRegistryService.java | 19 +- .../TradingClearingRegistryServiceTest.java | 261 ++++++++++++++++++ 8 files changed, 313 insertions(+), 46 deletions(-) create mode 100644 clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java index 8f9cd76eb..f1a5f0293 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java @@ -10,7 +10,7 @@ import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.CorrespondentAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; @@ -153,17 +153,17 @@ public class AccountValidationConfig { } @Bean("correspondentAccountBlockRequestValidator") - public Function correspondentAccountBlockRequestValidator( + public Function correspondentAccountBlockRequestValidator( Map> imdgForValidation ) { return correspondentAccountBlockRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); + ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(correspondentAccountBlockRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Account); return new ValidatorImpl<>(context, IdPresentRule.instance("id", - CommonDeleteRequest::getId, + CommonIdRequest::getId, IMDGDistributedNames.Map_Account, Account.class, AccountError.RequiredFieldEmpty, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java index c4c350bb4..3c6b00d6e 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/BankAccountValidationConfig.java @@ -10,7 +10,7 @@ import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; import ru.spcex.clearing.validation.common.rules.FieldRequiredRule; import ru.spcex.clearing.validation.common.rules.IdPresentRule; @@ -132,18 +132,18 @@ public class BankAccountValidationConfig { } @Bean("bankAccountBlockRequestValidator") - public Function bankAccountBlockRequestValidator( + public Function bankAccountBlockRequestValidator( Map> imdgForValidation ) { return bankAccountBlockRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); + ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(bankAccountBlockRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_BankAccount); addImdg.accept(IMDGDistributedNames.Map_Account); return new ValidatorImpl<>(context, IdPresentRule.instance("id", - CommonDeleteRequest::getId, + CommonIdRequest::getId, IMDGDistributedNames.Map_BankAccount, BankAccount.class, AccountError.RequiredFieldEmpty, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java index b32ebb6e5..32fb2f34f 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -2,13 +2,14 @@ package ru.spcex.clearing.account.config.validation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.ServiceStatusDictionary; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; @@ -37,7 +38,8 @@ public class TradingClearingRegistryValidationConfig { context.setValidatedObject(tradingClearingRegistryNewRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_Company); - addImdg.accept(IMDGDistributedNames.Map_Account); + addImdg.accept(IMDGDistributedNames.Map_ClearingAccount); + addImdg.accept(IMDGDistributedNames.Map_DepoAccount); addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", @@ -50,9 +52,11 @@ public class TradingClearingRegistryValidationConfig { TradingClearingRegistryNewRequest::getMoneyAccountId, AccountError.RequiredFieldEmpty, moneyAccountId -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByID(moneyAccountId); - if (account == null) return AccountError.AccountNotFound; + Imdg clearingAccountImdg = context.obtainMap( + IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class + ); + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(moneyAccountId); + if (clearingAccount == null) return AccountError.AccountNotFound; return null; }), FieldRequiredRule.instance("depoAccountId", @@ -60,9 +64,10 @@ public class TradingClearingRegistryValidationConfig { AccountError.RequiredFieldEmpty, false, depoAccountId -> { - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByID(depoAccountId); - if (account == null) return AccountError.AccountNotFound; + if (depoAccountId == null) return null; + Imdg depoAccountImdg = context.obtainMap(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); + DepoAccount depoAccount = depoAccountImdg.getSingleObjectByID(depoAccountId); + if (depoAccount == null) return AccountError.AccountNotFound; return null; }), // todo на будущее: нужна ли эта проверка, если при добавлении регистра статус заполняется автоматически @@ -112,17 +117,17 @@ public class TradingClearingRegistryValidationConfig { } @Bean("tradingClearingRegistryBlockRequest") - public Function tradingClearingRegistryBlockRequestValidator( + public Function tradingClearingRegistryBlockRequestValidator( Map> imdgForValidation ) { return tradingClearingRegistryBlockRequest -> { - ImdgValidationContext context = new ImdgValidationContext<>(); + ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(tradingClearingRegistryBlockRequest); Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry); return new ValidatorImpl<>(context, IdPresentRule.instance("id", - CommonDeleteRequest::getId, + CommonIdRequest::getId, IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class, AccountError.RequiredFieldEmpty, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java index fd41493df..6fedb6269 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/ValidationConfig.java @@ -3,12 +3,10 @@ package ru.spcex.clearing.account.config.validation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import ru.clearing.classes.statics.data.account.Account; -import ru.clearing.classes.statics.data.account.BankAccount; -import ru.clearing.classes.statics.data.account.ClearingAccount; -import ru.clearing.classes.statics.data.account.InformationAccount; +import ru.clearing.classes.statics.data.account.*; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.AccountTypeDictionary; import ru.clearing.platform.dictionary.ClearingAccountTypeDictionary; import ru.clearing.platform.dictionary.CurrencyCodeDictionary; @@ -41,7 +39,9 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_BankAccount, BankAccount.class); addImdg.accept(IMDGDistributedNames.Map_CurrencyCodeDictionary, CurrencyCodeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + addImdg.accept(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class); + addImdg.accept(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); return imdg; } diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java index fdc36e84d..ff1aeb8b7 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/AccountService.java @@ -21,7 +21,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdf0 import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; import ru.spcex.clearing.platform.messaging.domain.cud.balance.AccountSdfToStatementRequestPart; import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; @@ -57,7 +57,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { private final ValidationHelper validationHelper; private final Function accountNewRequestValidator; private final Function accountUpdateRequestValidator; - private final Function accountBlockRequestValidator; + private final Function accountBlockRequestValidator; @Autowired public AccountService(Consumer kafkaQueue, @@ -72,7 +72,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { @Qualifier("correspondentAccountUpdateRequestValidator") Function accountUpdateRequestValidator, @Qualifier("correspondentAccountBlockRequestValidator") - Function accountBlockRequestValidator) { + Function accountBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.accountMap = imdgProvider.getImdg( IMDGDistributedNames.Map_Account, Account.class @@ -103,7 +103,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { callback(CorrespondentAccountUpdateRequest.class) .setConsumer(this::correspondentAccountUpdate) .forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_UPDATE, callbacks::put); - callback(CommonDeleteRequest.class) + callback(CommonIdRequest.class) .setConsumer(this::correspondentAccountBlock) .forDestination(Consts.DESTINATION_CORRESPONDENT_ACCOUNT_BLOCK, callbacks::put); init(); @@ -161,7 +161,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { return null; } - public RequestInfoUpdate correspondentAccountBlock(BaseRequest userRequest) { + public RequestInfoUpdate correspondentAccountBlock(BaseRequest userRequest) { log.debug("AccountBlockRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); @@ -170,7 +170,7 @@ public class AccountService extends QueueConsumer implements InitializingBean { requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, accountBlockRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - CommonDeleteRequest request = userRequest.getRequestPayload(); + CommonIdRequest request = userRequest.getRequestPayload(); Account account = accountMap.getSingleObjectByID(request.getId()); account.setStatus(ServiceStatus.Blocked.getKey()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java index de0fb0be8..bff14701c 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java @@ -15,7 +15,7 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.BankAccountUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; @@ -44,7 +44,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea private final Function bankAccountNewRequestValidator; private final Function bankAccountUpdateRequestValidator; - private final Function bankAccountBlockRequestValidator; + private final Function bankAccountBlockRequestValidator; @Autowired public BankAccountService(Consumer kafkaQueue, @@ -58,7 +58,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea @Qualifier("bankAccountUpdateRequestValidator") Function bankAccountUpdateRequestValidator, @Qualifier("bankAccountBlockRequestValidator") - Function bankAccountBlockRequestValidator) { + Function bankAccountBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.bankAccountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BankAccount, BankAccount.class); this.accountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); @@ -79,7 +79,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea callback(BankAccountUpdateRequest.class) .setFunction(this::bankAccountUpdate) .forDestination(Consts.DESTINATION_BANK_ACCOUNT_UPDATE, callbacks::put); - callback(CommonDeleteRequest.class) + callback(CommonIdRequest.class) .setFunction(this::bankAccountBlock) .forDestination(Consts.DESTINATION_BANK_ACCOUNT_BLOCK, callbacks::put); init(); @@ -194,8 +194,8 @@ public class BankAccountService extends QueueConsumer implements InitializingBea return null; } - private RequestInfoUpdate bankAccountBlock(BaseRequest userRequest) { - CommonDeleteRequest req = userRequest.getRequestPayload(); + private RequestInfoUpdate bankAccountBlock(BaseRequest userRequest) { + CommonIdRequest req = userRequest.getRequestPayload(); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -203,7 +203,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, bankAccountBlockRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - log.debug("CommonDeleteRequest received id = {}", req.getId()); + log.debug("CommonIdRequest received id = {}", req.getId()); BankAccount bankAccount = bankAccountMap.getSingleObjectByID(req.getId()); Account account = accountMap.getSingleObjectByID(bankAccount.getAccountId()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index c4855b536..aaafb6972 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -16,7 +16,7 @@ import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonIdRequest; import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; @@ -52,7 +52,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final Function tradingClearingRegistryUpdateRequestValidator; private final Function tradingClearingRegistryNewRequestValidator; - private final Function tradingClearingRegistryBlockRequestValidator; + private final Function tradingClearingRegistryBlockRequestValidator; private final IMessageResolver messageResolver; @@ -67,7 +67,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini @Qualifier("tradingClearingRegistryUpdateRequest") Function tradingClearingRegistryUpdateRequestValidator, @Qualifier("tradingClearingRegistryBlockRequest") - Function tradingClearingRegistryBlockRequestValidator) { + Function tradingClearingRegistryBlockRequestValidator) { super(kafkaQueue, kafkaProducer); this.validationHelper = validationHelper; this.userRoleVerification = userRoleVerification; @@ -93,13 +93,13 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini callback(TradingClearingRegistryUpdateRequest.class) .setConsumer(this::tradingClearingRegistryUpdate) .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, callbacks::put); - callback(CommonDeleteRequest.class) + callback(CommonIdRequest.class) .setConsumer(this::tradingClearingRegistryBlock) .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); } public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { - log.debug("TradingClearingRegistryAutoNewRequest received"); + log.debug("TradingClearingRegistryNewRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -123,7 +123,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini List activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); String status = null; - if (depoAccountMain != null) { + if (depoAccountMain != null && depoAccountMain.getStatus() != null) { if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(clearingAccountMain.getStatus())) status = ServiceStatus.Active.getKey(); if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) @@ -132,7 +132,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini status = ServiceStatus.Suspended.getKey(); if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) status = ServiceStatus.Closed.getKey(); - } else { + } else if (clearingAccountMain.getStatus() != null) { if (activeStatuses.contains(clearingAccountMain.getStatus())) status = ServiceStatus.Active.getKey(); if (clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) @@ -200,7 +200,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini return null; } - public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest userRequest) { + public RequestInfoUpdate tradingClearingRegistryBlock(BaseRequest userRequest) { log.debug("TradingClearingRegistryBlockRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -208,10 +208,11 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryBlockRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; - CommonDeleteRequest req = userRequest.getRequestPayload(); + CommonIdRequest req = userRequest.getRequestPayload(); TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(req.getId()); tradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); + tradingClearingRegistry.setUpdated(Instant.now()); tradingClearingRegistryImdg.update(tradingClearingRegistry); diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java new file mode 100644 index 000000000..7704cf73b --- /dev/null +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java @@ -0,0 +1,261 @@ +package ru.spcex.clearing.account.service; + +import org.apache.kafka.clients.consumer.MockConsumer; +import org.apache.kafka.clients.producer.MockProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import ru.clearing.classes.statics.data.account.Account; +import ru.clearing.classes.statics.data.account.ClearingAccount; +import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.clearing.platform.dictionary.ServiceStatusDictionary; +import ru.spcex.clearing.account.config.BeanConfiguration; +import ru.spcex.clearing.account.config.HazelcastServiceTestConfiguration; +import ru.spcex.clearing.account.config.KafkaConfigTest; +import ru.spcex.clearing.account.config.validation.TradingClearingRegistryValidationConfig; +import ru.spcex.clearing.account.config.validation.ValidationConfig; +import ru.spcex.clearing.account.utils.MatcherFactory; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; +import ru.spcex.platform.enumeration.ServiceStatus; +import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; + +import javax.annotation.PostConstruct; + +import static ru.spcex.clearing.account.utils.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.account.utils.TestUtils.*; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = { + BeanConfiguration.class, + ValidationConfig.class, + TradingClearingRegistryValidationConfig.class, + TradingClearingRegistryService.class, + HazelcastServiceTestConfiguration.class, + KafkaConfigTest.class}) +class TradingClearingRegistryServiceTest { + public static final MatcherFactory.Matcher TRADING_CLEARING_REGISTRY_MATCHER = usingIgnoringFieldsComparator(); + private static final int PARTITION = 0; + private static final String TOPIC_ACCOUNT_NEW = Consts.ACCOUNT_NEW_SDF01; + private static final String account = "123456789123"; + private static final Long companyId = 0L; + private static final Long relationId = 0L; + @Autowired + TradingClearingRegistryService tradingClearingRegistryService; + @Autowired + @Qualifier("hazelcastServiceTest") + private HazelcastService hazelcastServiceTest; + + @Captor + private ArgumentCaptor producerRecord; + @SpyBean + private MockProducer producer; + + private Imdg tradingClearingRegistryImdg; + private Imdg companyImdg; + private Imdg serviceStatusDictionaryImdg; + + private Imdg clearingAccountImdg; + private Long clearingAccountId; + + private Imdg depoAccountImdg; + private Long depoAccountId; + + private Imdg accountImdg; + private Long accountId; + + static boolean oneNewRequestDone = false; + + @PostConstruct + private void init() { + hazelcastServiceTest.waitAvailable(); + tradingClearingRegistryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class + ); + companyImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_Company, Company.class + ); + serviceStatusDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ServiceStatusDictionary, ServiceStatusDictionary.class + ); + accountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_Account, Account.class + ); + clearingAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class + ); + depoAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_DepoAccount, DepoAccount.class + ); + ServiceStatusDictionary serviceStatusDictionary = new ServiceStatusDictionary(); + serviceStatusDictionary.setCode(ServiceStatus.Active.getKey()); + serviceStatusDictionary.setName(ServiceStatus.Active.getKey()); + serviceStatusDictionaryImdg.insert(serviceStatusDictionary); + + Company company = new Company(); + company.setId(companyId); + company.setWorkflowStatus(WorkflowStatus.Active.getKey()); + company.setClearingCode("77"); + companyImdg.insert(company); + + Account account = new Account(); + account.setStatus(ServiceStatus.Active.getKey()); + accountId = accountImdg.insert(account); + + DepoAccount depoAccount = new DepoAccount(); + depoAccount.setAccountId(accountId); + depoAccount.setDepoAccountType("DAT"); + depoAccountId = depoAccountImdg.insert(depoAccount); + + ClearingAccount clearingAccount = new ClearingAccount(); + clearingAccount.setAccountId(accountId); + clearingAccount.setClearingAccountType("CAT"); + clearingAccountId = clearingAccountImdg.insert(clearingAccount); + } + + @Test + void tradingClearingRegistryNew_moneyAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077MAT"); + predictableTradingClearingRegistry.setMoneyAccountId(clearingAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType("CAT"); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.M.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + PARTITION + (oneNewRequestDone ? 1 : 0), + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + oneNewRequestDone = true; + } + + @Test + void tradingClearingRegistryNew_depoAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId); + tradingClearingRegistryNewRequest.setDepoAccountId(depoAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077CDAT"); + predictableTradingClearingRegistry.setMoneyAccountId(clearingAccountId); + predictableTradingClearingRegistry.setDepoAaccountId(depoAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType("DAT"); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.C.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + PARTITION + (oneNewRequestDone ? 1 : 0), + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + oneNewRequestDone = true; + } + + @Test + void tradingClearingRegistryUpdate() { + TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry(); + existTradingClearingRegistry.setStatus(ServiceStatus.Closed.getKey()); + Long registryId = tradingClearingRegistryImdg.insert(existTradingClearingRegistry); + + TradingClearingRegistryUpdateRequest tradingClearingRegistryUpdateRequest = new TradingClearingRegistryUpdateRequest(); + tradingClearingRegistryUpdateRequest.setStatus(ServiceStatus.Active.getKey()); + tradingClearingRegistryUpdateRequest.setId(registryId); + + String jsonString = getJsonStringForUPDATE(tradingClearingRegistryUpdateRequest, 0); + + //ACT + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE, + PARTITION, + 0, + jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId); + existTradingClearingRegistry.setUpdated(resultUpdating.getUpdated()); + existTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultUpdating, existTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultUpdating); + } + + @Test + void tradingClearingRegistryBlock() { + TradingClearingRegistry existTradingClearingRegistry = new TradingClearingRegistry(); + existTradingClearingRegistry.setStatus(ServiceStatus.Closed.getKey()); + Long registryId = tradingClearingRegistryImdg.insert(existTradingClearingRegistry); + + CommonDeleteRequest tradingClearingRegistryDeleteRequest = new CommonDeleteRequest(); + tradingClearingRegistryDeleteRequest.setId(registryId); + + String jsonString = getJsonStringForUPDATE(tradingClearingRegistryDeleteRequest, 0); + + //ACT + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, + PARTITION, + 0, + jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultUpdating = tradingClearingRegistryImdg.getSingleObjectByID(registryId); + existTradingClearingRegistry.setUpdated(resultUpdating.getUpdated()); + existTradingClearingRegistry.setStatus(ServiceStatus.Blocked.getKey()); + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultUpdating, existTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultUpdating); + } +} \ No newline at end of file From 2829e50e7e003e492e4473dcbd65639e7251cc07 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 5 May 2023 14:36:33 +0300 Subject: [PATCH 11/60] =?UTF-8?q?company-service=20http://jira.mfd.msk:808?= =?UTF-8?q?8/browse/CLS-284=20=20=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D0=BE=20(?= =?UTF-8?q?=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D1=82=D1=8C!)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../company/service/CompanyInfoService.java | 2 +- .../company/service/CompanyService.java | 26 ++++++------ ...lationHelper.java => RelationService.java} | 40 ++++++++++++++++++- .../service/CompanyInfoServiceTest.java | 2 +- .../company/service/CompanyServiceTest.java | 2 +- .../service/CompanySymbolServiceTest.java | 2 +- 6 files changed, 54 insertions(+), 20 deletions(-) rename clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/{RelationHelper.java => RelationService.java} (66%) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java index 0beb21c0a..03d355d49 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java @@ -111,7 +111,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea transaction.beginTransaction(); boolean txOk = false; try { - companyService.relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); + companyService.relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); Imdg txCompanyMap = transaction.getImdg(IMDGDistributedNames.Map_Company, Company.class); txCompanyMap.update(company); log.trace("Company {} updated", company.getId()); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java index 3444b1243..542916892 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java @@ -29,13 +29,11 @@ import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.error.ClearingBaseException; import ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; -import java.util.Map; import java.util.Objects; import java.util.function.Function; @@ -56,7 +54,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { protected CompanySymbolService companySymbolService; protected AccountNotificationHelper accountNotification; - protected RelationHelper relationHelper; + protected RelationService relationService; @Autowired public CompanyService(Consumer kafkaQueue, Producer kafkaProducer, @@ -73,7 +71,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { CompanySymbolService companySymbolService, AccountNotificationHelper accountNotification, - RelationHelper relationHelper + RelationService relationService ) { super(kafkaQueue, kafkaProducer); this.imdgProvider = imdgProvider; @@ -89,7 +87,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { this.companySymbolService = companySymbolService; companySymbolService.setCompanyService(this); this.accountNotification = accountNotification; - this.relationHelper = relationHelper; + this.relationService = relationService; companyIMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); } @@ -145,9 +143,9 @@ public class CompanyService extends QueueConsumer implements InitializingBean { companyMap.insert(company); log.debug("company-new request processed, BaseRequest.id = {}, company.id={}", companyNewRequestBaseRequest.getId(), company.getId()); - relationHelper.createNewRelation(transaction, company); + relationService.createNewRelation(transaction, company); if (!(WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()))) { // Block - relationHelper.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus()); + relationService.onChangeWorkflowStatus(transaction, company, null, company.getWorkflowStatus()); } txOk = true; } finally { @@ -180,10 +178,10 @@ public class CompanyService extends QueueConsumer implements InitializingBean { log.trace("Company {} not found", updateRequest.getId()); return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyNotFound, updateRequest.getId()); } - if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { - log.trace("Company {} not active: {}", company.getId(), company.getWorkflowStatus()); - return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyDisabled, updateRequest.getId()); - } +// if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) { +// log.trace("Company {} not active: {}", company.getId(), company.getWorkflowStatus()); +// return requestHelper.makeErrorResponse(companyUpdateRequestBaseRequest, CompanyErrors.CompanyDisabled, updateRequest.getId()); +// } company.setUpdated(Instant.now()); company.setShortName(updateRequest.getShortName()); @@ -199,7 +197,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { if (updateRequest.getWorkflowStatus() != null) { company.setWorkflowStatus(updateRequest.getWorkflowStatus()); if (!Objects.equals(prevStatus, company.getWorkflowStatus())) { - relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); + relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); } else { log.trace("Status was not changed"); } @@ -286,7 +284,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { String prevStatus = company.getWorkflowStatus(); company.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); - relationHelper.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); + relationService.onChangeWorkflowStatus(transaction, company, prevStatus, company.getWorkflowStatus()); log.debug("Update company.id={}", company.getId()); companyMap.update(company); @@ -339,7 +337,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { company.setWorkflowStatus(WorkflowStatus.Blocked.getKey()); - relationHelper.onChangeWorkflowStatusOnlyRelationChange(transaction, company, company.getWorkflowStatus()); + relationService.onChangeWorkflowStatusOnlyRelationChange(transaction, company, company.getWorkflowStatus()); log.debug("Update company.id={}", company.getId()); companyMap.update(company); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationHelper.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java similarity index 66% rename from clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationHelper.java rename to clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java index c68595767..ca0c4349f 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationHelper.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java @@ -1,17 +1,27 @@ package ru.spcex.clearing.company.service; +import org.apache.kafka.clients.consumer.Consumer; +import org.apache.kafka.clients.producer.Producer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUpdateRequest; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.platform.enumeration.ServiceProduct; import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.ImdgTransaction; import ru.spcex.platform.utils.error.ValidationException; @@ -20,15 +30,41 @@ import java.util.Collection; import java.util.Objects; @Service -public class RelationHelper { +public class RelationService extends QueueConsumer implements InitializingBean { protected static final Long SPVB_ID = 1L; // СПВБ protected final Logger log = LoggerFactory.getLogger(getClass()); + protected ImdgProvider imdgProvider; protected AccountNotificationHelper accountNotification; @Autowired - public RelationHelper(AccountNotificationHelper accountNotification) { + public RelationService(Consumer kafkaQueue, + Producer kafkaProducer, + ImdgProvider imdgProvider, + + AccountNotificationHelper accountNotification) { + super(kafkaQueue, kafkaProducer); + this.imdgProvider = imdgProvider; this.accountNotification = accountNotification; + +// this.requestHelper = requestHelper.setLogger(log); + } + + @Override + public void afterPropertiesSet() { +// this.profileDocumentMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); +// this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); +//todo all CLS-284 +// callback(ProfileDocumentNewRequest.class) +// .setFunction(this::profileDocumentNew) +// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_NEW, callbacks::put); +// callback(ProfileDocumentUpdateRequest.class) +// .setFunction(this::profileDocumentUpdate) +// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_UPDATE, callbacks::put); +// callback(CommonDeleteRequest.class) +// .setFunction(this::profileDocumentDelete) +// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_DELETE, callbacks::put); +// init(); } protected void createNewRelation(ImdgTransaction transaction, Company company) { diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java index d823d4ab6..b521fd7e4 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java @@ -50,7 +50,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv ValidationConfig.class, CompanySymbolService.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.class, BeanConfiguration.class, KafkaTestConfig.class, diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java index b80446af5..f18f68a84 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java @@ -54,7 +54,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv ValidationConfig.class, CompanySymbolService.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.class, CompanySymbolService.class, CompanySymbolValidationConfig.class, diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java index 98383d456..39e77828d 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java @@ -50,7 +50,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv CompanyService.class, CompanyValidationConfig.class, AccountNotificationHelper.class, - RelationHelper.class, + RelationService.class, KafkaTestConfig.class, ImdgTestConfig.class}) From e1b9076cd1d3aef3bce2491812dd22318999d4ea Mon Sep 17 00:00:00 2001 From: psemenkov Date: Fri, 5 May 2023 14:39:11 +0300 Subject: [PATCH 12/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-262?= =?UTF-8?q?=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20sFTP=20=D1=81?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B8=D1=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clearing-parent/lim-exporter/pom.xml | 5 +- .../lim/exporter/config/settings/Store.java | 14 ----- .../lim/exporter/LimExportApplication.java | 2 +- .../lim/exporter/config/KafkaConfig.java | 28 +++++++++ .../exporter/config/LimExporterConfig.java | 63 +++++++++++++++++++ .../lim/exporter/config/SFTPConfig.java | 54 ++++++++++++++++ .../lim/exporter/config/settings/Common.java | 32 ++++++++++ .../settings/ExportLimServiceSettings.java | 21 +++++-- .../lim/exporter/config/settings/Store.java | 50 +++++++++++++++ .../services/AbstractExporterService.java | 48 ++++++++++++++ .../services/LauncherCommandReceiver.java | 36 +++++++++++ .../services/MoneyExporterService.java | 21 +++++++ .../services/SecurityExporterService.java | 20 ++++++ .../src/main/resources/application.properties | 17 ++++- .../ru/spcex/platform/enumeration/Task.java | 3 +- 15 files changed, 390 insertions(+), 24 deletions(-) delete mode 100644 clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/Store.java rename clearing-parent/lim-exporter/src/main/java/ru/{ => spcex}/clearing/lim/exporter/LimExportApplication.java (94%) create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/KafkaConfig.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimExporterConfig.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/SFTPConfig.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/Common.java rename clearing-parent/lim-exporter/src/main/java/ru/{ => spcex}/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java (77%) create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/Store.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/LauncherCommandReceiver.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java diff --git a/clearing-parent/lim-exporter/pom.xml b/clearing-parent/lim-exporter/pom.xml index 879ff7543..1a9f7225b 100644 --- a/clearing-parent/lim-exporter/pom.xml +++ b/clearing-parent/lim-exporter/pom.xml @@ -23,12 +23,15 @@ org.springframework.boot spring-boot-starter + + com.fasterxml.jackson.core + jackson-databind + org.springframework.integration spring-integration-sftp - ru.spcex.clearing classes diff --git a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/Store.java b/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/Store.java deleted file mode 100644 index 4adebe4d9..000000000 --- a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/Store.java +++ /dev/null @@ -1,14 +0,0 @@ -package ru.clearing.lim.exporter.config.settings; - -public class Store { - - private String outDir; - - public String getOutDir() { - return outDir; - } - - public void setOutDir(String outDir) { - this.outDir = outDir; - } -} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/LimExportApplication.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/LimExportApplication.java similarity index 94% rename from clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/LimExportApplication.java rename to clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/LimExportApplication.java index 9a6c8f8a2..f2d29d17a 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/LimExportApplication.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/LimExportApplication.java @@ -1,4 +1,4 @@ -package ru.clearing.lim.exporter; +package ru.spcex.clearing.lim.exporter; import org.slf4j.LoggerFactory; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/KafkaConfig.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/KafkaConfig.java new file mode 100644 index 000000000..45fc6642c --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/KafkaConfig.java @@ -0,0 +1,28 @@ +package ru.spcex.clearing.lim.exporter.config; + +import org.apache.kafka.clients.consumer.Consumer; +import org.apache.kafka.clients.producer.Producer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Scope; +import ru.spcex.clearing.lim.exporter.config.settings.ExportLimServiceSettings; +import ru.spcex.clearing.platform.messaging.config.KafkaConsumerFactory; +import ru.spcex.clearing.platform.messaging.config.KafkaProducerFactory; + +@Configuration +public class KafkaConfig { + @Autowired + @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) + @Bean + public Consumer createConsumer(ExportLimServiceSettings settings) { + return KafkaConsumerFactory.consumer(settings.getKafkaConsumer()); + } + + @Autowired + @Bean + public Producer createProducer(ExportLimServiceSettings settings) { + return KafkaProducerFactory.producer(settings.getKafkaProducer()); + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimExporterConfig.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimExporterConfig.java new file mode 100644 index 000000000..b81b8820f --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/LimExporterConfig.java @@ -0,0 +1,63 @@ +package ru.spcex.clearing.lim.exporter.config; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import ru.spcex.clearing.lim.exporter.config.settings.ExportLimServiceSettings; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; +import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; + +@Configuration +@EnableConfigurationProperties +@ComponentScan(basePackages = {"ru.spcex.clearing.lim.exporter"}) +public class LimExporterConfig { + + @Bean("taskExecutorHazelcastClientInitializer") + public ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer() { + return createThreadPoolTaskExecutor(1, true); + } + + @Bean("taskExecutorIdGeneratorAwaiter") + public ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter() { + return createThreadPoolTaskExecutor(1, false); + } + + @Bean("imdgProvider") + public ImdgProvider imdgProvider(@Qualifier("taskExecutorHazelcastClientInitializer") ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer, + @Qualifier("taskExecutorIdGeneratorAwaiter") ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter, + ExportLimServiceSettings settings) { + HazelcastClientParams params = new HazelcastClientParams(); + params.setClusterMembers(settings.getHazelcast().getClusterMembers()); + params.setLogin(settings.getHazelcast().getLogin()); + params.setPassword(settings.getHazelcast().getPassword()); + return new HazelcastService(taskExecutorHazelcastClientInitializer, taskExecutorIdGeneratorAwaiter, params); + } + + @Bean("executor") + public ThreadPoolTaskExecutor executor(ExportLimServiceSettings settings) { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setMaxPoolSize(settings.getCommon().getThreadsCount()); + executor.setCorePoolSize(settings.getCommon().getThreadsCount()); + executor.setThreadNamePrefix("dbf-exporter"); + executor.setWaitForTasksToCompleteOnShutdown(true); + executor.setAwaitTerminationSeconds(300); + executor.initialize(); + return executor; + } + + private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) { + ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor(); + if (maxPoolSz > 2) { + pool.setKeepAliveSeconds(60); + pool.setAllowCoreThreadTimeOut(true); + } + pool.setCorePoolSize(maxPoolSz); + pool.setWaitForTasksToCompleteOnShutdown(waitForCompletion); + return pool; + } + +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/SFTPConfig.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/SFTPConfig.java new file mode 100644 index 000000000..c6f9c1670 --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/SFTPConfig.java @@ -0,0 +1,54 @@ +package ru.spcex.clearing.lim.exporter.config; + +import com.jcraft.jsch.ChannelSftp; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.expression.common.LiteralExpression; +import org.springframework.integration.annotation.Gateway; +import org.springframework.integration.annotation.MessagingGateway; +import org.springframework.integration.annotation.ServiceActivator; +import org.springframework.integration.file.remote.session.CachingSessionFactory; +import org.springframework.integration.file.remote.session.SessionFactory; +import org.springframework.integration.sftp.outbound.SftpMessageHandler; +import org.springframework.integration.sftp.session.DefaultSftpSessionFactory; +import org.springframework.messaging.MessageHandler; +import ru.spcex.clearing.lim.exporter.config.settings.ExportLimServiceSettings; + +import java.io.File; + +@Configuration +public class SFTPConfig { + + @Bean + public SessionFactory sftpSessionFactory(ExportLimServiceSettings settings) { + DefaultSftpSessionFactory factory = new DefaultSftpSessionFactory(true); + factory.setHost(settings.getStore().getServerIp()); + factory.setPort(settings.getStore().getServerPort()); + factory.setUser(settings.getStore().getUser()); + factory.setPassword(settings.getStore().getPassword()); + factory.setAllowUnknownKeys(true); + return new CachingSessionFactory<>(factory); + } + + @Bean + @ServiceActivator(inputChannel = "toSftpChannel") + public MessageHandler handler(SessionFactory sessionFactory, ExportLimServiceSettings settings) { + SftpMessageHandler handler = new SftpMessageHandler(sessionFactory); + handler.setRemoteDirectoryExpression(new LiteralExpression(settings.getStore().getOutDir())); + handler.setAutoCreateDirectory(true); + handler.setFileNameGenerator(message -> { + if (message.getPayload() instanceof File) { + return ((File) message.getPayload()).getName(); + }else { + throw new IllegalArgumentException("File expected as payload."); + } + }); + return handler; + } + + @MessagingGateway + public interface LimGateway { + @Gateway(requestChannel = "toSftpChannel") + void sendToSftp(File file); + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/Common.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/Common.java new file mode 100644 index 000000000..28dab5aa9 --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/Common.java @@ -0,0 +1,32 @@ +package ru.spcex.clearing.lim.exporter.config.settings; + +public class Common { + + private String encoding; + private int insertBatchSize; + private int threadsCount; + + public String getEncoding() { + return encoding; + } + + public void setEncoding(String encoding) { + this.encoding = encoding; + } + + public int getInsertBatchSize() { + return insertBatchSize; + } + + public void setInsertBatchSize(int insertBatchSize) { + this.insertBatchSize = insertBatchSize; + } + + public int getThreadsCount() { + return threadsCount; + } + + public void setThreadsCount(int threadsCount) { + this.threadsCount = threadsCount; + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java similarity index 77% rename from clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java rename to clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java index ff437e161..9bb6de24a 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/ExportLimServiceSettings.java @@ -1,4 +1,4 @@ -package ru.clearing.lim.exporter.config.settings; +package ru.spcex.clearing.lim.exporter.config.settings; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; @@ -9,12 +9,13 @@ import ru.spcex.platform.imdg.iml.hazelcast.config.HazelcastClientParams; @Component @PropertySource("file:${spring.config.location}/application.properties") -@ConfigurationProperties("export-dbf-service") +@ConfigurationProperties("export-lim-service") public class ExportLimServiceSettings { private HazelcastClientParams hazelcast; private KafkaConsumerSettings kafkaConsumer; private KafkaProducerSettings kafkaProducer; - private Store store; + private Store sFTPStore; + private Common common; public HazelcastClientParams getHazelcast() { return hazelcast; @@ -33,11 +34,11 @@ public class ExportLimServiceSettings { } public Store getStore() { - return store; + return sFTPStore; } - public void setStore(Store store) { - this.store = store; + public void setStore(Store Store) { + this.sFTPStore = Store; } public KafkaProducerSettings getKafkaProducer() { @@ -47,4 +48,12 @@ public class ExportLimServiceSettings { public void setKafkaProducer(KafkaProducerSettings kafkaProducer) { this.kafkaProducer = kafkaProducer; } + + public Common getCommon() { + return common; + } + + public void setCommon(Common common) { + this.common = common; + } } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/Store.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/Store.java new file mode 100644 index 000000000..ec4c6012f --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/settings/Store.java @@ -0,0 +1,50 @@ +package ru.spcex.clearing.lim.exporter.config.settings; + +public class Store { + + private String outDir; + private String user; + private String password; + private String serverIp; + private int serverPort; + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getServerIp() { + return serverIp; + } + + public void setServerIp(String serverIp) { + this.serverIp = serverIp; + } + + public int getServerPort() { + return serverPort; + } + + public void setServerPort(int serverPort) { + this.serverPort = serverPort; + } + + public String getOutDir() { + return outDir; + } + + public void setOutDir(String outDir) { + this.outDir = outDir; + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java new file mode 100644 index 000000000..009c28cfc --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java @@ -0,0 +1,48 @@ +package ru.spcex.clearing.lim.exporter.services; + +import ru.spcex.clearing.lim.exporter.config.SFTPConfig; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Collection; + +public abstract class AbstractExporterService { + + private static final DateTimeFormatter dtFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + private final SFTPConfig.LimGateway gateway; + + protected AbstractExporterService(SFTPConfig.LimGateway gateway) { + this.gateway = gateway; + } + + public abstract Collection getLimFileRows(); + public void process() { + String fileName = prepareFileName("security"); + File limFile = new File(fileName); + + Path limFilePath = limFile.toPath(); + try { + Files.write(limFilePath, getLimFileRows()); + gateway.sendToSftp(limFile); + Files.deleteIfExists(limFilePath); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private String prepareFileName(String target) { + StringBuilder result = new StringBuilder(); + String dt = dtFormatter.format(LocalDateTime.now()); + + result.append("limits_"); + result.append(target); + result.append('_'); + result.append(dt); + result.append(".lim"); + return result.toString(); + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/LauncherCommandReceiver.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/LauncherCommandReceiver.java new file mode 100644 index 000000000..660a4c287 --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/LauncherCommandReceiver.java @@ -0,0 +1,36 @@ +package ru.spcex.clearing.lim.exporter.services; + +import org.apache.kafka.clients.consumer.Consumer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Service; +import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; +import ru.spcex.clearing.platform.messaging.service.QueueConsumer; +import ru.spcex.platform.enumeration.Task; + +@Service +public class LauncherCommandReceiver extends QueueConsumer implements InitializingBean { + private final Logger log = LoggerFactory.getLogger(getClass()); + private final MoneyExporterService moneyExporterService; + private final SecurityExporterService securityExporterService; + + public LauncherCommandReceiver(Consumer kafkaQueue, + MoneyExporterService moneyExporterService, + SecurityExporterService securityExporterService) { + super(kafkaQueue); + this.moneyExporterService = moneyExporterService; + this.securityExporterService = securityExporterService; + } + + @Override + public void afterPropertiesSet() { + callback(LauncherCommandRequest.class) + .setConsumer(action -> moneyExporterService.process()) + .forDestination(Task.unloadingSession_LIMM.topic(), callbacks::put); // LIMM + callback(LauncherCommandRequest.class) + .setConsumer(action -> securityExporterService.process()) + .forDestination(Task.unloadingSession_LIMS.topic(), callbacks::put); // LIMS + init(); + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java new file mode 100644 index 000000000..2e6272f7e --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -0,0 +1,21 @@ +package ru.spcex.clearing.lim.exporter.services; + +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +@Service +public class MoneyExporterService extends AbstractExporterService { + + public MoneyExporterService() { + super(gateway); + } + + @Override + public Collection getLimFileRows(){ + List limFileRows = Arrays.asList("a", "b", "c"); + return limFileRows; + } +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java new file mode 100644 index 000000000..59a8dd69a --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java @@ -0,0 +1,20 @@ +package ru.spcex.clearing.lim.exporter.services; + +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; + +@Service +public class SecurityExporterService extends AbstractExporterService { + public SecurityExporterService() { + super(gateway); + } + + @Override + public Collection getLimFileRows(){ + List limFileRows = Arrays.asList("a", "b", "c"); + return limFileRows; + } +} diff --git a/clearing-parent/lim-exporter/src/main/resources/application.properties b/clearing-parent/lim-exporter/src/main/resources/application.properties index 471634fbb..114f0954c 100644 --- a/clearing-parent/lim-exporter/src/main/resources/application.properties +++ b/clearing-parent/lim-exporter/src/main/resources/application.properties @@ -7,7 +7,15 @@ export-lim-service.hazelcast.password=dev-pass export-lim-service.common.encoding=cp866 export-lim-service.common.threads-count=10 -export-lim-service.store.out-dir=d:\\trash\\clearing\\exporter\\out\\ +export-lim-service.store.out-dir=DocOut +export-lim-service.store.user:tester +export-lim-service.store.password=password +export-lim-service.store.server-ip=10.230.238.53 +export-lim-service.store.server-port=2222 + +export-lim-service.hazelcast.cluster-members=127.0.0.1:5701 +export-lim-service.hazelcast.login=dev +export-lim-service.hazelcast.password=dev-pass export-lim-service.kafka-consumer.bootstrap-servers=localhost:9092 export-lim-service.kafka-consumer.group-id=dev-group-balance-service @@ -16,3 +24,10 @@ export-lim-service.kafka-consumer.session-timeout-ms=30000 export-lim-service.kafka-consumer.auto-offset-reset=latest export-lim-service.kafka-consumer.linger-ms=1 export-lim-service.kafka-consumer.buffer-memory=33554432 + +export-lim-service.kafka-producer.bootstrap-servers=localhost:9092 +export-lim-service.kafka-producer.acks=all +export-lim-service.kafka-producer.retries=0 +export-lim-service.kafka-producer.batch-size=16384 +export-lim-service.kafka-producer.linger-ms=1 +export-lim-service.kafka-producer.buffer-memory=33554432 \ No newline at end of file diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java index 678b0acf5..e6b512d58 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Task.java @@ -16,7 +16,8 @@ public enum Task implements IEnumKey { createOrderConfirm("CORC"), getAllBalance("GALB"), createReport_GREP("GREP"), // Создание отчёта (report-service) RPRT нескольких видов, этот GREP - unloadingSession_LIMM("LIMM"),//Выгрузка в торговую систему остатков секции МКР + unloadingSession_LIMM("LIMM"),//Выгрузка в торговую систему остатков по деньгам + unloadingSession_LIMS("LIMS"),//Выгрузка в торговую систему остатков по бумагам unloadingSession_LIMF("LIMF"),//Выгрузка в торговую систему остатков Фондовой секции liquidationSession_LIQU("LIQU"),//Ликвидационная сессия по обязательтсвам участника startSession_STRM("STRM"),//Начало торговой сессии секции МКР From f5e2886ad63bc47372944c56143ea07c5d2b2e1f Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 15:13:43 +0300 Subject: [PATCH 13/60] http://jira.mfd.msk:8088/browse/CLS-271 TradingClearingRegistryService, fix for informationAccount --- ...adingClearingRegistryValidationConfig.java | 10 ++- .../TradingClearingRegistryService.java | 17 ++++- .../TradingClearingRegistryServiceTest.java | 65 +++++++++++++++++-- 3 files changed, 82 insertions(+), 10 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java index 32fb2f34f..28d06ed70 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -4,6 +4,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.ServiceStatusDictionary; @@ -40,6 +41,7 @@ public class TradingClearingRegistryValidationConfig { addImdg.accept(IMDGDistributedNames.Map_Company); addImdg.accept(IMDGDistributedNames.Map_ClearingAccount); addImdg.accept(IMDGDistributedNames.Map_DepoAccount); + addImdg.accept(IMDGDistributedNames.Map_InformationAccount); addImdg.accept(IMDGDistributedNames.Map_ServiceStatusDictionary); return new ValidatorImpl<>(context, IdPresentRule.instance("companyId", @@ -56,7 +58,13 @@ public class TradingClearingRegistryValidationConfig { IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class ); ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(moneyAccountId); - if (clearingAccount == null) return AccountError.AccountNotFound; + if (clearingAccount == null) { + Imdg informationAccountImdg = context.obtainMap( + IMDGDistributedNames.Map_InformationAccount, InformationAccount.class + ); + InformationAccount infoAccount = informationAccountImdg.getSingleObjectByID(moneyAccountId); + if (infoAccount == null) return AccountError.AccountNotFound; + } return null; }), FieldRequiredRule.instance("depoAccountId", diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index aaafb6972..9b092effa 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.account.errors.AccountError; @@ -26,6 +27,7 @@ import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.TradingClearingRegistryType; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.EnumMessage; @@ -47,6 +49,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final Imdg tradingClearingRegistryImdg; private final Imdg depoAccountImdg; private final Imdg clearingAccountImdg; + private final Imdg informationAccountImdg; private final Imdg accountImdg; private final Imdg companyImdg; @@ -77,6 +80,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini ); this.depoAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DepoAccount, DepoAccount.class); this.clearingAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingAccount, ClearingAccount.class); + this.informationAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class); this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; @@ -118,8 +122,11 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini DepoAccount depoAccount = req.getDepoAccountId() != null ? depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; Account depoAccountMain = depoAccount != null ? accountImdg.getSingleObjectByID(depoAccount.getAccountId()) : null; + InformationAccount infoAccount = null; ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); - Account clearingAccountMain = accountImdg.getSingleObjectByID(clearingAccount.getAccountId()); + if (clearingAccount == null) infoAccount = informationAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + Long clearingAccountId = clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); + Account clearingAccountMain = accountImdg.getSingleObjectByID(clearingAccountId); List activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); String status = null; @@ -152,8 +159,12 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini tradingClearingRegistry.setStatus(status); String tradingRegistryType; - if (depoAccount != null) tradingRegistryType = depoAccount.getDepoAccountType(); - else tradingRegistryType = clearingAccount.getClearingAccountType(); + if (depoAccount != null) { + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType(); + else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey(); + } tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); TradingClearingRegistryPurpose registryPurpose; diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java index 7704cf73b..4ac339059 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java @@ -15,6 +15,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.account.DepoAccount; +import ru.clearing.classes.statics.data.account.InformationAccount; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.clearing.platform.dictionary.ServiceStatusDictionary; @@ -31,6 +32,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingR import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryUpdateRequest; import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; +import ru.spcex.platform.enumeration.TradingClearingRegistryType; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; @@ -76,10 +78,15 @@ class TradingClearingRegistryServiceTest { private Imdg depoAccountImdg; private Long depoAccountId; + private Imdg informationAccountImdg; + private Long infoAccountId; + private Imdg accountImdg; private Long accountId; - static boolean oneNewRequestDone = false; + private Long account2Id; + + static int newRequestCnt = 0; @PostConstruct private void init() { @@ -102,6 +109,9 @@ class TradingClearingRegistryServiceTest { depoAccountImdg = hazelcastServiceTest.getImdg( IMDGDistributedNames.Map_DepoAccount, DepoAccount.class ); + informationAccountImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_InformationAccount, InformationAccount.class + ); ServiceStatusDictionary serviceStatusDictionary = new ServiceStatusDictionary(); serviceStatusDictionary.setCode(ServiceStatus.Active.getKey()); serviceStatusDictionary.setName(ServiceStatus.Active.getKey()); @@ -117,6 +127,8 @@ class TradingClearingRegistryServiceTest { account.setStatus(ServiceStatus.Active.getKey()); accountId = accountImdg.insert(account); + account2Id = accountImdg.insert(account); + DepoAccount depoAccount = new DepoAccount(); depoAccount.setAccountId(accountId); depoAccount.setDepoAccountType("DAT"); @@ -126,10 +138,14 @@ class TradingClearingRegistryServiceTest { clearingAccount.setAccountId(accountId); clearingAccount.setClearingAccountType("CAT"); clearingAccountId = clearingAccountImdg.insert(clearingAccount); + + InformationAccount informationAccount = new InformationAccount(); + informationAccount.setAccountId(account2Id); + infoAccountId = informationAccountImdg.insert(informationAccount); } @Test - void tradingClearingRegistryNew_moneyAccount() { + void tradingClearingRegistryNew_moneyAccount_clearingAccount() { TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); tradingClearingRegistryNewRequest.setCompanyId(companyId); tradingClearingRegistryNewRequest.setMoneyAccountId(clearingAccountId); @@ -146,7 +162,7 @@ class TradingClearingRegistryServiceTest { addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, - PARTITION + (oneNewRequestDone ? 1 : 0), + newRequestCnt, 0, jsonString); @@ -161,9 +177,46 @@ class TradingClearingRegistryServiceTest { TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); tradingClearingRegistryImdg.delete(resultNew); - oneNewRequestDone = true; + newRequestCnt++; } + @Test + void tradingClearingRegistryNew_moneyAccount_informationAccount() { + TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); + tradingClearingRegistryNewRequest.setCompanyId(companyId); + tradingClearingRegistryNewRequest.setMoneyAccountId(infoAccountId); + + TradingClearingRegistry predictableTradingClearingRegistry = new TradingClearingRegistry(); + predictableTradingClearingRegistry.setCompanyId(companyId); + predictableTradingClearingRegistry.setCode("0077MAT"); + predictableTradingClearingRegistry.setMoneyAccountId(infoAccountId); + predictableTradingClearingRegistry.setTradingClearingRegistryType(TradingClearingRegistryType.Owner_A.getKey()); + predictableTradingClearingRegistry.setTradingClearingRegistryPurpose(TradingClearingRegistryPurpose.M.getKey()); + predictableTradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String jsonString = getJsonStringForNew(tradingClearingRegistryNewRequest, 0L); + + addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), + Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, + newRequestCnt, + 0, + jsonString); + + waitingWhenAddedRecordAndCheckIt(0L, producer, producerRecord); + + TradingClearingRegistry resultNew = tradingClearingRegistryImdg.getAllValues().iterator().next(); + predictableTradingClearingRegistry.setId(resultNew.getId()); + predictableTradingClearingRegistry.setCode(predictableTradingClearingRegistry.getCode() + resultNew.getId()); + predictableTradingClearingRegistry.setUpdated(resultNew.getUpdated()); + predictableTradingClearingRegistry.setCreated(resultNew.getCreated()); + + TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); + tradingClearingRegistryImdg.delete(resultNew); + + newRequestCnt++; + } + + @Test void tradingClearingRegistryNew_depoAccount() { TradingClearingRegistryNewRequest tradingClearingRegistryNewRequest = new TradingClearingRegistryNewRequest(); @@ -184,7 +237,7 @@ class TradingClearingRegistryServiceTest { addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, - PARTITION + (oneNewRequestDone ? 1 : 0), + newRequestCnt, 0, jsonString); @@ -199,7 +252,7 @@ class TradingClearingRegistryServiceTest { TRADING_CLEARING_REGISTRY_MATCHER.assertMatch(resultNew, predictableTradingClearingRegistry); tradingClearingRegistryImdg.delete(resultNew); - oneNewRequestDone = true; + newRequestCnt++; } @Test From 654943ec3652e8b611eea20bc2c7f38702c6da69 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 18:19:32 +0300 Subject: [PATCH 14/60] http://jira.mfd.msk:8088/browse/CLS-271 --- .../clearing/account/errors/AccountError.java | 3 + .../TradingClearingRegistryService.java | 185 ++++++++++++++++-- 2 files changed, 176 insertions(+), 12 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java index 7a4b12852..dda968b42 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java @@ -12,6 +12,9 @@ public enum AccountError implements IErrorEnumId { CompanyNotFound(5013L), CompanyNotActive(5014L), InfoAccountAlreadyExist(5015L), + TradingClearingRegistryAlreadyExist(5016L), + DepoAccountNotFound(5017L), + MoneyAccountNotFound(5018L), ClearingCategoryNotFound(5019L), TradingClearingRegistryNotFound(5022L), ; diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index 9b092effa..2bfd55cf3 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -12,6 +12,7 @@ import ru.clearing.classes.statics.data.account.ClearingAccount; import ru.clearing.classes.statics.data.account.DepoAccount; import ru.clearing.classes.statics.data.account.InformationAccount; import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; import ru.spcex.clearing.account.errors.AccountError; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -25,18 +26,23 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.TradingClearingRegistryPurpose; import ru.spcex.platform.enumeration.TradingClearingRegistryType; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; import java.util.Arrays; +import java.util.Collection; import java.util.List; +import java.util.Map; import java.util.function.Function; @Service @@ -52,6 +58,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini private final Imdg informationAccountImdg; private final Imdg accountImdg; private final Imdg companyImdg; + private final Imdg relationImdg; private final Function tradingClearingRegistryUpdateRequestValidator; private final Function tradingClearingRegistryNewRequestValidator; @@ -83,6 +90,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini this.informationAccountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class); this.companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); this.accountImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); + this.relationImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); this.tradingClearingRegistryUpdateRequestValidator = tradingClearingRegistryUpdateRequestValidator; this.tradingClearingRegistryBlockRequestValidator = tradingClearingRegistryBlockRequestValidator; this.messageResolver = messageResolver; @@ -102,7 +110,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK, callbacks::put); } - public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { + public RequestInfoUpdate tradingClearingRegistryAutoNew(BaseRequest userRequest) { log.debug("TradingClearingRegistryNewRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -125,28 +133,128 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini InformationAccount infoAccount = null; ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); if (clearingAccount == null) infoAccount = informationAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); - Long clearingAccountId = clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); - Account clearingAccountMain = accountImdg.getSingleObjectByID(clearingAccountId); + Long accountId = clearingAccount != null ? clearingAccount.getAccountId() : infoAccount.getAccountId(); + Account accountMain = accountImdg.getSingleObjectByID(accountId); + + + // TODO: WELCOME TO HELL + // Проверка выглядит очень сложно и запутанно, потому что репортеры сами не до конца понимают, какая она должна быть. + // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и + // прочих методов сокращения кода + Relation relation = relationImdg.getSingleObjectByFieldValues(Map.of("consumerId", req.getCompanyId())); + if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(relation.getService())) { + TradingClearingRegistry registry = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (registry != null) { + String errMsg = messageResolver.resolve( + new EnumMessage(AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.getId()) + ); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) { + String errMsg = messageResolver.resolve(new EnumMessage(AccountError.DepoAccountNotFound, req.getCompanyId())); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + } else if (ru.spcex.platform.enumeration.Service.FOND.equalsByKey(relation.getService())) { + if (AccountType.Info.equalsByKey(accountMain.getStatus())) { + TradingClearingRegistry registry = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of( + "companyId", req.getCompanyId(), + "tradingClearingRegistryType", TradingClearingRegistryPurpose.M.getKey() + )); + if (registry != null) { + String errMsg = messageResolver.resolve( + new EnumMessage(AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.getId()) + ); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) { + String errMsg = messageResolver.resolve(new EnumMessage(AccountError.DepoAccountNotFound, req.getCompanyId())); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + } else if (AccountType.Clrn.equalsByKey(accountMain.getStatus())) { + ImdgPredicateBuilder imdgPredicateBuilder = tradingClearingRegistryImdg.predicateBuilder(); + ImdgPredicate predicate = imdgPredicateBuilder.and( + imdgPredicateBuilder.equals("companyId", req.getCompanyId()), + imdgPredicateBuilder.or( + imdgPredicateBuilder.equals("tradingClearingRegistryPurpose", TradingClearingRegistryPurpose.M.getKey()), + imdgPredicateBuilder.equals("tradingClearingRegistryPurpose", TradingClearingRegistryPurpose.C.getKey()) + ) + ); + Collection registry = tradingClearingRegistryImdg.getCollectionObjectsByPredicate(predicate); + if (!registry.isEmpty()) { + String errMsg = messageResolver.resolve( + new EnumMessage(AccountError.TradingClearingRegistryAlreadyExist, + req.getCompanyId(), + registry.iterator().next().getId()) + ); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + DepoAccount depoAccountForCheck = depoAccountImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); + if (depoAccountForCheck == null) { + String errMsg = messageResolver.resolve(new EnumMessage(AccountError.DepoAccountNotFound, req.getCompanyId())); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + } else if (AccountType.Depo.equalsByKey(accountMain.getStatus())) { + InformationAccount infoAccountForCheck = informationAccountImdg.getSingleObjectByFieldValues( + Map.of("companyId", req.getCompanyId()) + ); + ClearingAccount clearingAccountForCheck = clearingAccountImdg.getSingleObjectByFieldValues( + Map.of("companyId", req.getCompanyId()) + ); + if (infoAccountForCheck == null && clearingAccountForCheck == null) { + String errMsg = messageResolver.resolve( + new EnumMessage(AccountError.MoneyAccountNotFound, req.getCompanyId()) + ); + return new RequestInfoUpdate() + .setMessage(errMsg) + .setStatus(Status.Error) + .setId(userRequest.getId()); + } + } + } List activeStatuses = Arrays.asList(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey()); String status = null; if (depoAccountMain != null && depoAccountMain.getStatus() != null) { - if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(clearingAccountMain.getStatus())) + if (activeStatuses.contains(depoAccountMain.getStatus()) && activeStatuses.contains(accountMain.getStatus())) status = ServiceStatus.Active.getKey(); - if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + if (depoAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey()) || accountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) status = ServiceStatus.Blocked.getKey(); - if (depoAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + if (depoAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey()) || accountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) status = ServiceStatus.Suspended.getKey(); - if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + if (depoAccountMain.getStatus().equals(ServiceStatus.Closed.getKey()) || accountMain.getStatus().equals(ServiceStatus.Closed.getKey())) status = ServiceStatus.Closed.getKey(); - } else if (clearingAccountMain.getStatus() != null) { - if (activeStatuses.contains(clearingAccountMain.getStatus())) + } else if (accountMain.getStatus() != null) { + if (activeStatuses.contains(accountMain.getStatus())) status = ServiceStatus.Active.getKey(); - if (clearingAccountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) + if (accountMain.getStatus().equals(ServiceStatus.Blocked.getKey())) status = ServiceStatus.Blocked.getKey(); - if (clearingAccountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) + if (accountMain.getStatus().equals(ServiceStatus.Suspended.getKey())) status = ServiceStatus.Suspended.getKey(); - if (clearingAccountMain.getStatus().equals(ServiceStatus.Closed.getKey())) + if (accountMain.getStatus().equals(ServiceStatus.Closed.getKey())) status = ServiceStatus.Closed.getKey(); } if (status == null) { @@ -189,6 +297,59 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini return null; } + public RequestInfoUpdate tradingClearingRegistryNew(BaseRequest userRequest) { + log.debug("TradingClearingRegistryNewRequest received"); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, tradingClearingRegistryNewRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + + TradingClearingRegistryNewRequest req = userRequest.getRequestPayload(); + + Long id = tradingClearingRegistryImdg.nextIDSequenceFor(); + TradingClearingRegistry tradingClearingRegistry = new TradingClearingRegistry(); + tradingClearingRegistry.setId(id); + tradingClearingRegistry.setCompanyId(req.getCompanyId()); + tradingClearingRegistry.setMoneyAccountId(req.getMoneyAccountId()); + tradingClearingRegistry.setDepoAaccountId(req.getDepoAccountId()); + + DepoAccount depoAccount = req.getDepoAccountId() != null ? depoAccountImdg.getSingleObjectByID(req.getDepoAccountId()) : null; + ClearingAccount clearingAccount = clearingAccountImdg.getSingleObjectByID(req.getMoneyAccountId()); + + tradingClearingRegistry.setStatus(ServiceStatus.Active.getKey()); + + String tradingRegistryType; + if (depoAccount != null) { + tradingRegistryType = depoAccount.getDepoAccountType(); + } else { + if (clearingAccount != null) tradingRegistryType = clearingAccount.getClearingAccountType(); + else tradingRegistryType = TradingClearingRegistryType.Owner_A.getKey(); + } + tradingClearingRegistry.setTradingClearingRegistryType(tradingRegistryType); + + TradingClearingRegistryPurpose registryPurpose; + if (req.getDepoAccountId() != null) registryPurpose = TradingClearingRegistryPurpose.C; + else registryPurpose = TradingClearingRegistryPurpose.M; + tradingClearingRegistry.setTradingClearingRegistryPurpose(registryPurpose.getKey()); + + Company company = companyImdg.getSingleObjectByID(req.getCompanyId()); + String code = "%4s".formatted(company.getClearingCode()).replace(' ', '0'); + code += registryPurpose.getKey(); + if (registryPurpose == TradingClearingRegistryPurpose.C) code += tradingRegistryType + id; + else code += "AT" + id; + tradingClearingRegistry.setCode(code); + + Instant now = Instant.now(); + tradingClearingRegistry.setCreated(now); + tradingClearingRegistry.setUpdated(now); + + tradingClearingRegistryImdg.insert(tradingClearingRegistry); + + log.debug("successfully processed, id {}", id); + return null; + } + public RequestInfoUpdate tradingClearingRegistryUpdate(BaseRequest userRequest) { log.debug("TradingClearingRegistryUpdateRequest received"); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); From 65c235c01c3f4941d0c0febde0b5e4b6f3c50c16 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 18:28:32 +0300 Subject: [PATCH 15/60] http://jira.mfd.msk:8088/browse/CLS-265 auto request for TCR new --- .../account/service/ClearingAccountService.java | 12 +++++++++++- .../clearing/account/service/DepoAccountService.java | 12 +++++++++++- .../account/service/InformationAccountService.java | 12 +++++++++++- .../service/TradingClearingRegistryService.java | 6 +++++- .../clearing/platform/messaging/domain/Consts.java | 1 + 5 files changed, 39 insertions(+), 4 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java index a4ceddaa6..8b6779baf 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java @@ -16,9 +16,11 @@ import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClearingAccountNewRequest; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClearingAccountUpdateRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; 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.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; @@ -38,6 +40,7 @@ import java.util.function.Function; @Service public class ClearingAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final AccountService accountService; private final ValidationHelper validationHelper; private final ImdgProvider imdgProvider; @@ -50,6 +53,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin @Autowired public ClearingAccountService(Consumer kafkaQueue, Producer kafkaResponseQueue, + KafkaSender kafkaSender, AccountService accountService, ValidationHelper validationHelper, ImdgProvider imdgProvider, @@ -59,6 +63,7 @@ public class ClearingAccountService extends QueueConsumer implements Initializin @Qualifier("clearingAccountUpdateRequestValidator") Function clearingAccountUpdateRequestValidator) { super(kafkaQueue, kafkaResponseQueue); + this.kafkaSender = kafkaSender; this.accountService = accountService; this.validationHelper = validationHelper; this.imdgProvider = imdgProvider; @@ -104,10 +109,11 @@ public class ClearingAccountService extends QueueConsumer implements Initializin ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); boolean txOk = false; imdgTransaction.beginTransaction(); + ClearingAccount clearingAccount = null; try { accountId = accountImdg.insert(account); - ClearingAccount clearingAccount = new ClearingAccount(); + clearingAccount = new ClearingAccount(); clearingAccount.setCompanyId(req.getCompanyId()); clearingAccount.setAccountId(accountId); clearingAccount.setClearingAccountType(req.getClearingAccountType()); @@ -116,6 +122,10 @@ public class ClearingAccountService extends QueueConsumer implements Initializin } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setMoneyAccountId(accountId); + request.setCompanyId(clearingAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new clearing account id {}, account id {}", clearingAccountId, accountId); } else { // todo выяснить, что возвращать из метода в этой ситуации diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java index 719820108..f8199ba29 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java @@ -13,8 +13,10 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.DepoAccountNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; @@ -30,6 +32,7 @@ import java.util.function.Function; public class DepoAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final ValidationHelper validationHelper; private final ImdgProvider imdgProvider; private final AccountService accountService; @@ -39,12 +42,14 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea public DepoAccountService(Consumer kafkaQueue, Producer kafkaProducer, + KafkaSender kafkaSender, ValidationHelper validationHelper, ImdgProvider imdgProvider, AccountService accountService, @Qualifier("depoAccountNewRequestValidator") Function depoAccountNewRequestValidator) { super(kafkaQueue, kafkaProducer); + this.kafkaSender = kafkaSender; this.validationHelper = validationHelper; this.imdgProvider = imdgProvider; this.accountService = accountService; @@ -86,10 +91,11 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea ImdgTransaction imdgTransaction = imdgProvider.newTransaction(); boolean txOk = false; imdgTransaction.beginTransaction(); + DepoAccount depoAccount = null; try { accountId = accountImdg.insert(account); - DepoAccount depoAccount = new DepoAccount(); + depoAccount = new DepoAccount(); depoAccount.setCompanyId(req.getCompanyId()); depoAccount.setAccountId(accountId); depoAccount.setDepoAccountType(req.getDepoAccountType()); @@ -98,6 +104,10 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setDepoAccountId(accountId); + request.setCompanyId(depoAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new depo account id {}, account id {}", depoAccountId, accountId); } else { // todo выяснить, что возвращать из метода в этой ситуации diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java index 5bb94636b..4b96243ae 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java @@ -15,9 +15,11 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.InformationAccountNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.registry.TradingClearingRegistryNewRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; 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.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.AccountType; import ru.spcex.platform.enumeration.ServiceStatus; @@ -37,6 +39,7 @@ import java.util.function.Function; @Service public class InformationAccountService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); + private final KafkaSender kafkaSender; private final IMessageResolver messageResolver; private final ImdgProvider imdgProvider; private final ValidationHelper validationHelper; @@ -48,6 +51,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali @Autowired public InformationAccountService(Consumer kafkaQueue, Producer kafkaResponseQueue, + KafkaSender kafkaSender, IMessageResolver messageResolver, ImdgProvider imdgProvider, ValidationHelper validationHelper, @@ -55,6 +59,7 @@ public class InformationAccountService extends QueueConsumer implements Initiali @Qualifier("informationAccountNewRequestValidator") Function infoAccountNewRequestValidator) { super(kafkaQueue, kafkaResponseQueue); + this.kafkaSender = kafkaSender; this.messageResolver = messageResolver; this.imdgProvider = imdgProvider; this.validationHelper = validationHelper; @@ -117,10 +122,11 @@ public class InformationAccountService extends QueueConsumer implements Initiali boolean txOk = false; Long informationAccountId = -1L; Long accountId = -1L; + InformationAccount informationAccount = null; try { accountId = accountImdg.insert(account); - InformationAccount informationAccount = new InformationAccount(); + informationAccount = new InformationAccount(); informationAccount.setId(newId); informationAccount.setAccountId(accountId); informationAccount.setClearingAccountId(anltAccount.getId()); @@ -130,6 +136,10 @@ public class InformationAccountService extends QueueConsumer implements Initiali } finally { if (txOk) { imdgTransaction.commitTransaction(); + TradingClearingRegistryNewRequest request = new TradingClearingRegistryNewRequest(); + request.setMoneyAccountId(informationAccountId); + request.setCompanyId(informationAccount.getCompanyId()); + kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new information account id {}, new account id {}", informationAccountId, accountId); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index 2bfd55cf3..5d03d16a6 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -99,6 +99,9 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini @Override public void afterPropertiesSet() throws Exception { init(); + callback(TradingClearingRegistryNewRequest.class) + .setConsumer(this::tradingClearingRegistryAutoNew) + .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, callbacks::put); callback(TradingClearingRegistryNewRequest.class) .setConsumer(this::tradingClearingRegistryNew) .forDestination(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_NEW, callbacks::put); @@ -140,7 +143,8 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini // TODO: WELCOME TO HELL // Проверка выглядит очень сложно и запутанно, потому что репортеры сами не до конца понимают, какая она должна быть. // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и - // прочих методов сокращения кода + // прочих методов сокращения кода. В дальнейшем, после тестирования и окончательного выяснения вида проверки, + // её стоит вынести на этап валидации запроса. Relation relation = relationImdg.getSingleObjectByFieldValues(Map.of("consumerId", req.getCompanyId())); if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(relation.getService())) { TradingClearingRegistry registry = tradingClearingRegistryImdg.getSingleObjectByFieldValues(Map.of("companyId", req.getCompanyId())); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index c250e2a6e..bdc985908 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -82,6 +82,7 @@ public interface Consts { String DESTINATION_CLIENT_CODE_DELETE = "client-code-delete"; String DESTINATION_TRADING_CLEARING_REGISTRY_NEW = "trading-clearing-registry-new"; + String DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW = "trading-clearing-registry-auto-new"; String DESTINATION_TRADING_CLEARING_REGISTRY_UPDATE = "trading-clearing-registry-update"; String DESTINATION_TRADING_CLEARING_REGISTRY_BLOCK = "trading-clearing-registry-block"; From 8d893d74cab3f81b685ca18b03bfd077b5b98002 Mon Sep 17 00:00:00 2001 From: akulikov Date: Fri, 5 May 2023 18:36:14 +0300 Subject: [PATCH 16/60] http://jira.mfd.msk:8088/browse/CLS-265 auto request for TCR new --- .../account/service/TradingClearingRegistryServiceTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java index 4ac339059..8dfb3495e 100644 --- a/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java +++ b/clearing-parent/account-service/src/test/java/ru/spcex/clearing/account/service/TradingClearingRegistryServiceTest.java @@ -293,7 +293,7 @@ class TradingClearingRegistryServiceTest { CommonDeleteRequest tradingClearingRegistryDeleteRequest = new CommonDeleteRequest(); tradingClearingRegistryDeleteRequest.setId(registryId); - String jsonString = getJsonStringForUPDATE(tradingClearingRegistryDeleteRequest, 0); + String jsonString = getJsonStringForDELETE(tradingClearingRegistryDeleteRequest, 0); //ACT addRecordToKafka((MockConsumer) tradingClearingRegistryService.getConsumer(), From a37fea506195002d72a9cd049178ee4f91005aa7 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 5 May 2023 20:17:35 +0300 Subject: [PATCH 17/60] =?UTF-8?q?company-service=20http://jira.mfd.msk:808?= =?UTF-8?q?8/browse/CLS-284=20=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0?= =?UTF-8?q?=D0=BB=20=D0=BA=D1=80=D0=BE=D0=BC=D0=B5=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validation/RelationValidationConfig.java | 134 +++++++++++ .../config/validation/ValidationConfig.java | 2 + .../clearing/company/error/CompanyErrors.java | 1 + .../company/service/RelationService.java | 206 +++++++++++++++-- .../company/service/RelationServiceTest.java | 214 ++++++++++++++++++ .../platform/messaging/domain/Consts.java | 2 + .../cud/company/RelationNewRequest.java | 46 ++++ 7 files changed, 588 insertions(+), 17 deletions(-) create mode 100644 clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java create mode 100644 clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/RelationNewRequest.java diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java new file mode 100644 index 000000000..959f62491 --- /dev/null +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java @@ -0,0 +1,134 @@ +package ru.spcex.clearing.company.config.validation; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.clearing.platform.dictionary.ClearingCategoryDictionary; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; +import ru.spcex.clearing.company.error.CompanyErrors; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationUpdateRequest; +import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule; +import ru.spcex.clearing.validation.common.rules.IdPresentRule; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.validation.ImdgValidationContext; +import ru.spcex.platform.utils.validation.IValidator; +import ru.spcex.platform.utils.validation.ValidatorImpl; + +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Function; + +@Configuration +public class RelationValidationConfig { + + @Bean("relationNewRequestValidation") + public Function relationNewRequestValidator( + Map> imdgForValidation + ) { + return relationNewRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(relationNewRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Company); + addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + return new ValidatorImpl<>(context, + IdPresentRule.instance("companyId", + RelationNewRequest::getCompanyId, + IMDGDistributedNames.Map_Company, + Company.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.CompanyNotFound), + DictionaryPresentRule.instance("documentType", + RelationNewRequest::getClearingMemberCategory, + IMDGDistributedNames.Map_ClearingCategoryDictionary, + ClearingCategoryDictionary.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.WrongFieldValue), + DictionaryPresentRule.instance("serviceStatus", + RelationNewRequest::getServiceStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.WrongFieldValue) + ); + }; + } + + @Bean("relationUpdateRequestValidation") + public Function relationUpdateRequestValidator( + Map> imdgForValidation + ) { + return relationUpdateRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(relationUpdateRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Relation); + addImdg.accept(IMDGDistributedNames.Map_Company); +// addImdg.accept(IMDGDistributedNames.Map_ClearingCategoryDictionary); + addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + RelationUpdateRequest::getId, + IMDGDistributedNames.Map_Relation, + Relation.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.RelationNotFound, + relation -> { + if (relation.getConsumerId() == null) return null; + Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); + Company company = companyImdg.getSingleObjectByID(relation.getConsumerId()); + if (company == null) { + return CompanyErrors.CompanyNotFound; + } else { + return null; + } + }), +// IdPresentRule.instance("companyId", +// RelationUpdateRequest::getCompanyId, +// IMDGDistributedNames.Map_Company, +// Company.class, +// CompanyErrors.RequiredFieldEmpty, +// CompanyErrors.CompanyNotFound), +// DictionaryPresentRule.instance("documentType", +// RelationUpdateRequest::getClearingMemberCategory, +// IMDGDistributedNames.Map_ClearingCategoryDictionary, +// ClearingCategoryDictionary.class, +// CompanyErrors.RequiredFieldEmpty, +// CompanyErrors.WrongFieldValue), + DictionaryPresentRule.instance("serviceStatus", + RelationUpdateRequest::getServiceStatus, + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.WrongFieldValue) + ); + }; + } + + @Bean("relationDeleteRequestValidation") + public Function relationDeleteRequestValidator( + Map> imdgForValidation + ) { + return relationDeleteRequest -> { + ImdgValidationContext context = new ImdgValidationContext<>(); + context.setValidatedObject(relationDeleteRequest); + Consumer addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s)); + addImdg.accept(IMDGDistributedNames.Map_Relation); + return new ValidatorImpl<>(context, + IdPresentRule.instance("id", + CommonDeleteRequest::getId, + IMDGDistributedNames.Map_Relation, + Relation.class, + CompanyErrors.RequiredFieldEmpty, + CompanyErrors.RelationNotFound + ) + ); + }; + } +} diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java index cd6671cf1..c586e2fd7 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/ValidationConfig.java @@ -7,6 +7,7 @@ import ru.clearing.classes.statics.data.account.ClientCode; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; +import ru.clearing.classes.statics.data.company.relation.Relation; import ru.clearing.classes.statics.data.profile.Contact; import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; @@ -37,6 +38,7 @@ public class ValidationConfig { addImdg.accept(IMDGDistributedNames.Map_DocumentTypeDictionary, DocumentTypeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_ContactTypeDictionary, ContactTypeDictionary.class); addImdg.accept(IMDGDistributedNames.Map_Contact, Contact.class); + addImdg.accept(IMDGDistributedNames.Map_Relation, Relation.class); addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class); addImdg.accept(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java index 3979ab8b9..a7e4b232d 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java @@ -25,6 +25,7 @@ public enum CompanyErrors implements IErrorEnumId { EditContactType(3021L), // Тип контакта компании %s не может быть изменен. TradingClearingRegistryNotFound(3022L), // ТКР с %s не найден AccountNotFound(3023L), // Счет %s не найден + RelationNotFound(3026L), // Запись о договорных отношениях не найдена ; private final Long id; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java index ca0c4349f..882abff8c 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java @@ -6,28 +6,35 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; -import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.spcex.clearing.company.error.CompanyErrors; +import ru.spcex.clearing.company.util.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentNewRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUpdateRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.*; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; +import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; +import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.ServiceProduct; import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; 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.ImdgTransaction; import ru.spcex.platform.utils.error.ValidationException; +import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; import java.util.Collection; import java.util.Objects; +import java.util.function.Function; @Service public class RelationService extends QueueConsumer implements InitializingBean { @@ -35,38 +42,203 @@ public class RelationService extends QueueConsumer implements InitializingBean { protected final Logger log = LoggerFactory.getLogger(getClass()); protected ImdgProvider imdgProvider; + protected ImdgId idSequence; + protected Imdg relationMap; + protected Imdg companyMap; protected AccountNotificationHelper accountNotification; + protected UserRoleVerification userRoleVerification; + protected RequestHelper requestHelper; + + protected ValidationHelper validationHelper; + private Function relationNewRequestValidator; + private Function relationUpdateRequestValidator; + private Function relationDeleteRequestValidator; @Autowired public RelationService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, + RequestHelper requestHelper, + + UserRoleVerification userRoleVerification, + ValidationHelper validationHelper, + @Qualifier("relationNewRequestValidation") Function relationNewRequestValidator, + @Qualifier("relationUpdateRequestValidation") Function relationUpdateRequestValidator, + @Qualifier("relationDeleteRequestValidation") Function relationDeleteRequestValidator, AccountNotificationHelper accountNotification) { super(kafkaQueue, kafkaProducer); this.imdgProvider = imdgProvider; + this.idSequence = imdgProvider.getImdgIdGenerator(); this.accountNotification = accountNotification; + this.userRoleVerification = userRoleVerification; -// this.requestHelper = requestHelper.setLogger(log); + this.validationHelper = validationHelper; + this.relationNewRequestValidator = relationNewRequestValidator; + this.relationUpdateRequestValidator = relationUpdateRequestValidator; + this.relationDeleteRequestValidator = relationDeleteRequestValidator; + + relationMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.requestHelper = requestHelper.setLogger(log); } + // --- external API --- @Override public void afterPropertiesSet() { // this.profileDocumentMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); // this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); -//todo all CLS-284 -// callback(ProfileDocumentNewRequest.class) -// .setFunction(this::profileDocumentNew) -// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_NEW, callbacks::put); -// callback(ProfileDocumentUpdateRequest.class) -// .setFunction(this::profileDocumentUpdate) -// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_UPDATE, callbacks::put); -// callback(CommonDeleteRequest.class) -// .setFunction(this::profileDocumentDelete) -// .forDestination(Consts.DESTINATION_PROFILE_DOCUMENT_DELETE, callbacks::put); -// init(); + + callback(RelationNewRequest.class) + .setFunction(this::relationNew) + .forDestination(Consts.DESTINATION_RELATION_NEW, callbacks::put); + callback(RelationUpdateRequest.class) + .setFunction(this::relationUpdate) + .forDestination(Consts.DESTINATION_RELATION_UPDATE, callbacks::put); + callback(CommonDeleteRequest.class) + .setFunction(this::relationDelete) + .forDestination(Consts.DESTINATION_RELATION_DELETE, callbacks::put); + init(); } + private synchronized RequestInfoUpdate relationNew(BaseRequest relationNewBaseRequest) { + RelationNewRequest req = relationNewBaseRequest.getRequestPayload(); + log.debug("relation-new request received, BaseRequest.id = {}", relationNewBaseRequest.getId()); + { // Валидация + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationNewBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(relationNewBaseRequest, relationNewRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + } + + + Company company = companyMap.getSingleObjectByID(req.getCompanyId()); + +// if (ClearingCategory.B.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.I.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) +// ) { +// /* +// relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=MKR, +// если запись создана и serviceStatus=CLOS, +// изменить запись в relation согласно описанию с тегом При возобнолвении +// , иначе вернуть ошибку (3024)"Договорные отношения %s в секции МКР уже созданы." +// */ +// } +// if (ClearingCategory.C.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.F.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) +// ) { +// /* +//проверить по relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=FOND, +//если запись создана и serviceStatus=CLOS, изменить запись в relation согласно описанию с тегом При возобнолвении, +// иначе вернуть ошибку (3025)"Договорные отношения %s на фондовой секции уже созданы." */ +// } + Relation relation = new Relation(); + relation.setId(idSequence.nextId()); + relation.setCreated(Instant.now()); + relation.setUpdated(relation.getCreated()); + + relation.setConsumerId(req.getCompanyId()); + relation.setSupplierId(SPVB_ID); // 1 СПВБ + if (req.getServiceStatus() != null) { + relation.setServiceStatus(req.getServiceStatus()); + } else { + log.warn("Request has no status. Set status from company[{}].status={}", company.getId(), company.getWorkflowStatus()); + relation.setServiceStatus(company.getWorkflowStatus()); + } + relation.setService(ru.spcex.platform.enumeration.Service.MKR.getKey()); // MKR + relation.setServiceProduct(ServiceProduct.ZERO.getKey()); + relation.setComment(req.getComment()); + + relationMap.insert(relation); + log.debug("New Relation[{}] created.", relation.getId()); + + return null; + } + + + private synchronized RequestInfoUpdate relationUpdate(BaseRequest relationUpdateBaseRequest) { + RelationUpdateRequest req = relationUpdateBaseRequest.getRequestPayload(); + log.debug("relation-update request received, BaseRequest.id = {}", relationUpdateBaseRequest.getId()); + { // Валидация + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationUpdateBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(relationUpdateBaseRequest, relationUpdateRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + } + + + //Company company = companyMap.getSingleObjectByID(req.getCompanyId()); +// +// if (ClearingCategory.B.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.I.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) +// ) { +// /* +// relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=MKR, +// если запись создана и serviceStatus=CLOS, +// изменить запись в relation согласно описанию с тегом При возобнолвении +// , иначе вернуть ошибку (3024)"Договорные отношения %s в секции МКР уже созданы." +// */ +// } +// if (ClearingCategory.C.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.F.equalsByKey(req.getClearingMemberCategory()) +// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) +// ) { +// /* +//проверить по relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=FOND, +//если запись создана и serviceStatus=CLOS, изменить запись в relation согласно описанию с тегом При возобнолвении, +// иначе вернуть ошибку (3025)"Договорные отношения %s на фондовой секции уже созданы." */ +// } + + Relation relation = relationMap.getSingleObjectByID(req.getId()); + relation.setUpdated(relation.getCreated()); + + if (req.getServiceStatus() != null) { + relation.setServiceStatus(req.getServiceStatus()); + } else { +// relation.setServiceStatus(company.getStatus()); + } + relation.setComment(req.getComment()); + + relationMap.insert(relation); + log.debug("Update Relation[{}] created.", relation.getId()); + + return null; + } + + + private synchronized RequestInfoUpdate relationDelete(BaseRequest relationDeleteBaseRequest) { + CommonDeleteRequest req = relationDeleteBaseRequest.getRequestPayload(); + log.debug("relation-delete request received, BaseRequest.id = {}", relationDeleteBaseRequest.getId()); + { // Валидация + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(relationDeleteBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(relationDeleteBaseRequest, relationDeleteRequestValidator); + if (requestInfoUpdate != null) return requestInfoUpdate; + } + + + Relation relation = relationMap.getSingleObjectByID(req.getId()); + if (WorkflowStatus.Blocked.equalsByKey(relation.getServiceStatus())) { + log.warn("Relation {} already blocked.", relation.getId()); + } else { + relation.setUpdated(relation.getCreated()); + relation.setServiceStatus(WorkflowStatus.Blocked.getKey()); + + relationMap.insert(relation); + log.debug("Relation[{}] block.", relation.getId()); + } + return null; + } + + + // --- internal API --- + protected void createNewRelation(ImdgTransaction transaction, Company company) { Relation relation = new Relation(); // relation.setId(idSequence.nextId()); @@ -79,7 +251,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { relation.setService(ru.spcex.platform.enumeration.Service.MKR.getKey()); // MKR relation.setServiceProduct(ServiceProduct.ZERO.getKey()); log.debug("New Relation[{}] created.", relation.getId()); - Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); relationMap.insert(relation); } @@ -103,7 +275,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { } } - protected void onChangeWorkflowStatusOnlyRelationChange(ImdgTransaction transaction, Company company, String newStatus) throws ValidationException { + protected synchronized void onChangeWorkflowStatusOnlyRelationChange(ImdgTransaction transaction, Company company, String newStatus) throws ValidationException { assert Objects.equals(newStatus, company.getWorkflowStatus()); String query = String.format("consumerId=%s", company.getId()); Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java new file mode 100644 index 000000000..8bebb24f7 --- /dev/null +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/RelationServiceTest.java @@ -0,0 +1,214 @@ +package ru.spcex.clearing.company.service; + +import org.apache.kafka.clients.consumer.MockConsumer; +import org.apache.kafka.clients.producer.MockProducer; +import org.apache.kafka.clients.producer.ProducerRecord; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import ru.clearing.classes.statics.data.company.Company; +import ru.clearing.classes.statics.data.company.relation.Relation; +import ru.clearing.platform.dictionary.ClearingCategoryDictionary; +import ru.clearing.platform.dictionary.WorkflowStatusDictionary; +import ru.spcex.clearing.company.config.BeanConfiguration; +import ru.spcex.clearing.company.config.validation.RelationValidationConfig; +import ru.spcex.clearing.company.config.validation.ValidationConfig; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.platform.messaging.domain.Consts; +import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationUpdateRequest; +import ru.spcex.clearing.test.MatcherFactory; +import ru.spcex.clearing.test.TestUtils; +import ru.spcex.clearing.test.config.ImdgTestConfig; +import ru.spcex.clearing.test.config.KafkaTestConfig; +import ru.spcex.platform.enumeration.ClearingCategory; +import ru.spcex.platform.enumeration.WorkflowStatus; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; + +import javax.annotation.PostConstruct; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; +import static ru.spcex.clearing.test.MatcherFactory.usingIgnoringFieldsComparator; +import static ru.spcex.clearing.test.TestUtils.*; +import static ru.spcex.clearing.test.config.ImdgTestConfig.currentID; +import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = { + BeanConfiguration.class, + ValidationConfig.class, + RelationService.class, + AccountNotificationHelper.class, + RelationValidationConfig.class, + KafkaTestConfig.class, + ImdgTestConfig.class}) +class RelationServiceTest { + + public static final MatcherFactory.Matcher RELATION_MATCHER = usingIgnoringFieldsComparator("created", "updated"); + private static final int PARTITION = 0; + + private static final Long ID = currentID.getAndIncrement(); + @Autowired + RelationService relationService; + @Autowired + @Qualifier("hazelcastServiceTest") + private ImdgProvider hazelcastServiceTest; + private Imdg relationMap; + private Imdg companyMap; + + @Captor + private ArgumentCaptor producerRecord; + @SpyBean + private MockProducer mockProducer; + + private long COMPANY_ID; + + private final long RELATION_ID = ID; + + @PostConstruct + private void init() { + waitAvailableImdgProviderAndAddAdminWithDefaultId(); + this.relationMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); + this.companyMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_Company, Company.class); + + Company testCompany = new Company(); + testCompany.setWorkflowStatus(WorkflowStatus.Active.getKey()); + COMPANY_ID = companyMap.insert(testCompany); + + Imdg workflowStatusDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_WorkflowStatusDictionary, + WorkflowStatusDictionary.class + ); + WorkflowStatusDictionary workflowStatusDictionary = new WorkflowStatusDictionary(); + workflowStatusDictionary.setId(1L); + workflowStatusDictionary.setCode(WorkflowStatus.Active.getKey()); + workflowStatusDictionary.setName("active"); + workflowStatusDictionaryImdg.insert(workflowStatusDictionary); + workflowStatusDictionary = new WorkflowStatusDictionary(); + workflowStatusDictionary.setId(2L); + workflowStatusDictionary.setCode(WorkflowStatus.Blocked.getKey()); + workflowStatusDictionary.setName("not active"); + workflowStatusDictionaryImdg.insert(workflowStatusDictionary); + + Imdg clearingCategoryDictionaryImdg = hazelcastServiceTest.getImdg( + IMDGDistributedNames.Map_ClearingCategoryDictionary, + ClearingCategoryDictionary.class + ); + ClearingCategoryDictionary clearingCategoryDictionary = new ClearingCategoryDictionary(); + clearingCategoryDictionary.setId(1L); + clearingCategoryDictionary.setCode(ClearingCategory.I.getKey()); + clearingCategoryDictionary.setName("I"); + clearingCategoryDictionaryImdg.insert(clearingCategoryDictionary); + + TestUtils.FutureRecordMetadata future = spy(TestUtils.FutureRecordMetadata.class); + doReturn(future).when(mockProducer).send(producerRecord.capture()); + } + + + @Test + void newRelation() { + //ARRANGE + RelationNewRequest relationNewRequest = new RelationNewRequest(); + relationNewRequest.setCompanyId(COMPANY_ID); + relationNewRequest.setServiceStatus("ACTV"); + relationNewRequest.setClearingMemberCategory("I"); + relationNewRequest.setComment(null); + + Relation predictableRelation = new Relation(); + predictableRelation.setId(RELATION_ID); + predictableRelation.setConsumerId(relationNewRequest.companyId); + predictableRelation.setService("MKR"); + predictableRelation.setServiceProduct("ZERO"); + predictableRelation.setSupplierId(1L); + predictableRelation.setServiceStatus("ACTV"); + + //ACT + String jsonString = getJsonStringForNew(relationNewRequest, ID); + + addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_NEW, PARTITION, 0, jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); + Relation resultNew = relationMap.getSingleObjectBySQL("serviceStatus=ACTV"); // String.format("supplierId = %d", COMPANY_ID)); + predictableRelation.setId(resultNew.getId()); + RELATION_MATCHER.assertMatch(resultNew, predictableRelation); + } + + @Test + void updateRelation() { + //ARRANGE + Relation existsRelation = new Relation(); + existsRelation.setId(ID); + existsRelation.setConsumerId(COMPANY_ID); + existsRelation.setSupplierId(1L); + existsRelation.setComment("Test ONE"); + existsRelation.setServiceStatus("ACTV"); + existsRelation.setServiceProduct("PROD"); + existsRelation.setService("MKR"); + relationMap.insert(existsRelation); + + Relation predictableRelation = new Relation(); + predictableRelation.setId(ID); + predictableRelation.setConsumerId(COMPANY_ID); + predictableRelation.setSupplierId(1L); + predictableRelation.setComment("Another Me - ONE"); + predictableRelation.setServiceStatus("ACTV"); + predictableRelation.setServiceProduct("PROD"); + predictableRelation.setService("MKR"); + + RelationUpdateRequest relationUpdateRequest = new RelationUpdateRequest(); + relationUpdateRequest.setId(RELATION_ID); + relationUpdateRequest.setComment("Another Me - ONE"); + relationUpdateRequest.setServiceStatus("ACTV"); + + //ACT + String jsonString = getJsonStringForUpdate(relationUpdateRequest, ID); + + addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_UPDATE, PARTITION, 0, jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); + Relation resultUpdate = relationMap.getSingleObjectBySQL(String.format("id = %d", RELATION_ID)); +// predictableProfileDocument.setId(resultUpdate.getId()); + RELATION_MATCHER.assertMatch(resultUpdate, predictableRelation); + } + + + @Test + void deleteProfileDocument() { + //ARRANGE + Relation existsRelation = new Relation(); + existsRelation.setId(ID); + existsRelation.setConsumerId(COMPANY_ID); + existsRelation.setSupplierId(1L); + existsRelation.setComment("Test ONE"); + existsRelation.setServiceStatus("ACTV"); + existsRelation.setServiceProduct("PROD"); + existsRelation.setService("MKR"); + relationMap.insert(existsRelation); + + CommonDeleteRequest profileDocumentDeleteRequest = new CommonDeleteRequest(); + profileDocumentDeleteRequest.setId(RELATION_ID); + + //ACT + String jsonString = getJsonStringForUpdate(profileDocumentDeleteRequest, ID); + + addRecordToKafka((MockConsumer) relationService.getConsumer(), Consts.DESTINATION_RELATION_DELETE, PARTITION, 0, jsonString); + + //ASSERT + waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); + Relation resultUpdate = relationMap.getSingleObjectByID(RELATION_ID); +// Assertions.assertNull(resultUpdate); + assertEquals(WorkflowStatus.Blocked.getKey(), resultUpdate.getServiceStatus()); + } +} \ No newline at end of file diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java index c00ea09a8..2d0f0cae6 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/Consts.java @@ -72,7 +72,9 @@ public interface Consts { @Deprecated String ACCOUNT_NEW_SDF01 = "account-new-sdf01"; + String DESTINATION_RELATION_NEW = "relation-new"; String DESTINATION_RELATION_UPDATE = "relation-update"; + String DESTINATION_RELATION_DELETE = "relation-delete"; String DESTINATION_PROFILE_DOCUMENT_NEW = "profile-document-new"; String DESTINATION_PROFILE_DOCUMENT_UPDATE = "profile-document-update"; String DESTINATION_PROFILE_DOCUMENT_DELETE = "profile-document-delete"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/RelationNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/RelationNewRequest.java new file mode 100644 index 000000000..9e630303a --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/RelationNewRequest.java @@ -0,0 +1,46 @@ +package ru.spcex.clearing.platform.messaging.domain.cud.company; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class RelationNewRequest { + @JsonProperty + public Long companyId; + @JsonProperty + private String serviceStatus; + @JsonProperty + private String clearingMemberCategory; + @JsonProperty + private String comment; + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long companyId) { + this.companyId = companyId; + } + + public String getServiceStatus() { + return serviceStatus; + } + + public void setServiceStatus(String serviceStatus) { + this.serviceStatus = serviceStatus; + } + + public String getClearingMemberCategory() { + return clearingMemberCategory; + } + + public void setClearingMemberCategory(String clearingMemberCategory) { + this.clearingMemberCategory = clearingMemberCategory; + } + + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } +} From ba59d1cc801e28ce6819d4b94c73610a1d61b788 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Tue, 9 May 2023 20:32:06 +0300 Subject: [PATCH 18/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-276?= =?UTF-8?q?=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=B5=20=D0=B2=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/lim/exporter/services/MoneyExporterService.java | 3 ++- .../lim/exporter/services/SecurityExporterService.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index 2e6272f7e..7e3d6a277 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -1,6 +1,7 @@ package ru.spcex.clearing.lim.exporter.services; import org.springframework.stereotype.Service; +import ru.spcex.clearing.lim.exporter.config.SFTPConfig; import java.util.Arrays; import java.util.Collection; @@ -9,7 +10,7 @@ import java.util.List; @Service public class MoneyExporterService extends AbstractExporterService { - public MoneyExporterService() { + public MoneyExporterService(SFTPConfig.LimGateway gateway) { super(gateway); } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java index 59a8dd69a..913fcc793 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java @@ -1,6 +1,7 @@ package ru.spcex.clearing.lim.exporter.services; import org.springframework.stereotype.Service; +import ru.spcex.clearing.lim.exporter.config.SFTPConfig; import java.util.Arrays; import java.util.Collection; @@ -8,7 +9,7 @@ import java.util.List; @Service public class SecurityExporterService extends AbstractExporterService { - public SecurityExporterService() { + public SecurityExporterService(SFTPConfig.LimGateway gateway) { super(gateway); } From 84870fb64f5a6dfa52f83998fdffe2cbd61c2960 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 12:16:41 +0300 Subject: [PATCH 19/60] =?UTF-8?q?company-service=20http://jira.mfd.msk:808?= =?UTF-8?q?8/browse/CLS-284=20=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0?= =?UTF-8?q?=D0=BB.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/company/error/CompanyErrors.java | 2 + .../company/service/RelationService.java | 126 +++++++++++------- 2 files changed, 78 insertions(+), 50 deletions(-) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java index a7e4b232d..1c5b42c49 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/error/CompanyErrors.java @@ -25,6 +25,8 @@ public enum CompanyErrors implements IErrorEnumId { EditContactType(3021L), // Тип контакта компании %s не может быть изменен. TradingClearingRegistryNotFound(3022L), // ТКР с %s не найден AccountNotFound(3023L), // Счет %s не найден + ClearingMemberCategoryOnMKRAlreadyExist(3024L), // Договорные отношения %s в секции МКР уже созданы. + ClearingMemberCategoryOnFONDAlreadyExist(3025L), // Договорные отношения %s на фондовой секции уже созданы. RelationNotFound(3026L), // Запись о договорных отношениях не найдена ; private final Long id; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java index 882abff8c..ab47be9ad 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java @@ -21,6 +21,7 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; +import ru.spcex.platform.enumeration.ClearingCategory; import ru.spcex.platform.enumeration.ServiceProduct; import ru.spcex.platform.enumeration.ServiceStatus; import ru.spcex.platform.enumeration.WorkflowStatus; @@ -33,6 +34,7 @@ import ru.spcex.platform.utils.validation.IValidator; import java.time.Instant; import java.util.Collection; +import java.util.Map; import java.util.Objects; import java.util.function.Function; @@ -115,38 +117,48 @@ public class RelationService extends QueueConsumer implements InitializingBean { Company company = companyMap.getSingleObjectByID(req.getCompanyId()); -// if (ClearingCategory.B.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.I.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) -// ) { -// /* -// relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=MKR, -// если запись создана и serviceStatus=CLOS, -// изменить запись в relation согласно описанию с тегом При возобнолвении -// , иначе вернуть ошибку (3024)"Договорные отношения %s в секции МКР уже созданы." -// */ -// } -// if (ClearingCategory.C.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.F.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) -// ) { -// /* -//проверить по relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=FOND, -//если запись создана и serviceStatus=CLOS, изменить запись в relation согласно описанию с тегом При возобнолвении, -// иначе вернуть ошибку (3025)"Договорные отношения %s на фондовой секции уже созданы." */ -// } - Relation relation = new Relation(); - relation.setId(idSequence.nextId()); - relation.setCreated(Instant.now()); - relation.setUpdated(relation.getCreated()); + Relation existRelation = searchRelation(req.getClearingMemberCategory(), req.getCompanyId()); + if (existRelation != null && !WorkflowStatus.Blocked.equalsByKey(existRelation.getServiceStatus())) { + CompanyErrors errorType; + if (ru.spcex.platform.enumeration.Service.MKR.equalsByKey(existRelation.getService())) { + errorType = CompanyErrors.ClearingMemberCategoryOnMKRAlreadyExist; + } else if (ru.spcex.platform.enumeration.Service.FOND.equalsByKey(existRelation.getService())) { + errorType = CompanyErrors.ClearingMemberCategoryOnFONDAlreadyExist; + } else { + log.warn("Unknown relation[{}] service={}", existRelation.getId(), existRelation.getService()); + errorType = CompanyErrors.GeneralError; + } + return requestHelper.makeErrorResponse(relationNewBaseRequest, errorType); + } + + Relation relation; + if (existRelation == null) { + relation = new Relation(); + relation.setId(idSequence.nextId()); + relation.setCreated(Instant.now()); + relation.setUpdated(relation.getCreated()); + } else { + log.info("Found exist relation id={}, it will be update.", existRelation.getId()); + relation = existRelation; + relation.setUpdated(Instant.now()); + } relation.setConsumerId(req.getCompanyId()); relation.setSupplierId(SPVB_ID); // 1 СПВБ if (req.getServiceStatus() != null) { relation.setServiceStatus(req.getServiceStatus()); } else { - log.warn("Request has no status. Set status from company[{}].status={}", company.getId(), company.getWorkflowStatus()); - relation.setServiceStatus(company.getWorkflowStatus()); + if (existRelation != null) { + relation.setServiceStatus(ServiceStatus.Reopened.getKey()); + log.debug("Request has no status. Set status by resume: {}", relation.getServiceStatus()); + } else { + String toStatus = WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Active.getKey() : + WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Closed.getKey() : + null; + log.debug("Request has no status. Set status by company[{}].status={}. Relation[{}].serviceSStatus={}", + company.getId(), company.getWorkflowStatus(), toStatus); + relation.setServiceStatus(toStatus); + } } relation.setService(ru.spcex.platform.enumeration.Service.MKR.getKey()); // MKR relation.setServiceProduct(ServiceProduct.ZERO.getKey()); @@ -158,6 +170,27 @@ public class RelationService extends QueueConsumer implements InitializingBean { return null; } + private Relation searchRelation(String clearingMemberCategory, Long consumerId) { + String svc; + if (ClearingCategory.B.equalsByKey(clearingMemberCategory) + || ClearingCategory.I.equalsByKey(clearingMemberCategory) + || ClearingCategory.V.equalsByKey(clearingMemberCategory) + ) { + svc = ru.spcex.platform.enumeration.Service.MKR.getKey(); + } else if (ClearingCategory.C.equalsByKey(clearingMemberCategory) + || ClearingCategory.F.equalsByKey(clearingMemberCategory) + ) { + svc = ru.spcex.platform.enumeration.Service.FOND.getKey(); + } else { + log.warn("Unexpected relation Relation={}", clearingMemberCategory); + return null; + } + Relation existRelation = relationMap.getSingleObjectByFieldValues(Map.of( + "consumerId", consumerId, + "service", svc + )); + return existRelation; + } private synchronized RequestInfoUpdate relationUpdate(BaseRequest relationUpdateBaseRequest) { RelationUpdateRequest req = relationUpdateBaseRequest.getRequestPayload(); @@ -171,37 +204,30 @@ public class RelationService extends QueueConsumer implements InitializingBean { } - //Company company = companyMap.getSingleObjectByID(req.getCompanyId()); -// -// if (ClearingCategory.B.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.I.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) -// ) { -// /* -// relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=MKR, -// если запись создана и serviceStatus=CLOS, -// изменить запись в relation согласно описанию с тегом При возобнолвении -// , иначе вернуть ошибку (3024)"Договорные отношения %s в секции МКР уже созданы." -// */ -// } -// if (ClearingCategory.C.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.F.equalsByKey(req.getClearingMemberCategory()) -// || ClearingCategory.V.equalsByKey(req.getClearingMemberCategory()) -// ) { -// /* -//проверить по relation.consumerId (clearingMemberCategory.companyId=relation.companyId) и service=FOND, -//если запись создана и serviceStatus=CLOS, изменить запись в relation согласно описанию с тегом При возобнолвении, -// иначе вернуть ошибку (3025)"Договорные отношения %s на фондовой секции уже созданы." */ -// } - Relation relation = relationMap.getSingleObjectByID(req.getId()); relation.setUpdated(relation.getCreated()); if (req.getServiceStatus() != null) { + log.debug("To relation {} set serivceStatus=\"{}\" by user request.", relation.getId(), req.getServiceStatus()); relation.setServiceStatus(req.getServiceStatus()); } else { -// relation.setServiceStatus(company.getStatus()); + if (relation.getConsumerId() == null) { + log.warn("Relation[{}]. consumerId was null", relation.getId()); + } + Company company = companyMap.getSingleObjectByID(relation.getConsumerId()); + String toStatus = WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Active.getKey() : + WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Closed.getKey() : + null; + if (ServiceStatus.Active.equalsByKey(toStatus) && ServiceStatus.Closed.equalsByKey(relation.getServiceStatus())) { + relation.setServiceStatus(ServiceStatus.Reopened.getKey()); + log.debug("Set status by resume: {}", relation.getServiceStatus()); + } else { + relation.setServiceStatus(toStatus); + log.debug("Request has no status. Set status by company[{}].status={}. Relation[{}].serviceSStatus={}", + company.getId(), company.getWorkflowStatus(), toStatus, relation.getServiceStatus()); + } } + relation.setComment(req.getComment()); relationMap.insert(relation); From a4d1a618cb1db406dbebfc4796af3c2cfa3dbd4f Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 12:17:20 +0300 Subject: [PATCH 20/60] =?UTF-8?q?RequestHelper=20=D1=82.=D0=BA.=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=8B=D1=87=D0=BD=D0=BE=20=D0=BE=D1=82=D0=B2=D0=B5=D1=82?= =?UTF-8?q?=20=D1=81=D1=80=D0=B0=D0=B7=D1=83=20=D0=B2=D0=BE=D0=B7=D0=B2?= =?UTF-8?q?=D1=80=D0=B0=D1=89=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20-=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B7=D0=B0=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D1=8C=20=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=B0=20=D0=BE?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=D1=82=D0=B0=20=D0=B2=20=D0=BB=D0=BE=D0=B3=20?= =?UTF-8?q?info?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/ru/spcex/clearing/company/util/RequestHelper.java | 1 + 1 file changed, 1 insertion(+) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java index f134ec949..ac865b66a 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java @@ -74,6 +74,7 @@ public class RequestHelper { public RequestInfoUpdate makeErrorResponse(BaseRequest request, EnumMessage msg) { String errorMsg = msg == null? "" : messageResolver.resolve(msg); + log.info("{}", errorMsg); return new RequestInfoUpdate() .setId(request.getId()) .setStatus(Status.Error) From a60726241202bb6b65d2fe0a0f5336ba0831e1e7 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 12:27:17 +0300 Subject: [PATCH 21/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-284?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spcex/clearing/company/service/CompanyInfoServiceTest.java | 2 ++ .../ru/spcex/clearing/company/service/CompanyServiceTest.java | 3 ++- .../clearing/company/service/CompanySymbolServiceTest.java | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java index b521fd7e4..2735eff4c 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyInfoServiceTest.java @@ -18,6 +18,7 @@ import ru.clearing.platform.dictionary.*; import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig; import ru.spcex.clearing.company.config.validation.CompanyValidationConfig; +import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; @@ -51,6 +52,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv CompanySymbolService.class, AccountNotificationHelper.class, RelationService.class, + RelationValidationConfig.class, BeanConfiguration.class, KafkaTestConfig.class, diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java index f18f68a84..e6ec57333 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanyServiceTest.java @@ -21,6 +21,7 @@ import ru.clearing.platform.dictionary.WorkflowStatusDictionary; import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig; import ru.spcex.clearing.company.config.validation.CompanyValidationConfig; +import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.imdg.IMDGDistributedNames; @@ -54,7 +55,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv ValidationConfig.class, CompanySymbolService.class, AccountNotificationHelper.class, - RelationService.class, + RelationService.class, RelationValidationConfig.class, CompanySymbolService.class, CompanySymbolValidationConfig.class, diff --git a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java index 39e77828d..f9dee4531 100644 --- a/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java +++ b/clearing-parent/company-service/src/test/java/ru/spcex/clearing/company/service/CompanySymbolServiceTest.java @@ -18,6 +18,7 @@ import ru.clearing.platform.dictionary.CompanySymbolDictionary; import ru.spcex.clearing.company.config.BeanConfiguration; import ru.spcex.clearing.company.config.validation.CompanySymbolValidationConfig; import ru.spcex.clearing.company.config.validation.CompanyValidationConfig; +import ru.spcex.clearing.company.config.validation.RelationValidationConfig; import ru.spcex.clearing.company.config.validation.ValidationConfig; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; @@ -50,7 +51,7 @@ import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProv CompanyService.class, CompanyValidationConfig.class, AccountNotificationHelper.class, - RelationService.class, + RelationService.class, RelationValidationConfig.class, KafkaTestConfig.class, ImdgTestConfig.class}) From 9d7bb36da84621428286be4188be1d91c70845e1 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Wed, 10 May 2023 12:51:38 +0300 Subject: [PATCH 22/60] http://jira.mfd.msk:8088/browse/CLS-268 . --- .../lim/exporter/services/AbstractExporterService.java | 5 +++-- .../clearing/lim/exporter/services/MoneyExporterService.java | 5 +++++ .../lim/exporter/services/SecurityExporterService.java | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java index 009c28cfc..8d1023274 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java @@ -20,8 +20,9 @@ public abstract class AbstractExporterService { } public abstract Collection getLimFileRows(); + public abstract String getTargetFileName(); public void process() { - String fileName = prepareFileName("security"); + String fileName = getTargetFileName(); File limFile = new File(fileName); Path limFilePath = limFile.toPath(); @@ -34,7 +35,7 @@ public abstract class AbstractExporterService { } } - private String prepareFileName(String target) { + protected String prepareFileName(String target){ StringBuilder result = new StringBuilder(); String dt = dtFormatter.format(LocalDateTime.now()); diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index 7e3d6a277..057263e9b 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -19,4 +19,9 @@ public class MoneyExporterService extends AbstractExporterService { List limFileRows = Arrays.asList("a", "b", "c"); return limFileRows; } + + @Override + public String getTargetFileName() { + return prepareFileName("money"); + } } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java index 913fcc793..254f89ab0 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java @@ -18,4 +18,9 @@ public class SecurityExporterService extends AbstractExporterService { List limFileRows = Arrays.asList("a", "b", "c"); return limFileRows; } + + @Override + public String getTargetFileName() { + return prepareFileName("security"); + } } From 70e73b68aebc537845c2174eefa6cedfe00fad1f Mon Sep 17 00:00:00 2001 From: akulikov Date: Wed, 10 May 2023 13:23:38 +0300 Subject: [PATCH 23/60] fix after review --- .../account/config/validation/AccountValidationConfig.java | 2 +- .../validation/TradingClearingRegistryValidationConfig.java | 2 -- .../ru/spcex/clearing/account/service/BankAccountService.java | 1 - .../spcex/clearing/account/service/ClearingAccountService.java | 1 - .../ru/spcex/clearing/account/service/DepoAccountService.java | 1 - .../clearing/account/service/InformationAccountService.java | 1 - .../account/service/TradingClearingRegistryService.java | 3 ++- 7 files changed, 3 insertions(+), 8 deletions(-) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java index f1a5f0293..ef68fd75a 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/AccountValidationConfig.java @@ -140,7 +140,7 @@ public class AccountValidationConfig { AccountError.WrongFieldValue), DictionaryPresentRule.instance("accountType", CorrespondentAccountUpdateRequest::getAccountType, - IMDGDistributedNames.Map_ServiceStatusDictionary, + IMDGDistributedNames.Map_AccountTypeDictionary, ServiceStatusDictionary.class, AccountError.RequiredFieldEmpty, AccountError.WrongFieldValue, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java index 28d06ed70..f936a6925 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/validation/TradingClearingRegistryValidationConfig.java @@ -78,8 +78,6 @@ public class TradingClearingRegistryValidationConfig { if (depoAccount == null) return AccountError.AccountNotFound; return null; }), - // todo на будущее: нужна ли эта проверка, если при добавлении регистра статус заполняется автоматически - // на основе полей moneyAccountId и depoAccountId, то же касается TradingClearingRegistryNewRequest, нужно ли там поле status DictionaryPresentRule.instance("status", TradingClearingRegistryNewRequest::getStatus, IMDGDistributedNames.Map_ServiceStatusDictionary, diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java index bff14701c..1069939db 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java @@ -224,7 +224,6 @@ public class BankAccountService extends QueueConsumer implements InitializingBea bankAccount.getId(), account.getId()); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed block, bank account id {}, new account id {}", bankAccount.getId(), account.getId()); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java index 8b6779baf..766b1f890 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java @@ -128,7 +128,6 @@ public class ClearingAccountService extends QueueConsumer implements Initializin kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new clearing account id {}, account id {}", clearingAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new clearing account id {}, new account id {} (if id = -1 then insert is failed)", clearingAccountId, accountId); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java index f8199ba29..5495595c2 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/DepoAccountService.java @@ -110,7 +110,6 @@ public class DepoAccountService extends QueueConsumer implements InitializingBea kafkaSender.sendRequestToQueue(Consts.DESTINATION_TRADING_CLEARING_REGISTRY_AUTO_NEW, request); log.debug("successfully processed, new depo account id {}, account id {}", depoAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new depo account id {}, new account id {} (if id = -1 then insert is failed)", depoAccountId, accountId); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java index 4b96243ae..175c058c4 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/InformationAccountService.java @@ -144,7 +144,6 @@ public class InformationAccountService extends QueueConsumer implements Initiali informationAccountId, accountId); } else { - // todo выяснить, что возвращать из метода в этой ситуации log.debug("failed insert, new information account id {}, new account id {} (if id = -1 then insert is failed)", informationAccountId, accountId); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java index 5d03d16a6..0b3c43303 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/TradingClearingRegistryService.java @@ -140,7 +140,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini Account accountMain = accountImdg.getSingleObjectByID(accountId); - // TODO: WELCOME TO HELL + // TODO // Проверка выглядит очень сложно и запутанно, потому что репортеры сами не до конца понимают, какая она должна быть. // Пока что она соответствует ТЗ, но возможно будет правиться, поэтому расписана без выноса кода в методы и // прочих методов сокращения кода. В дальнейшем, после тестирования и окончательного выяснения вида проверки, @@ -154,6 +154,7 @@ public class TradingClearingRegistryService extends QueueConsumer implements Ini req.getCompanyId(), registry.getId()) ); + log.error("process failed: {}", errMsg); return new RequestInfoUpdate() .setMessage(errMsg) .setStatus(Status.Error) From 795075a4b6a8e1c6c6c333fc015bf7974a9e4413 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 13:33:54 +0300 Subject: [PATCH 24/60] =?UTF-8?q?RequestHelper=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D1=91=D1=81=20=D0=B2=20clearing-validation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../util/services}/RequestHelper.java | 19 +++++++++++++------ .../company/config/BeanConfiguration.java | 4 ++-- .../company/service/CompanyInfoService.java | 2 +- .../service/CompanyRoleSetService.java | 2 +- .../company/service/CompanyService.java | 2 +- .../company/service/CompanySymbolService.java | 2 +- .../service/ProfileDocumentService.java | 3 +-- .../company/service/RelationService.java | 2 +- 8 files changed, 21 insertions(+), 15 deletions(-) rename clearing-parent/{company-service/src/main/java/ru/spcex/clearing/company/util => clearing-validation/src/main/java/ru/spcex/clearing/util/services}/RequestHelper.java (84%) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java similarity index 84% rename from clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java rename to clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java index ac865b66a..04decd8a7 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/util/RequestHelper.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/util/services/RequestHelper.java @@ -1,8 +1,7 @@ -package ru.spcex.clearing.company.util; +package ru.spcex.clearing.util.services; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.Status; @@ -22,21 +21,28 @@ import java.util.Objects; * callback(CompanyNewRequest.class) * .setFunction( request -> requestHelper.requestFunction(this::createCompany, request)) * .forDestination(Consts.DESTINATION_COMPANY_NEW, callbacks::put); + * + * return requestHelper.makeErrorResponse(CompanyError.GeneralError, ...) */ public class RequestHelper { protected Logger log = LoggerFactory.getLogger(getClass()); protected final IMessageResolver messageResolver; + protected final IErrorEnumId generalError; - public RequestHelper(IMessageResolver messageResolver) { + public RequestHelper(IMessageResolver messageResolver, IErrorEnumId generalError) { Objects.requireNonNull(messageResolver); this.messageResolver = messageResolver; + this.generalError = generalError; + Objects.requireNonNull(generalError, "Required generalError enum"); } - public RequestHelper(Logger log, IMessageResolver messageResolver) { + public RequestHelper(Logger log, IMessageResolver messageResolver, IErrorEnumId generalError) { Objects.requireNonNull(log); Objects.requireNonNull(messageResolver); this.log = log; this.messageResolver = messageResolver; + this.generalError = generalError; + Objects.requireNonNull(generalError, "Required generalError enum"); } /** @@ -58,13 +64,14 @@ public class RequestHelper { String message = expectedE.getEnumMsg() == null ? expectedE.getMessage() : messageResolver.resolve(expectedE.getEnumMsg()); + log.info("Response: {}", message); return new RequestInfoUpdate() .setId(userRequest.getId()) .setStatus(Status.Error) .setMessage(message); } catch (Exception unexpectedE) { log.error("Error at {}: {} ", command, ExceptionUtils.getStackTrace(unexpectedE)); - String message = messageResolver.resolve(new EnumMessage(CompanyErrors.GeneralError)); + String message = messageResolver.resolve(new EnumMessage(generalError)); return new RequestInfoUpdate() .setId(userRequest.getId()) .setStatus(Status.Error) @@ -74,7 +81,7 @@ public class RequestHelper { public RequestInfoUpdate makeErrorResponse(BaseRequest request, EnumMessage msg) { String errorMsg = msg == null? "" : messageResolver.resolve(msg); - log.info("{}", errorMsg); + log.info("Response: {}", errorMsg); return new RequestInfoUpdate() .setId(request.getId()) .setStatus(Status.Error) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java index d6248d708..fd44e1d0e 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java @@ -5,7 +5,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -22,7 +22,7 @@ public class BeanConfiguration { @Bean @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) public RequestHelper requestHelper(IMessageResolver messageResolver) { - return new RequestHelper(messageResolver); + return new RequestHelper(messageResolver, CompanyErrors.GeneralError); } @Bean diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java index 03d355d49..c3199aca8 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.profile.CompanyInfo; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java index 2af7a358c..ca4526b9b 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java @@ -9,7 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.CompanyRoleSet; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java index 542916892..f7182432d 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java index 85c0469f8..cf534c0ea 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanySymbolService.java @@ -10,7 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java index adf51b4ed..30eab291e 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java @@ -12,7 +12,7 @@ import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -21,7 +21,6 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentNe import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUpdateRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; -import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.DocumentTypes; diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java index ab47be9ad..d91417af6 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; From 05e879112ac7a545859b25714741077ae8e93db7 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Wed, 10 May 2023 15:03:40 +0300 Subject: [PATCH 25/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-268?= =?UTF-8?q?=20=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/validation/ClearingCalendarValidationConfig.java | 2 ++ .../config/validation/PlannerTemplateValidationConfig.java | 6 +++++- .../config/validation/PlannerValidationConfig.java | 1 + .../scheduler/validation/rules/common/EnumPresentRule.java | 2 +- .../ru/spcex/clearing/scheduler/AbstractServiceTest.java | 4 ++-- .../clearing/scheduler/validation/EnumPresentRuleTest.java | 2 +- 6 files changed, 12 insertions(+), 5 deletions(-) diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ClearingCalendarValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ClearingCalendarValidationConfig.java index 3d7327714..237040622 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ClearingCalendarValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/ClearingCalendarValidationConfig.java @@ -43,6 +43,7 @@ public class ClearingCalendarValidationConfig { IMDGDistributedNames.Map_Company, Company.class, ValidationError.CompanyNotFound, + false, company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : ValidationError.CompanyNotActive), DictionaryPresentRule.instance("dayStatus", ClearingCalendarNewRequest::getDayStatus, @@ -74,6 +75,7 @@ public class ClearingCalendarValidationConfig { IMDGDistributedNames.Map_Company, Company.class, ValidationError.CompanyNotFound, + false, company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : ValidationError.CompanyNotActive), DictionaryPresentRule.instance("dayStatus", ClearingCalendarUpdateRequest::getDayStatus, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java index e0390eab6..6f7684118 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java @@ -45,7 +45,9 @@ public class PlannerTemplateValidationConfig { IMDGDistributedNames.Map_TaskDictionary, TaskDictionary.class), TimeNotBeforeRule.instance("taskTime", - PlannerTemplateNewRequest::getTaskTime), + PlannerTemplateNewRequest::getTaskTime, + true, + false), DictionaryPresentRule.instance("taskStatus", PlannerTemplateNewRequest::getTaskStatus, IMDGDistributedNames.Map_TaskStatusDictionary, @@ -55,6 +57,7 @@ public class PlannerTemplateValidationConfig { IMDGDistributedNames.Map_Company, Company.class, ValidationError.CompanyNotFound, + false, company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : ValidationError.CompanyNotActive), IdPresentRule.instance("securityId", PlannerTemplateNewRequest::getSecurityId, @@ -90,6 +93,7 @@ public class PlannerTemplateValidationConfig { false), TimeNotBeforeRule.instance("taskTime", PlannerTemplateUpdateRequest::getTaskTime, + false, false), DictionaryPresentRule.instance("taskStatus", PlannerTemplateUpdateRequest::getTaskStatus, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java index c60e0d628..389e7ef97 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java @@ -62,6 +62,7 @@ public class PlannerValidationConfig { IMDGDistributedNames.Map_Company, Company.class, ValidationError.CompanyNotFound, + false, company -> WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? null : ValidationError.CompanyNotActive), IdPresentRule.instance("securityId", PlannerNewRequest::getSecurityId, diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java index a8ab3cd4f..39e53a19a 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/validation/rules/common/EnumPresentRule.java @@ -55,6 +55,6 @@ public record EnumPresentRule(String fieldName, for (E enumValue : enumValues) { if (enumValue.getKey().equals(enumCode)) return empty(); } - return of(ValidationError.WrongEnumValue, fieldName); + return of(ValidationError.WrongDictionaryValue, fieldName); } } diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java index c2a6b2173..51e4f577f 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/AbstractServiceTest.java @@ -19,7 +19,7 @@ import ru.clearing.platform.dictionary.TaskStatusDictionary; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.scheduler.config.ErrorResolverConfig; import ru.spcex.clearing.scheduler.config.PlannerQueueConfig; -import ru.spcex.clearing.scheduler.config.SchedulerTestConfig; +import ru.spcex.clearing.scheduler.config.SchedulerServiceConfig; import ru.spcex.clearing.scheduler.config.validation.ClearingCalendarValidationConfig; import ru.spcex.clearing.scheduler.config.validation.PlannerTemplateValidationConfig; import ru.spcex.clearing.scheduler.config.validation.PlannerValidationConfig; @@ -60,7 +60,7 @@ import static ru.spcex.platform.enumeration.Market.mkrs; LauncherService.class, ErrorResolverConfig.class, PlannerQueueConfig.class, - SchedulerTestConfig.class, + SchedulerServiceConfig.class, ImdgTestConfig.class, KafkaTestConfig.class}) public abstract class AbstractServiceTest { diff --git a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/validation/EnumPresentRuleTest.java b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/validation/EnumPresentRuleTest.java index 5d039d6aa..cfc803a26 100644 --- a/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/validation/EnumPresentRuleTest.java +++ b/clearing-parent/scheduler-service/src/test/java/ru/spcex/clearing/scheduler/validation/EnumPresentRuleTest.java @@ -85,7 +85,7 @@ class EnumPresentRuleTest extends AbstractServiceTest { setter.accept(record, "BAD_VALUE"); enumMessages = strictValidator.validateAll(); assertEquals(1, enumMessages.size()); - assertEquals(ValidationError.WrongEnumValue, enumMessages.iterator().next().getSubject()); + assertEquals(ValidationError.WrongDictionaryValue, enumMessages.iterator().next().getSubject()); } } \ No newline at end of file From d023d289b0c3bce5920d941c005145ecdf19dfbf Mon Sep 17 00:00:00 2001 From: psemenkov Date: Wed, 10 May 2023 15:34:51 +0300 Subject: [PATCH 26/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-268?= =?UTF-8?q?=20=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86=D0=B8=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/validation/PlannerTemplateValidationConfig.java | 1 + .../scheduler/config/validation/PlannerValidationConfig.java | 1 + 2 files changed, 2 insertions(+) diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java index 6f7684118..77adaefcc 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerTemplateValidationConfig.java @@ -64,6 +64,7 @@ public class PlannerTemplateValidationConfig { IMDGDistributedNames.Map_Security, Security.class, ValidationError.SecurityNotFound, + false, security -> WorkflowStatus.Active.equalsByKey(security.getWorkflowStatus()) ? null : ValidationError.SecurityNotActive) ); }; diff --git a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java index 389e7ef97..fa6e186af 100644 --- a/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java +++ b/clearing-parent/scheduler-service/src/main/java/ru/spcex/clearing/scheduler/config/validation/PlannerValidationConfig.java @@ -69,6 +69,7 @@ public class PlannerValidationConfig { IMDGDistributedNames.Map_Security, Security.class, ValidationError.SecurityNotFound, + false, security -> WorkflowStatus.Active.equalsByKey(security.getWorkflowStatus()) ? null : ValidationError.SecurityNotActive) ); }; From d0d59ba582ad973055ec1d3e3882d0129f5a4764 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 18:41:55 +0300 Subject: [PATCH 27/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20DDL=20=D0=B8=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20meta=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/meta/data.xml | 157 +- .../src/main/resources/meta/meta.xml | 1384 +++++----- .../db-scripts/src/main/resources/db/DATA.sql | 280 +- .../db-scripts/src/main/resources/db/DDL.sql | 2325 +++++++---------- 4 files changed, 1970 insertions(+), 2176 deletions(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/data.xml b/clearing-parent/backend-api/src/main/resources/meta/data.xml index e6c737fd9..a1bed7620 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -1,5 +1,5 @@ - + @@ -62,6 +62,7 @@ + @@ -87,6 +88,7 @@ + @@ -168,6 +170,8 @@ + + @@ -198,7 +202,7 @@ - + @@ -247,23 +251,8 @@ - - - - - - - - - - - - - - - - - + + @@ -272,25 +261,36 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + @@ -349,6 +349,7 @@ + @@ -368,9 +369,10 @@ - - - + + + + @@ -406,6 +408,10 @@ + + + + @@ -442,6 +448,10 @@ + + + + @@ -456,6 +466,79 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file + + + \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index 5b67a2662..a8d7dc20a 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + @@ -233,36 +233,11 @@ - - - - - - - - - - - - - - - - - - - - - + - - - - - - + @@ -278,36 +253,21 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + @@ -318,7 +278,32 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -373,7 +358,7 @@ - + @@ -389,10 +374,10 @@ - + - + @@ -461,11 +446,19 @@ + + + + + - + + + + @@ -523,11 +516,19 @@ - + + + + + + - + + + + @@ -576,7 +577,7 @@ - + @@ -594,7 +595,7 @@ - + @@ -613,7 +614,7 @@ - + @@ -762,6 +763,7 @@
+ @@ -814,7 +816,7 @@ - + @@ -879,8 +881,8 @@ + - @@ -904,8 +906,8 @@ - - + + @@ -939,10 +941,10 @@ - - - - + + + + @@ -958,20 +960,20 @@ - + + - - + @@ -996,34 +998,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1287,7 +1261,7 @@ - + @@ -1323,448 +1297,231 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - -
- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - + - - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - - + - - - + + - - + + - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - + - + - - - - - - - + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -1799,23 +1556,20 @@ - + - + - + - - - + - @@ -1823,51 +1577,26 @@ - - - - - - - - - - - - - - - - - - - - - - - + - + - + - - - + - @@ -1875,37 +1604,15 @@ - - - - - - - - - - - - - - - - - - - - - - - + - +
@@ -1914,154 +1621,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + @@ -2069,13 +1636,15 @@ - - + + + + @@ -2083,9 +1652,117 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2093,47 +1770,246 @@ - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2177,4 +2053,4 @@ - + \ No newline at end of file diff --git a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql index 63716ecd2..c7beb399e 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql @@ -1,5 +1,5 @@ -- DB version: 3.5.0.21 --- DATA version: 3.5.0.4 +-- DATA version: 3.5.0.5 /* Dictionaries */ INSERT INTO ALLOWED_DICTIONARY(ID, CODE, NAME) values (1, 'ALWD', 'Разрешено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -124,6 +124,8 @@ INSERT INTO DOCUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (22, 'LICС', 'До INSERT INTO DOCUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (23, 'LICF', 'Документ о лицензии форекс-дилера') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO DOCUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (24, 'LICM', 'Документ о лицензии на управление инвестиционными фондами, паевыми инвестиционными фондами, негосударственными пенсионными фондами') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (1, 'OCVD', 'Общероссийский классификатор видов экономической деятельности', 'ОКВЭД') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; INSERT INTO COMPANY_SYMBOL_DICTIONARY(ID, CODE, NAME, SHORTNAME) values (2, 'INN', 'Индивидуальный налоговый номер', 'ИНН') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SHORTNAME = EXCLUDED.SHORTNAME; @@ -174,6 +176,8 @@ INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (5, 'DEPS', 'Депо INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (6, 'CLRM', 'Участник клиринга') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO COMPANY_ROLE_DICTIONARY(ID, CODE, NAME) values (7, 'ODEP', 'Участник расчетов по открытым депозитным счетам на секции МКР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO CURRENCY_CODE_DICTIONARY(ID, CODE, NAME) values (643, 'RUB', 'Российский рубль') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO INSTRUMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'RATE', 'Инструмент Денежного рынка') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -334,6 +338,10 @@ INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'LIQU', 'Ли INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (7, 'POOL', 'В клиринге') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (8, 'NACK', 'Не допущено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO REGISTRY_STATUS_DICTIONARY(ID, CODE, NAME) values (9, 'NACC', 'Не допущено у контрагента') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO BALANCE_DIMENSION_DICTIONARY(ID, CODE, NAME) values (1, 'PICS', 'Штуки') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO BALANCE_DIMENSION_DICTIONARY(ID, CODE, NAME) values (2, 'LOTS', 'Лоты') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -394,7 +402,7 @@ INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (12, 'CMBA', 'Формиро INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (14, 'GCMR', 'Формирование реестра участников клиринга') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (15, 'GBRR', 'Формирование реестра остатков денежных средств') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (15, 'GBRR', 'Формирование реестра остатков денежных средств ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO TASK_DICTIONARY(ID, CODE, NAME) values (16, 'GORR', 'Формирование реестра распоряжений, направленных расчетной организации') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -488,39 +496,9 @@ INSERT INTO SIDE_DICTIONARY(ID, CODE, NAME) values (2, 'SELL', 'Продажа') INSERT INTO MARKET_CODE_DICTIONARY(ID, CODE, NAME) values (1, 'BMIC', 'СПВБ: ОФЗ-ИН - Аукцион БР') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO COURIER_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STHS', 'ЭДО с Расчетной Организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO MARKET_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'PRMR', 'Первичное размещение') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'STLD', 'Рассчитан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'SENT', 'Отправлен в ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'OK', 'Обработан ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'FAIL', 'Ошибка ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'CHER', 'Ошибка КС') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'NSNT', 'Не отправлен в ПРЦ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CHARGE_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'PRCT', 'Процент') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CHARGE_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'GET', 'Получить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CHARGE_DIRECTION_DICTIONARY(ID, CODE, NAME) values (2, 'PAY', 'Заплатить') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'OK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'FAIL', 'Не успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'MNG', 'Не учитывать') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO CLEARING_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'PROC', 'К клирингу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO BALANCE_ACCOUNT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'ACNT', 'Остатки по счетам') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'IN', 'Зачисление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (2, 'OUT', 'Списание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO MARKET_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'SCND', 'Вторичные торги') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO STATEMENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'FULL', 'Установка суммы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -538,33 +516,33 @@ INSERT INTO OPERATION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'EXEC', 'Ис INSERT INTO OPERATION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'CNCL', 'Отменена') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CRPA', 'Корпоративное событие, связанное с допуском') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'DFLT', 'Отсутствие возврата по платежу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'NOTC', 'Генерация уведомления') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'SETL', 'Взаимодействие с расчетной организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'CRT', 'Создано') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (1, 'ACC', 'Доступ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (2, 'NOND', 'Не поставка') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (3, 'DEL', 'Удалена') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'NACK', 'Неуспешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - -INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'ACK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; - INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (1, '0102', 'Входящий ДФ-01/Исходящий ДФ-02') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (2, '1617', 'Входящий ДФ-16/Исходящий ДФ-17') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (2, '0607', 'Входящий ДФ-06/Исходящий ДФ-07') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (3, '0910', 'Входящий ДФ-09/Исходящий ДФ-10') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (3, '0809', 'Входящий ДФ-08/Исходящий ДФ-09') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO OBJECT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STMT', 'STATEMENT') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (4, '1011', 'Входящий ДФ-10/Исходящий ДФ-11') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO IN_OUT_S_DF_TYPE_DICTIONARY(ID, CODE, NAME) values (5, '57', 'Входящий ДФ-57') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (1, 'IN', 'Зачисление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO IN_OUT_DIRECTION_DICTIONARY(ID, CODE, NAME) values (2, 'OUT', 'Списание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'STLD', 'Рассчитан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'SENT', 'Отправлен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'OK', 'Обработан') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'FAIL', 'Ошибка внешней системы') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (5, 'CHER', 'Ошибка КС') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO TRANSACTION_STATUS_DICTIONARY(ID, CODE, NAME) values (6, 'NSNT', 'Не отправлен') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO OBJECT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STMT', 'statement') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO OBJECT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'VFRS', 'verificationResult') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -576,6 +554,28 @@ INSERT INTO NOTIFICATION_STATUS_DICTIONARY(ID, CODE, NAME) values (3, 'ACPT', ' INSERT INTO NOTIFICATION_STATUS_DICTIONARY(ID, CODE, NAME) values (4, 'READ', 'Прочтено') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CRPA', 'Корпоративное событие, связанное с допуском') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'DFLT', 'Отсутствие возврата по платежу') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (3, 'NOTC', 'Генерация уведомления') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID, CODE, NAME) values (4, 'SETL', 'Взаимодействие с расчетной организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (1, 'ACC', 'Доступ') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (2, 'NOND', 'Не поставка') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID, CODE, NAME) values (3, 'DEL', 'Удалена') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'CRT', 'Создано') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO COURIER_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'STHS', 'ЭДО с Расчетной Организацией') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (1, 'NACK', 'Неуспешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO RESULT_STATUS_DICTIONARY(ID, CODE, NAME) values (2, 'ACK', 'Успешно') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO EVENT_TYPE_DICTIONARY(ID, CODE, NAME) values (1, 'CRET', 'Создание') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO EVENT_TYPE_DICTIONARY(ID, CODE, NAME) values (2, 'UPDT', 'Обновление') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -680,6 +680,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3025, 'CMPN', 'Дог INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3026, 'CMPN', 'Запись о договорных отношениях не найдена.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (3027, 'CMPN', 'Код клиента %s не найден.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (4000, 'RPRT', 'Общая ошибка модуля report-serivce.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5000, 'ACNT', 'Общая ошибка модуля account-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -708,11 +710,13 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5014, 'ACNT', 'Ком INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5015, 'ACNT', 'Для компании %s уже создан информационный счет %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5016, 'ACNT', 'Для Компании %s уже создан ТКР %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5016, 'ACNT', 'Для компании %s уже создан ТКР %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5017, 'ACNT', 'Для Компании %s отсутствует счет ДЕПО.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5017, 'ACNT', 'Для компании %s отсутствует счет ДЕПО.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; -INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5018, 'ACNT', 'Для Компании %s отсутствует денежный счет.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5018, 'ACNT', 'Для компании %s отсутствует денежный счет.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5019, 'ACNT', 'Для компании %s отсутствует категория %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5200, 'BLNC', 'Общая ошибка модуля balance-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -780,6 +784,14 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5418, 'CLRN', 'Тор INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5419, 'CLRN', 'Торгово-клиринговый регистр %s неактивен.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5420, 'CLRN', 'Доступ к клирингу на «%s» не найден для компании %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5421, 'CLRN', 'Доступ к клирингу на «%s» неактивен для компании %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5422, 'CLRN', 'Необеспеченность обязательств у компании %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5423, 'CLRN', 'Новые сделки отсутствуют.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5600, 'DBFI', 'Общая ошибка модуля dbf-importer.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5800, 'DBFE', 'Общая ошибка модуля dbf-exporter.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; @@ -830,6 +842,10 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (9004, 'BAPI', 'Не м INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (9005, 'BAPI', 'Не найдено ресурс %s.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (10000, 'TRDI', 'Общая ошибка модуля trade-importer.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + +INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (10001, 'TRDI', 'Сделка с номером в ТС = %s некорректна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME; + /* Business objects */ INSERT INTO COMPANY(ID, FULL_NAME, SHORT_NAME, TRADING_CODE, CLEARING_CODE, WORKFLOW_STATUS) values (1, 'АО Санкт-Петербургская Валютная Биржа', 'СПВБ', '', '', 'ACTV') ON CONFLICT (ID) DO UPDATE SET FULL_NAME = EXCLUDED.FULL_NAME, SHORT_NAME = EXCLUDED.SHORT_NAME, TRADING_CODE = EXCLUDED.TRADING_CODE, CLEARING_CODE = EXCLUDED.CLEARING_CODE, WORKFLOW_STATUS = EXCLUDED.WORKFLOW_STATUS; @@ -850,4 +866,146 @@ INSERT INTO ACCOUNT(ID, COMPANY_ID, ACCOUNT, ACCOUNT_TYPE, STATUS, PROCESSING_SI INSERT INTO ACCOUNT(ID, COMPANY_ID, ACCOUNT, ACCOUNT_TYPE, STATUS, PROCESSING_SIGN) values (2, 1, '30414810600000007000', 'ANLT', 'ACTV', 'ALWD') ON CONFLICT (ID) DO UPDATE SET COMPANY_ID = EXCLUDED.COMPANY_ID, ACCOUNT = EXCLUDED.ACCOUNT, ACCOUNT_TYPE = EXCLUDED.ACCOUNT_TYPE, STATUS = EXCLUDED.STATUS, PROCESSING_SIGN = EXCLUDED.PROCESSING_SIGN; -INSERT INTO MARKET(ID, CODE, NAME, SECTION) values (1, 'MKRS', 'Денежный рынок МКР', 'MKR') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, SECTION = EXCLUDED.SECTION; +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (1, 'SCND', 'FOND', 'RUB', 'UESC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (2, 'SCND', 'FOND', 'RUB', 'NESC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (3, 'SCND', 'FOND', 'RUB', 'DESC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (4, 'PRMR', 'FOND', 'RUB', 'AESC', 'Размещение: акции (аукцион по цене)', 1, 'Размещение: акции (аукцион по цене): Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (5, 'PRMR', 'FOND', 'RUB', 'WESC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Обыкновенные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (6, 'SCND', 'FOND', 'RUB', 'UEPC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (7, 'SCND', 'FOND', 'RUB', 'NEPC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (8, 'SCND', 'FOND', 'RUB', 'DEPC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (9, 'PRMR', 'FOND', 'RUB', 'AEPC', 'Размещение: акции (аукцион по цене)', 1, 'Размещение: акции (аукцион по цене): Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (10, 'PRMR', 'FOND', 'RUB', 'WEPC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Привилегированные акции') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (11, 'PRMR', 'FOND', 'RUB', 'ABVC', 'Размещение: Аукцион по цене', 1, 'Размещение: Аукцион по цене: Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (12, 'PRMR', 'FOND', 'RUB', 'KBVC', 'Размещение: Аукцион по ставке', 1, 'Размещение: Аукцион по ставке: Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (13, 'SCND', 'FOND', 'RUB', 'UBVC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (14, 'SCND', 'FOND', 'RUB', 'NBVC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (15, 'SCND', 'FOND', 'RUB', 'DBVC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (16, 'PRMR', 'FOND', 'RUB', 'WBVC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Купонные облигации с переменным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (17, 'PRMR', 'FOND', 'RUB', 'ABFC', 'Размещение: Аукцион по цене', 1, 'Размещение: Аукцион по цене: Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (18, 'PRMR', 'FOND', 'RUB', 'KBFC', 'Размещение: Аукцион по ставке', 1, 'Размещение: Аукцион по ставке: Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (19, 'SCND', 'FOND', 'RUB', 'UBFC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (20, 'SCND', 'FOND', 'RUB', 'NBFC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (21, 'SCND', 'FOND', 'RUB', 'DBFC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (22, 'PRMR', 'FOND', 'RUB', 'WBFC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Купонные облигации с постоянным купоном') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (23, 'PRMR', 'FOND', 'RUB', 'ABIC', 'Размещение: Аукцион по цене', 1, 'Размещение: Аукцион по цене: Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (24, 'PRMR', 'FOND', 'RUB', 'KBIC', 'Размещение: Аукцион по ставке', 1, 'Размещение: Аукцион по ставке: Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (25, 'SCND', 'FOND', 'RUB', 'UBIC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (26, 'SCND', 'FOND', 'RUB', 'NBIC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (27, 'SCND', 'FOND', 'RUB', 'DBIC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (28, 'PRMR', 'FOND', 'RUB', 'WBIC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Облигации с индексированным номиналом') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (29, 'PRMR', 'FOND', 'RUB', 'ABMC', 'Размещение: Аукцион по цене', 1, 'Размещение: Аукцион по цене: Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (30, 'PRMR', 'FOND', 'RUB', 'KBMC', 'Размещение: Аукцион по ставке', 1, 'Размещение: Аукцион по ставке: Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (31, 'SCND', 'FOND', 'RUB', 'UBMC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (32, 'SCND', 'FOND', 'RUB', 'NBMC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (33, 'SCND', 'FOND', 'RUB', 'DBMC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (34, 'PRMR', 'FOND', 'RUB', 'WBMC', 'Размещение: адресные заявки (подписка)', 1, 'Размещение: адресные заявки (подписка): Облигации с амортизацией долга') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (35, 'PRMR', 'FOND', 'RUB', 'BKVC', 'Размещение: Аукцион БР', 1, 'Размещение: Аукцион БР: Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (36, 'PRMR', 'FOND', 'RUB', 'SKVC', 'Доразмещение: Адресные заявки БР', 1, 'Доразмещение: Адресные заявки БР: Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (37, 'SCND', 'FOND', 'RUB', 'UKVC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (38, 'SCND', 'FOND', 'RUB', 'NKVC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (39, 'SCND', 'FOND', 'RUB', 'DKVC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Облигации Банка России с переменным купоном (КОБР)') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (45, 'PRMR', 'FOND', 'RUB', 'ABEC', 'Размещение: Аукцион СПВБ', 1, 'Размещение: Аукцион СПВБ: Биржевые облигации') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (46, 'SCND', 'FOND', 'RUB', 'UBEC', 'Режим непрерывных торгов', 1, 'Режим непрерывных торгов: Биржевые облигации') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (47, 'SCND', 'FOND', 'RUB', 'NBEC', 'Режим переговорных сделок (РПС)', 1, 'Режим переговорных сделок (РПС): Биржевые облигации') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (48, 'SCND', 'FOND', 'RUB', 'DBEC', 'Дискретный аукцион', 1, 'Дискретный аукцион: Биржевые облигации') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (49, 'PRMR', 'MKR', 'RUB', 'XMDT', 'Размещение: депозитный аукцион', 1, 'Размещение: депозитный аукцион: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (51, 'PRMR', 'MKR', 'RUB', 'XMDS', 'Размещение: депозитный аукцион', 1, 'Размещение: депозитный аукцион: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (52, 'PRMR', 'MKR', 'RUB', 'XMDD', 'Размещение: депозитный аукцион', 1, 'Размещение: депозитный аукцион: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (54, 'PRMR', 'MKR', 'RUB', 'XMTT', 'Размещение: депозитные торги', 1, 'Размещение: депозитные торги: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (55, 'PRMR', 'MKR', 'RUB', 'YMRT', 'Доразмещение: аукцион по ставке депозита', 1, 'Доразмещение: аукцион по ставке депозита: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (56, 'PRMR', 'MKR', 'RUB', 'YMRT', 'Доразмещение: депозитные торги', 1, 'Доразмещение: депозитные торги: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (58, 'PRMR', 'MKR', 'RUB', 'YMTT', 'Доразмещение: депозитные торги', 1, 'Доразмещение: депозитные торги: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (59, 'PRMR', 'MKR', 'RUB', 'XMXD', 'Размещение: отбор заявок', 1, 'Размещение: отбор заявок: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (60, 'PRMR', 'MKR', 'RUB', 'XMXX', 'Размещение: отбор заявок', 1, 'Размещение: отбор заявок: МКР') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (61, 'PRMR', 'FOND', 'RUB', 'BMVC', 'ОФЗПК-Размещение: Аукцион БР', 1, 'ОФЗПК-Размещение: Аукцион БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (62, 'PRMR', 'FOND', 'RUB', 'SMVC', 'ОФЗПК-Доразмещение: Адресные заявки БР', 1, 'ОФЗПК-Доразмещение: Адресные заявки БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (63, 'SCND', 'FOND', 'RUB', 'UMVC', 'ОФЗПК-Режим непрерывных торгов', 1, 'ОФЗПК-Режим непрерывных торгов: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (64, 'SCND', 'FOND', 'RUB', 'DMVC', 'ОФЗПК-Дискретный аукцион', 1, 'ОФЗПК-Дискретный аукцион: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (65, 'SCND', 'FOND', 'RUB', 'MMVC', 'ОФЗПК-Торги в режиме выкупа', 1, 'ОФЗПК-Торги в режиме выкупа: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (66, 'PRMR', 'FOND', 'RUB', 'BMFC', 'ОФЗПД-Размещение: Аукцион БР', 1, 'ОФЗПД-Размещение: Аукцион БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (67, 'PRMR', 'FOND', 'RUB', 'SMFC', 'ОФЗПД- Доразмещение: Адресные заявки БР', 1, 'ОФЗПД- Доразмещение: Адресные заявки БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (68, 'SCND', 'FOND', 'RUB', 'UMFC', 'ОФЗПД-Режим непрерывных торгов', 1, 'ОФЗПД-Режим непрерывных торгов: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (69, 'SCND', 'FOND', 'RUB', 'DMFC', 'ОФЗПД-Дискретный аукцион', 1, 'ОФЗПД-Дискретный аукцион: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (70, 'SCND', 'FOND', 'RUB', 'MMFC', 'ОФЗПД-Торги в режиме выкупа', 1, 'ОФЗПД-Торги в режиме выкупа: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (71, 'PRMR', 'FOND', 'RUB', 'BMMC', 'ОФЗАД-Размещение: Аукцион БР', 1, 'ОФЗАД-Размещение: Аукцион БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (72, 'PRMR', 'FOND', 'RUB', 'SMMC', 'ОФЗАД-Доразмещение: Адресные заявки БР', 1, 'ОФЗАД-Доразмещение: Адресные заявки БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (73, 'SCND', 'FOND', 'RUB', 'UMMC', 'ОФЗАД-Режим непрерывных торгов', 1, 'ОФЗАД-Режим непрерывных торгов: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (74, 'SCND', 'FOND', 'RUB', 'DMMC', 'ОФЗАД-Дискретный аукцион', 1, 'ОФЗАД-Дискретный аукцион: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (75, 'SCND', 'FOND', 'RUB', 'MMMC', 'ОФЗАД-Торги в режиме выкупа', 1, 'ОФЗАД-Торги в режиме выкупа: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (76, 'PRMR', 'FOND', 'RUB', 'BMIC', 'ОФЗИН-Размещение: Аукцион БР', 1, 'ОФЗИН-Размещение: Аукцион БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (77, 'PRMR', 'FOND', 'RUB', 'SMIC', 'ОФЗИН-Доразмещение: Адресные заявки БР', 1, 'ОФЗИН-Доразмещение: Адресные заявки БР: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (78, 'SCND', 'FOND', 'RUB', 'UMIC', 'ОФЗИН-Режим непрерывных торгов', 1, 'ОФЗИН-Режим непрерывных торгов: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (79, 'SCND', 'FOND', 'RUB', 'DMIC', 'ОФЗИН-Дискретный аукцион', 1, 'ОФЗИН-Дискретный аукцион: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; + +INSERT INTO MARKET(ID, MARKET_TYPE, SECTION, SETTLEMENT_CURRENCY, CODE, NAME, EXCHANGE_ID, DESCRIPTION) values (80, 'SCND', 'FOND', 'RUB', 'MMIC', 'ОФЗИН-Торги в режиме выкупа', 1, 'ОФЗИН-Торги в режиме выкупа: Облигации Минфина') ON CONFLICT (ID) DO UPDATE SET MARKET_TYPE = EXCLUDED.MARKET_TYPE, SECTION = EXCLUDED.SECTION, SETTLEMENT_CURRENCY = EXCLUDED.SETTLEMENT_CURRENCY, CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME, EXCHANGE_ID = EXCLUDED.EXCHANGE_ID, DESCRIPTION = EXCLUDED.DESCRIPTION; diff --git a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql index 5cd0196ff..8f8c77c62 100644 --- a/clearing-parent/db-scripts/src/main/resources/db/DDL.sql +++ b/clearing-parent/db-scripts/src/main/resources/db/DDL.sql @@ -1,4 +1,4 @@ --- DB version: 3.5.0.20 +-- DB version: 3.5.0.21 /* Dictionaries */ -- allowed - Справочник признаков допустимости использования объектов @@ -498,71 +498,16 @@ COMMENT ON COLUMN MARKET_CODE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN MARKET_CODE_DICTIONARY.NAME IS 'Значение'; --- chargeDirection - Направление начисления комиссии -DROP TABLE IF EXISTS CHARGE_DIRECTION_DICTIONARY; -CREATE TABLE CHARGE_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE CHARGE_DIRECTION_DICTIONARY IS 'Направление начисления комиссии'; +-- marketType - Справочник типов торгов +DROP TABLE IF EXISTS MARKET_TYPE_DICTIONARY; +CREATE TABLE MARKET_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); +COMMENT ON TABLE MARKET_TYPE_DICTIONARY IS 'Справочник типов торгов'; -COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.ID IS 'Идентификатор'; +COMMENT ON COLUMN MARKET_TYPE_DICTIONARY.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.CODE IS 'Код'; +COMMENT ON COLUMN MARKET_TYPE_DICTIONARY.CODE IS 'Код'; -COMMENT ON COLUMN CHARGE_DIRECTION_DICTIONARY.NAME IS 'Направление комиссии'; - --- chargeType - Справочник типов комиссий -DROP TABLE IF EXISTS CHARGE_TYPE_DICTIONARY; -CREATE TABLE CHARGE_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE CHARGE_TYPE_DICTIONARY IS 'Справочник типов комиссий'; - -COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CHARGE_TYPE_DICTIONARY.NAME IS 'Тип комиссии'; - --- courierType - Способ доставки документа -DROP TABLE IF EXISTS COURIER_TYPE_DICTIONARY; -CREATE TABLE COURIER_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE COURIER_TYPE_DICTIONARY IS 'Способ доставки документа'; - -COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.NAME IS 'Способ доставки'; - --- transactionStatus - Справочник статусов транзакций -DROP TABLE IF EXISTS TRANSACTION_STATUS_DICTIONARY; -CREATE TABLE TRANSACTION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE TRANSACTION_STATUS_DICTIONARY IS 'Справочник статусов транзакций'; - -COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.NAME IS 'Статус транзакции'; - --- clearingStatus - Справочник результатов клиринга -DROP TABLE IF EXISTS CLEARING_STATUS_DICTIONARY; -CREATE TABLE CLEARING_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE CLEARING_STATUS_DICTIONARY IS 'Справочник результатов клиринга'; - -COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN CLEARING_STATUS_DICTIONARY.NAME IS 'Наименование'; - --- inOutDirection - Справочник значений направления денежного потока -DROP TABLE IF EXISTS IN_OUT_DIRECTION_DICTIONARY; -CREATE TABLE IN_OUT_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE IN_OUT_DIRECTION_DICTIONARY IS 'Справочник значений направления денежного потока'; - -COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.NAME IS 'Значение'; +COMMENT ON COLUMN MARKET_TYPE_DICTIONARY.NAME IS 'Наименование'; -- statementType - Справочник типов поступлений/списаний от ПРЦ DROP TABLE IF EXISTS STATEMENT_TYPE_DICTIONARY; @@ -597,61 +542,6 @@ COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN OPERATION_STATUS_DICTIONARY.NAME IS 'Значение'; --- balanceAccountType - Справочник типов лимитов -DROP TABLE IF EXISTS BALANCE_ACCOUNT_TYPE_DICTIONARY; -CREATE TABLE BALANCE_ACCOUNT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE BALANCE_ACCOUNT_TYPE_DICTIONARY IS 'Справочник типов лимитов'; - -COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN BALANCE_ACCOUNT_TYPE_DICTIONARY.NAME IS 'Тип лимитов'; - --- resultStatus - Статус обработки -DROP TABLE IF EXISTS RESULT_STATUS_DICTIONARY; -CREATE TABLE RESULT_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); -COMMENT ON TABLE RESULT_STATUS_DICTIONARY IS 'Статус обработки'; - -COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.NAME IS 'Статус обработки'; - --- managementJournalStatus - Справочник статусов журнала мониторинга и контроля -DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_STATUS_DICTIONARY; -CREATE TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY IS 'Справочник статусов журнала мониторинга и контроля'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.NAME IS 'Статус сообщения'; - --- managementJournalType - Справочник типов записей в журнале мониторинга и контроля -DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_TYPE_DICTIONARY; -CREATE TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY IS 'Справочник типов записей в журнале мониторинга и контроля'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.NAME IS 'Тип записи'; - --- managementJournalPurpose - Справочник целей записей в журнале мониторинга и контроля -DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY; -CREATE TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY IS 'Справочник целей записей в журнале мониторинга и контроля'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.ID IS 'Идентификатор'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.CODE IS 'Код'; - -COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.NAME IS 'Тип записи'; - -- inOutSDfType - Справочник типов входящих и исходящих записей DROP TABLE IF EXISTS IN_OUT_S_DF_TYPE_DICTIONARY; CREATE TABLE IN_OUT_S_DF_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); @@ -663,6 +553,28 @@ COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN IN_OUT_S_DF_TYPE_DICTIONARY.NAME IS 'Тип записи'; +-- inOutDirection - Справочник значений направлений денежного потока +DROP TABLE IF EXISTS IN_OUT_DIRECTION_DICTIONARY; +CREATE TABLE IN_OUT_DIRECTION_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); +COMMENT ON TABLE IN_OUT_DIRECTION_DICTIONARY IS 'Справочник значений направлений денежного потока'; + +COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN IN_OUT_DIRECTION_DICTIONARY.NAME IS 'Значение'; + +-- transactionStatus - Справочник статусов транзакций +DROP TABLE IF EXISTS TRANSACTION_STATUS_DICTIONARY; +CREATE TABLE TRANSACTION_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE TRANSACTION_STATUS_DICTIONARY IS 'Справочник статусов транзакций'; + +COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN TRANSACTION_STATUS_DICTIONARY.NAME IS 'Статус транзакции'; + -- objectType - Справочник типов объектов DROP TABLE IF EXISTS OBJECT_TYPE_DICTIONARY; CREATE TABLE OBJECT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); @@ -685,10 +597,65 @@ COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.CODE IS 'Код'; COMMENT ON COLUMN NOTIFICATION_STATUS_DICTIONARY.NAME IS 'Наименование'; --- eventType - Типы изменений записей +-- managementJournalType - Справочник типов записей в журнале мониторинга и контроля +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_TYPE_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE MANAGEMENT_JOURNAL_TYPE_DICTIONARY IS 'Справочник типов записей в журнале мониторинга и контроля'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_TYPE_DICTIONARY.NAME IS 'Тип записи'; + +-- managementJournalPurpose - Справочник целей записей в журнале мониторинга и контроля +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY IS 'Справочник целей записей в журнале мониторинга и контроля'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_PURPOSE_DICTIONARY.NAME IS 'Тип записи'; + +-- managementJournalStatus - Справочник статусов журнала мониторинга и контроля +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL_STATUS_DICTIONARY; +CREATE TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE MANAGEMENT_JOURNAL_STATUS_DICTIONARY IS 'Справочник статусов журнала мониторинга и контроля'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL_STATUS_DICTIONARY.NAME IS 'Статус сообщения'; + +-- courierType - Справочник способов доставки документа +DROP TABLE IF EXISTS COURIER_TYPE_DICTIONARY; +CREATE TABLE COURIER_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); +COMMENT ON TABLE COURIER_TYPE_DICTIONARY IS 'Справочник способов доставки документа'; + +COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.ID IS 'Идентификатор'; + +COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN COURIER_TYPE_DICTIONARY.NAME IS 'Способ доставки'; + +-- resultStatus - Справочник статусов обработки +DROP TABLE IF EXISTS RESULT_STATUS_DICTIONARY; +CREATE TABLE RESULT_STATUS_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(255)); +COMMENT ON TABLE RESULT_STATUS_DICTIONARY IS 'Справочник статусов обработки'; + +COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.CODE IS 'Код'; + +COMMENT ON COLUMN RESULT_STATUS_DICTIONARY.NAME IS 'Статус обработки'; + +-- eventType - Справочник типов изменений записей DROP TABLE IF EXISTS EVENT_TYPE_DICTIONARY; CREATE TABLE EVENT_TYPE_DICTIONARY(ID bigint PRIMARY KEY, CODE varchar(4), NAME varchar(50)); -COMMENT ON TABLE EVENT_TYPE_DICTIONARY IS 'Типы изменений записей'; +COMMENT ON TABLE EVENT_TYPE_DICTIONARY IS 'Справочник типов изменений записей'; COMMENT ON COLUMN EVENT_TYPE_DICTIONARY.ID IS 'Идентификатор'; @@ -802,7 +769,7 @@ COMMENT ON COLUMN USER_CONNECT.CONNECTION_STATE IS 'Код статуса сое COMMENT ON COLUMN USER_CONNECT.CLEARING_DATE IS 'Дата'; -COMMENT ON COLUMN USER_CONNECT.ERROR_CODE_ID IS 'Код ошибки (linked to errorCode)'; +COMMENT ON COLUMN USER_CONNECT.ERROR_CODE_ID IS 'Идентификатор кода ошибки (linked to errorCode)'; COMMENT ON COLUMN USER_CONNECT.ERROR_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; @@ -836,7 +803,7 @@ COMMENT ON COLUMN USER_CONNECT_HISTORY.CONNECTION_STATE IS 'Код статус COMMENT ON COLUMN USER_CONNECT_HISTORY.CLEARING_DATE IS 'Дата'; -COMMENT ON COLUMN USER_CONNECT_HISTORY.ERROR_CODE_ID IS 'Код ошибки (linked to errorCode)'; +COMMENT ON COLUMN USER_CONNECT_HISTORY.ERROR_CODE_ID IS 'Идентификатор кода ошибки (linked to errorCode)'; COMMENT ON COLUMN USER_CONNECT_HISTORY.ERROR_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; @@ -1451,7 +1418,7 @@ COMMENT ON COLUMN LISTING_HISTORY.UPDATED_AT IS 'Дата-время измен -- market - Торговые секции DROP TABLE IF EXISTS MARKET; -CREATE TABLE MARKET(DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(4), SETTLEMENT_CURRENCY varchar(4), SECTION varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE MARKET(DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(4), SETTLEMENT_CURRENCY varchar(4), SECTION varchar(4), MARKET_TYPE varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE MARKET IS 'Торговые секции'; COMMENT ON COLUMN MARKET.DESCRIPTION IS 'Описание'; @@ -1466,6 +1433,8 @@ COMMENT ON COLUMN MARKET.SETTLEMENT_CURRENCY IS 'Код валюты расче COMMENT ON COLUMN MARKET.SECTION IS 'Код секции (linked to section)'; +COMMENT ON COLUMN MARKET.MARKET_TYPE IS 'Тип торгов на рынке (linked to marketType)'; + COMMENT ON COLUMN MARKET.ID IS 'Идентификатор записи'; COMMENT ON COLUMN MARKET.CREATED_AT IS 'Дата-время создания записи'; @@ -1475,7 +1444,7 @@ COMMENT ON COLUMN MARKET.UPDATED_AT IS 'Дата-время изменения -- History log of market - Торговые секции DROP TABLE IF EXISTS MARKET_HISTORY; -CREATE TABLE MARKET_HISTORY(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(4), SETTLEMENT_CURRENCY varchar(4), SECTION varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE MARKET_HISTORY(MARKET_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), DESCRIPTION varchar(255), EXCHANGE_ID bigint, NAME varchar(255), CODE varchar(4), SETTLEMENT_CURRENCY varchar(4), SECTION varchar(4), MARKET_TYPE varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE MARKET_HISTORY IS 'История изменений таблицы market'; COMMENT ON COLUMN MARKET_HISTORY.MARKET_ID IS 'Идентификатор записи в таблице MARKET'; COMMENT ON COLUMN MARKET_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1494,6 +1463,8 @@ COMMENT ON COLUMN MARKET_HISTORY.SETTLEMENT_CURRENCY IS 'Код валюты р COMMENT ON COLUMN MARKET_HISTORY.SECTION IS 'Код секции (linked to section)'; +COMMENT ON COLUMN MARKET_HISTORY.MARKET_TYPE IS 'Тип торгов на рынке (linked to marketType)'; + COMMENT ON COLUMN MARKET_HISTORY.ID IS 'Идентификатор записи'; COMMENT ON COLUMN MARKET_HISTORY.CREATED_AT IS 'Дата-время создания записи'; @@ -1572,7 +1543,7 @@ COMMENT ON COLUMN CLIENT_CODE_HISTORY.UPDATED_AT IS 'Дата-время изм -- tradingClearingRegistry - Торгово-клиринговый регистр DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY; -CREATE TABLE TRADING_CLEARING_REGISTRY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), MONEY_ACCOUNT_ID bigint, DEPO_AACCOUNT_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(4), TRADING_CLEARING_REGISTRY_LEVEL varchar(4), TRADING_CLEARING_REGISTRY_PURPOSE varchar(4), STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE TRADING_CLEARING_REGISTRY(ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), MONEY_ACCOUNT_ID bigint, DEPO_ACCOUNT_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(4), TRADING_CLEARING_REGISTRY_LEVEL varchar(4), TRADING_CLEARING_REGISTRY_PURPOSE varchar(4), STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.ID IS 'Идентификатор записи'; @@ -1583,7 +1554,7 @@ COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.CODE IS 'Код торгово-кл COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.MONEY_ACCOUNT_ID IS 'Идентификатор денежного счета (linked to account)'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.DEPO_AACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; +COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.DEPO_ACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.TRADING_CLEARING_REGISTRY_TYPE IS 'Код торгово-клирингового регистра (linked to tradingClearingRegistryType)'; @@ -1600,7 +1571,7 @@ COMMENT ON COLUMN TRADING_CLEARING_REGISTRY.UPDATED_AT IS 'Дата-время -- History log of tradingClearingRegistry - Торгово-клиринговый регистр DROP TABLE IF EXISTS TRADING_CLEARING_REGISTRY_HISTORY; -CREATE TABLE TRADING_CLEARING_REGISTRY_HISTORY(TRADING_CLEARING_REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), MONEY_ACCOUNT_ID bigint, DEPO_AACCOUNT_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(4), TRADING_CLEARING_REGISTRY_LEVEL varchar(4), TRADING_CLEARING_REGISTRY_PURPOSE varchar(4), STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE TRADING_CLEARING_REGISTRY_HISTORY(TRADING_CLEARING_REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, COMPANY_ID bigint, CODE varchar(255), MONEY_ACCOUNT_ID bigint, DEPO_ACCOUNT_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(4), TRADING_CLEARING_REGISTRY_LEVEL varchar(4), TRADING_CLEARING_REGISTRY_PURPOSE varchar(4), STATUS varchar(4), CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE TRADING_CLEARING_REGISTRY_HISTORY IS 'История изменений таблицы tradingClearingRegistry'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY_ID IS 'Идентификатор записи в таблице TRADING_CLEARING_REGISTRY'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1615,7 +1586,7 @@ COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.CODE IS 'Код торгов COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.MONEY_ACCOUNT_ID IS 'Идентификатор денежного счета (linked to account)'; -COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.DEPO_AACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; +COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.DEPO_ACCOUNT_ID IS 'Идентификатор депозитарного счета (linked to account)'; COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.TRADING_CLEARING_REGISTRY_TYPE IS 'Код торгово-клирингового регистра (linked to tradingClearingRegistryType)'; @@ -1631,7 +1602,7 @@ COMMENT ON COLUMN TRADING_CLEARING_REGISTRY_HISTORY.UPDATED_AT IS 'Дата-вр -- registry - Регистр активов, обязательств и требований УК DROP TABLE IF EXISTS REGISTRY; -CREATE TABLE REGISTRY(COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_ID bigint, BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE REGISTRY(COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_ID bigint, BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, SESSION_TYPE varchar(4), PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE REGISTRY IS 'Регистр активов, обязательств и требований УК'; COMMENT ON COLUMN REGISTRY.COMPANY_ID IS 'Идентификатор участника (linked to company)'; @@ -1716,9 +1687,9 @@ COMMENT ON COLUMN REGISTRY.GROUP_ID IS 'Идентификатор группы COMMENT ON COLUMN REGISTRY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN REGISTRY.PAYMENT_ID IS 'Идентификатор платежа'; +COMMENT ON COLUMN REGISTRY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; -COMMENT ON COLUMN REGISTRY.REFUND_PAYMENT_ID IS 'Идентификатор обратного платежа'; +COMMENT ON COLUMN REGISTRY.PAYMENT_ID IS 'Идентификатор платежа'; COMMENT ON COLUMN REGISTRY.ID IS 'Идентификатор записи'; @@ -1729,7 +1700,7 @@ COMMENT ON COLUMN REGISTRY.UPDATED_AT IS 'Дата и время изменен -- History log of registry - Регистр активов, обязательств и требований УК DROP TABLE IF EXISTS REGISTRY_HISTORY; -CREATE TABLE REGISTRY_HISTORY(REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_ID bigint, BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +CREATE TABLE REGISTRY_HISTORY(REGISTRY_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), COMPANY_ID bigint, TRADING_CODE varchar(255), CLEARING_CODE varchar(255), SHORT_NAME varchar(255), FULL_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT_TYPE varchar(4), ACCOUNT varchar(50), REGISTRY_DESIGNATION varchar(4), REGISTRY_INSTRUMENT_TYPE varchar(4), REGISTRY_CAPACITY varchar(4), REGISTRY_UNIT varchar(4), REGISTRY_CODE varchar(4), TRADING_CLEARING_REGISTRY_ID bigint, TRADING_CLEARING_REGISTRY varchar(50), REGISTRY_STATUS varchar(4), SECURITY_ID bigint, BALANCE numeric(72,18), OPEN_BALANCE numeric(72,18), CLOSE_BALANCE numeric(72,18), CREDIT numeric(72,18), DEBIT numeric(72,18), SETTLED_CREDIT numeric(72,18), SETTLED_DEBIT numeric(72,18), CHECK_BALANCE numeric(72,18), DIFF_BALANCE numeric(72,18), PLAN_BALANCE numeric(72,18), BALANCE_DIMENSION varchar(4), SETTLEMENT_DATE date, SETTLEMENT_CODE varchar(12), TRADING_DATE date, CLEARING_DATE date, REFUND_DATE date, VALUE_DATE date, PRICE numeric(72,18), CONTRACT varchar(255), COUNTER_PARTY_ID bigint, COMMENT varchar(255), PARENT_ID bigint, GROUP_ID bigint, SESSION_ID bigint, SESSION_TYPE varchar(4), PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); COMMENT ON TABLE REGISTRY_HISTORY IS 'История изменений таблицы registry'; COMMENT ON COLUMN REGISTRY_HISTORY.REGISTRY_ID IS 'Идентификатор записи в таблице REGISTRY'; COMMENT ON COLUMN REGISTRY_HISTORY.EVENT_TIME IS 'Дата и время изменения'; @@ -1818,9 +1789,9 @@ COMMENT ON COLUMN REGISTRY_HISTORY.GROUP_ID IS 'Идентификатор гр COMMENT ON COLUMN REGISTRY_HISTORY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN REGISTRY_HISTORY.PAYMENT_ID IS 'Идентификатор платежа'; +COMMENT ON COLUMN REGISTRY_HISTORY.SESSION_TYPE IS 'Код типа клиринговой сессии (linked to sessionType)'; -COMMENT ON COLUMN REGISTRY_HISTORY.REFUND_PAYMENT_ID IS 'Идентификатор обратного платежа'; +COMMENT ON COLUMN REGISTRY_HISTORY.PAYMENT_ID IS 'Идентификатор платежа'; COMMENT ON COLUMN REGISTRY_HISTORY.ID IS 'Идентификатор записи'; @@ -2098,65 +2069,6 @@ COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.COMPANY_ID IS 'Идентификат COMMENT ON COLUMN CLEARING_ACCOUNT_HISTORY.ID IS 'Идентификатор записи'; --- sDf51 - ДФ-51 Запрос остатков по всем счетам -DROP TABLE IF EXISTS S_DF51; -CREATE TABLE S_DF51(ID bigint PRIMARY KEY, NUMBER varchar(10), DATETIME varchar(13), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF51 IS 'ДФ-51 Запрос остатков по всем счетам'; - -COMMENT ON COLUMN S_DF51.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF51.NUMBER IS 'Номер запроса остатков по счетам'; - -COMMENT ON COLUMN S_DF51.DATETIME IS 'Дата и время сообщения'; - -COMMENT ON COLUMN S_DF51.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF51.GENERATION_ID IS 'Идентификатор взаимодействия'; - --- sDf52 - ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие) -DROP TABLE IF EXISTS S_DF52; -CREATE TABLE S_DF52(ID bigint PRIMARY KEY, ACCOUNT varchar(25), ACC_NAME varchar(30), DEAL varchar(4), DATE varchar, STATUS bigint, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF52 IS 'ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; - -COMMENT ON COLUMN S_DF52.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF52.ACCOUNT IS 'Код счета участника клиринга'; - -COMMENT ON COLUMN S_DF52.ACC_NAME IS 'Наименование участника клиринга'; - -COMMENT ON COLUMN S_DF52.DEAL IS 'Биржевой код участника клиринга'; - -COMMENT ON COLUMN S_DF52.DATE IS 'Дата изменения состояния счета'; - -COMMENT ON COLUMN S_DF52.STATUS IS 'Статус счета'; - -COMMENT ON COLUMN S_DF52.FILE_NAME IS 'Наименование входящего файла'; - -COMMENT ON COLUMN S_DF52.GENERATION_TIME IS 'Дата и время обработки файла'; - -COMMENT ON COLUMN S_DF52.GENERATION_ID IS 'Идентификатор взаимодействия'; - --- sDf53 - ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) -DROP TABLE IF EXISTS S_DF53; -CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); -COMMENT ON TABLE S_DF53 IS 'ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; - -COMMENT ON COLUMN S_DF53.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN S_DF53.ACCOUNT IS 'Код счета участника клиринга'; - -COMMENT ON COLUMN S_DF53.DEAL IS 'Биржевой код участника клиринга'; - -COMMENT ON COLUMN S_DF53.STATUS IS 'Статус счета'; - -COMMENT ON COLUMN S_DF53.RESULT IS 'Код завершения операции'; - -COMMENT ON COLUMN S_DF53.GENERATION_TIME IS 'Дата и время создания записи'; - -COMMENT ON COLUMN S_DF53.GENERATION_ID IS 'Идентификатор взаимодействия'; - -COMMENT ON COLUMN S_DF53.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; - -- plannerTemplate - Шаблон расписания операционного дня DROP TABLE IF EXISTS PLANNER_TEMPLATE; CREATE TABLE PLANNER_TEMPLATE(TASK varchar(4), TASK_TIME time, TASK_STATUS varchar(4), COMPANY_ID bigint, SECURITY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); @@ -2465,7 +2377,7 @@ COMMENT ON COLUMN EXECUTION_DEPOSIT.COUNTER_PARTY_ID IS 'Идентификат COMMENT ON COLUMN EXECUTION_DEPOSIT.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT.SESSION_ID IS 'Сессия (linked to session)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; COMMENT ON COLUMN EXECUTION_DEPOSIT.ID IS 'Идентификатор записи'; @@ -2535,7 +2447,7 @@ COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COUNTER_PARTY_ID IS 'Идентиф COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SESSION_ID IS 'Сессия (linked to session)'; +COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; COMMENT ON COLUMN EXECUTION_DEPOSIT_HISTORY.ID IS 'Идентификатор записи'; @@ -2608,7 +2520,7 @@ COMMENT ON COLUMN EXECUTION_FOND.EXCHANGE_EXECUTION_MICROSECONDS IS 'Микро COMMENT ON COLUMN EXECUTION_FOND.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_FOND.SESSION_ID IS 'Идентификатор сессии (linked to session)'; +COMMENT ON COLUMN EXECUTION_FOND.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -- History log of executionFond - Сделки на Фондовой секции @@ -2678,708 +2590,349 @@ COMMENT ON COLUMN EXECUTION_FOND_HISTORY.EXCHANGE_EXECUTION_MICROSECONDS IS 'М COMMENT ON COLUMN EXECUTION_FOND_HISTORY.COVERAGE_STATUS IS 'Код статуса достаточности обеспечения (linked to allowed)'; -COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SESSION_ID IS 'Идентификатор сессии (linked to session)'; +COMMENT ON COLUMN EXECUTION_FOND_HISTORY.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; --- clearmemberRegister - Реестр участников клиринга -DROP TABLE IF EXISTS CLEARMEMBER_REGISTER; -CREATE TABLE CLEARMEMBER_REGISTER(TRADING_CODE varchar(255), CLEARING_CODE varchar(255), FULL_NAME varchar(255), SHORT_NAME varchar(255), CATEGORY_LIST varchar(4), CORPORATION_SOLE varchar(4), ACCOUNT varchar(50), BANK bigint, BANK_NAME varchar(255), INN varchar(255), BIC varchar(255), OGRN varchar(255), CPP varchar(255), OCPO varchar(255), CONTRACT_NUMBER varchar(255), CONTRACT_DATE date, REGISTRATION_DATE date, SYSTEM_DATE date, ACCESS_DATE timestamp, SUSPENTION_DATE timestamp, REOPENING_DATE timestamp, CLOSE_DATE timestamp, EXCLUSION_DATE timestamp, ADDRESS varchar(255), EMAIL varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CLEARMEMBER_REGISTER IS 'Реестр участников клиринга'; +-- depoBalanceRegister - Реестр остатков ценных бумаг +DROP TABLE IF EXISTS DEPO_BALANCE_REGISTER; +CREATE TABLE DEPO_BALANCE_REGISTER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint, SESSION_ID bigint, DEPO_CODE varchar(50), QUANTITY numeric(72,2), SECURITY_SYMBOL varchar(255)); +COMMENT ON TABLE DEPO_BALANCE_REGISTER IS 'Реестр остатков ценных бумаг'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.TRADING_CODE IS 'Код участника торгов'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CLEARING_CODE IS 'Код участника клиринга'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.FULL_NAME IS 'Полное наименование участника клиринга'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.SHORT_NAME IS 'Краткое наименование участника клиринга'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CATEGORY_LIST IS 'Категория участника клиринга (linked to clearingCategory)'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CORPORATION_SOLE IS 'Единоличный исполнительный орган (linked to corporationSoleType)'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.DEPO_CODE IS 'Код раздела субсчета/счета депо'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.ACCOUNT IS 'Счета'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.QUANTITY IS 'Количество'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.BANK IS 'Наименование банка (linked to bankAccount)'; +COMMENT ON COLUMN DEPO_BALANCE_REGISTER.SECURITY_SYMBOL IS 'Код ценной бумаги'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.BANK_NAME IS 'Наименование банка'; +-- moneyBalanceRegister - Реестр остатков денежных средств +DROP TABLE IF EXISTS MONEY_BALANCE_REGISTER; +CREATE TABLE MONEY_BALANCE_REGISTER(SET_HOUSE_NAME varchar(255), ACCOUNT varchar(50), INFO_ACCOUNT varchar(50), REMAINDER_SUM numeric(72,18), BLOCKED_SUM numeric(72,18), UNBLOCKED_SUM numeric(72,18), INN varchar(255), SESSION_ID bigint, COMPANY_FULL_NAME varchar(255), COMPANY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE MONEY_BALANCE_REGISTER IS 'Реестр остатков денежных средств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.SET_HOUSE_NAME IS 'Наименование РО'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.BIC IS 'Банковский идентификационный код (БИК)'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.ACCOUNT IS 'Номер торгового/клирингового счета'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.OGRN IS 'Основной государственный регистрационный номер'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.INFO_ACCOUNT IS 'Номер счета внутреннего учета СПВБ'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CPP IS 'Код причины постановки (КПП)'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.REMAINDER_SUM IS 'Остаток денежных средств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.OCPO IS 'Код в Общероссийском классификаторе предприятий'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.BLOCKED_SUM IS 'Сумма блокированных денежных средств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CONTRACT_NUMBER IS 'Номер договора'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.UNBLOCKED_SUM IS 'Сумма свободных денежных средств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CONTRACT_DATE IS 'Дата выдачи'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.REGISTRATION_DATE IS 'Дата регистрации'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.SYSTEM_DATE IS 'Системная дата'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.ACCESS_DATE IS 'Дата допуска к КО'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.SUSPENTION_DATE IS 'Дата приостановления'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.REOPENING_DATE IS 'Дата возобновления'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CLOSE_DATE IS 'Дата прекращения'; +COMMENT ON COLUMN MONEY_BALANCE_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.EXCLUSION_DATE IS 'Дата исключения из реестра'; +-- admittedLiabilitiesRegister - Реестр обязательств, допущенных к клирингу +DROP TABLE IF EXISTS ADMITTED_LIABILITIES_REGISTER; +CREATE TABLE ADMITTED_LIABILITIES_REGISTER(COMPANY_FULL_NAME varchar(255), SESSION_ID bigint, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), COMPANY_ID bigint, CLEARING_CODE varchar(255), ACCOUNT varchar(50), AMOUNT numeric(72,18), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE ADMITTED_LIABILITIES_REGISTER IS 'Реестр обязательств, допущенных к клирингу'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.ADDRESS IS 'Адрес местонахождения'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.EMAIL IS 'Электронная почта'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.SECURITY_FULL_NAME IS 'Полное наименование инструмента'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; --- clearmemberRegisterChange - Журнал изменений информации участников клиринга -DROP TABLE IF EXISTS CLEARMEMBER_REGISTER_CHANGE; -CREATE TABLE CLEARMEMBER_REGISTER_CHANGE(DATE timestamp, CLEARING_CODE varchar(255), COMMENT varchar(255)); -COMMENT ON TABLE CLEARMEMBER_REGISTER_CHANGE IS 'Журнал изменений информации участников клиринга'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CLEARING_CODE IS 'Код участника клиринга'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER_CHANGE.DATE IS 'Дата и время изменения записи'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.ACCOUNT IS 'Счет компании'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER_CHANGE.CLEARING_CODE IS 'Код участника клиринга'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.AMOUNT IS 'Сумма обязательств'; -COMMENT ON COLUMN CLEARMEMBER_REGISTER_CHANGE.COMMENT IS 'Комментарий'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; --- keyRate - Ключевая ставка ЦБ -DROP TABLE IF EXISTS KEY_RATE; -CREATE TABLE KEY_RATE(RATE numeric(72,18), START_DATE date, END_DATE date, DOCUMENT varchar(255), WORKFLOW_STATUS varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE KEY_RATE IS 'Ключевая ставка ЦБ'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN KEY_RATE.RATE IS 'Ключевая ставка ЦБ'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN KEY_RATE.START_DATE IS 'Дата начала действия ключевой ставки'; +COMMENT ON COLUMN ADMITTED_LIABILITIES_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -COMMENT ON COLUMN KEY_RATE.END_DATE IS 'Дата окончания действия ключевой ставки'; +-- coveredLiabilitiesRegister - Реестр обязательств, прошедших процедуру контроля обеспечения +DROP TABLE IF EXISTS COVERED_LIABILITIES_REGISTER; +CREATE TABLE COVERED_LIABILITIES_REGISTER(COMPANY_FULL_NAME varchar(255), SESSION_ID bigint, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), COMPANY_ID bigint, CLEARING_CODE varchar(255), ACCOUNT varchar(50), AMOUNT numeric(72,18), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE COVERED_LIABILITIES_REGISTER IS 'Реестр обязательств, прошедших процедуру контроля обеспечения'; -COMMENT ON COLUMN KEY_RATE.DOCUMENT IS 'Документ ЦБ, регламентирующий установку величины ключевой ставки'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN KEY_RATE.WORKFLOW_STATUS IS 'Статус (linked to workflowStatus)'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN KEY_RATE.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; --- balanceRegister - Реестр остатков денежных средств -DROP TABLE IF EXISTS BALANCE_REGISTER; -CREATE TABLE BALANCE_REGISTER(S_DF01_DATE timestamp, CURRENCY_CODE varchar(4), SET_HOUSE_NAME varchar(255), ACCOUNT varchar(50), INFO_ACCOUNT varchar(50), REMAINDER_SUM numeric(72,18), BLOCKED_SUM numeric(72,18), UNBLOCKED_SUM numeric(72,18), INN varchar(255), MARKET bigint, FULL_NAME varchar(255), TYPE_REMAINS varchar(4), DOC_NUMBER varchar(255), COMPANY_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE BALANCE_REGISTER IS 'Реестр остатков денежных средств'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.SECURITY_FULL_NAME IS 'Полное наименование инструмента'; -COMMENT ON COLUMN BALANCE_REGISTER.S_DF01_DATE IS 'Дата создания записи в S_DF01'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN BALANCE_REGISTER.CURRENCY_CODE IS 'Код валюты (linked to currencyCode)'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CLEARING_CODE IS 'Код участника клиринга'; -COMMENT ON COLUMN BALANCE_REGISTER.SET_HOUSE_NAME IS 'Наименование РО'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.ACCOUNT IS 'Счет компании'; -COMMENT ON COLUMN BALANCE_REGISTER.ACCOUNT IS 'Номер торгового/клирингового счета'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.AMOUNT IS 'Сумма обязательств'; -COMMENT ON COLUMN BALANCE_REGISTER.INFO_ACCOUNT IS 'Номер счета внутреннего учета СПВБ'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN BALANCE_REGISTER.REMAINDER_SUM IS 'Остаток денежных средст'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN BALANCE_REGISTER.BLOCKED_SUM IS 'Сумма блокированных денежных средств'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN BALANCE_REGISTER.UNBLOCKED_SUM IS 'Сумма свободных денежных средств'; +COMMENT ON COLUMN COVERED_LIABILITIES_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -COMMENT ON COLUMN BALANCE_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; +-- moneyPaymentInstructionRegister - Реестр распоряжений, направленных расчетной организации +DROP TABLE IF EXISTS MONEY_PAYMENT_INSTRUCTION_REGISTER; +CREATE TABLE MONEY_PAYMENT_INSTRUCTION_REGISTER(CREDIT_LEG_ACCOUNT varchar, CREDIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_CURRENCY_CODE varchar(4), DEBIT_LEG_ACCOUNT varchar, SENDER varchar(255), ADDRESSEE varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE MONEY_PAYMENT_INSTRUCTION_REGISTER IS 'Реестр распоряжений, направленных расчетной организации'; -COMMENT ON COLUMN BALANCE_REGISTER.MARKET IS 'Сегмент рынка (linked to market)'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_ACCOUNT IS 'Счет отправителя'; -COMMENT ON COLUMN BALANCE_REGISTER.FULL_NAME IS 'Наименование Участника Клиринга'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_AMOUNT IS 'Сумма отправителя'; -COMMENT ON COLUMN BALANCE_REGISTER.TYPE_REMAINS IS 'Тип остатка'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; -COMMENT ON COLUMN BALANCE_REGISTER.DOC_NUMBER IS 'Номер документа'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.DEBIT_LEG_ACCOUNT IS 'Счет получателя'; -COMMENT ON COLUMN BALANCE_REGISTER.COMPANY_ID IS 'Компания (linked to company)'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.SENDER IS 'Отправитель'; -COMMENT ON COLUMN BALANCE_REGISTER.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.ADDRESSEE IS 'Получатель'; -COMMENT ON COLUMN BALANCE_REGISTER.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN BALANCE_REGISTER.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; --- managementJournal - Журнал мониторинга и контроля -DROP TABLE IF EXISTS MANAGEMENT_JOURNAL; -CREATE TABLE MANAGEMENT_JOURNAL(COMPANY_ID bigint, USER_ID bigint, MANAGEMENT_JOURNAL_TYPE varchar(4), MANAGEMENT_JOURNAL_PURPOSE varchar(4), MANAGEMENT_JOURNAL_STATUS varchar(4), TEXT varchar(4096), CHANGE_ACCESS_SIGN varchar(4), CHANGE_DATA_SIGN varchar(4), EVENT_DATE timestamp, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE MANAGEMENT_JOURNAL IS 'Журнал мониторинга и контроля'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.COMPANY_ID IS 'Участник (linked to company)'; +COMMENT ON COLUMN MONEY_PAYMENT_INSTRUCTION_REGISTER.CLEARING_DATE IS 'Дата расчета'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.USER_ID IS 'Автор сообщения (linked to userCls)'; +-- depoPaymentInstructionRegister - Реестр распоряжений, направленных расчетному депозитарию +DROP TABLE IF EXISTS DEPO_PAYMENT_INSTRUCTION_REGISTER; +CREATE TABLE DEPO_PAYMENT_INSTRUCTION_REGISTER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint, TRADING_CLEARING_REGISTRY_TYPE varchar(255), TRADING_CLEARING_REGISTRY varchar(50), CB_CODE varchar(50), QUANTITY numeric(72,2), DIRECTION bigint, SESSION_ID bigint); +COMMENT ON TABLE DEPO_PAYMENT_INSTRUCTION_REGISTER IS 'Реестр распоряжений, направленных расчетному депозитарию'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_TYPE IS 'Тип мониторинга (linked to managementJournalType)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_PURPOSE IS 'Цель мониторинга (linked to managementJournalPurpose)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_STATUS IS 'Статус (linked to managementJournalStatus)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.TEXT IS 'Сообщение'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_ACCESS_SIGN IS 'Признак изменения доступа (linked to allowed)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.TRADING_CLEARING_REGISTRY_TYPE IS 'Тип торгово-клирингового регистра'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_DATA_SIGN IS 'Признак изменения данных (linked to allowed)'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.TRADING_CLEARING_REGISTRY IS 'Торгово-клиринговый регистр'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.EVENT_DATE IS 'Дата события ЕГРЮЛ'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.CB_CODE IS 'Код ЦБ'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.QUANTITY IS 'Количество'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.DIRECTION IS 'Направление (linked to inOutDirection)'; -COMMENT ON COLUMN MANAGEMENT_JOURNAL.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN DEPO_PAYMENT_INSTRUCTION_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; --- inDocumentJournal - Журнал входящих документов -DROP TABLE IF EXISTS IN_DOCUMENT_JOURNAL; -CREATE TABLE IN_DOCUMENT_JOURNAL(REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), SENDER varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE varchar(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), COMMENT varchar(255), RECEIPT_DATE date, RESULT_STATUS varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE IN_DOCUMENT_JOURNAL IS 'Журнал входящих документов'; +-- excludeLiabilitiesRegister - Реестр обязательств, исключенных из клирингового пула +DROP TABLE IF EXISTS EXCLUDE_LIABILITIES_REGISTER; +CREATE TABLE EXCLUDE_LIABILITIES_REGISTER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SESSION_ID bigint, VALID_FROM_DATE date, VALID_TO_DATE date, COMPANY_ID bigint, COMPANY_FULL_NAME varchar(255), INN varchar(255), SEGMENT varchar(10), REGISTRY_CODE varchar(4), ACCOUNT varchar(50), REGISTRY_STATUS varchar(4), CURRENCY varchar(4), SUM_LIABILITIES numeric(72,18), SETTLEMENT_DATE date); +COMMENT ON TABLE EXCLUDE_LIABILITIES_REGISTER IS 'Реестр обязательств, исключенных из клирингового пула'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.SENDER IS 'Полное наименование отправителя'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.VALID_FROM_DATE IS 'Дата начала cессии'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.VALID_TO_DATE IS 'Дата окончания cессии'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код Участника Клиринга'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Способ отправки (linked to courierType)'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SEGMENT IS 'Сегмент'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.REGISTRY_CODE IS 'Код регистра (linked to tradingClearingRegistryType)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COMMENT IS 'Комментарий'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.ACCOUNT IS 'Наименование счета'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RECEIPT_DATE IS 'Дата получения оригинала'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.REGISTRY_STATUS IS 'Код статуса'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Статус загрузки документа (linked to resultStatus)'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.CURRENCY IS 'Код валюты отправителя (linked to currency)'; -COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SUM_LIABILITIES IS 'Сумма обязательств'; --- outDocumentJournal - Журнал исходящих документов -DROP TABLE IF EXISTS OUT_DOCUMENT_JOURNAL; -CREATE TABLE OUT_DOCUMENT_JOURNAL(REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), ADDRESSEE varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE varchar(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), POST_DATE date, RESULT_STATUS varchar(4), ID bigint PRIMARY KEY); -COMMENT ON TABLE OUT_DOCUMENT_JOURNAL IS 'Журнал исходящих документов'; +COMMENT ON COLUMN EXCLUDE_LIABILITIES_REGISTER.SETTLEMENT_DATE IS 'Дата расчета'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; +-- liabilitiesRegister - Реестр учета обязательств +DROP TABLE IF EXISTS LIABILITIES_REGISTER; +CREATE TABLE LIABILITIES_REGISTER(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, SESSION_ID bigint, VALID_FROM_DATE date, VALID_TO_DATE date, COMPANY_ID bigint, COMPANY_FULL_NAME varchar(255), INN varchar(255), SEGMENT varchar(10), REGISTRY_CODE varchar(4), ACCOUNT varchar(50), REGISTRY_STATUS varchar(4), CURRENCY varchar(4), SUM_LIABILITIES numeric(72,18), SETTLEMENT_DATE date); +COMMENT ON TABLE LIABILITIES_REGISTER IS 'Реестр учета обязательств'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; +COMMENT ON COLUMN LIABILITIES_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; +COMMENT ON COLUMN LIABILITIES_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; +COMMENT ON COLUMN LIABILITIES_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ADDRESSEE IS 'Полное наименование получателя'; +COMMENT ON COLUMN LIABILITIES_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; +COMMENT ON COLUMN LIABILITIES_REGISTER.VALID_FROM_DATE IS 'Дата начала cессии'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код Участника Клиринга'; +COMMENT ON COLUMN LIABILITIES_REGISTER.VALID_TO_DATE IS 'Дата окончания cессии'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Способ отправки (linked to courierType)'; +COMMENT ON COLUMN LIABILITIES_REGISTER.COMPANY_ID IS 'Идентификатор компании (linked to company)'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; +COMMENT ON COLUMN LIABILITIES_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; +COMMENT ON COLUMN LIABILITIES_REGISTER.INN IS 'Идентификационный номер налогоплательщика (ИНН)'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; +COMMENT ON COLUMN LIABILITIES_REGISTER.SEGMENT IS 'Сегмент'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.POST_DATE IS 'Дата почтового отправления'; +COMMENT ON COLUMN LIABILITIES_REGISTER.REGISTRY_CODE IS 'Код регистра (linked to tradingClearingRegistryType)'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Статус выгрузки документа (linked to resultStatus)'; +COMMENT ON COLUMN LIABILITIES_REGISTER.ACCOUNT IS 'Наименование счета'; -COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN LIABILITIES_REGISTER.REGISTRY_STATUS IS 'Код статуса'; --- dealRegister - Реестр сделок -DROP TABLE IF EXISTS DEAL_REGISTER; -CREATE TABLE DEAL_REGISTER(EXECUTION_ID bigint, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, TRADING_DATE date, ACCOUNT varchar(50), MARKET varchar(4), PRICE numeric(72,18), AMOUNT numeric(72,2), SIDE varchar(4), SETTLEMENT_CURRENCY varchar(4), COMPANY_ID bigint, FIRST_LEG_SETTLEMENT_DATE date, SECOND_LEG_SETTLEMENT_DATE date, SECURITY_FULL_NAME varchar(255), SECURITY_SYMBOL varchar(255), SECURITY_ID bigint, COUNTER_PARTY_ID bigint, COVERAGE_STATUS varchar(4), SESSION_ID bigint, ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE DEAL_REGISTER IS 'Реестр сделок'; +COMMENT ON COLUMN LIABILITIES_REGISTER.CURRENCY IS 'Код валюты отправителя (linked to currency)'; -COMMENT ON COLUMN DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; +COMMENT ON COLUMN LIABILITIES_REGISTER.SUM_LIABILITIES IS 'Сумма обязательств'; -COMMENT ON COLUMN DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; +COMMENT ON COLUMN LIABILITIES_REGISTER.SETTLEMENT_DATE IS 'Дата расчета'; -COMMENT ON COLUMN DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; +-- executionRegister - Реестр сделок +DROP TABLE IF EXISTS EXECUTION_REGISTER; +CREATE TABLE EXECUTION_REGISTER(TRADING_DATE date, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, SECURITY_ID bigint, SELLER_ID bigint, SELLER_CLEARING_CODE varchar(255), SELLER_TRADING_CLEARING_REGISTER varchar(255), SELLER_MONEY_ACCOUNT varchar(50), SELLER_DEPO_ACCOUNT varchar(50), BUYER_ID bigint, BUYER_CLEARING_CODE varchar(255), BUYER_TRADING_CLEARING_REGISTER varchar(255), BUYER_MONEY_ACCOUNT varchar(50), BUYER_DEPO_ACCOUNT varchar(50), AMOUNT numeric(72,2), QUANTITY numeric(72,2), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE EXECUTION_REGISTER IS 'Реестр сделок'; -COMMENT ON COLUMN DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; +COMMENT ON COLUMN EXECUTION_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; -COMMENT ON COLUMN DEAL_REGISTER.ACCOUNT IS 'Торговый счет'; +COMMENT ON COLUMN EXECUTION_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; -COMMENT ON COLUMN DEAL_REGISTER.MARKET IS 'Секция финансового инструмента (linked to market)'; +COMMENT ON COLUMN EXECUTION_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; -COMMENT ON COLUMN DEAL_REGISTER.PRICE IS 'Ставка по депозиту'; +COMMENT ON COLUMN EXECUTION_REGISTER.SECURITY_ID IS 'Идентификатор финансового инструмента (linked to security)'; -COMMENT ON COLUMN DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_ID IS 'Идентификатор компании-продавца (linked to company)'; -COMMENT ON COLUMN DEAL_REGISTER.SIDE IS 'Направление сделки (linked to moneyFlowSide)'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_CLEARING_CODE IS 'Клиринговый код продавца'; -COMMENT ON COLUMN DEAL_REGISTER.SETTLEMENT_CURRENCY IS 'Валюта расчетов по инструменту (linked to currencyCode)'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_TRADING_CLEARING_REGISTER IS 'Торгово-клиринговый регистр продавца'; -COMMENT ON COLUMN DEAL_REGISTER.COMPANY_ID IS 'Название компании (linked to company)'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_MONEY_ACCOUNT IS 'Денежный счет продавца'; -COMMENT ON COLUMN DEAL_REGISTER.FIRST_LEG_SETTLEMENT_DATE IS 'Дата размещения'; +COMMENT ON COLUMN EXECUTION_REGISTER.SELLER_DEPO_ACCOUNT IS 'Депо счет продавца'; -COMMENT ON COLUMN DEAL_REGISTER.SECOND_LEG_SETTLEMENT_DATE IS 'Дата возврата'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_ID IS 'Идентификатор компании-покупателя (linked to company)'; -COMMENT ON COLUMN DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_CLEARING_CODE IS 'Клиринговый код покупателя'; -COMMENT ON COLUMN DEAL_REGISTER.SECURITY_SYMBOL IS 'Код инструмента в Торговой Системе'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_TRADING_CLEARING_REGISTER IS 'Торгово-клиринговый регистр покупателя'; -COMMENT ON COLUMN DEAL_REGISTER.SECURITY_ID IS 'Финансовый инструмент (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_MONEY_ACCOUNT IS 'Денежный счет покупателя'; -COMMENT ON COLUMN DEAL_REGISTER.COUNTER_PARTY_ID IS 'Имя компании-партнера, с которым заключена сделка (linked to company)'; +COMMENT ON COLUMN EXECUTION_REGISTER.BUYER_DEPO_ACCOUNT IS 'Депо счет покупателя'; -COMMENT ON COLUMN DEAL_REGISTER.COVERAGE_STATUS IS 'Cтатус достаточности обеспечения (linked to allowed)'; +COMMENT ON COLUMN EXECUTION_REGISTER.AMOUNT IS 'Сумма сделки'; -COMMENT ON COLUMN DEAL_REGISTER.SESSION_ID IS 'Наименование сессии (linked to moneyMarketSession)'; +COMMENT ON COLUMN EXECUTION_REGISTER.QUANTITY IS 'Количество ценных бумаг'; -COMMENT ON COLUMN DEAL_REGISTER.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN EXECUTION_REGISTER.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; +COMMENT ON COLUMN EXECUTION_REGISTER.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; +COMMENT ON COLUMN EXECUTION_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- admittedDealRegister - Реестр сделок, допущенных к клирингу -DROP TABLE IF EXISTS ADMITTED_DEAL_REGISTER; -CREATE TABLE ADMITTED_DEAL_REGISTER(EXECUTION_ID bigint, COMPANY_FULL_NAME varchar(255), TRADING_DATE date, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar(50), BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar(50), AMOUNT numeric(72,2), ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE ADMITTED_DEAL_REGISTER IS 'Реестр сделок, допущенных к клирингу'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; - -COMMENT ON COLUMN ADMITTED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- coveredDealRegister - Реестр сделок, прошедших процедуру контроля обеспечения -DROP TABLE IF EXISTS COVERED_DEAL_REGISTER; -CREATE TABLE COVERED_DEAL_REGISTER(EXECUTION_ID bigint, COMPANY_FULL_NAME varchar(255), TRADING_DATE date, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar(50), BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar(50), AMOUNT numeric(72,2), ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE COVERED_DEAL_REGISTER IS 'Реестр сделок, прошедших процедуру контроля обеспечения'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; - -COMMENT ON COLUMN COVERED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- uncoveredDealRegister - Реестр сделок, не прошедших процедуру контроля обеспечения -DROP TABLE IF EXISTS UNCOVERED_DEAL_REGISTER; -CREATE TABLE UNCOVERED_DEAL_REGISTER(EXECUTION_ID bigint, COMPANY_FULL_NAME varchar(255), TRADING_DATE date, EXCHANGE_EXECUTION_ID bigint, EXCHANGE_EXECUTION_TIME timestamp, SECURITY_SYMBOL varchar(255), SECURITY_FULL_NAME varchar(255), SELLER_FULL_NAME varchar(255), SELLER_CLEARING_CODE varchar(255), SELLER_ACCOUNT varchar(50), BUYER_FULL_NAME varchar(255), BUYER_CLEARING_CODE varchar(255), BUYER_ACCOUNT varchar(50), AMOUNT numeric(72,2), RESULT_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE UNCOVERED_DEAL_REGISTER IS 'Реестр сделок, не прошедших процедуру контроля обеспечения'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXECUTION_ID IS 'Идентификационный номер сделки в Клиринговой системе'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.COMPANY_FULL_NAME IS 'Наименование биржи'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.TRADING_DATE IS 'Дата заключения сделки'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_ID IS 'Идентификационный номер сделки в Торговой системе'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.EXCHANGE_EXECUTION_TIME IS 'Время заключения сделки в Торговой системе'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SECURITY_SYMBOL IS 'Финансовый инструмент'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SECURITY_FULL_NAME IS 'Наименование инструмента'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_FULL_NAME IS 'Наименование продавца'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_CLEARING_CODE IS 'Код продавца'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.SELLER_ACCOUNT IS 'Счет продавца'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_FULL_NAME IS 'Наименование покупателя'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_CLEARING_CODE IS 'Код покупателя'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.BUYER_ACCOUNT IS 'Счет покупателя'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.AMOUNT IS 'Сумма сделки'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.RESULT_STATUS IS 'Результат клиринга (linked to resultStatus)'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.CREATED_AT IS 'Время регистрации'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.UPDATED_AT IS 'Время изменения'; - -COMMENT ON COLUMN UNCOVERED_DEAL_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- reportRegister - Реестр отправленных отчетов -DROP TABLE IF EXISTS REPORT_REGISTER; -CREATE TABLE REPORT_REGISTER(COMPANY_FULL_NAME varchar(255), CLEARING_CODE varchar(255), SESSION_ID bigint, COMMENT varchar(255), NAME varchar(255), QUANTITY bigint, ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time, CLEARING_DATE date); -COMMENT ON TABLE REPORT_REGISTER IS 'Реестр отправленных отчетов'; - -COMMENT ON COLUMN REPORT_REGISTER.COMPANY_FULL_NAME IS 'Наименование участника'; - -COMMENT ON COLUMN REPORT_REGISTER.CLEARING_CODE IS 'Код клиринга'; - -COMMENT ON COLUMN REPORT_REGISTER.SESSION_ID IS 'Сессия (linked to moneyMarketSession)'; - -COMMENT ON COLUMN REPORT_REGISTER.COMMENT IS 'Комментарий'; - -COMMENT ON COLUMN REPORT_REGISTER.NAME IS 'Наименование'; - -COMMENT ON COLUMN REPORT_REGISTER.QUANTITY IS 'Количество записей'; - -COMMENT ON COLUMN REPORT_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN REPORT_REGISTER.CREATED_AT IS 'Время регистрации'; - -COMMENT ON COLUMN REPORT_REGISTER.UPDATED_AT IS 'Время изменения'; - -COMMENT ON COLUMN REPORT_REGISTER.CLEARING_DATE IS 'Дата клиринга'; - --- contractRegister - Журнал регистрации договоров -DROP TABLE IF EXISTS CONTRACT_REGISTER; -CREATE TABLE CONTRACT_REGISTER(NAME varchar(255), NUMBER varchar(255), ISSUE_DATE date, COMPANY_FULL_NAME bigint, COMPANY_ID bigint, DOCUMENT_TYPE varchar(4), ISSUE_PLACE varchar(255), ISSUER varchar(255), ISSUER_CODE varchar(255), PLACE varchar(255), VALID_FROM_DATE date, VALID_TO_DATE date, CLOSE_DATE date, COMMENT varchar(255), ID bigint PRIMARY KEY, CREATED_AT time, UPDATED_AT time); -COMMENT ON TABLE CONTRACT_REGISTER IS 'Журнал регистрации договоров'; - -COMMENT ON COLUMN CONTRACT_REGISTER.NAME IS 'Наименование документа'; - -COMMENT ON COLUMN CONTRACT_REGISTER.NUMBER IS 'Номер документа'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_DATE IS 'Дата составления'; - -COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_FULL_NAME IS 'Наименование лица'; - -COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_ID IS 'Наименование Компании (linked to company)'; - -COMMENT ON COLUMN CONTRACT_REGISTER.DOCUMENT_TYPE IS 'Наименование типа документа (linked to documentType)'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_PLACE IS 'Место выдачи'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER IS 'Кем выдан'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER_CODE IS 'Код выдавшего органа'; - -COMMENT ON COLUMN CONTRACT_REGISTER.PLACE IS 'Место'; - -COMMENT ON COLUMN CONTRACT_REGISTER.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN CONTRACT_REGISTER.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN CONTRACT_REGISTER.CLOSE_DATE IS 'Дата расторжения'; - -COMMENT ON COLUMN CONTRACT_REGISTER.COMMENT IS 'Место'; - -COMMENT ON COLUMN CONTRACT_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN CONTRACT_REGISTER.CREATED_AT IS 'Дата и время регистрации документа'; - -COMMENT ON COLUMN CONTRACT_REGISTER.UPDATED_AT IS 'Время изменения сделки'; - --- orderRegister - Реестр распоряжений, направленных расчетной организации -DROP TABLE IF EXISTS ORDER_REGISTER; -CREATE TABLE ORDER_REGISTER(CREDIT_LEG_ACCOUNT varchar, CREDIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_CURRENCY_CODE varchar(4), CREDIT_LEG_DIRECTION bigint, DEBIT_LEG_ACCOUNT varchar, SENDER varchar(255), ADDRESSEE varchar(255), DOCUMENT_NUMBER varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); -COMMENT ON TABLE ORDER_REGISTER IS 'Реестр распоряжений, направленных расчетной организации'; - -COMMENT ON COLUMN ORDER_REGISTER.CREDIT_LEG_ACCOUNT IS 'Счет отправителя'; - -COMMENT ON COLUMN ORDER_REGISTER.CREDIT_LEG_AMOUNT IS 'Сумма отправителя'; - -COMMENT ON COLUMN ORDER_REGISTER.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; - -COMMENT ON COLUMN ORDER_REGISTER.CREDIT_LEG_DIRECTION IS 'Направление отправителя (linked to inOutDirection)'; - -COMMENT ON COLUMN ORDER_REGISTER.DEBIT_LEG_ACCOUNT IS 'Счет получателя'; - -COMMENT ON COLUMN ORDER_REGISTER.SENDER IS 'Отправитель'; - -COMMENT ON COLUMN ORDER_REGISTER.ADDRESSEE IS 'Получатель'; - -COMMENT ON COLUMN ORDER_REGISTER.DOCUMENT_NUMBER IS 'Номер документа в сторонней системе'; - -COMMENT ON COLUMN ORDER_REGISTER.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN ORDER_REGISTER.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN ORDER_REGISTER.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN ORDER_REGISTER.CLEARING_DATE IS 'Дата расчета'; - --- liabilitiesClaimsMoney - Требования и обязательства денежных средств -DROP TABLE IF EXISTS LIABILITIES_CLAIMS_MONEY; -CREATE TABLE LIABILITIES_CLAIMS_MONEY(COMPANY_ID bigint, SHORT_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), ACCOUNT_TYPE varchar(4), CURRENCY varchar(4), LIABILITIES_AMOUNT numeric(72,2), CLAIMS_AMOUNT numeric(72,2), SETTLEMENT_DATE date, TRADING_DATE date, TRADING_CODE varchar(255), FULL_NAME varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); -COMMENT ON TABLE LIABILITIES_CLAIMS_MONEY IS 'Требования и обязательства денежных средств'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.COMPANY_ID IS 'Наименование участника (linked to company)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SHORT_NAME IS 'Короткое наименование Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_ID IS 'Наименование счета (linked to account)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT IS 'Наименование счета'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ACCOUNT_TYPE IS 'Тип счета (linked to accountType)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.LIABILITIES_AMOUNT IS 'Регистр «Обязательства по денежным средствам, сформированные по результатам собственных сделок Участника клиринга», исключая проценты'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLAIMS_AMOUNT IS 'Сумма требований, исключая проценты'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.SETTLEMENT_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_DATE IS 'Дата торгов'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.TRADING_CODE IS 'Торговый код Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.FULL_NAME IS 'Полное наименование Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_MONEY.CLEARING_DATE IS 'Дата клиринга'; - --- liabilitiesClaimsAssets - Требования и обязательства финансовых активов -DROP TABLE IF EXISTS LIABILITIES_CLAIMS_ASSETS; -CREATE TABLE LIABILITIES_CLAIMS_ASSETS(COMPANY_ID bigint, SHORT_NAME varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), ACCOUNT_TYPE varchar(4), CURRENCY varchar(4), SETTLEMENT_DATE date, LIABILITIES_QUANTITY numeric(72,18), CLAIMS_QUANTITY numeric(72,18), CONTRACT varchar(255), SECURITY_ID bigint, TRADING_DATE date, REFUND_DATE date, PRICE numeric(72,18), TRADING_CODE varchar(255), CLEARING_CODE varchar(255), COMMENT varchar(255), FULL_NAME varchar(255), PARENT_ID bigint, LIABILITIES_CLAIMS_MONEY_ID bigint, CLEARING_STATUS bigint, PAYMENT_ID bigint, REFUND_PAYMENT_ID bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); -COMMENT ON TABLE LIABILITIES_CLAIMS_ASSETS IS 'Требования и обязательства финансовых активов'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.COMPANY_ID IS 'Наименование участника (linked to company)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SHORT_NAME IS 'Короткое наименование Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT_ID IS 'Наименование счета (linked to account)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT IS 'Наименование счета'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ACCOUNT_TYPE IS 'Тип счета (linked to accountType)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CURRENCY IS 'Код валюты (linked to currencyCode)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SETTLEMENT_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_QUANTITY IS 'Сумма обязательств'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLAIMS_QUANTITY IS 'Сумма требований'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CONTRACT IS 'Номер договора'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.SECURITY_ID IS 'Инструмент (linked to moneyMarketSecurity)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_DATE IS 'Дата торгов'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_DATE IS 'Дата возврата'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PRICE IS 'Ставка по депозиту'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.TRADING_CODE IS 'Торговый код Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_CODE IS 'Клиринговый код Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.COMMENT IS 'Комментарий'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.FULL_NAME IS 'Полное наименование Участника'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PARENT_ID IS 'Запись основного договора без разделения'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.LIABILITIES_CLAIMS_MONEY_ID IS 'Регистры денежных средств (linked to liabilitiesClaimsMoney)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_STATUS IS 'Статус клиринга (linked to clearingStatus)'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.PAYMENT_ID IS 'Платеж'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.REFUND_PAYMENT_ID IS 'Обратный платежа'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN LIABILITIES_CLAIMS_ASSETS.CLEARING_DATE IS 'Дата клиринга'; +COMMENT ON COLUMN EXECUTION_REGISTER.CLEARING_DATE IS 'Дата клиринга'; -- statement - Денежные средства от расчетной организации DROP TABLE IF EXISTS STATEMENT; -CREATE TABLE STATEMENT(ADDRESSEE_ID bigint, SENDER_ID bigint, STATEMENT_TYPE varchar(4), COMMENT varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), IN_OUT_DIRECTION varchar(4), SETTLEMENT_DATE date, AMOUNT numeric(72,2), CASH_MOVEMENT_CURRENCY_CODE varchar(4), OPERATION_STATUS varchar(4), ERROR_CODE varchar(4), ERROR_TEXT varchar(4), IN_S_DF_ID bigint, OUT_S_DF_ID bigint, IN_OUT_S_DF_TYPE varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +CREATE TABLE STATEMENT(ADDRESSEE_ID bigint, SENDER_ID bigint, STATEMENT_TYPE varchar(4), SECURITY_ID bigint, CONTRACT varchar(255), COMMENT varchar(255), ACCOUNT_ID bigint, ACCOUNT varchar(50), IN_OUT_DIRECTION varchar(4), SETTLEMENT_DATE date, AMOUNT numeric(72,2), OPERATION_STATUS varchar(4), ERROR_CODE_ID bigint, ERROR_TEXT_ID bigint, IN_S_DF_ID bigint, OUT_S_DF_ID bigint, IN_OUT_S_DF_TYPE varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); COMMENT ON TABLE STATEMENT IS 'Денежные средства от расчетной организации'; -COMMENT ON COLUMN STATEMENT.ADDRESSEE_ID IS 'Наименование участника получателя (linked to company)'; +COMMENT ON COLUMN STATEMENT.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; -COMMENT ON COLUMN STATEMENT.SENDER_ID IS 'Наименование участника отправителя (linked to company)'; +COMMENT ON COLUMN STATEMENT.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; -COMMENT ON COLUMN STATEMENT.STATEMENT_TYPE IS 'Тип поступления средств (linked to statementType)'; +COMMENT ON COLUMN STATEMENT.STATEMENT_TYPE IS 'Код типа поступления средств (linked to statementType)'; + +COMMENT ON COLUMN STATEMENT.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; + +COMMENT ON COLUMN STATEMENT.CONTRACT IS 'Продукт'; COMMENT ON COLUMN STATEMENT.COMMENT IS 'Комментарий'; -COMMENT ON COLUMN STATEMENT.ACCOUNT_ID IS 'Наименование счета (linked to account)'; +COMMENT ON COLUMN STATEMENT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; COMMENT ON COLUMN STATEMENT.ACCOUNT IS 'Наименование счета'; -COMMENT ON COLUMN STATEMENT.IN_OUT_DIRECTION IS 'Направление (linked to inOutDirection)'; +COMMENT ON COLUMN STATEMENT.IN_OUT_DIRECTION IS 'Код направления (linked to inOutDirection)'; COMMENT ON COLUMN STATEMENT.SETTLEMENT_DATE IS 'Дата расчетов'; COMMENT ON COLUMN STATEMENT.AMOUNT IS 'Объем'; -COMMENT ON COLUMN STATEMENT.CASH_MOVEMENT_CURRENCY_CODE IS 'Код валюты (linked to currency)'; +COMMENT ON COLUMN STATEMENT.OPERATION_STATUS IS 'Код статуса обработки (linked to operationStatus)'; -COMMENT ON COLUMN STATEMENT.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; +COMMENT ON COLUMN STATEMENT.ERROR_CODE_ID IS 'Идентификатор кода ошибки (linked to errorCode)'; -COMMENT ON COLUMN STATEMENT.ERROR_CODE IS 'Код ошибки (linked to errorCode)'; +COMMENT ON COLUMN STATEMENT.ERROR_TEXT_ID IS 'Идентификатор полного текста ошибки (linked to errorText)'; -COMMENT ON COLUMN STATEMENT.ERROR_TEXT IS 'Полный текст ошибки (linked to errorText)'; +COMMENT ON COLUMN STATEMENT.IN_S_DF_ID IS 'Идентификатор записи, инициировавшая изменения этой таблицы'; -COMMENT ON COLUMN STATEMENT.IN_S_DF_ID IS 'Запись, инициировавшая изменения этой таблицы'; +COMMENT ON COLUMN STATEMENT.OUT_S_DF_ID IS 'Идентификатор записи, сформированная в результате изменения этой таблицы'; -COMMENT ON COLUMN STATEMENT.OUT_S_DF_ID IS 'Запись, сформированная в результате изменения этой таблицы'; - -COMMENT ON COLUMN STATEMENT.IN_OUT_S_DF_TYPE IS 'Типы входящей и исходящей записей (linked to inOutSDfType)'; +COMMENT ON COLUMN STATEMENT.IN_OUT_S_DF_TYPE IS 'Код типа входящей и исходящей записей (linked to inOutSDfType)'; COMMENT ON COLUMN STATEMENT.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN STATEMENT.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN STATEMENT.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN STATEMENT.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN STATEMENT.UPDATED_AT IS 'Дата-время изменения записи'; COMMENT ON COLUMN STATEMENT.CLEARING_DATE IS 'Дата расчета'; --- tradeSettlement - Проводки на базе сделок торговой системы -DROP TABLE IF EXISTS TRADE_SETTLEMENT; -CREATE TABLE TRADE_SETTLEMENT(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, AMOUNT numeric(72,2), CURRENCY_CODE varchar(4), IN_OUT_DIRECTION bigint, ACCOUNT_ID bigint, ACCOUNT varchar(50), OPERATION_STATUS varchar(4)); -COMMENT ON TABLE TRADE_SETTLEMENT IS 'Проводки на базе сделок торговой системы'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.CLEARING_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.AMOUNT IS 'Объем'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.CURRENCY_CODE IS 'Код валюты (linked to currency)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.IN_OUT_DIRECTION IS 'Направление (linked to inOutDirection)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.ACCOUNT_ID IS 'Идентификатор счета (linked to account)'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.ACCOUNT IS 'Счет'; - -COMMENT ON COLUMN TRADE_SETTLEMENT.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; - --- operation - Проводки -DROP TABLE IF EXISTS OPERATION; -CREATE TABLE OPERATION(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, OPERATION_TYPE_ID bigint, OPERATION_STATUS varchar(4)); -COMMENT ON TABLE OPERATION IS 'Проводки'; - -COMMENT ON COLUMN OPERATION.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN OPERATION.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; - -COMMENT ON COLUMN OPERATION.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; - -COMMENT ON COLUMN OPERATION.CREATED_AT IS 'Дата и время создания записи'; - -COMMENT ON COLUMN OPERATION.UPDATED_AT IS 'Дата и время изменения записи'; - -COMMENT ON COLUMN OPERATION.CLEARING_DATE IS 'Дата расчета'; - -COMMENT ON COLUMN OPERATION.OPERATION_TYPE_ID IS 'Тип проводки (linked to operationType)'; - -COMMENT ON COLUMN OPERATION.OPERATION_STATUS IS 'Cтатус обработки (linked to operationStatus)'; - -- paymentInstruction - Платежные поручения DROP TABLE IF EXISTS PAYMENT_INSTRUCTION; -CREATE TABLE PAYMENT_INSTRUCTION(SENDER_ID bigint, ADDRESSEE_ID bigint, ADRESSEE_BIC varchar(255), PAYEE_BANK_NAME varchar(255), PAYEE_BIC varchar(255), ADDRESSEE_BANK_NAME varchar(255), PAYMENT_DATE timestamp, PAYMENT_PURPOSE varchar(255), SETTLEMENT_DATE date, CREDIT_LEG_AMOUNT numeric(72,18), DEBIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_ACCOUNT_ID bigint, CREDIT_CS_ACCOUNT varchar(255), CREDIT_LEG_ACCOUNT varchar(50), DEBIT_LEG_ACCOUNT_ID bigint, DEBIT_CS_ACCOUNT varchar(255), DEBIT_LEG_ACCOUNT varchar(50), CREDIT_LEG_DIRECTION bigint, DEBIT_LEG_DIRECTION bigint, CREDIT_LEG_CURRENCY_CODE varchar(4), DEBIT_LEG_CURRENCY_CODE varchar(4), TRANSACTION_STATUS varchar(4), DOCUMENT_NUMBER varchar(255), ID bigint PRIMARY KEY, UPDATED_AT timestamp, CREATED_AT timestamp, CLEARING_DATE date); +CREATE TABLE PAYMENT_INSTRUCTION(SENDER_ID bigint, ADDRESSEE_ID bigint, PAYEE_BIC varchar(255), ADRESSEE_BIC varchar(255), PAYEE_BANK_NAME varchar(255), ADDRESSEE_BANK_NAME varchar(255), PAYMENT_DATE timestamp, PAYMENT_PURPOSE varchar(255), SETTLEMENT_DATE date, CREDIT_LEG_AMOUNT numeric(72,18), DEBIT_LEG_AMOUNT numeric(72,18), CREDIT_LEG_ACCOUNT_ID bigint, CREDIT_CS_ACCOUNT varchar(255), CREDIT_LEG_ACCOUNT varchar(50), DEBIT_LEG_ACCOUNT_ID bigint, DEBIT_CS_ACCOUNT varchar(255), DEBIT_LEG_ACCOUNT varchar(50), CREDIT_LEG_DIRECTION varchar(4), DEBIT_LEG_DIRECTION varchar(4), CREDIT_LEG_CURRENCY_CODE varchar(4), DEBIT_LEG_CURRENCY_CODE varchar(4), CREDIT_LEG_SECURITY_ID bigint, DEBIT_LEG_SECURITY_ID bigint, TRANSACTION_STATUS varchar(4), DOCUMENT_NUMBER varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SESSION_ID bigint); COMMENT ON TABLE PAYMENT_INSTRUCTION IS 'Платежные поручения'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.SENDER_ID IS 'Наименование участника отправителя (linked to company)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADDRESSEE_ID IS 'Наименование участника получателя (linked to company)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; + +COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYEE_BIC IS 'Банковский идентификационный код (БИК) отправителя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADRESSEE_BIC IS 'Банковский идентификационный код (БИК) получателя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYEE_BANK_NAME IS 'Наименование банка отправителя'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYEE_BIC IS 'Банковский идентификационный код (БИК) отправителя'; - COMMENT ON COLUMN PAYMENT_INSTRUCTION.ADDRESSEE_BANK_NAME IS 'Наименование банка получателя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.PAYMENT_DATE IS 'Дата и время платежа'; @@ -3392,224 +2945,128 @@ COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_AMOUNT IS 'Сумма отпр COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_AMOUNT IS 'Сумма получателя'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_ACCOUNT_ID IS 'Наименование счета отправителя (linked to account)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_ACCOUNT_ID IS 'Идентификатор счета отправителя (linked to account)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_CS_ACCOUNT IS 'Корреспондентский счет отправителя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_ACCOUNT IS 'Счет отправителя'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT_ID IS 'Наименование счета получателя (linked to account)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT_ID IS 'Идентификатор счета получателя (linked to account)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_CS_ACCOUNT IS 'Корреспондентский счет получателя'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_ACCOUNT IS 'Счет получателя'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_DIRECTION IS 'Направление отправителя (linked to inOutDirection)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_DIRECTION IS 'Код направления отправителя (linked to inOutDirection)'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_DIRECTION IS 'Направление получателя (linked to inOutDirection)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_DIRECTION IS 'Код направления получателя (linked to inOutDirection)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_CURRENCY_CODE IS 'Код валюты отправителя (linked to currency)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_CURRENCY_CODE IS 'Код валюты получателя (linked to currency)'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.TRANSACTION_STATUS IS 'Cтатус транзакции (linked to transactionStatus)'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREDIT_LEG_SECURITY_ID IS 'Идентификатор инструмента отправителя (linked to security)'; + +COMMENT ON COLUMN PAYMENT_INSTRUCTION.DEBIT_LEG_SECURITY_ID IS 'Идентификатор инструмента получателя (linked to security)'; + +COMMENT ON COLUMN PAYMENT_INSTRUCTION.TRANSACTION_STATUS IS 'Код статуса транзакции (linked to transactionStatus)'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.DOCUMENT_NUMBER IS 'Номер документа в сторонней системе'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN PAYMENT_INSTRUCTION.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.UPDATED_AT IS 'Дата-время изменения записи'; COMMENT ON COLUMN PAYMENT_INSTRUCTION.CLEARING_DATE IS 'Дата расчета'; --- marketData - Итоги торгов -DROP TABLE IF EXISTS MARKET_DATA; -CREATE TABLE MARKET_DATA(ID bigint PRIMARY KEY, SECURITIES_DEPOSIT_ID bigint, COMPANY_NAME varchar(255), MARKET varchar(4), COUNTER_PARTY_NUM bigint, TRADES_NUM bigint, AMOUNT numeric(72,2), OPEN_PRICE numeric(72,18), MAX_PRICE numeric(72,18), MIN_PRICE numeric(72,18), CLOSE_PRICE numeric(72,18), AVG_PRICE numeric(72,18), DURATION bigint, CREATED_AT time, UPDATED_AT time, TRADING_DATE date); -COMMENT ON TABLE MARKET_DATA IS 'Итоги торгов'; +COMMENT ON COLUMN PAYMENT_INSTRUCTION.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; -COMMENT ON COLUMN MARKET_DATA.ID IS 'Идентификатор записи'; +-- notification - Сообщения +DROP TABLE IF EXISTS NOTIFICATION; +CREATE TABLE NOTIFICATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4)); +COMMENT ON TABLE NOTIFICATION IS 'Сообщения'; -COMMENT ON COLUMN MARKET_DATA.SECURITIES_DEPOSIT_ID IS 'Биржевой код инструмента (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN NOTIFICATION.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN MARKET_DATA.COMPANY_NAME IS 'Инициатор торгов'; +COMMENT ON COLUMN NOTIFICATION.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN MARKET_DATA.MARKET IS 'Секция (linked to market)'; +COMMENT ON COLUMN NOTIFICATION.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN MARKET_DATA.COUNTER_PARTY_NUM IS 'Количество участников, заключивших сделки'; +COMMENT ON COLUMN NOTIFICATION.CLEARING_DATE IS 'Дата'; -COMMENT ON COLUMN MARKET_DATA.TRADES_NUM IS 'Количество сделок'; +COMMENT ON COLUMN NOTIFICATION.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; -COMMENT ON COLUMN MARKET_DATA.AMOUNT IS 'Объем сделок, руб'; +COMMENT ON COLUMN NOTIFICATION.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; -COMMENT ON COLUMN MARKET_DATA.OPEN_PRICE IS 'Откр.'; +COMMENT ON COLUMN NOTIFICATION.OBJECT_TYPE IS 'Код типа объекта (linked to objectType)'; -COMMENT ON COLUMN MARKET_DATA.MAX_PRICE IS 'Макс.'; +COMMENT ON COLUMN NOTIFICATION.OBJECT_ID IS 'Идентификатор объекта'; -COMMENT ON COLUMN MARKET_DATA.MIN_PRICE IS 'Мин.'; +COMMENT ON COLUMN NOTIFICATION.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)'; -COMMENT ON COLUMN MARKET_DATA.CLOSE_PRICE IS 'Закр.'; -COMMENT ON COLUMN MARKET_DATA.AVG_PRICE IS 'Ср.взв.'; +-- History log of notification - Сообщения +DROP TABLE IF EXISTS NOTIFICATION_HISTORY; +CREATE TABLE NOTIFICATION_HISTORY(NOTIFICATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID bigint, NOTIFICATION_STATUS varchar(4)); +COMMENT ON TABLE NOTIFICATION_HISTORY IS 'История изменений таблицы notification'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_ID IS 'Идентификатор записи в таблице NOTIFICATION'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TYPE IS 'Тип изменения'; -COMMENT ON COLUMN MARKET_DATA.DURATION IS 'Срок, дней'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN MARKET_DATA.CREATED_AT IS 'Время регистрации сделки'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN MARKET_DATA.UPDATED_AT IS 'Время изменения сделки'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN MARKET_DATA.TRADING_DATE IS 'Дата торгов'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.CLEARING_DATE IS 'Дата'; --- chargeTariff - Тарифы комиссий -DROP TABLE IF EXISTS CHARGE_TARIFF; -CREATE TABLE CHARGE_TARIFF(ID bigint PRIMARY KEY, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CHARGE_TARIFF IS 'Тарифы комиссий'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; -COMMENT ON COLUMN CHARGE_TARIFF.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; -COMMENT ON COLUMN CHARGE_TARIFF.MARKET IS 'Секция (linked to market)'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_TYPE IS 'Код типа объекта (linked to objectType)'; -COMMENT ON COLUMN CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_ID IS 'Идентификатор объекта'; -COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; +COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_STATUS IS 'Код статуса сообщения (linked to notificationStatus)'; -COMMENT ON COLUMN CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; +-- verificationResult - Результаты сверки +DROP TABLE IF EXISTS VERIFICATION_RESULT; +CREATE TABLE VERIFICATION_RESULT(CLEARING_CODE varchar(255), ACCOUNT_ID bigint, IN_SUM numeric(72,2), OUT_INT_SUM numeric(72,2), OUT_EXT_SUM numeric(72,2), DIFF_SUM numeric(72,2), GENERATION_ID bigint, GENERATION_STATUS varchar(4), RESULT_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE VERIFICATION_RESULT IS 'Результаты сверки'; -COMMENT ON COLUMN CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; +COMMENT ON COLUMN VERIFICATION_RESULT.CLEARING_CODE IS 'Код участника клиринга'; -COMMENT ON COLUMN CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; +COMMENT ON COLUMN VERIFICATION_RESULT.ACCOUNT_ID IS 'Идентификатор счета УК, по которому проводится сверка'; -COMMENT ON COLUMN CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; +COMMENT ON COLUMN VERIFICATION_RESULT.IN_SUM IS 'Входящая сумма остатков'; -COMMENT ON COLUMN CHARGE_TARIFF.CREATED_AT IS 'Создано'; +COMMENT ON COLUMN VERIFICATION_RESULT.OUT_INT_SUM IS 'Исходящая сумма остатков, полученная в КС'; -COMMENT ON COLUMN CHARGE_TARIFF.UPDATED_AT IS 'Изменено'; +COMMENT ON COLUMN VERIFICATION_RESULT.OUT_EXT_SUM IS 'Исходящая сумма остатков из отчета ПРЦ'; +COMMENT ON COLUMN VERIFICATION_RESULT.DIFF_SUM IS 'Сумма расхождений'; --- History log of chargeTariff - Тарифы комиссий -DROP TABLE IF EXISTS CHARGE_TARIFF_HISTORY; -CREATE TABLE CHARGE_TARIFF_HISTORY(CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE CHARGE_TARIFF_HISTORY IS 'История изменений таблицы chargeTariff'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице CHARGE_TARIFF'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.EVENT_TYPE IS 'Тип изменения'; +COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_STATUS IS 'Код общего статуса сверки (linked to resultStatus)'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.MARKET IS 'Секция (linked to market)'; +COMMENT ON COLUMN VERIFICATION_RESULT.RESULT_STATUS IS 'Код статуса сверки (linked to resultStatus)'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; +COMMENT ON COLUMN VERIFICATION_RESULT.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; +COMMENT ON COLUMN VERIFICATION_RESULT.CREATED_AT IS 'Дата-время создания записи'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CHARGE_RATE IS 'Ставка комиссионного сбора'; +COMMENT ON COLUMN VERIFICATION_RESULT.UPDATED_AT IS 'Дата-время изменения записи'; -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.CREATED_AT IS 'Создано'; - -COMMENT ON COLUMN CHARGE_TARIFF_HISTORY.UPDATED_AT IS 'Изменено'; - --- individualChargeTariff - Индивидуальные тарифы комиссий для Участника -DROP TABLE IF EXISTS INDIVIDUAL_CHARGE_TARIFF; -CREATE TABLE INDIVIDUAL_CHARGE_TARIFF(ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF IS 'Индивидуальные тарифы комиссий для Участника'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.COMPANY_ID IS 'Участник (linked to company)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.MARKET IS 'Секция (linked to market)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.CREATED_AT IS 'Создано'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF.UPDATED_AT IS 'Изменено'; - - --- History log of individualChargeTariff - Индивидуальные тарифы комиссий для Участника -DROP TABLE IF EXISTS INDIVIDUAL_CHARGE_TARIFF_HISTORY; -CREATE TABLE INDIVIDUAL_CHARGE_TARIFF_HISTORY(INDIVIDUAL_CHARGE_TARIFF_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, COMPANY_ID bigint, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE INDIVIDUAL_CHARGE_TARIFF_HISTORY IS 'История изменений таблицы individualChargeTariff'; -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.INDIVIDUAL_CHARGE_TARIFF_ID IS 'Идентификатор записи в таблице INDIVIDUAL_CHARGE_TARIFF'; -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.EVENT_TYPE IS 'Тип изменения'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.COMPANY_ID IS 'Участник (linked to company)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.MARKET IS 'Секция (linked to market)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CHARGE_RATE IS 'Ставка комиссионного сбора'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.CREATED_AT IS 'Создано'; - -COMMENT ON COLUMN INDIVIDUAL_CHARGE_TARIFF_HISTORY.UPDATED_AT IS 'Изменено'; - --- companyTariff - Тарифы комиссий в разрезе Участника -DROP TABLE IF EXISTS COMPANY_TARIFF; -CREATE TABLE COMPANY_TARIFF(ID bigint PRIMARY KEY, MARKET varchar(4), CLEARING_MEMBER_CATEGORY varchar(4), FULL_NAME varchar(255), CONTRACT varchar(255), CHARGE_TYPE_ID bigint, CHARGE_RATE numeric(72,18), CURRENCY bigint, VALID_FROM_DATE date, VALID_TO_DATE date, CREATED_AT timestamp, UPDATED_AT timestamp, COMPANY_ID bigint); -COMMENT ON TABLE COMPANY_TARIFF IS 'Тарифы комиссий в разрезе Участника'; - -COMMENT ON COLUMN COMPANY_TARIFF.ID IS 'Идентификатор записи'; - -COMMENT ON COLUMN COMPANY_TARIFF.MARKET IS 'Секция (linked to market)'; - -COMMENT ON COLUMN COMPANY_TARIFF.CLEARING_MEMBER_CATEGORY IS 'Категория участника клиринга (linked to clearingCategory)'; - -COMMENT ON COLUMN COMPANY_TARIFF.FULL_NAME IS 'Полное наименование Участника (linked to company)'; - -COMMENT ON COLUMN COMPANY_TARIFF.CONTRACT IS 'Номер договора'; - -COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_TYPE_ID IS 'Тип комиссии (linked to chargeType)'; - -COMMENT ON COLUMN COMPANY_TARIFF.CHARGE_RATE IS 'Ставка комиссионного сбора'; - -COMMENT ON COLUMN COMPANY_TARIFF.CURRENCY IS 'Валюта начисления комиссии (linked to currencyCode)'; - -COMMENT ON COLUMN COMPANY_TARIFF.VALID_FROM_DATE IS 'Дата начала срока действия'; - -COMMENT ON COLUMN COMPANY_TARIFF.VALID_TO_DATE IS 'Дата окончания срока действия'; - -COMMENT ON COLUMN COMPANY_TARIFF.CREATED_AT IS 'Создано'; - -COMMENT ON COLUMN COMPANY_TARIFF.UPDATED_AT IS 'Изменено'; - -COMMENT ON COLUMN COMPANY_TARIFF.COMPANY_ID IS 'Участник (linked to company)'; - --- sDf01 - ДФ-01 Информация о денежных средствах, находящихся на торговых банковских счетах Участников клиринга +-- sDf01 - ДФ-01 Информации о денежных средствах, находящихся на торговых банковских счетах участников клиринга DROP TABLE IF EXISTS S_DF01; CREATE TABLE S_DF01(ID bigint PRIMARY KEY, CURR_CODE varchar(12), ACCOUNT varchar(35), REMAINDER varchar(22), DEAL varchar(10), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(30), ACC_TYPE varchar(2), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF01 IS 'ДФ-01 Информация о денежных средствах, находящихся на торговых банковских счетах Участников клиринга'; +COMMENT ON TABLE S_DF01 IS 'ДФ-01 Информации о денежных средствах, находящихся на торговых банковских счетах участников клиринга'; COMMENT ON COLUMN S_DF01.ID IS 'Идентификатор записи'; @@ -3645,7 +3102,7 @@ COMMENT ON COLUMN S_DF01.GENERATION_ID IS 'Идентификатор взаим -- sDf02 - ДФ-02 Уведомление об исполнении операции загрузки денежных средств или уведомление об ошибке DROP TABLE IF EXISTS S_DF02; -CREATE TABLE S_DF02(ID bigint PRIMARY KEY, CURR_CODE varchar(12), ACCOUNT varchar(35), REMAINDER varchar(22), DEAL varchar(10), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(30), ACC_TYPE varchar(2), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF01_ID bigint); +CREATE TABLE S_DF02(ID bigint PRIMARY KEY, CURR_CODE varchar(12), ACCOUNT varchar(35), REMAINDER varchar(22), DEAL varchar(10), ACC_CODE varchar(5), DAT varchar(8), MARKET varchar(1), ACC_NAME varchar(30), ACC_TYPE varchar(2), SUMENGAGE varchar(22), SUMUNBLOCK varchar(22), FILE_TYPE varchar(1), RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); COMMENT ON TABLE S_DF02 IS 'ДФ-02 Уведомление об исполнении операции загрузки денежных средств или уведомление об ошибке'; COMMENT ON COLUMN S_DF02.ID IS 'Идентификатор записи'; @@ -3680,12 +3137,12 @@ COMMENT ON COLUMN S_DF02.GENERATION_TIME IS 'Дата и время создан COMMENT ON COLUMN S_DF02.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF02.IN_S_DF01_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; +COMMENT ON COLUMN S_DF02.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; --- sDf03 - ДФ-03 Сводное платежное поручение +-- sDf03 - ДФ-03 Реестр платежных поручений DROP TABLE IF EXISTS S_DF03; -CREATE TABLE S_DF03(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), IMP_RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, PAYMENT_INSTRUCTION_ID bigint); -COMMENT ON TABLE S_DF03 IS 'ДФ-03 Сводное платежное поручение'; +CREATE TABLE S_DF03(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SPECIF_1 varchar(255), IMP_RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, PAYMENT_INSTRUCTION_ID bigint); +COMMENT ON TABLE S_DF03 IS 'ДФ-03 Реестр платежных поручений'; COMMENT ON COLUMN S_DF03.ID IS 'Идентификатор записи'; @@ -3695,11 +3152,7 @@ COMMENT ON COLUMN S_DF03.DOC_TYPE IS 'Тип документа'; COMMENT ON COLUMN S_DF03.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; -COMMENT ON COLUMN S_DF03.DOCNMPREV IS 'Ссылка на предшестввующий документ'; - -COMMENT ON COLUMN S_DF03.PRIORITY IS 'Приоритет скорости отправления сообщения'; - -COMMENT ON COLUMN S_DF03.SBANKCODE IS 'Код банка-плательщика'; +COMMENT ON COLUMN S_DF03.DOCNMPREV IS 'Ссылка на предшествующий документ'; COMMENT ON COLUMN S_DF03.C_ACC_DEB IS 'Счет по дебету'; @@ -3713,8 +3166,6 @@ COMMENT ON COLUMN S_DF03.SBANKNAM4 IS ''; COMMENT ON COLUMN S_DF03.SBANKNAM5 IS ''; -COMMENT ON COLUMN S_DF03.RBANKCODE IS 'Код банка-получателя'; - COMMENT ON COLUMN S_DF03.C_ACC_CRED IS 'Счет по кредиту'; COMMENT ON COLUMN S_DF03.RBANKNAM1 IS 'Наименование банка-получателя'; @@ -3729,56 +3180,12 @@ COMMENT ON COLUMN S_DF03.RBANKNAM5 IS ''; COMMENT ON COLUMN S_DF03.PAY_DATE IS 'Платеж-дата'; -COMMENT ON COLUMN S_DF03.EXT_DATE IS 'Дата по выписке'; - COMMENT ON COLUMN S_DF03.PAY_VAL IS 'Валюта платежа'; COMMENT ON COLUMN S_DF03.SUM_DEB IS 'Сумма дебет '; -COMMENT ON COLUMN S_DF03.SCLIENTN1 IS 'Наименование клиента-плательщика'; - -COMMENT ON COLUMN S_DF03.SCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF03.SCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF03.SCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF03.SC_CODE IS 'Код клиента-плательщика'; - -COMMENT ON COLUMN S_DF03.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF03.RCLIENTN1 IS 'Наименование клиента-получателя'; - -COMMENT ON COLUMN S_DF03.RCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF03.RCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF03.RCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF03.ACC_KR_1 IS 'Счет кредит'; - -COMMENT ON COLUMN S_DF03.ACC_KR_2 IS ''; - -COMMENT ON COLUMN S_DF03.SP_CODE IS 'Код назначения платежа'; - COMMENT ON COLUMN S_DF03.SPECIF_1 IS 'Назначение платежа'; -COMMENT ON COLUMN S_DF03.SPECIF_2 IS ''; - -COMMENT ON COLUMN S_DF03.SPECIF_3 IS ''; - -COMMENT ON COLUMN S_DF03.SPECIF_4 IS ''; - -COMMENT ON COLUMN S_DF03.SPECIF_5 IS ''; - -COMMENT ON COLUMN S_DF03.SPECIF_6 IS ''; - -COMMENT ON COLUMN S_DF03.SEND_TYPE IS 'Тип отправления плат. поручения'; - -COMMENT ON COLUMN S_DF03.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - -COMMENT ON COLUMN S_DF03.DOC_RESULT IS ''; - COMMENT ON COLUMN S_DF03.IMP_RESULT IS 'Результат приема'; COMMENT ON COLUMN S_DF03.GENERATION_TIME IS 'Дата и время создания записи'; @@ -3787,10 +3194,10 @@ COMMENT ON COLUMN S_DF03.GENERATION_ID IS 'Идентификатор взаим COMMENT ON COLUMN S_DF03.PAYMENT_INSTRUCTION_ID IS 'Идентификатор соответствующей записи из таблицы-источника (linked to paymentInstruction)'; --- sDf04 - ДФ-04 Подтверждение переводов из Расчетной организации для СПВБ +-- sDf04 - ДФ-04 Подтверждение проведения расчетов DROP TABLE IF EXISTS S_DF04; -CREATE TABLE S_DF04(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), IMP_RESULT varchar(3), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF04 IS 'ДФ-04 Подтверждение переводов из Расчетной организации для СПВБ'; +CREATE TABLE S_DF04(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SPECIF_1 varchar(255), IMP_RESULT varchar(3), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF04 IS 'ДФ-04 Подтверждение проведения расчетов'; COMMENT ON COLUMN S_DF04.ID IS 'Идентификатор записи'; @@ -3800,11 +3207,7 @@ COMMENT ON COLUMN S_DF04.DOC_TYPE IS 'Тип документа'; COMMENT ON COLUMN S_DF04.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; -COMMENT ON COLUMN S_DF04.DOCNMPREV IS 'Ссылка на предшестввующий документ'; - -COMMENT ON COLUMN S_DF04.PRIORITY IS 'Приоритет скорости отправления сообщения'; - -COMMENT ON COLUMN S_DF04.SBANKCODE IS 'Код банка-плательщика'; +COMMENT ON COLUMN S_DF04.DOCNMPREV IS 'Ссылка на предшествующий документ'; COMMENT ON COLUMN S_DF04.C_ACC_DEB IS 'Счет по дебету'; @@ -3818,8 +3221,6 @@ COMMENT ON COLUMN S_DF04.SBANKNAM4 IS ''; COMMENT ON COLUMN S_DF04.SBANKNAM5 IS ''; -COMMENT ON COLUMN S_DF04.RBANKCODE IS 'Код банка-получателя'; - COMMENT ON COLUMN S_DF04.C_ACC_CRED IS 'Счет по кредиту'; COMMENT ON COLUMN S_DF04.RBANKNAM1 IS 'Наименование банка-получателя'; @@ -3834,56 +3235,12 @@ COMMENT ON COLUMN S_DF04.RBANKNAM5 IS ''; COMMENT ON COLUMN S_DF04.PAY_DATE IS 'Платеж-дата'; -COMMENT ON COLUMN S_DF04.EXT_DATE IS 'Дата по выписке'; - COMMENT ON COLUMN S_DF04.PAY_VAL IS 'Валюта платежа'; COMMENT ON COLUMN S_DF04.SUM_DEB IS 'Сумма дебет '; -COMMENT ON COLUMN S_DF04.SCLIENTN1 IS 'Наименование клиента-плательщика'; - -COMMENT ON COLUMN S_DF04.SCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF04.SCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF04.SCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF04.SC_CODE IS 'Код клиента-плательщика'; - -COMMENT ON COLUMN S_DF04.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF04.RCLIENTN1 IS 'Наименование клиента-получателя'; - -COMMENT ON COLUMN S_DF04.RCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF04.RCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF04.RCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF04.ACC_KR_1 IS 'Счет кредит'; - -COMMENT ON COLUMN S_DF04.ACC_KR_2 IS ''; - -COMMENT ON COLUMN S_DF04.SP_CODE IS 'Код назначения платежа'; - COMMENT ON COLUMN S_DF04.SPECIF_1 IS 'Назначение платежа'; -COMMENT ON COLUMN S_DF04.SPECIF_2 IS ''; - -COMMENT ON COLUMN S_DF04.SPECIF_3 IS ''; - -COMMENT ON COLUMN S_DF04.SPECIF_4 IS ''; - -COMMENT ON COLUMN S_DF04.SPECIF_5 IS ''; - -COMMENT ON COLUMN S_DF04.SPECIF_6 IS ''; - -COMMENT ON COLUMN S_DF04.SEND_TYPE IS 'Тип отправления плат. поручения'; - -COMMENT ON COLUMN S_DF04.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - -COMMENT ON COLUMN S_DF04.DOC_RESULT IS ''; - COMMENT ON COLUMN S_DF04.IMP_RESULT IS 'Результат приема'; COMMENT ON COLUMN S_DF04.FILE_NAME IS 'Наименование входящего файла'; @@ -3892,10 +3249,10 @@ COMMENT ON COLUMN S_DF04.GENERATION_TIME IS 'Дата и время обрабо COMMENT ON COLUMN S_DF04.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf05 - ДФ-05 Уведомление о завершении расчетов в ПРЦ +-- sDf05 - ДФ-05 Уведомление о завершении расчетов DROP TABLE IF EXISTS S_DF05; CREATE TABLE S_DF05(ID bigint PRIMARY KEY, TP numeric(72,18), DT date, TM time, PR varchar(1), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF05 IS 'ДФ-05 Уведомление о завершении расчетов в ПРЦ'; +COMMENT ON TABLE S_DF05 IS 'ДФ-05 Уведомление о завершении расчетов'; COMMENT ON COLUMN S_DF05.ID IS 'Идентификатор записи'; @@ -3911,487 +3268,807 @@ COMMENT ON COLUMN S_DF05.GENERATION_TIME IS 'Дата и время создан COMMENT ON COLUMN S_DF05.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf08 - ДФ-08 Запрос остатков по всем счетам +-- sDf06 - ДФ-06 Запрос на зачисление/списание денежных средств +DROP TABLE IF EXISTS S_DF06; +CREATE TABLE S_DF06(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), DEAL varchar(10), CLIENT_N varchar(35), INN numeric(72,18), BIC numeric(72,18), SPEC varchar(255), NUMBER numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF06 IS 'ДФ-06 Запрос на зачисление/списание денежных средств'; + +COMMENT ON COLUMN S_DF06.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF06.ACCOUNT IS 'Номер счета участника торгов'; + +COMMENT ON COLUMN S_DF06.SUM IS 'Сумма платежного документа (операции)'; + +COMMENT ON COLUMN S_DF06.MARKET IS 'Код сегмента рынка'; + +COMMENT ON COLUMN S_DF06.TYPE IS 'Код типа платежного документа (операции)'; + +COMMENT ON COLUMN S_DF06.DEAL IS 'Биржевой код участника клиринга'; + +COMMENT ON COLUMN S_DF06.CLIENT_N IS 'Наименование клиента - плательщика'; + +COMMENT ON COLUMN S_DF06.INN IS 'ИНН'; + +COMMENT ON COLUMN S_DF06.BIC IS 'БИК'; + +COMMENT ON COLUMN S_DF06.SPEC IS 'Назначение'; + +COMMENT ON COLUMN S_DF06.NUMBER IS 'Номер платежного документа (операции)'; + +COMMENT ON COLUMN S_DF06.FILE_NAME IS 'Наименование входящего файла'; + +COMMENT ON COLUMN S_DF06.GENERATION_TIME IS 'Дата и время обработки файла'; + +COMMENT ON COLUMN S_DF06.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- sDf07 - ДФ-07 Ответ на запрос по зачислению/списанию денежных средств +DROP TABLE IF EXISTS S_DF07; +CREATE TABLE S_DF07(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), DEAL varchar(10), CLIENT_N varchar(35), INN numeric(72,18), BIC numeric(72,18), SPEC varchar(255), NUMBER numeric(72,18), RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); +COMMENT ON TABLE S_DF07 IS 'ДФ-07 Ответ на запрос по зачислению/списанию денежных средств'; + +COMMENT ON COLUMN S_DF07.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF07.ACCOUNT IS 'Номер счета участника торгов'; + +COMMENT ON COLUMN S_DF07.SUM IS 'Сумма платежного документа (операции)'; + +COMMENT ON COLUMN S_DF07.MARKET IS 'Код сегмента рынка'; + +COMMENT ON COLUMN S_DF07.TYPE IS 'Код типа платежного документа (операции)'; + +COMMENT ON COLUMN S_DF07.DEAL IS 'Биржевой код участника клиринга'; + +COMMENT ON COLUMN S_DF07.CLIENT_N IS 'Наименование клиента - плательщика'; + +COMMENT ON COLUMN S_DF07.INN IS 'ИНН'; + +COMMENT ON COLUMN S_DF07.BIC IS 'БИК'; + +COMMENT ON COLUMN S_DF07.SPEC IS 'Назначение'; + +COMMENT ON COLUMN S_DF07.NUMBER IS 'Номер платежного документа (операции)'; + +COMMENT ON COLUMN S_DF07.RESULT IS 'Код завершения операции'; + +COMMENT ON COLUMN S_DF07.GENERATION_TIME IS 'Дата и время создания записи'; + +COMMENT ON COLUMN S_DF07.GENERATION_ID IS 'Идентификатор взаимодействия'; + +COMMENT ON COLUMN S_DF07.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; + +-- sDf08 - ДФ-08 Загрузка счетов с остатками DROP TABLE IF EXISTS S_DF08; -CREATE TABLE S_DF08(ID bigint PRIMARY KEY, NUMBER varchar(10), DATETIME varchar(13), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF08 IS 'ДФ-08 Запрос остатков по всем счетам'; +CREATE TABLE S_DF08(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, DEPO_CODE varchar, QUANTITY varchar, SECURITY_CODE varchar, CLIENT_NAME varchar, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF08 IS 'ДФ-08 Загрузка счетов с остатками'; COMMENT ON COLUMN S_DF08.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF08.NUMBER IS 'Номер запроса остатков по счетам'; +COMMENT ON COLUMN S_DF08.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF08.DATETIME IS 'Дата и время сообщения'; +COMMENT ON COLUMN S_DF08.DEPO_CODE IS 'Код раздела субсчета/счета депо'; + +COMMENT ON COLUMN S_DF08.QUANTITY IS 'Количество'; + +COMMENT ON COLUMN S_DF08.SECURITY_CODE IS 'Код ценной бумаги'; + +COMMENT ON COLUMN S_DF08.CLIENT_NAME IS 'Наименование клиента'; + +COMMENT ON COLUMN S_DF08.FILE_NAME IS 'Наименование входящего файла'; COMMENT ON COLUMN S_DF08.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF08.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf09 - ДФ-09 Уведомление о поступлении средств на клиринговый счет +-- sDf09 - ДФ-09 Ответ на загрузку счетов с остатками DROP TABLE IF EXISTS S_DF09; -CREATE TABLE S_DF09(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), NUMBER numeric(72,18), INN numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF09 IS 'ДФ-09 Уведомление о поступлении средств на клиринговый счет'; +CREATE TABLE S_DF09(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, DEPO_CODE varchar, QUANTITY varchar, SECURITY_CODE varchar, CLIENT_NAME varchar, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF09 IS 'ДФ-09 Ответ на загрузку счетов с остатками'; COMMENT ON COLUMN S_DF09.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF09.ACCOUNT IS 'Номер счета участника торгов'; +COMMENT ON COLUMN S_DF09.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF09.SUM IS 'Сумма платежного документа (операции)'; +COMMENT ON COLUMN S_DF09.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; -COMMENT ON COLUMN S_DF09.MARKET IS 'Код сегмента рынка'; +COMMENT ON COLUMN S_DF09.DEPO_CODE IS 'Код раздела субсчета/счета депо'; -COMMENT ON COLUMN S_DF09.TYPE IS 'Код типа платежного документа (операции)'; +COMMENT ON COLUMN S_DF09.QUANTITY IS 'Количество'; -COMMENT ON COLUMN S_DF09.NUMBER IS 'Номер платежного документа (операции)'; +COMMENT ON COLUMN S_DF09.SECURITY_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN S_DF09.INN IS 'ИНН'; +COMMENT ON COLUMN S_DF09.CLIENT_NAME IS 'Наименование клиента'; -COMMENT ON COLUMN S_DF09.FILE_NAME IS 'Наименование входящего файла'; +COMMENT ON COLUMN S_DF09.RESULT IS 'Результат операции'; -COMMENT ON COLUMN S_DF09.GENERATION_TIME IS 'Дата и время обработки файла'; +COMMENT ON COLUMN S_DF09.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF09.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf10 - ДФ-10 Подтверждение о загрузке по поступлению на клиринговый счет +-- sDf10 - ДФ-10 Запрос на зачисление/списание ценных бумаг DROP TABLE IF EXISTS S_DF10; -CREATE TABLE S_DF10(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), NUMBER numeric(72,18), INN numeric(72,18), RESULT varchar(3), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF09_ID bigint); -COMMENT ON TABLE S_DF10 IS 'ДФ-10 Подтверждение о загрузке по поступлению на клиринговый счет'; +CREATE TABLE S_DF10(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, DEPO_CODE varchar, QUANTITY varchar, SECURITY_CODE varchar, CLIENT_NAME varchar, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF10 IS 'ДФ-10 Запрос на зачисление/списание ценных бумаг'; COMMENT ON COLUMN S_DF10.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF10.ACCOUNT IS 'Номер счета участника торгов'; +COMMENT ON COLUMN S_DF10.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF10.SUM IS 'Сумма платежного документа (операции)'; +COMMENT ON COLUMN S_DF10.DEPO_CODE IS 'Код раздела субсчета/счета депо'; -COMMENT ON COLUMN S_DF10.MARKET IS 'Код сегмента рынка'; +COMMENT ON COLUMN S_DF10.QUANTITY IS 'Количество'; -COMMENT ON COLUMN S_DF10.TYPE IS 'Код типа платежного документа (операции)'; +COMMENT ON COLUMN S_DF10.SECURITY_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN S_DF10.NUMBER IS 'Номер платежного документа (операции)'; +COMMENT ON COLUMN S_DF10.CLIENT_NAME IS 'Наименование клиента'; -COMMENT ON COLUMN S_DF10.INN IS 'ИНН'; - -COMMENT ON COLUMN S_DF10.RESULT IS 'Результат приема'; +COMMENT ON COLUMN S_DF10.FILE_NAME IS 'Наименование входящего файла'; COMMENT ON COLUMN S_DF10.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF10.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF10.IN_S_DF09_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; - --- sDf11 - ДФ-11 Из КС в ПРЦ Платежное распоряжение на перевод средств с ТБС Участника на КС Инициатора +-- sDf11 - ДФ-11 Ответ на Запрос на зачисление/списание ценных бумаг DROP TABLE IF EXISTS S_DF11; -CREATE TABLE S_DF11(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), GENERATION_TIME timestamp, GENERATION_ID bigint, PAYMENT_INSTRUCTION_ID bigint); -COMMENT ON TABLE S_DF11 IS 'ДФ-11 Из КС в ПРЦ Платежное распоряжение на перевод средств с ТБС Участника на КС Инициатора'; +CREATE TABLE S_DF11(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, DEPO_CODE varchar, QUANTITY varchar, SECURITY_CODE varchar, CLIENT_NAME varchar, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF11 IS 'ДФ-11 Ответ на Запрос на зачисление/списание ценных бумаг'; COMMENT ON COLUMN S_DF11.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF11.SEG_TYPE IS 'Код инициатора в КС'; +COMMENT ON COLUMN S_DF11.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF11.DOC_TYPE IS 'Тип документа'; +COMMENT ON COLUMN S_DF11.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; -COMMENT ON COLUMN S_DF11.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; +COMMENT ON COLUMN S_DF11.DEPO_CODE IS 'Код раздела субсчета/счета депо'; -COMMENT ON COLUMN S_DF11.DOCNMPREV IS 'Ссылка на предшестввующий документ'; +COMMENT ON COLUMN S_DF11.QUANTITY IS 'Количество'; -COMMENT ON COLUMN S_DF11.PRIORITY IS 'Приоритет скорости отправления сообщения'; +COMMENT ON COLUMN S_DF11.SECURITY_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN S_DF11.SBANKCODE IS 'Код банка-плательщика'; +COMMENT ON COLUMN S_DF11.CLIENT_NAME IS 'Наименование клиента'; -COMMENT ON COLUMN S_DF11.C_ACC_DEB IS 'Счет по дебету'; - -COMMENT ON COLUMN S_DF11.SBANKNAM1 IS 'Наименование банка-плательщика'; - -COMMENT ON COLUMN S_DF11.SBANKNAM2 IS ''; - -COMMENT ON COLUMN S_DF11.SBANKNAM3 IS ''; - -COMMENT ON COLUMN S_DF11.SBANKNAM4 IS ''; - -COMMENT ON COLUMN S_DF11.SBANKNAM5 IS ''; - -COMMENT ON COLUMN S_DF11.RBANKCODE IS 'Код банка-получателя'; - -COMMENT ON COLUMN S_DF11.C_ACC_CRED IS 'Счет по кредиту'; - -COMMENT ON COLUMN S_DF11.RBANKNAM1 IS 'Наименование банка-получателя'; - -COMMENT ON COLUMN S_DF11.RBANKNAM2 IS ''; - -COMMENT ON COLUMN S_DF11.RBANKNAM3 IS ''; - -COMMENT ON COLUMN S_DF11.RBANKNAM4 IS ''; - -COMMENT ON COLUMN S_DF11.RBANKNAM5 IS ''; - -COMMENT ON COLUMN S_DF11.PAY_DATE IS 'Платеж-дата'; - -COMMENT ON COLUMN S_DF11.EXT_DATE IS 'Дата по выписке'; - -COMMENT ON COLUMN S_DF11.PAY_VAL IS 'Валюта платежа'; - -COMMENT ON COLUMN S_DF11.SUM_DEB IS 'Сумма дебет '; - -COMMENT ON COLUMN S_DF11.SCLIENTN1 IS 'Наименование клиента-плательщика'; - -COMMENT ON COLUMN S_DF11.SCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF11.SCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF11.SCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF11.SC_CODE IS 'Код клиента-плательщика'; - -COMMENT ON COLUMN S_DF11.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF11.RCLIENTN1 IS 'Наименование клиента-получателя'; - -COMMENT ON COLUMN S_DF11.RCLIENTN2 IS ''; - -COMMENT ON COLUMN S_DF11.RCLIENTN3 IS ''; - -COMMENT ON COLUMN S_DF11.RCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF11.ACC_KR_1 IS 'Счет кредит'; - -COMMENT ON COLUMN S_DF11.ACC_KR_2 IS ''; - -COMMENT ON COLUMN S_DF11.SP_CODE IS 'Код назначения платежа'; - -COMMENT ON COLUMN S_DF11.SPECIF_1 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF11.SPECIF_2 IS ''; - -COMMENT ON COLUMN S_DF11.SPECIF_3 IS ''; - -COMMENT ON COLUMN S_DF11.SPECIF_4 IS ''; - -COMMENT ON COLUMN S_DF11.SPECIF_5 IS ''; - -COMMENT ON COLUMN S_DF11.SPECIF_6 IS ''; - -COMMENT ON COLUMN S_DF11.SEND_TYPE IS 'Тип отправления плат. поручения'; - -COMMENT ON COLUMN S_DF11.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - -COMMENT ON COLUMN S_DF11.DOC_RESULT IS ''; +COMMENT ON COLUMN S_DF11.RESULT IS 'Результат операции'; COMMENT ON COLUMN S_DF11.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF11.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF11.PAYMENT_INSTRUCTION_ID IS 'Идентификатор соответствующей записи из таблицы-источника (linked to paymentInstruction)'; - --- sDf12 - ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК +-- sDf12 - ДФ-12 Распоряжение на проведение операций по итогам клиринга DROP TABLE IF EXISTS S_DF12; -CREATE TABLE S_DF12(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF12 IS 'ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК'; +CREATE TABLE S_DF12(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, QUANTITY varchar, SECURITY_CODE varchar, DEPO_CODE_SENDER varchar, DEPO_CODE_ADRESSEE varchar, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF12 IS 'ДФ-12 Распоряжение на проведение операций по итогам клиринга'; COMMENT ON COLUMN S_DF12.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF12.ACCOUNT IS 'Код счета участника клиринга'; +COMMENT ON COLUMN S_DF12.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF12.DEAL IS 'Биржевой код участника клиринга'; +COMMENT ON COLUMN S_DF12.QUANTITY IS 'Количество ценных бумаг'; -COMMENT ON COLUMN S_DF12.STATUS IS 'Статус счета'; +COMMENT ON COLUMN S_DF12.SECURITY_CODE IS 'Код ценной бумаги'; -COMMENT ON COLUMN S_DF12.FILE_NAME IS 'Наименование входящего файла'; +COMMENT ON COLUMN S_DF12.DEPO_CODE_SENDER IS 'Депо счет списания'; -COMMENT ON COLUMN S_DF12.GENERATION_TIME IS 'Дата и время обработки файла'; +COMMENT ON COLUMN S_DF12.DEPO_CODE_ADRESSEE IS 'Депо счет зачисления'; + +COMMENT ON COLUMN S_DF12.RESULT IS 'Результат операции'; + +COMMENT ON COLUMN S_DF12.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF12.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf13 - ДФ-13 Вывод свободных средств для инициаторов категории В с клирингового счета 30414/7 - платежное поручение АО СПВБ на вывод средств из РО +-- sDf13 - ДФ-13 Уведомление о статусе исполнения или мотивированный отказ DROP TABLE IF EXISTS S_DF13; -CREATE TABLE S_DF13(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), PRIORITY varchar(1), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), OP_TYPE varchar(2), OP_ORDER varchar(1), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), SCLIENTN4 varchar(35), SC_CODE varchar(12), ACC_DEB varchar(35), RCLIENTN1 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), RCLIENTN4 varchar(35), ACC_KR_1 varchar(35), ACC_KR_2 varchar(35), SP_CODE varchar(2), SPECIF_1 varchar(35), SPECIF_2 varchar(35), SPECIF_3 varchar(35), SPECIF_4 varchar(35), SPECIF_5 varchar(35), SPECIF_6 varchar(35), SEND_TYPE varchar(10), SERVDATE varchar(8), DOC_RESULT varchar(2), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF13 IS 'ДФ-13 Вывод свободных средств для инициаторов категории В с клирингового счета 30414/7 - платежное поручение АО СПВБ на вывод средств из РО'; +CREATE TABLE S_DF13(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, RESULT numeric(72,18), TEXT_ERROR varchar, FILE_NAME varchar, GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF13 IS 'ДФ-13 Уведомление о статусе исполнения или мотивированный отказ'; COMMENT ON COLUMN S_DF13.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF13.SEG_TYPE IS 'Код инициатора в КС'; +COMMENT ON COLUMN S_DF13.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF13.DOC_TYPE IS 'Тип документа'; +COMMENT ON COLUMN S_DF13.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; -COMMENT ON COLUMN S_DF13.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; +COMMENT ON COLUMN S_DF13.RESULT IS 'Результат операции'; -COMMENT ON COLUMN S_DF13.DOCNMPREV IS 'Ссылка на предшестввующий документ'; +COMMENT ON COLUMN S_DF13.TEXT_ERROR IS 'Описание ошибки'; -COMMENT ON COLUMN S_DF13.PRIORITY IS 'Приоритет скорости отправления сообщения'; - -COMMENT ON COLUMN S_DF13.SBANKCODE IS 'Код банка-плательщика'; - -COMMENT ON COLUMN S_DF13.C_ACC_DEB IS 'Кор счет банка - плательщика в системе - акт.'; - -COMMENT ON COLUMN S_DF13.SBANKNAM1 IS 'Наименование банка-плательщика'; - -COMMENT ON COLUMN S_DF13.SBANKNAM2 IS ''; - -COMMENT ON COLUMN S_DF13.SBANKNAM3 IS ''; - -COMMENT ON COLUMN S_DF13.SBANKNAM4 IS ''; - -COMMENT ON COLUMN S_DF13.SBANKNAM5 IS ''; - -COMMENT ON COLUMN S_DF13.RBANKCODE IS 'Код банка-получателя'; - -COMMENT ON COLUMN S_DF13.C_ACC_CRED IS 'Кор счет банка - получателя в системе - акт. '; - -COMMENT ON COLUMN S_DF13.RBANKNAM1 IS 'Наименование банка-получателя'; - -COMMENT ON COLUMN S_DF13.OP_TYPE IS 'Вид операции'; - -COMMENT ON COLUMN S_DF13.OP_ORDER IS 'Очередность платежа'; - -COMMENT ON COLUMN S_DF13.RBANKNAM4 IS ''; - -COMMENT ON COLUMN S_DF13.RBANKNAM5 IS ''; - -COMMENT ON COLUMN S_DF13.PAY_DATE IS 'Платеж-дата'; - -COMMENT ON COLUMN S_DF13.EXT_DATE IS 'Дата по выписке'; - -COMMENT ON COLUMN S_DF13.PAY_VAL IS 'Валюта платежа'; - -COMMENT ON COLUMN S_DF13.SUM_DEB IS 'Сумма дебет '; - -COMMENT ON COLUMN S_DF13.SCLIENTN1 IS 'Наименование клиента-плательщика'; - -COMMENT ON COLUMN S_DF13.INN_DEB IS 'ИНН клиента-плательщика'; - -COMMENT ON COLUMN S_DF13.KPP_DEB IS 'КПП клиента-плательщика'; - -COMMENT ON COLUMN S_DF13.SCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF13.SC_CODE IS 'Код клиента-плательщика'; - -COMMENT ON COLUMN S_DF13.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; - -COMMENT ON COLUMN S_DF13.RCLIENTN1 IS 'Наименование клиента-получателя'; - -COMMENT ON COLUMN S_DF13.INN_CRED IS 'ИНН клиента-получателя'; - -COMMENT ON COLUMN S_DF13.KPP_CRED IS 'КПП клиента-получателя'; - -COMMENT ON COLUMN S_DF13.RCLIENTN4 IS ''; - -COMMENT ON COLUMN S_DF13.ACC_KR_1 IS 'Счет получателя'; - -COMMENT ON COLUMN S_DF13.ACC_KR_2 IS ''; - -COMMENT ON COLUMN S_DF13.SP_CODE IS 'Код назначения платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_1 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_2 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_3 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_4 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_5 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SPECIF_6 IS 'Назначение платежа'; - -COMMENT ON COLUMN S_DF13.SEND_TYPE IS 'Вид платежа'; - -COMMENT ON COLUMN S_DF13.SERVDATE IS 'Дата получения товара, оказания услуг в плат. поручении'; - -COMMENT ON COLUMN S_DF13.DOC_RESULT IS ''; +COMMENT ON COLUMN S_DF13.FILE_NAME IS 'Наименование входящего файла'; COMMENT ON COLUMN S_DF13.GENERATION_TIME IS 'Дата и время создания записи'; COMMENT ON COLUMN S_DF13.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf16 - ДФ-16 Формат запроса по возврату депозита или дозачисление/списание денежных средств -DROP TABLE IF EXISTS S_DF16; -CREATE TABLE S_DF16(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), INN numeric(72,18), BIC numeric(72,18), SPEC varchar(255), NUMBER numeric(72,18), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); -COMMENT ON TABLE S_DF16 IS 'ДФ-16 Формат запроса по возврату депозита или дозачисление/списание денежных средств'; +-- sDf14 - ДФ-14 Уведомление о завершении расчетов +DROP TABLE IF EXISTS S_DF14; +CREATE TABLE S_DF14(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF14 IS 'ДФ-14 Уведомление о завершении расчетов'; -COMMENT ON COLUMN S_DF16.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF14.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF16.ACCOUNT IS 'Номер счета участника торгов'; +COMMENT ON COLUMN S_DF14.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF16.SUM IS 'Сумма платежного документа (операции)'; +COMMENT ON COLUMN S_DF14.RESULT IS 'Результат операции'; -COMMENT ON COLUMN S_DF16.MARKET IS 'Код сегмента рынка'; +COMMENT ON COLUMN S_DF14.GENERATION_TIME IS 'Дата и время создания записи'; -COMMENT ON COLUMN S_DF16.TYPE IS 'Код типа платежного документа (операции)'; +COMMENT ON COLUMN S_DF14.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF16.INN IS 'ИНН'; +-- sDf20 - ДФ-20 Отчет об исполнении поручения на зачисление/списание ценных бумаг +DROP TABLE IF EXISTS S_DF20; +CREATE TABLE S_DF20(ID bigint PRIMARY KEY, OUT_DOCUMENT varchar, IN_DOCUMENT varchar, SECURITY varchar, OPEN_BALANCE varchar, DEPO_CODE_CL varchar, QUANTITY varchar, OPERATION_CODE varchar, DEPO_CODE_CORR varchar, OPERATION_DATE varchar, CLOSE_BALANCE varchar, FILE_NAME varchar, GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF20 IS 'ДФ-20 Отчет об исполнении поручения на зачисление/списание ценных бумаг'; -COMMENT ON COLUMN S_DF16.BIC IS 'БИК'; +COMMENT ON COLUMN S_DF20.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF16.SPEC IS 'Назначение'; +COMMENT ON COLUMN S_DF20.OUT_DOCUMENT IS 'Уникальный исходящий номер сообщения'; -COMMENT ON COLUMN S_DF16.NUMBER IS 'Номер платежного документа (операции)'; +COMMENT ON COLUMN S_DF20.IN_DOCUMENT IS 'Исходящий номер входящего сообщения'; -COMMENT ON COLUMN S_DF16.FILE_NAME IS 'Наименование входящего файла'; +COMMENT ON COLUMN S_DF20.SECURITY IS 'Ценная бумага'; -COMMENT ON COLUMN S_DF16.GENERATION_TIME IS 'Дата и время обработки файла'; +COMMENT ON COLUMN S_DF20.OPEN_BALANCE IS 'Входящий остаток'; -COMMENT ON COLUMN S_DF16.GENERATION_ID IS 'Идентификатор взаимодействия'; +COMMENT ON COLUMN S_DF20.DEPO_CODE_CL IS 'Код раздела тех.счета/счета депо/ и наименование клиента'; --- sDf17 - ДФ-17 Формат ответа на запрос по возврату депозита или дозачисление/списание денежных средств -DROP TABLE IF EXISTS S_DF17; -CREATE TABLE S_DF17(ID bigint PRIMARY KEY, ACCOUNT varchar(20), SUM numeric(72,18), MARKET varchar(1), TYPE varchar(1), INN numeric(72,18), BIC numeric(72,18), SPEC varchar(255), NUMBER numeric(72,18), RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF16_ID bigint); -COMMENT ON TABLE S_DF17 IS 'ДФ-17 Формат ответа на запрос по возврату депозита или дозачисление/списание денежных средств'; +COMMENT ON COLUMN S_DF20.QUANTITY IS 'Количество ценных бумаг'; -COMMENT ON COLUMN S_DF17.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF20.OPERATION_CODE IS 'Код операции'; -COMMENT ON COLUMN S_DF17.ACCOUNT IS 'Номер счета участника торгов'; +COMMENT ON COLUMN S_DF20.DEPO_CODE_CORR IS 'Код раздела субсчета/счета депо корреспондента'; -COMMENT ON COLUMN S_DF17.SUM IS 'Сумма платежного документа (операции)'; +COMMENT ON COLUMN S_DF20.OPERATION_DATE IS 'Дата операции'; -COMMENT ON COLUMN S_DF17.MARKET IS 'Код сегмента рынка'; +COMMENT ON COLUMN S_DF20.CLOSE_BALANCE IS 'Исходящий остаток'; -COMMENT ON COLUMN S_DF17.TYPE IS 'Код типа платежного документа (операции)'; +COMMENT ON COLUMN S_DF20.FILE_NAME IS 'Наименование входящего файла'; -COMMENT ON COLUMN S_DF17.INN IS 'ИНН'; +COMMENT ON COLUMN S_DF20.GENERATION_TIME IS 'Дата и время создания записи'; -COMMENT ON COLUMN S_DF17.BIC IS 'БИК'; +COMMENT ON COLUMN S_DF20.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN S_DF17.SPEC IS 'Назначение'; +-- sDf51 - ДФ-51 Запрос остатков по всем счетам +DROP TABLE IF EXISTS S_DF51; +CREATE TABLE S_DF51(ID bigint PRIMARY KEY, NUMBER varchar(10), DATETIME varchar(13), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF51 IS 'ДФ-51 Запрос остатков по всем счетам'; -COMMENT ON COLUMN S_DF17.NUMBER IS 'Номер платежного документа (операции)'; +COMMENT ON COLUMN S_DF51.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF17.RESULT IS 'Код завершения операции'; +COMMENT ON COLUMN S_DF51.NUMBER IS 'Номер запроса остатков по счетам'; -COMMENT ON COLUMN S_DF17.GENERATION_TIME IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF51.DATETIME IS 'Дата и время сообщения'; -COMMENT ON COLUMN S_DF17.GENERATION_ID IS 'Идентификатор взаимодействия'; +COMMENT ON COLUMN S_DF51.GENERATION_TIME IS 'Дата и время создания записи'; -COMMENT ON COLUMN S_DF17.IN_S_DF16_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; +COMMENT ON COLUMN S_DF51.GENERATION_ID IS 'Идентификатор взаимодействия'; --- sDf18 - ДФ-18 Из КС в ПРЦ Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие) -DROP TABLE IF EXISTS S_DF18; -CREATE TABLE S_DF18(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF12_ID bigint); -COMMENT ON TABLE S_DF18 IS 'ДФ-18 Из КС в ПРЦ Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие)'; +-- sDf52 - ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие) +DROP TABLE IF EXISTS S_DF52; +CREATE TABLE S_DF52(ID bigint PRIMARY KEY, ACCOUNT varchar(25), ACC_NAME varchar(30), DEAL varchar(4), DATE varchar, STATUS bigint, FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF52 IS 'ДФ-52 Из ПРЦ в КС Информация о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; -COMMENT ON COLUMN S_DF18.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF52.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN S_DF18.ACCOUNT IS 'Код счета участника клиринга'; +COMMENT ON COLUMN S_DF52.ACCOUNT IS 'Код счета участника клиринга'; -COMMENT ON COLUMN S_DF18.DEAL IS 'Биржевой код участника клиринга'; +COMMENT ON COLUMN S_DF52.ACC_NAME IS 'Наименование участника клиринга'; -COMMENT ON COLUMN S_DF18.STATUS IS 'Статус счета'; +COMMENT ON COLUMN S_DF52.DEAL IS 'Биржевой код участника клиринга'; -COMMENT ON COLUMN S_DF18.RESULT IS 'Код завершения операции'; +COMMENT ON COLUMN S_DF52.DATE IS 'Дата изменения состояния счета'; -COMMENT ON COLUMN S_DF18.GENERATION_TIME IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF52.STATUS IS 'Статус счета'; -COMMENT ON COLUMN S_DF18.GENERATION_ID IS 'Идентификатор взаимодействия'; +COMMENT ON COLUMN S_DF52.FILE_NAME IS 'Наименование входящего файла'; -COMMENT ON COLUMN S_DF18.IN_S_DF12_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; +COMMENT ON COLUMN S_DF52.GENERATION_TIME IS 'Дата и время обработки файла'; --- notification - Сообщения -DROP TABLE IF EXISTS NOTIFICATION; -CREATE TABLE NOTIFICATION(ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID timestamp, NOTIFICATION_STATUS varchar(4)); -COMMENT ON TABLE NOTIFICATION IS 'Сообщения'; +COMMENT ON COLUMN S_DF52.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN NOTIFICATION.ID IS 'Идентификатор записи'; +-- sDf53 - ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие) +DROP TABLE IF EXISTS S_DF53; +CREATE TABLE S_DF53(ID bigint PRIMARY KEY, ACCOUNT varchar(25), DEAL varchar(4), STATUS bigint, RESULT numeric(72,18), GENERATION_TIME timestamp, GENERATION_ID bigint, IN_S_DF_ID bigint); +COMMENT ON TABLE S_DF53 IS 'ДФ-53 Квитанция о получении информации о состоянии счета (блокировка/разблокировка/закрытие/открытие)'; -COMMENT ON COLUMN NOTIFICATION.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF53.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN NOTIFICATION.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN S_DF53.ACCOUNT IS 'Код счета участника клиринга'; -COMMENT ON COLUMN NOTIFICATION.CLEARING_DATE IS 'Дата'; +COMMENT ON COLUMN S_DF53.DEAL IS 'Биржевой код участника клиринга'; -COMMENT ON COLUMN NOTIFICATION.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; +COMMENT ON COLUMN S_DF53.STATUS IS 'Статус счета'; -COMMENT ON COLUMN NOTIFICATION.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; +COMMENT ON COLUMN S_DF53.RESULT IS 'Код завершения операции'; -COMMENT ON COLUMN NOTIFICATION.OBJECT_TYPE IS 'Тип объекта (linked to objectType)'; +COMMENT ON COLUMN S_DF53.GENERATION_TIME IS 'Дата и время создания записи'; -COMMENT ON COLUMN NOTIFICATION.OBJECT_ID IS 'Идентификатор объекта'; +COMMENT ON COLUMN S_DF53.GENERATION_ID IS 'Идентификатор взаимодействия'; -COMMENT ON COLUMN NOTIFICATION.NOTIFICATION_STATUS IS 'Статус сообщения (linked to notificationStatus)'; +COMMENT ON COLUMN S_DF53.IN_S_DF_ID IS 'Идентификатор соответствующей записи из таблицы-источника'; +-- sDf54 - ДФ-54 Вывод свободных средств для инициаторов категории В с клирингового счета 30414 +DROP TABLE IF EXISTS S_DF54; +CREATE TABLE S_DF54(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), OP_TYPE varchar(2), OP_ORDER varchar(1), PAY_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), ACC_KR_1 varchar(35), SPECIF_1 varchar(255), SEND_TYPE varchar(10), DOC_RESULT varchar(2), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF54 IS 'ДФ-54 Вывод свободных средств для инициаторов категории В с клирингового счета 30414'; --- History log of notification - Сообщения -DROP TABLE IF EXISTS NOTIFICATION_HISTORY; -CREATE TABLE NOTIFICATION_HISTORY(NOTIFICATION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, SENDER_ID bigint, ADDRESSEE_ID bigint, OBJECT_TYPE varchar(4), OBJECT_ID timestamp, NOTIFICATION_STATUS varchar(4)); -COMMENT ON TABLE NOTIFICATION_HISTORY IS 'История изменений таблицы notification'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_ID IS 'Идентификатор записи в таблице NOTIFICATION'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.EVENT_TYPE IS 'Тип изменения'; +COMMENT ON COLUMN S_DF54.ID IS 'Идентификатор записи'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF54.SEG_TYPE IS 'Код инициатора в КС'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF54.DOC_TYPE IS 'Тип документа'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN S_DF54.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.CLEARING_DATE IS 'Дата'; +COMMENT ON COLUMN S_DF54.DOCNMPREV IS 'Ссылка на предшествующий документ'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.SENDER_ID IS 'Идентификатор участника отправителя (linked to company)'; +COMMENT ON COLUMN S_DF54.SBANKCODE IS 'Код банка-плательщика'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.ADDRESSEE_ID IS 'Идентификатор участника получателя (linked to company)'; +COMMENT ON COLUMN S_DF54.C_ACC_DEB IS 'Кор счет банка-плательщика в системе - акт.'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_TYPE IS 'Тип объекта (linked to objectType)'; +COMMENT ON COLUMN S_DF54.SBANKNAM1 IS 'Наименование банка-плательщика'; -COMMENT ON COLUMN NOTIFICATION_HISTORY.OBJECT_ID IS 'Идентификатор объекта'; +COMMENT ON COLUMN S_DF54.SBANKNAM2 IS ''; -COMMENT ON COLUMN NOTIFICATION_HISTORY.NOTIFICATION_STATUS IS 'Статус сообщения (linked to notificationStatus)'; +COMMENT ON COLUMN S_DF54.SBANKNAM3 IS ''; --- verificationResult - Результаты сверки -DROP TABLE IF EXISTS VERIFICATION_RESULT; -CREATE TABLE VERIFICATION_RESULT(CLEARING_CODE varchar(255), ACCOUNT_ID bigint, IN_SUM numeric(72,2), OUT_INT_SUM numeric(72,2), OUT_EXT_SUM numeric(72,2), DIFF_SUM numeric(72,2), GENERATION_ID bigint, GENERATION_STATUS varchar(4), RESULT_STATUS varchar(4), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); -COMMENT ON TABLE VERIFICATION_RESULT IS 'Результаты сверки'; +COMMENT ON COLUMN S_DF54.SBANKNAM4 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.CLEARING_CODE IS 'Код участника клиринга'; +COMMENT ON COLUMN S_DF54.SBANKNAM5 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.ACCOUNT_ID IS 'Счет УК, по которому проводится сверка'; +COMMENT ON COLUMN S_DF54.RBANKCODE IS 'Код банка-получателя'; -COMMENT ON COLUMN VERIFICATION_RESULT.IN_SUM IS 'Входящая сумма остатков'; +COMMENT ON COLUMN S_DF54.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт. '; -COMMENT ON COLUMN VERIFICATION_RESULT.OUT_INT_SUM IS 'Исходящая сумма остатков, полученная в КС'; +COMMENT ON COLUMN S_DF54.RBANKNAM1 IS 'Наименование банка-получателя'; -COMMENT ON COLUMN VERIFICATION_RESULT.OUT_EXT_SUM IS 'Исходящая сумма остатков из отчета ПРЦ'; +COMMENT ON COLUMN S_DF54.RBANKNAM2 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.DIFF_SUM IS 'Сумма расхождений'; +COMMENT ON COLUMN S_DF54.RBANKNAM3 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_ID IS 'Идентификатор взаимодействия'; +COMMENT ON COLUMN S_DF54.RBANKNAM4 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.GENERATION_STATUS IS 'Общий статус сверки (linked to resultStatus)'; +COMMENT ON COLUMN S_DF54.RBANKNAM5 IS ''; -COMMENT ON COLUMN VERIFICATION_RESULT.RESULT_STATUS IS 'Статус сверки (linked to resultStatus)'; +COMMENT ON COLUMN S_DF54.OP_TYPE IS 'Вид операции'; -COMMENT ON COLUMN VERIFICATION_RESULT.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF54.OP_ORDER IS 'Очередность платежа'; -COMMENT ON COLUMN VERIFICATION_RESULT.CREATED_AT IS 'Дата и время создания записи'; +COMMENT ON COLUMN S_DF54.PAY_DATE IS 'Платеж-дата'; -COMMENT ON COLUMN VERIFICATION_RESULT.UPDATED_AT IS 'Дата и время изменения записи'; +COMMENT ON COLUMN S_DF54.PAY_VAL IS 'Валюта платежа'; --- moneyMarketSession - Сессия денежного рынка -DROP TABLE IF EXISTS MONEY_MARKET_SESSION; -CREATE TABLE MONEY_MARKET_SESSION(ID bigint PRIMARY KEY, COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint); -COMMENT ON TABLE MONEY_MARKET_SESSION IS 'Сессия денежного рынка'; +COMMENT ON COLUMN S_DF54.SUM_DEB IS 'Сумма дебет'; -COMMENT ON COLUMN MONEY_MARKET_SESSION.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF54.SCLIENTN1 IS 'Наименование клиента-плательщика'; -COMMENT ON COLUMN MONEY_MARKET_SESSION.COMPANY_ID IS 'Наименование инициатора торгов (linked to company)'; +COMMENT ON COLUMN S_DF54.SCLIENTN2 IS ''; -COMMENT ON COLUMN MONEY_MARKET_SESSION.SECURITY_ID IS 'Наименование инструмента (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN S_DF54.SCLIENTN3 IS ''; -COMMENT ON COLUMN MONEY_MARKET_SESSION.USER_ID IS 'Наименование пользователя (linked to userCls)'; +COMMENT ON COLUMN S_DF54.SCLIENTN4 IS ''; +COMMENT ON COLUMN S_DF54.INN_DEB IS 'ИНН клиента-плательщика'; --- History log of moneyMarketSession - Сессия денежного рынка -DROP TABLE IF EXISTS MONEY_MARKET_SESSION_HISTORY; -CREATE TABLE MONEY_MARKET_SESSION_HISTORY(MONEY_MARKET_SESSION_ID BIGINT NOT NULL, EVENT_TIME timestamp, EVENT_USER_ID BIGINT, EVENT_TYPE VARCHAR(4), ID bigint PRIMARY KEY, COMPANY_ID bigint, SECURITY_ID bigint, USER_ID bigint); -COMMENT ON TABLE MONEY_MARKET_SESSION_HISTORY IS 'История изменений таблицы moneyMarketSession'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.MONEY_MARKET_SESSION_ID IS 'Идентификатор записи в таблице MONEY_MARKET_SESSION'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.EVENT_TIME IS 'Дата и время изменения'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.EVENT_USER_ID IS 'Инициатор изменения'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.EVENT_TYPE IS 'Тип изменения'; +COMMENT ON COLUMN S_DF54.KPP_DEB IS 'КПП клиента-плательщика'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.ID IS 'Идентификатор записи'; +COMMENT ON COLUMN S_DF54.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.COMPANY_ID IS 'Наименование инициатора торгов (linked to company)'; +COMMENT ON COLUMN S_DF54.RCLIENTN1 IS 'Наименование клиента-получателя'; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.SECURITY_ID IS 'Наименование инструмента (linked to moneyMarketSecurity)'; +COMMENT ON COLUMN S_DF54.RCLIENTN2 IS ''; -COMMENT ON COLUMN MONEY_MARKET_SESSION_HISTORY.USER_ID IS 'Наименование пользователя (linked to userCls)'; +COMMENT ON COLUMN S_DF54.RCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF54.RCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF54.INN_CRED IS 'ИНН клиента-получателя'; + +COMMENT ON COLUMN S_DF54.KPP_CRED IS 'КПП клиента-получателя'; + +COMMENT ON COLUMN S_DF54.ACC_KR_1 IS 'Счет получателя'; + +COMMENT ON COLUMN S_DF54.SPECIF_1 IS 'Назначение платежа'; + +COMMENT ON COLUMN S_DF54.SEND_TYPE IS 'Вид платежа'; + +COMMENT ON COLUMN S_DF54.DOC_RESULT IS ''; + +COMMENT ON COLUMN S_DF54.GENERATION_TIME IS 'Дата и время создания записи'; + +COMMENT ON COLUMN S_DF54.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- sDf55 - ДФ-55 Квитанция об обработке ДФ-54 +DROP TABLE IF EXISTS S_DF55; +CREATE TABLE S_DF55(ID bigint PRIMARY KEY, SEG_TYPE varchar(1), DOC_TYPE varchar, DOCNM_REF varchar(16), DOCNMPREV varchar(16), SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(12), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), OP_TYPE varchar(2), OP_ORDER varchar(1), PAY_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), ACC_KR_1 varchar(35), SPECIF_1 varchar(255), SEND_TYPE varchar(10), DOC_RESULT varchar(2), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF55 IS 'ДФ-55 Квитанция об обработке ДФ-54'; + +COMMENT ON COLUMN S_DF55.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF55.SEG_TYPE IS 'Код инициатора в КС'; + +COMMENT ON COLUMN S_DF55.DOC_TYPE IS 'Тип документа'; + +COMMENT ON COLUMN S_DF55.DOCNM_REF IS 'Ссылочный номер документа у отправителя'; + +COMMENT ON COLUMN S_DF55.DOCNMPREV IS 'Ссылка на предшествующий документ'; + +COMMENT ON COLUMN S_DF55.SBANKCODE IS 'Код банка-плательщика'; + +COMMENT ON COLUMN S_DF55.C_ACC_DEB IS 'Кор счет банка-плательщика в системе - акт.'; + +COMMENT ON COLUMN S_DF55.SBANKNAM1 IS 'Наименование банка-плательщика'; + +COMMENT ON COLUMN S_DF55.SBANKNAM2 IS ''; + +COMMENT ON COLUMN S_DF55.SBANKNAM3 IS ''; + +COMMENT ON COLUMN S_DF55.SBANKNAM4 IS ''; + +COMMENT ON COLUMN S_DF55.SBANKNAM5 IS ''; + +COMMENT ON COLUMN S_DF55.RBANKCODE IS 'Код банка-получателя'; + +COMMENT ON COLUMN S_DF55.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт. '; + +COMMENT ON COLUMN S_DF55.RBANKNAM1 IS 'Наименование банка-получателя'; + +COMMENT ON COLUMN S_DF55.RBANKNAM2 IS ''; + +COMMENT ON COLUMN S_DF55.RBANKNAM3 IS ''; + +COMMENT ON COLUMN S_DF55.RBANKNAM4 IS ''; + +COMMENT ON COLUMN S_DF55.RBANKNAM5 IS ''; + +COMMENT ON COLUMN S_DF55.OP_TYPE IS 'Вид операции'; + +COMMENT ON COLUMN S_DF55.OP_ORDER IS 'Очередность платежа'; + +COMMENT ON COLUMN S_DF55.PAY_DATE IS 'Платеж-дата'; + +COMMENT ON COLUMN S_DF55.PAY_VAL IS 'Валюта платежа'; + +COMMENT ON COLUMN S_DF55.SUM_DEB IS 'Сумма дебет'; + +COMMENT ON COLUMN S_DF55.SCLIENTN1 IS 'Наименование клиента-плательщика'; + +COMMENT ON COLUMN S_DF55.SCLIENTN2 IS ''; + +COMMENT ON COLUMN S_DF55.SCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF55.SCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF55.INN_DEB IS 'ИНН клиента-плательщика'; + +COMMENT ON COLUMN S_DF55.KPP_DEB IS 'КПП клиента-плательщика'; + +COMMENT ON COLUMN S_DF55.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; + +COMMENT ON COLUMN S_DF55.RCLIENTN1 IS 'Наименование клиента-получателя'; + +COMMENT ON COLUMN S_DF55.RCLIENTN2 IS ''; + +COMMENT ON COLUMN S_DF55.RCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF55.RCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF55.INN_CRED IS 'ИНН клиента-получателя'; + +COMMENT ON COLUMN S_DF55.KPP_CRED IS 'КПП клиента-получателя'; + +COMMENT ON COLUMN S_DF55.ACC_KR_1 IS 'Счет получателя'; + +COMMENT ON COLUMN S_DF55.SPECIF_1 IS 'Назначение платежа'; + +COMMENT ON COLUMN S_DF55.SEND_TYPE IS 'Вид платежа'; + +COMMENT ON COLUMN S_DF55.DOC_RESULT IS ''; + +COMMENT ON COLUMN S_DF55.FILE_NAME IS 'Наименование входящего файла'; + +COMMENT ON COLUMN S_DF55.GENERATION_TIME IS 'Дата и время обработки файла'; + +COMMENT ON COLUMN S_DF55.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- sDf56 - ДФ-56 Запрос транзакций за период +DROP TABLE IF EXISTS S_DF56; +CREATE TABLE S_DF56(ID bigint PRIMARY KEY, NUMBER varchar(10), START_DATETIME varchar(13), END_DATETIME varchar(13), ACCOUNT varchar(25), DEAL varchar(4), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF56 IS 'ДФ-56 Запрос транзакций за период'; + +COMMENT ON COLUMN S_DF56.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF56.NUMBER IS 'Номер запроса'; + +COMMENT ON COLUMN S_DF56.START_DATETIME IS 'Дата и время для фильтрации транзакций с большим или равным указанным параметром'; + +COMMENT ON COLUMN S_DF56.END_DATETIME IS 'Дата и время для фильтрации транзакций с меньшим указанным параметром'; + +COMMENT ON COLUMN S_DF56.ACCOUNT IS 'Код счета участника клиринга для фильтрации транзакций по значению'; + +COMMENT ON COLUMN S_DF56.DEAL IS 'Биржевой код участника клиринга для фильтрации транзакций по значению'; + +COMMENT ON COLUMN S_DF56.GENERATION_TIME IS 'Дата и время создания записи'; + +COMMENT ON COLUMN S_DF56.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- sDf57 - ДФ-57 Список транзакций о списании/зачислении за период по всем счетам (ТБС и КС) +DROP TABLE IF EXISTS S_DF57; +CREATE TABLE S_DF57(ID bigint PRIMARY KEY, DBF_ID bigint, DEAL_DEB varchar(4), DEAL_CRED varchar, SBANKCODE varchar(12), C_ACC_DEB varchar(35), SBANKNAM1 varchar(35), SBANKNAM2 varchar(35), SBANKNAM3 varchar(35), SBANKNAM4 varchar(35), SBANKNAM5 varchar(35), RBANKCODE varchar(35), C_ACC_CRED varchar(35), RBANKNAM1 varchar(35), RBANKNAM2 varchar(35), RBANKNAM3 varchar(35), RBANKNAM4 varchar(35), RBANKNAM5 varchar(35), OP_TYPE varchar(2), PAY_DATE varchar, EXT_DATE varchar, PAY_VAL varchar(12), SUM_DEB varchar, SCLIENTN1 varchar(35), SCLIENTN2 varchar(35), SCLIENTN3 varchar(35), SCLIENTN4 varchar(35), INN_DEB varchar(12), KPP_DEB varchar(9), ACC_DEB varchar(35), RCLIENTN1 varchar(35), RCLIENTN2 varchar(35), RCLIENTN3 varchar(35), RCLIENTN4 varchar(35), INN_CRED varchar(12), KPP_CRED varchar(9), ACC_KR varchar(35), SPECIF varchar(255), FILE_NAME varchar(255), GENERATION_TIME timestamp, GENERATION_ID bigint); +COMMENT ON TABLE S_DF57 IS 'ДФ-57 Список транзакций о списании/зачислении за период по всем счетам (ТБС и КС)'; + +COMMENT ON COLUMN S_DF57.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN S_DF57.DBF_ID IS 'Уникальный идентификатор платежного документа (транзакции)'; + +COMMENT ON COLUMN S_DF57.DEAL_DEB IS 'Биржевой код участника клиринга (плательщик)'; + +COMMENT ON COLUMN S_DF57.DEAL_CRED IS 'Биржевой код участника клиринга (получатель)'; + +COMMENT ON COLUMN S_DF57.SBANKCODE IS 'Код банка-плательщика'; + +COMMENT ON COLUMN S_DF57.C_ACC_DEB IS 'Кор счет банка-плательщика в системе - акт.'; + +COMMENT ON COLUMN S_DF57.SBANKNAM1 IS 'Наименование банка-плательщика'; + +COMMENT ON COLUMN S_DF57.SBANKNAM2 IS ''; + +COMMENT ON COLUMN S_DF57.SBANKNAM3 IS ''; + +COMMENT ON COLUMN S_DF57.SBANKNAM4 IS ''; + +COMMENT ON COLUMN S_DF57.SBANKNAM5 IS ''; + +COMMENT ON COLUMN S_DF57.RBANKCODE IS 'Код банка-получателя'; + +COMMENT ON COLUMN S_DF57.C_ACC_CRED IS 'Кор счет банка-получателя в системе - акт.'; + +COMMENT ON COLUMN S_DF57.RBANKNAM1 IS 'Наименование банка-получателя'; + +COMMENT ON COLUMN S_DF57.RBANKNAM2 IS ''; + +COMMENT ON COLUMN S_DF57.RBANKNAM3 IS ''; + +COMMENT ON COLUMN S_DF57.RBANKNAM4 IS ''; + +COMMENT ON COLUMN S_DF57.RBANKNAM5 IS ''; + +COMMENT ON COLUMN S_DF57.OP_TYPE IS 'Вид операции'; + +COMMENT ON COLUMN S_DF57.PAY_DATE IS 'Платеж-дата'; + +COMMENT ON COLUMN S_DF57.EXT_DATE IS 'Дата по выписке'; + +COMMENT ON COLUMN S_DF57.PAY_VAL IS 'Валюта платежа'; + +COMMENT ON COLUMN S_DF57.SUM_DEB IS 'Сумма дебет'; + +COMMENT ON COLUMN S_DF57.SCLIENTN1 IS 'Наименование клиента-плательщика'; + +COMMENT ON COLUMN S_DF57.SCLIENTN2 IS ''; + +COMMENT ON COLUMN S_DF57.SCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF57.SCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF57.INN_DEB IS 'ИНН клиента-плательщика'; + +COMMENT ON COLUMN S_DF57.KPP_DEB IS 'КПП клиента-плательщика'; + +COMMENT ON COLUMN S_DF57.ACC_DEB IS 'Счет клиента-плательщика(дебет)'; + +COMMENT ON COLUMN S_DF57.RCLIENTN1 IS 'Наименование клиента-получателя'; + +COMMENT ON COLUMN S_DF57.RCLIENTN2 IS ''; + +COMMENT ON COLUMN S_DF57.RCLIENTN3 IS ''; + +COMMENT ON COLUMN S_DF57.RCLIENTN4 IS ''; + +COMMENT ON COLUMN S_DF57.INN_CRED IS 'ИНН клиента-получателя'; + +COMMENT ON COLUMN S_DF57.KPP_CRED IS 'КПП клиента-получателя'; + +COMMENT ON COLUMN S_DF57.ACC_KR IS 'Счет получателя'; + +COMMENT ON COLUMN S_DF57.SPECIF IS 'Назначение платежа'; + +COMMENT ON COLUMN S_DF57.FILE_NAME IS 'Наименование входящего файла'; + +COMMENT ON COLUMN S_DF57.GENERATION_TIME IS 'Дата и время создания записи'; + +COMMENT ON COLUMN S_DF57.GENERATION_ID IS 'Идентификатор взаимодействия'; + +-- managementJournal - Журнал мониторинга и контроля +DROP TABLE IF EXISTS MANAGEMENT_JOURNAL; +CREATE TABLE MANAGEMENT_JOURNAL(COMPANY_ID bigint, USER_ID bigint, MANAGEMENT_JOURNAL_TYPE varchar(4), MANAGEMENT_JOURNAL_PURPOSE varchar(4), MANAGEMENT_JOURNAL_STATUS varchar(4), TEXT varchar(4096), CHANGE_ACCESS_SIGN varchar(4), CHANGE_DATA_SIGN varchar(4), EVENT_DATE timestamp, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE MANAGEMENT_JOURNAL IS 'Журнал мониторинга и контроля'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.COMPANY_ID IS 'Идентификатор компании (linked to company)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.USER_ID IS 'Идентификатор пользователя (linked to userCls)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_TYPE IS 'Код типа мониторинга (linked to managementJournalType)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_PURPOSE IS 'Код цели мониторинга (linked to managementJournalPurpose)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.MANAGEMENT_JOURNAL_STATUS IS 'Код статуса (linked to managementJournalStatus)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.TEXT IS 'Текст сообщения'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_ACCESS_SIGN IS 'Код признака изменения доступа (linked to allowed)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.CHANGE_DATA_SIGN IS 'Код признака изменения данных (linked to allowed)'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.EVENT_DATE IS 'Дата события ЕГРЮЛ'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN MANAGEMENT_JOURNAL.UPDATED_AT IS 'Дата-время изменения записи'; + +-- inDocumentJournal - Журнал входящих документов +DROP TABLE IF EXISTS IN_DOCUMENT_JOURNAL; +CREATE TABLE IN_DOCUMENT_JOURNAL(REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), SENDER varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE varchar(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), COMMENT varchar(255), RECEIPT_DATE date, RESULT_STATUS varchar(4), ID bigint PRIMARY KEY); +COMMENT ON TABLE IN_DOCUMENT_JOURNAL IS 'Журнал входящих документов'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.SENDER IS 'Полное наименование отправителя'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код участника клиринга'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Код способа отправки (linked to courierType)'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.COMMENT IS 'Комментарий'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RECEIPT_DATE IS 'Дата получения оригинала'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Код статуса загрузки документа (linked to resultStatus)'; + +COMMENT ON COLUMN IN_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; + +-- outDocumentJournal - Журнал исходящих документов +DROP TABLE IF EXISTS OUT_DOCUMENT_JOURNAL; +CREATE TABLE OUT_DOCUMENT_JOURNAL(REGISTRATION_DATE date, REGISTRATION_TIME time, REGISTRATION_NUMBER bigint, DOCUMENT_NAME varchar(255), ADDRESSEE varchar(255), QUANTITY bigint, CLEARING_CODE varchar(255), COURIER_TYPE varchar(4), EMAIL_DATE date, AMOUNT numeric(72,2), DOSSIER_NUMBER varchar(50), POST_DATE date, RESULT_STATUS varchar(4), ID bigint PRIMARY KEY); +COMMENT ON TABLE OUT_DOCUMENT_JOURNAL IS 'Журнал исходящих документов'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_DATE IS 'Дата регистрации'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_TIME IS 'Время регистрации'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.REGISTRATION_NUMBER IS 'Регистационный номер'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOCUMENT_NAME IS 'Наименование документа'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ADDRESSEE IS 'Полное наименование получателя'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.QUANTITY IS 'Количествово экземпляров'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.CLEARING_CODE IS 'Код участника клиринга'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.COURIER_TYPE IS 'Код способа отправки (linked to courierType)'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.EMAIL_DATE IS 'Дата отправки электронной почтой'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.AMOUNT IS 'Сумма'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.DOSSIER_NUMBER IS 'Номер дела'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.POST_DATE IS 'Дата почтового отправления'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.RESULT_STATUS IS 'Код статуса загрузки документа (linked to resultStatus)'; + +COMMENT ON COLUMN OUT_DOCUMENT_JOURNAL.ID IS 'Идентификатор записи'; + +-- reportRegister - Реестр отправленных отчетов +DROP TABLE IF EXISTS REPORT_REGISTER; +CREATE TABLE REPORT_REGISTER(COMPANY_FULL_NAME varchar(255), CLEARING_CODE varchar(255), SESSION_ID bigint, COMMENT varchar(255), NAME varchar(255), QUANTITY bigint, ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date); +COMMENT ON TABLE REPORT_REGISTER IS 'Реестр отправленных отчетов'; + +COMMENT ON COLUMN REPORT_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; + +COMMENT ON COLUMN REPORT_REGISTER.CLEARING_CODE IS 'Код клиринга'; + +COMMENT ON COLUMN REPORT_REGISTER.SESSION_ID IS 'Идентификатор клиринговой сессии (linked to session)'; + +COMMENT ON COLUMN REPORT_REGISTER.COMMENT IS 'Комментарий'; + +COMMENT ON COLUMN REPORT_REGISTER.NAME IS 'Наименование'; + +COMMENT ON COLUMN REPORT_REGISTER.QUANTITY IS 'Количество записей'; + +COMMENT ON COLUMN REPORT_REGISTER.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN REPORT_REGISTER.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN REPORT_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN REPORT_REGISTER.CLEARING_DATE IS 'Дата'; + +-- contractRegister - Журнал регистрации договоров +DROP TABLE IF EXISTS CONTRACT_REGISTER; +CREATE TABLE CONTRACT_REGISTER(NAME varchar(255), NUMBER varchar(255), ISSUE_DATE date, COMPANY_FULL_NAME varchar(255), COMPANY_ID bigint, DOCUMENT_TYPE varchar(4), ISSUE_PLACE varchar(255), ISSUER varchar(255), ISSUER_CODE varchar(255), PLACE varchar(255), VALID_FROM_DATE date, VALID_TO_DATE date, CLOSE_DATE date, COMMENT varchar(255), ID bigint PRIMARY KEY, CREATED_AT timestamp, UPDATED_AT timestamp); +COMMENT ON TABLE CONTRACT_REGISTER IS 'Журнал регистрации договоров'; + +COMMENT ON COLUMN CONTRACT_REGISTER.NAME IS 'Наименование документа'; + +COMMENT ON COLUMN CONTRACT_REGISTER.NUMBER IS 'Номер документа'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_DATE IS 'Дата составления'; + +COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_FULL_NAME IS 'Полное наименование компании'; + +COMMENT ON COLUMN CONTRACT_REGISTER.COMPANY_ID IS 'Наименование компании (linked to company)'; + +COMMENT ON COLUMN CONTRACT_REGISTER.DOCUMENT_TYPE IS 'Код типа документа (linked to documentType)'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ISSUE_PLACE IS 'Место выдачи'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER IS 'Кем выдан'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ISSUER_CODE IS 'Код выдавшего органа'; + +COMMENT ON COLUMN CONTRACT_REGISTER.PLACE IS 'Место'; + +COMMENT ON COLUMN CONTRACT_REGISTER.VALID_FROM_DATE IS 'Дата начала срока действия'; + +COMMENT ON COLUMN CONTRACT_REGISTER.VALID_TO_DATE IS 'Дата окончания срока действия'; + +COMMENT ON COLUMN CONTRACT_REGISTER.CLOSE_DATE IS 'Дата расторжения'; + +COMMENT ON COLUMN CONTRACT_REGISTER.COMMENT IS 'Место'; + +COMMENT ON COLUMN CONTRACT_REGISTER.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN CONTRACT_REGISTER.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN CONTRACT_REGISTER.UPDATED_AT IS 'Дата-время изменения записи'; + +-- operation - Проводки +DROP TABLE IF EXISTS OPERATION; +CREATE TABLE OPERATION(ID bigint PRIMARY KEY, ADDRESSEE_ID bigint, SENDER_ID bigint, CREATED_AT timestamp, UPDATED_AT timestamp, CLEARING_DATE date, OPERATION_TYPE_ID bigint, OPERATION_STATUS varchar(4)); +COMMENT ON TABLE OPERATION IS 'Проводки'; + +COMMENT ON COLUMN OPERATION.ID IS 'Идентификатор записи'; + +COMMENT ON COLUMN OPERATION.ADDRESSEE_ID IS 'Идентификатор компании-получателя (linked to company)'; + +COMMENT ON COLUMN OPERATION.SENDER_ID IS 'Идентификатор компании-отправителя (linked to company)'; + +COMMENT ON COLUMN OPERATION.CREATED_AT IS 'Дата-время создания записи'; + +COMMENT ON COLUMN OPERATION.UPDATED_AT IS 'Дата-время изменения записи'; + +COMMENT ON COLUMN OPERATION.CLEARING_DATE IS 'Дата'; + +COMMENT ON COLUMN OPERATION.OPERATION_TYPE_ID IS 'Тип проводки (linked to operationType)'; + +COMMENT ON COLUMN OPERATION.OPERATION_STATUS IS 'Код статуса обработки (linked to operationStatus)'; + +-- marketDataLiquidation - Статичная ценовая информация для ликвидации активов +DROP TABLE IF EXISTS MARKET_DATA_LIQUIDATION; +CREATE TABLE MARKET_DATA_LIQUIDATION(ID bigint PRIMARY KEY, SECURITY_ID bigint, PRICE numeric(72,18), CLEARING_DATE date); +COMMENT ON TABLE MARKET_DATA_LIQUIDATION IS 'Статичная ценовая информация для ликвидации активов'; + +COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.ID IS 'Идентификатор'; + +COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.SECURITY_ID IS 'Идентификатор инструмента (linked to security)'; + +COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.PRICE IS 'Цена за 1 штуку ликвидационного актива'; + +COMMENT ON COLUMN MARKET_DATA_LIQUIDATION.CLEARING_DATE IS 'Дата'; /* views */ From d9fa17b0c74b0f8d3ecb7c1b8e77c673c4dcc5e8 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 18:48:16 +0300 Subject: [PATCH 28/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B7=D0=B0=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0?= =?UTF-8?q?=20=D1=83=D0=B4=D0=B0=D0=BB=D1=8F=D0=B5=D0=BC=D1=8B=D1=85=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/AccountBalanceController.java | 40 -- .../LiabilitiesClaimsAssetController.java | 44 --- .../LiabilitiesClaimsMoneyController.java | 44 --- .../AdmittedDealRegisterController.java | 44 --- .../register/BalanceRegisterController.java | 44 --- .../ClearMemberRegisterController.java | 44 --- .../CoveredDealRegisterController.java | 44 --- .../register/DealRegisterController.java | 44 --- .../register/OrderRegisterController.java | 44 --- .../UncoveredDealRegisterController.java | 44 --- .../queue/utilities/CudKeyRateController.java | 83 ----- .../cud/utilities/KeyRateNewAction.java | 92 ----- .../cud/utilities/KeyRateUpdateAction.java | 92 ----- .../utilities/KeyRateBackendGetAll.java | 54 --- .../utilities/KeyRateBackendGetFields.java | 73 ---- .../queue/AbstractControllerTest.java | 14 - .../account/AccountBalanceControllerTest.java | 29 -- .../LiabilitiesClaimsAssetControllerTest.java | 53 --- .../LiabilitiesClaimsMoneyControllerTest.java | 42 --- .../AdmittedDealRegisterControllerTest.java | 45 --- .../BalanceRegisterControllerTest.java | 43 --- .../ClearMemberRegisterControllerTest.java | 54 --- .../CoveredDealRegisterControllerTest.java | 45 --- .../register/DealRegisterControllerTest.java | 50 --- .../register/OrderRegisterControllerTest.java | 38 -- .../UncoveredDealRegisterControllerTest.java | 46 --- .../utilities/CudKeyRateControllerTest.java | 95 ----- .../validation/Sdf16ValidationRuleTest.java | 2 +- .../liabilities/LiabilitiesClaimsAssets.java | 1 + .../liabilities/LiabilitiesClaimsMoney.java | 1 + .../statics/data/misc/BalanceRegister.java | 138 ------- .../data/misc/ClearMemberRegister.java | 236 ------------ .../classes/statics/data/misc/KeyRate.java | 1 + .../data/register/AdmittedDealRegister.java | 153 -------- .../register/ClearMemberRegisterChange.java | 41 --- .../data/register/CoveredDealRegister.java | 148 -------- .../statics/data/register/DealRegister.java | 190 ---------- .../statics/data/register/OrderRegister.java | 93 ----- .../data/register/UncoveredDealRegister.java | 157 -------- .../classes/statics/data/sdf/SDf16.java | 1 + .../classes/statics/data/sdf/SDf17.java | 1 + .../classes/statics/data/sdf/SDf18.java | 1 + .../LiabilitiesClaimsMoneyCreator.java | 1 + .../BalanceAccountTypeDictionary.java | 11 - .../dictionary/ChargeDirectionDictionary.java | 12 - .../dictionary/ChargeTypeDictionary.java | 11 - .../dictionary/ClearingStatusDictionary.java | 1 + .../AccountBalanceMapStore.java | 100 ----- .../LiabilitiesClaimsAssetsMapStore.java | 108 ------ .../LiabilitiesClaimsMoneyMapStore.java | 95 ----- .../BalanceAccountTypeDictionaryMapStore.java | 31 -- .../ChargeDirectionDictionaryMapStore.java | 31 -- .../ClearingStatusDictionaryMapStore.java | 31 -- .../object/AdmittedDealRegisterMapStore.java | 101 ------ .../imdg/object/BalanceRegisterMapStore.java | 98 ----- .../object/ClearMemberRegisterMapStore.java | 130 ------- .../object/CoveredDealRegisterMapStore.java | 101 ------ .../imdg/object/DealRegisterMapStore.java | 116 ------ .../clearing/imdg/object/KeyRateMapStore.java | 66 ---- .../imdg/object/OrderRegisterMapStore.java | 83 ----- .../clearing/imdg/object/SDf16MapStore.java | 75 ---- .../clearing/imdg/object/SDf17MapStore.java | 77 ---- .../clearing/imdg/object/SDf18MapStore.java | 67 ---- .../object/UncoveredDealRegisterMapStore.java | 104 ------ .../structure/RunnableMapNamesForTesting.java | 30 -- .../service/AdmittedDealRegisterService.java | 63 ---- .../service/BalanceRegisterService.java | 62 ---- .../ClearMemberRegisterChangeService.java | 51 --- .../service/ClearMemberRegisterService.java | 73 ---- .../service/CoveredDealRegisterService.java | 63 ---- .../service/OrderRegisterService.java | 56 --- .../service/UncoveredDealRegisterService.java | 63 ---- .../AdmittedDealRegisterServiceTest.java | 118 ------ .../service/BalanceRegisterServiceTest.java | 113 ------ .../ClearMemberRegisterChangeServiceTest.java | 90 ----- .../ClearMemberRegisterServiceTest.java | 135 ------- .../CoveredDealRegisterServiceTest.java | 116 ------ .../service/OrderRegisterServiceTest.java | 105 ------ .../UncoveredDealRegisterServiceTest.java | 118 ------ .../utility/service/KeyRateService.java | 1 + .../utility/service/KeyRateFactory.java | 1 + .../enumeration/BalanceAccountType.java | 1 + .../platform/enumeration/ClearingStatus.java | 1 + .../clearing/imdg/IMDGDistributedNames.java | 18 +- .../AdmittedDealRegisterNewRequest.java | 211 ----------- .../ClearMemberRegisterChangeNewRequest.java | 44 --- .../ClearMemberRegisterNewRequest.java | 343 ------------------ .../CoveredDealRegisterNewRequest.java | 225 ------------ .../cud/registry/OrderRegisterNewRequest.java | 155 -------- .../UncoveredDealRegisterNewRequest.java | 235 ------------ .../cud/utilities/KeyRateNewRequest.java | 2 +- .../cud/utilities/KeyRateUpdateRequest.java | 2 +- 92 files changed, 23 insertions(+), 6470 deletions(-) delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateNewAction.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java delete mode 100644 clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterControllerTest.java delete mode 100644 clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateControllerTest.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/BalanceRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ClearMemberRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedDealRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ClearMemberRegisterChange.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredDealRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DealRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/OrderRegister.java delete mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/UncoveredDealRegister.java delete mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceAccountTypeDictionary.java delete mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeDirectionDictionary.java delete mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeTypeDictionary.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountBalanceMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsAssetsMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsMoneyMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/BalanceAccountTypeDictionaryMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ChargeDirectionDictionaryMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ClearingStatusDictionaryMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AdmittedDealRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearMemberRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CoveredDealRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DealRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java delete mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UncoveredDealRegisterMapStore.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/BalanceRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredDealRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/OrderRegisterService.java delete mode 100644 clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/BalanceRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredDealRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/OrderRegisterServiceTest.java delete mode 100644 clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterServiceTest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/AdmittedDealRegisterNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterChangeNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/CoveredDealRegisterNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/OrderRegisterNewRequest.java delete mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java deleted file mode 100644 index cfc8b71a0..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceController.java +++ /dev/null @@ -1,40 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.account; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Deprecated -@Controller -@RequestMapping("/account-balances") -public class AccountBalanceController { - private final IStateLoader stateLoader; - - @Autowired - public AccountBalanceController(IStateLoader stateLoader) { - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all account balances.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java deleted file mode 100644 index 625b82d90..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/liabilities-claims-assets") -public class LiabilitiesClaimsAssetController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public LiabilitiesClaimsAssetController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all LiabilitiesClaimsAssets.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_LiabilitiesClaimsAssets, - LiabilitiesClaimsAssets.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java deleted file mode 100644 index fc5cc1a72..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/liabilities-claims-money") -public class LiabilitiesClaimsMoneyController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public LiabilitiesClaimsMoneyController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all LiabilitiesClaimsMoney.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_LiabilitiesClaimsMoney, - LiabilitiesClaimsMoney.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java deleted file mode 100644 index ba837d2b3..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/admitted-deal-registers") -public class AdmittedDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public AdmittedDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all admitted deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_AdmittedDealRegister, - AdmittedDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java deleted file mode 100644 index a5216bdd3..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/balance-registers") -public class BalanceRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public BalanceRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all money balance registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_BalanceRegister, - BalanceRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java deleted file mode 100644 index 55a0f6fe9..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/clearmember-registers") -public class ClearMemberRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public ClearMemberRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all money ClearMemberRegisters.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_ClearMemberRegister, - ClearMemberRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java deleted file mode 100644 index d0c485e6d..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/covered-deal-registers") -public class CoveredDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public CoveredDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all covered deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_CoveredDealRegister, - CoveredDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java deleted file mode 100644 index e9ade9fa9..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.DealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/deal-registers") -public class DealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public DealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_DealRegister, - DealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java deleted file mode 100644 index cb07945b6..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/order-registers") -public class OrderRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public OrderRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all order registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_OrderRegister, - OrderRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java deleted file mode 100644 index 89be3464d..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterController.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.util.Collection; -import java.util.Map; - -@Controller -@RequestMapping("/uncovered-deal-registers") -public class UncoveredDealRegisterController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public UncoveredDealRegisterController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "get all uncovered deal registers.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform( - IMDGDistributedNames.Map_UncoveredDealRegister, - UncoveredDealRegister.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java deleted file mode 100644 index 08b6fe8cc..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateController.java +++ /dev/null @@ -1,83 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.utilities; - -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateNewAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateUpdateAction; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; -import ru.spcex.clearing.backendapi.controller.response.cud.CudResponse; -import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; -import ru.spcex.clearing.backendapi.service.IOperator; -import ru.spcex.clearing.backendapi.service.IStateLoader; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.Consts; - -import java.util.Collection; -import java.util.Map; -import java.util.concurrent.ExecutionException; - -@Controller -@RequestMapping("/utilities/key-rates") -public class CudKeyRateController extends AbstractQueueController { - private final IStateLoader stateLoader; - - @Autowired - public CudKeyRateController(IOperator operator, IStateLoader stateLoader) { - super(operator); - this.stateLoader = stateLoader; - } - - @ApiOperation(value = "create key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public CudResponse add( - @ApiParam(value = "Параметры команды в JSON формате.", required = true) - @RequestBody KeyRateNewAction keyRateNewAction) throws ExecutionException, InterruptedException { - return processRequest(Consts.DESTINATION_KEY_RATE_NEW, keyRateNewAction); - } - - @ApiOperation(value = "update key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) - @ResponseBody - public CudResponse update( - @ApiParam(value = "Идентификатор изменяемого объекта.", required = true, example = "1234") - @PathVariable("id") Long id, - @ApiParam(value = "Новые значения полей объекта.", required = true) - @RequestBody KeyRateUpdateAction keyRateUpdateAction) throws ExecutionException, InterruptedException { - keyRateUpdateAction.setId(id); - return processRequest(Consts.DESTINATION_KEY_RATE_UPDATE, keyRateUpdateAction); - } - - @ApiOperation(value = "delete key rate.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CudResponse.class), @ApiResponse(code = 400, message = "Ошибка валидации", response = BasicSpcexResponse.class)}) - @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) - @ResponseBody - public CudResponse delete(@ApiParam(value = "Идентификатор удаляемого объекта", required = true, example = "1234") - @PathVariable("id") Long id) throws ExecutionException, InterruptedException { - CommonDeleteAction deleteAction = new CommonDeleteAction(); - deleteAction.setId(id); - return processRequest(Consts.DESTINATION_KEY_RATE_DELETE, deleteAction); - } - - @ApiOperation(value = "get all KeyRate's.") - @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) - @RequestMapping(method = RequestMethod.GET) - @ResponseBody - public CommonGetAllResponse getAll() { - Collection> all = stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_KeyRate, KeyRate.class); - CommonGetAllResponse response = new CommonGetAllResponse(); - response.fromEntity(all); - return response; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateNewAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateNewAction.java deleted file mode 100644 index 6e84101b9..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateNewAction.java +++ /dev/null @@ -1,92 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.request.cud.utilities; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import io.swagger.annotations.ApiModelProperty; -import ru.spcex.clearing.backendapi.domain.actions.IAction; -import ru.spcex.clearing.backendapi.errors.BackEndError; -import ru.spcex.clearing.platform.messaging.domain.ActionType; -import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateNewRequest; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.platform.utils.enumeration.EnumMessage; - -import java.math.BigDecimal; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -public class KeyRateNewAction implements IAction { - @ApiModelProperty(value = "Ключевая ставка ЦБ РФ", example = "12.5") - @JsonProperty - public BigDecimal rate; - @ApiModelProperty(value = "Дата начала действия ключевой ставки", example = "2022-01-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate startDate; - @ApiModelProperty(value = "Дата окончания действия ключевой ставки", example = "2022-04-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate endDate; - @ApiModelProperty(value = "Документ ЦБ", example = "Lorem ipsum") - @JsonProperty - public String document; - - @Override - public Collection validate() { - if (this.startDate == null) - return List.of(new EnumMessage(BackEndError.ValidationError, "startDate")); - else return Collections.emptyList(); - } - - @ApiModelProperty(hidden = true) - @Override - public ActionType getActionType() { - return ActionType.NEW; - } - - @Override - public KeyRateNewRequest toRequest() { - var req = new KeyRateNewRequest(); - req.setStartDate(this.getStartDate()); - req.setEndDate(this.getEndDate()); - req.setKeyRate(this.getRate()); - req.setDocument(this.getDocument()); - return req; - } - - public BigDecimal getRate() { - return rate; - } - - public void setRate(BigDecimal rate) { - this.rate = rate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java deleted file mode 100644 index 250506c75..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/request/cud/utilities/KeyRateUpdateAction.java +++ /dev/null @@ -1,92 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.request.cud.utilities; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import io.swagger.annotations.ApiModelProperty; -import ru.spcex.clearing.backendapi.domain.actions.IAction; -import ru.spcex.clearing.platform.messaging.domain.ActionType; -import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateUpdateRequest; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class KeyRateUpdateAction implements IAction { - @ApiModelProperty(hidden = true) - @JsonProperty - public Long id; - @ApiModelProperty(value = "Ключевая ставка ЦБ РФ", example = "12.5") - @JsonProperty - public BigDecimal rate; - @ApiModelProperty(value = "Дата начала действия ключевой ставки", example = "2022-01-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate startDate; - @ApiModelProperty(value = "Дата окончания действия ключевой ставки", example = "2022-04-20") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Europe/Moscow") - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate endDate; - @ApiModelProperty(value = "Документ ЦБ", example = "Lorem ipsum") - @JsonProperty - public String document; - - @ApiModelProperty(hidden = true) - @Override - public ActionType getActionType() { - return ActionType.UPDATE; - } - - @Override - public KeyRateUpdateRequest toRequest() { - var req = new KeyRateUpdateRequest(); - req.setId(this.getId()); - req.setStartDate(this.getStartDate()); - req.setEndDate(this.getEndDate()); - req.setKeyRate(this.getRate()); - req.setDocument(this.getDocument()); - return req; - } - - public BigDecimal getRate() { - return rate; - } - - public void setRate(BigDecimal rate) { - this.rate = rate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } -} diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java deleted file mode 100644 index 0e777aa67..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetAll.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.utilities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.backendapi.controller.response.BasicSpcexResponse; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -@ApiModel(description = "Ответ при получении объектов KeyRate.") -public class KeyRateBackendGetAll extends BasicSpcexResponse { - - @JsonProperty - @ApiModelProperty(value = "Полезная нагрузка") - private KeyRateBackendPayload payload = new KeyRateBackendPayload(); - - private static class KeyRateBackendPayload { - private List items = new ArrayList<>(); - - public List getItems() { - return items; - } - - public void setItems(List items) { - this.items = items; - } - } - - public KeyRateBackendPayload getPayload() { - return payload; - } - - public void setPayload(KeyRateBackendPayload payload) { - this.payload = payload; - } - - public void fromEntity(Collection keyRates) { - var payload = this.getPayload(); - for (var keyRate : keyRates) { - var singleItem = new KeyRateBackendGetFields(); - singleItem.setId(keyRate.getId()); - singleItem.setKeyRate(keyRate.getRate()); - singleItem.setStartDate(keyRate.getStartDate()); - singleItem.setEndDate(keyRate.getEndDate()); - singleItem.setDocument(keyRate.getDocument()); - singleItem.setWorkflowStatus(keyRate.getWorkflowStatus()); - payload.getItems().add(singleItem); - } - } - -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java deleted file mode 100644 index 0a26e33de..000000000 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/response/entity/utilities/KeyRateBackendGetFields.java +++ /dev/null @@ -1,73 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.response.entity.utilities; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class KeyRateBackendGetFields { - @JsonProperty - private Long id; - @JsonProperty - private BigDecimal keyRate; - @JsonSerialize(using = LocalDateSerializer.class) - @JsonProperty - private LocalDate startDate; - @JsonSerialize(using = LocalDateSerializer.class) - @JsonProperty - private LocalDate endDate; - @JsonProperty - private String document; - @JsonProperty - private String workflowStatus; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public BigDecimal getKeyRate() { - return keyRate; - } - - public void setKeyRate(BigDecimal keyRate) { - this.keyRate = keyRate; - } - - public LocalDate getStartDate() { - return startDate; - } - - public void setStartDate(LocalDate startDate) { - this.startDate = startDate; - } - - public LocalDate getEndDate() { - return endDate; - } - - public void setEndDate(LocalDate endDate) { - this.endDate = endDate; - } - - public String getDocument() { - return document; - } - - public void setDocument(String document) { - this.document = document; - } - - public String getWorkflowStatus() { - return workflowStatus; - } - - public void setWorkflowStatus(String workflowStatus) { - this.workflowStatus = workflowStatus; - } -} diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java index 5a1b80c25..5e1163d1a 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/AbstractControllerTest.java @@ -35,8 +35,6 @@ import ru.spcex.clearing.backendapi.controller.queue.execution.ExecutionFondCont import ru.spcex.clearing.backendapi.controller.queue.journal.InDocumentJournalController; import ru.spcex.clearing.backendapi.controller.queue.journal.ManagementJournalController; import ru.spcex.clearing.backendapi.controller.queue.journal.OutDocumentJournalController; -import ru.spcex.clearing.backendapi.controller.queue.liabilities.LiabilitiesClaimsAssetController; -import ru.spcex.clearing.backendapi.controller.queue.liabilities.LiabilitiesClaimsMoneyController; import ru.spcex.clearing.backendapi.controller.queue.misc.*; import ru.spcex.clearing.backendapi.controller.queue.payment.PaymentInstructionController; import ru.spcex.clearing.backendapi.controller.queue.register.*; @@ -45,7 +43,6 @@ import ru.spcex.clearing.backendapi.controller.queue.scheduler.*; import ru.spcex.clearing.backendapi.controller.queue.securities.*; import ru.spcex.clearing.backendapi.controller.queue.user.UserController; import ru.spcex.clearing.backendapi.controller.queue.user.UserRoleSessionController; -import ru.spcex.clearing.backendapi.controller.queue.utilities.CudKeyRateController; import ru.spcex.clearing.backendapi.controller.queue.utilities.StatementController; import ru.spcex.clearing.backendapi.controller.queue.utilities.UserSettingsController; import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; @@ -85,7 +82,6 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi @ContextConfiguration(classes = { //account - AccountBalanceController.class, AccountController.class, BankAccountController.class, ClearingAccountController.class, @@ -109,8 +105,6 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi ManagementJournalController.class, OutDocumentJournalController.class, //liabilities - LiabilitiesClaimsAssetController.class, - LiabilitiesClaimsMoneyController.class, //misc CurrencyController.class, ErrorTextController.class, @@ -121,15 +115,8 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi //payment PaymentInstructionController.class, //register - AdmittedDealRegisterController.class, - BalanceRegisterController.class, - ClearMemberRegisterController.class, ContractRegisterController.class, - CoveredDealRegisterController.class, - DealRegisterController.class, - OrderRegisterController.class, ReportRegisterController.class, - UncoveredDealRegisterController.class, //registry TradingClearingRegistryController.class, //scheduler @@ -150,7 +137,6 @@ import static ru.spcex.clearing.test.json.MatcherFactoryWithJson.usingIgnoringFi UserController.class, UserRoleSessionController.class, //utilities - CudKeyRateController.class, StatementController.class, UserSettingsController.class, //******* common configs ******* diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceControllerTest.java deleted file mode 100644 index 8c6155c85..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/account/AccountBalanceControllerTest.java +++ /dev/null @@ -1,29 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.account; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -@Deprecated -class AccountBalanceControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/account-balances/"; - - /** - * {@link AccountBalanceController#getAll()}
- * Тест проверяет получение запроса по REST API и отправку всех записей из таблицы hazelcast Map_BankAccount.
- * Входной запрос /account-balances/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - AccountBalance existBankAccount = new AccountBalance(); - existBankAccount.setAccountType("99"); - existBankAccount.setAccount("123456789123"); - existBankAccount.setId(currentId.get()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_AccountBalance, existBankAccount, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetControllerTest.java deleted file mode 100644 index 30d9f982f..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsAssetControllerTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.LocalDate; - -class LiabilitiesClaimsAssetControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/liabilities-claims-assets/"; - - /** - * {@link LiabilitiesClaimsAssetController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /liabilities-claims-assets/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - LiabilitiesClaimsAssets liabilitiesClaimsAssets = new LiabilitiesClaimsAssets(); - liabilitiesClaimsAssets.setId(currentId.get()); - liabilitiesClaimsAssets.setCompanyId(currentId.get()); - liabilitiesClaimsAssets.setClearingDate(LocalDate.now()); - liabilitiesClaimsAssets.setAccountId(currentId.get()); - liabilitiesClaimsAssets.setAccountType("man"); - liabilitiesClaimsAssets.setAccount("res"); - liabilitiesClaimsAssets.setLiabilitiesQuantity(new BigDecimal(0)); - liabilitiesClaimsAssets.setClaimsQuantity(new BigDecimal(0)); - liabilitiesClaimsAssets.setCurrency("dos"); - liabilitiesClaimsAssets.setSettlementDate(LocalDate.now()); - liabilitiesClaimsAssets.setTradingDate(LocalDate.now()); - liabilitiesClaimsAssets.setRefundDate(LocalDate.now()); - liabilitiesClaimsAssets.setPrice(new BigDecimal(0)); - liabilitiesClaimsAssets.setSecurityId(currentId.get()); - liabilitiesClaimsAssets.setTradingCode("tra"); - liabilitiesClaimsAssets.setClearingCode("cle"); - liabilitiesClaimsAssets.setShortName("man"); - liabilitiesClaimsAssets.setContract("res"); - liabilitiesClaimsAssets.setComment("com"); - liabilitiesClaimsAssets.setFullName("send"); - liabilitiesClaimsAssets.setParentId(currentId.get()); - liabilitiesClaimsAssets.setLiabilitiesClaimsMoneyId(currentId.get()); - liabilitiesClaimsAssets.setClearingStatus(currentId.get()); - liabilitiesClaimsAssets.setPaymentId(currentId.get()); - liabilitiesClaimsAssets.setRefundPaymentId(currentId.get()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, liabilitiesClaimsAssets, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyControllerTest.java deleted file mode 100644 index 8dc6d40a1..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/liabilities/LiabilitiesClaimsMoneyControllerTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.liabilities; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.LocalDate; - -class LiabilitiesClaimsMoneyControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/liabilities-claims-money/"; - - /** - * {@link LiabilitiesClaimsMoneyController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /liabilities-claims-money/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - LiabilitiesClaimsMoney liabilitiesClaimsMoney = new LiabilitiesClaimsMoney(); - liabilitiesClaimsMoney.setId(currentId.get()); - liabilitiesClaimsMoney.setCompanyId(currentId.get()); - liabilitiesClaimsMoney.setAccountId(currentId.get()); - liabilitiesClaimsMoney.setAccountType("acc"); - liabilitiesClaimsMoney.setAccount("acc"); - liabilitiesClaimsMoney.setLiabilitiesAmount(new BigDecimal(0)); - liabilitiesClaimsMoney.setClaimsAmount(new BigDecimal(0)); - liabilitiesClaimsMoney.setSettlementDate(LocalDate.now()); - liabilitiesClaimsMoney.setTradingDate(LocalDate.now()); - liabilitiesClaimsMoney.setCurrency("dos"); - liabilitiesClaimsMoney.setTradingCode("tra"); - liabilitiesClaimsMoney.setShortName("short"); - liabilitiesClaimsMoney.setFullName("full"); - liabilitiesClaimsMoney.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, liabilitiesClaimsMoney, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterControllerTest.java deleted file mode 100644 index 57b24b492..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/AdmittedDealRegisterControllerTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -class AdmittedDealRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/admitted-deal-registers/"; - - /** - * {@link AdmittedDealRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /admitted-deal-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - AdmittedDealRegister admittedDealRegister = new AdmittedDealRegister(); - admittedDealRegister.setId(currentId.get()); - admittedDealRegister.setExecutionId(currentId.get()); - admittedDealRegister.setCompanyFullName("com"); - admittedDealRegister.setTradingDate(LocalDate.now()); - admittedDealRegister.setExchangeExecutionId(currentId.get()); - admittedDealRegister.setExchangeExecutionTime(Instant.now()); - admittedDealRegister.setSecuritySymbol("symb"); - admittedDealRegister.setSecurityFullName("name"); - admittedDealRegister.setSellerFullName("dos"); - admittedDealRegister.setSellerClearingCode("code"); - admittedDealRegister.setSellerAccount("acc"); - admittedDealRegister.setBuyerFullName("name"); - admittedDealRegister.setBuyerClearingCode("code"); - admittedDealRegister.setBuyerAccount("buy"); - admittedDealRegister.setAmount(new BigDecimal(0)); - admittedDealRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_AdmittedDealRegister, admittedDealRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterControllerTest.java deleted file mode 100644 index 2ede1a0b0..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/BalanceRegisterControllerTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; - -class BalanceRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/balance-registers/"; - - /** - * {@link BalanceRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /balance-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - BalanceRegister balanceRegister = new BalanceRegister(); - balanceRegister.setId(currentId.get()); - balanceRegister.setsDf01Date(Instant.now()); - balanceRegister.setCurrencyCode("com"); - balanceRegister.setSetHouseName("name"); - balanceRegister.setAccount("acc"); - balanceRegister.setInfoAccount("acc"); - balanceRegister.setRemainderSum(new BigDecimal(0)); - balanceRegister.setBlockedSum(new BigDecimal(0)); - balanceRegister.setUnblockedSum(new BigDecimal(0)); - balanceRegister.setInn("code"); - balanceRegister.setMarket(currentId.get()); - balanceRegister.setFullName("name"); - balanceRegister.setTypeRemains("code"); - balanceRegister.setDocNumber("buy"); - balanceRegister.setCompanyId(currentId.get()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_BalanceRegister, balanceRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterControllerTest.java deleted file mode 100644 index 3f0bcac4d..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ClearMemberRegisterControllerTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.time.Instant; -import java.time.LocalDate; - -class ClearMemberRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/clearmember-registers/"; - - /** - * {@link ClearMemberRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /clearmember-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - ClearMemberRegister clearMemberRegister = new ClearMemberRegister(); - clearMemberRegister.setId(currentId.get()); - clearMemberRegister.setTradingCode("code"); - clearMemberRegister.setClearingCode("com"); - clearMemberRegister.setFullName("name"); - clearMemberRegister.setShortName("name"); - clearMemberRegister.setCategoryList("cat"); - clearMemberRegister.setCorporationSole("symb"); - clearMemberRegister.setAccount("name"); - clearMemberRegister.setBank(currentId.get()); - clearMemberRegister.setBankName("code"); - clearMemberRegister.setInn("acc"); - clearMemberRegister.setBic("name"); - clearMemberRegister.setOgrn("code"); - clearMemberRegister.setCpp("buy"); - clearMemberRegister.setOcpo("ocpo"); - clearMemberRegister.setContractNumber("cont"); - clearMemberRegister.setContractDate(LocalDate.now()); - clearMemberRegister.setRegistrationDate(LocalDate.now()); - clearMemberRegister.setSystemDate(LocalDate.now()); - clearMemberRegister.setAccessDate(Instant.now()); - clearMemberRegister.setSuspentionDate(Instant.now()); - clearMemberRegister.setReopeningDate(Instant.now()); - clearMemberRegister.setCloseDate(Instant.now()); - clearMemberRegister.setExclusionDate(Instant.now()); - clearMemberRegister.setAddress("code"); - clearMemberRegister.setEmail("acc"); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_ClearMemberRegister, clearMemberRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterControllerTest.java deleted file mode 100644 index fa1382f24..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/CoveredDealRegisterControllerTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -class CoveredDealRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/covered-deal-registers/"; - - /** - * {@link CoveredDealRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /covered-deal-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - CoveredDealRegister coveredDealRegister = new CoveredDealRegister(); - coveredDealRegister.setId(currentId.get()); - coveredDealRegister.setExecutionId(currentId.get()); - coveredDealRegister.setCompanyFullName("com"); - coveredDealRegister.setTradingDate(LocalDate.now()); - coveredDealRegister.setExchangeExecutionId(currentId.get()); - coveredDealRegister.setExchangeExecutionTime(Instant.now()); - coveredDealRegister.setSecuritySymbol("symb"); - coveredDealRegister.setSecurityFullName("name"); - coveredDealRegister.setSellerFullName("name"); - coveredDealRegister.setSellerClearingCode("code"); - coveredDealRegister.setSellerAccount("acc"); - coveredDealRegister.setBuyerFullName("name"); - coveredDealRegister.setBuyerClearingCode("code"); - coveredDealRegister.setBuyerAccount("buy"); - coveredDealRegister.setAmount(new BigDecimal(0)); - coveredDealRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_CoveredDealRegister, coveredDealRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterControllerTest.java deleted file mode 100644 index fd58907fd..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/DealRegisterControllerTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.DealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -class DealRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/deal-registers/"; - - /** - * {@link DealRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /deal-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - DealRegister dealRegister = new DealRegister(); - dealRegister.setId(currentId.get()); - dealRegister.setExecutionId(currentId.get()); - dealRegister.setExchangeExecutionId(currentId.get()); - dealRegister.setExchangeExecutionTime(Instant.now()); - dealRegister.setTradingDate(LocalDate.now()); - dealRegister.setAccount("cat"); - dealRegister.setMarket("symb"); - dealRegister.setPrice(new BigDecimal(0)); - dealRegister.setAmount(new BigDecimal(0)); - dealRegister.setSide("code"); - dealRegister.setSettlementCurrency("acc"); - dealRegister.setCompanyId(currentId.get()); - dealRegister.setFirstLegSettlementDate(LocalDate.now()); - dealRegister.setSecondLegSettlementDate(LocalDate.now()); - dealRegister.setSecurityFullName("ocpo"); - dealRegister.setSecuritySymbol("cont"); - dealRegister.setSecurityId(currentId.get()); - dealRegister.setCounterPartyId(currentId.get()); - dealRegister.setCoverageStatus("status"); - dealRegister.setSessionId(currentId.get()); - dealRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_DealRegister, dealRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterControllerTest.java deleted file mode 100644 index fdac282cf..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/OrderRegisterControllerTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.LocalDate; - -class OrderRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/order-registers/"; - - /** - * {@link OrderRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /order-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - OrderRegister orderRegister = new OrderRegister(); - orderRegister.setId(currentId.get()); - orderRegister.setCreditLegAccount("code"); - orderRegister.setCreditLegAmount(new BigDecimal(0)); - orderRegister.setCreditLegCurrencyCode("name"); - orderRegister.setCreditLegDirection(currentId.get()); - orderRegister.setDebitLegAccount("cat"); - orderRegister.setSender("symb"); - orderRegister.setAddressee("name"); - orderRegister.setDocumentNumber("doc"); - orderRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_OrderRegister, orderRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterControllerTest.java deleted file mode 100644 index a59b38f85..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/UncoveredDealRegisterControllerTest.java +++ /dev/null @@ -1,46 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.register; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -class UncoveredDealRegisterControllerTest extends AbstractControllerTest { - private static final String REST_URL = "/uncovered-deal-registers/"; - - /** - * {@link UncoveredDealRegisterController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /uncovered-deal-registers/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - UncoveredDealRegister uncoveredDealRegister = new UncoveredDealRegister(); - uncoveredDealRegister.setId(currentId.get()); - uncoveredDealRegister.setExecutionId(currentId.get()); - uncoveredDealRegister.setCompanyFullName("code"); - uncoveredDealRegister.setTradingDate(LocalDate.now()); - uncoveredDealRegister.setExchangeExecutionId(currentId.get()); - uncoveredDealRegister.setExchangeExecutionTime(Instant.now()); - uncoveredDealRegister.setSecuritySymbol("sec"); - uncoveredDealRegister.setSecurityFullName("code"); - uncoveredDealRegister.setSellerFullName("code"); - uncoveredDealRegister.setSellerClearingCode("sell"); - uncoveredDealRegister.setSellerAccount("coment"); - uncoveredDealRegister.setBuyerFullName("cat"); - uncoveredDealRegister.setBuyerClearingCode("buyer"); - uncoveredDealRegister.setBuyerAccount("code"); - uncoveredDealRegister.setAmount(new BigDecimal(0)); - uncoveredDealRegister.setResultStatus("res"); - uncoveredDealRegister.setClearingDate(LocalDate.now()); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_UncoveredDealRegister, uncoveredDealRegister, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateControllerTest.java deleted file mode 100644 index 384198de5..000000000 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/CudKeyRateControllerTest.java +++ /dev/null @@ -1,95 +0,0 @@ -package ru.spcex.clearing.backendapi.controller.queue.utilities; - -import org.junit.jupiter.api.Test; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; -import ru.spcex.clearing.backendapi.controller.request.cud.common.CommonDeleteAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateNewAction; -import ru.spcex.clearing.backendapi.controller.request.cud.utilities.KeyRateUpdateAction; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.Consts; - -import java.math.BigDecimal; -import java.time.LocalDate; - -class CudKeyRateControllerTest extends AbstractControllerTest { - public static final String REST_URL = "/utilities/key-rates/"; - - /** - * {@link CudKeyRateController#add(KeyRateNewAction)}
- * Тест проверяет получение сущности {@link KeyRateNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link KeyRateNewAction}:
- */ - @Test - void add() throws Exception { - //ARRANGE - KeyRateNewAction keyRateUpdateAction = new KeyRateNewAction(); -// keyRateUpdateAction.setId(currentId.get()); - keyRateUpdateAction.setRate(new BigDecimal(0)); - keyRateUpdateAction.setStartDate(LocalDate.now()); - keyRateUpdateAction.setEndDate(LocalDate.now()); - keyRateUpdateAction.setDocument("name"); - - //ACT and ASSERT - checkAddingByRestApi(REST_URL, keyRateUpdateAction); - checkSendedMessegeFromKafka(Consts.DESTINATION_KEY_RATE_NEW, keyRateUpdateAction); - } - - /** - * {@link CudKeyRateController#update(Long, KeyRateUpdateAction)}
- * Тест проверяет получение сущности {@link KeyRateNewAction} по REST API и отправку в Apache Kafka.
- * Входной запрос {@link KeyRateNewAction}:
- */ - @Test - void update() throws Exception { - //ARRANGE - long id = currentId.get(); - KeyRateUpdateAction keyRateUpdateAction = new KeyRateUpdateAction(); - keyRateUpdateAction.setId(id); - keyRateUpdateAction.setRate(new BigDecimal(0)); - keyRateUpdateAction.setStartDate(LocalDate.now()); - keyRateUpdateAction.setEndDate(LocalDate.now()); - keyRateUpdateAction.setDocument("name"); - - //ACT and ASSERT - checkUpdatingByRestApi(REST_URL, keyRateUpdateAction, id); - checkSendedMessegeFromKafka(Consts.DESTINATION_KEY_RATE_UPDATE, keyRateUpdateAction); - } - - /** - * {@link CudKeyRateController#delete(Long)}
- * Тест проверяет получение id сущности {@link Long} по REST API и отправку в Apache Kafka.
- * Входной запрос /utilities/key-rates/{@link Long}: - 0L
- */ - @Test - void delete() throws Exception { - //ARRANGE - long id = currentId.getAndIncrement(); - CommonDeleteAction deleteAction = new CommonDeleteAction(); - deleteAction.setId(id); - //ACT and ASSERT - checkDeletingByRestApi(REST_URL, id); - checkSendedMessegeFromKafka(Consts.DESTINATION_KEY_RATE_DELETE, deleteAction); - } - - /** - * {@link CudKeyRateController#getAll()}
- * Тест проверяет получение запроса по REST API.
- * Входной запрос /utilities/key-rates/
- * Ответ CommonGetAllResponse
- */ - @Test - void getAll() throws Exception { - //ARRANGE - KeyRate keyRate = new KeyRate(); - keyRate.setId(currentId.get()); - keyRate.setRate(new BigDecimal(0)); - keyRate.setStartDate(LocalDate.now()); - keyRate.setEndDate(LocalDate.now()); - keyRate.setDocument("name"); - keyRate.setWorkflowStatus("name"); - - //ACT and ASSERT - checkGettingAllFromRestApi(IMDGDistributedNames.Map_KeyRate, keyRate, REST_URL); - } -} \ No newline at end of file diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java index bd833cfc1..03369599e 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRuleTest.java @@ -12,7 +12,7 @@ import java.math.BigDecimal; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; - +@Deprecated // sDf16 was deleted class Sdf16ValidationRuleTest { @Test diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsAssets.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsAssets.java index 767a94c1e..7afa5821b 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsAssets.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsAssets.java @@ -6,6 +6,7 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; import java.time.LocalDate; +@Deprecated public class LiabilitiesClaimsAssets extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsMoney.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsMoney.java index 4f78f41c7..c4e41b0b5 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsMoney.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/liabilities/LiabilitiesClaimsMoney.java @@ -6,6 +6,7 @@ import ru.clearing.classes.objects.BusinessObject; import java.math.BigDecimal; import java.time.LocalDate; +@Deprecated public class LiabilitiesClaimsMoney extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; private Long companyId; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/BalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/BalanceRegister.java deleted file mode 100644 index 12ab161a0..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/BalanceRegister.java +++ /dev/null @@ -1,138 +0,0 @@ -package ru.clearing.classes.statics.data.misc; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; - -public class BalanceRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Instant sDf01Date; - private String currencyCode; - private String setHouseName; - private String account; - private String infoAccount; - private BigDecimal remainderSum; - private BigDecimal blockedSum; - private BigDecimal unblockedSum; - private String inn; - private Long market; - private String fullName; - private String typeRemains; - private String docNumber; - private Long companyId; - - public Instant getsDf01Date() { - return sDf01Date; - } - - public void setsDf01Date(Instant sDf01Date) { - this.sDf01Date = sDf01Date; - } - - public String getCurrencyCode() { - return currencyCode; - } - - public void setCurrencyCode(String currencyCode) { - this.currencyCode = currencyCode; - } - - public String getSetHouseName() { - return setHouseName; - } - - public void setSetHouseName(String setHouseName) { - this.setHouseName = setHouseName; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public String getInfoAccount() { - return infoAccount; - } - - public void setInfoAccount(String infoAccount) { - this.infoAccount = infoAccount; - } - - public BigDecimal getRemainderSum() { - return remainderSum; - } - - public void setRemainderSum(BigDecimal remainderSum) { - this.remainderSum = remainderSum; - } - - public BigDecimal getBlockedSum() { - return blockedSum; - } - - public void setBlockedSum(BigDecimal blockedSum) { - this.blockedSum = blockedSum; - } - - public BigDecimal getUnblockedSum() { - return unblockedSum; - } - - public void setUnblockedSum(BigDecimal unblockedSum) { - this.unblockedSum = unblockedSum; - } - - public String getInn() { - return inn; - } - - public void setInn(String inn) { - this.inn = inn; - } - - public Long getMarket() { - return market; - } - - public void setMarket(Long market) { - this.market = market; - } - - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - public String getTypeRemains() { - return typeRemains; - } - - public void setTypeRemains(String typeRemains) { - this.typeRemains = typeRemains; - } - - public String getDocNumber() { - return docNumber; - } - - public void setDocNumber(String docNumber) { - this.docNumber = docNumber; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ClearMemberRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ClearMemberRegister.java deleted file mode 100644 index d10488275..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/ClearMemberRegister.java +++ /dev/null @@ -1,236 +0,0 @@ -package ru.clearing.classes.statics.data.misc; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.time.Instant; -import java.time.LocalDate; - -public class ClearMemberRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private String tradingCode; - private String clearingCode; - private String fullName; - private String shortName; - private String categoryList; - private String corporationSole; - private String account; - private Long bank; - private String bankName; - private String inn; - private String bic; - private String ogrn; - private String cpp; - private String ocpo; - private String contractNumber; - private LocalDate contractDate; - private LocalDate registrationDate; - private LocalDate systemDate; - private Instant accessDate; - private Instant suspentionDate; - private Instant reopeningDate; - private Instant closeDate; - private Instant exclusionDate; - private String address; - private String email; - - public String getTradingCode() { - return tradingCode; - } - - public void setTradingCode(String tradingCode) { - this.tradingCode = tradingCode; - } - - public String getClearingCode() { - return clearingCode; - } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; - } - - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - public String getShortName() { - return shortName; - } - - public void setShortName(String shortName) { - this.shortName = shortName; - } - - public String getCategoryList() { - return categoryList; - } - - public void setCategoryList(String categoryList) { - this.categoryList = categoryList; - } - - public String getCorporationSole() { - return corporationSole; - } - - public void setCorporationSole(String corporationSole) { - this.corporationSole = corporationSole; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public Long getBank() { - return bank; - } - - public void setBank(Long bank) { - this.bank = bank; - } - - public String getBankName() { - return bankName; - } - - public void setBankName(String bankName) { - this.bankName = bankName; - } - - public String getInn() { - return inn; - } - - public void setInn(String inn) { - this.inn = inn; - } - - public String getBic() { - return bic; - } - - public void setBic(String bic) { - this.bic = bic; - } - - public String getOgrn() { - return ogrn; - } - - public void setOgrn(String ogrn) { - this.ogrn = ogrn; - } - - public String getCpp() { - return cpp; - } - - public void setCpp(String cpp) { - this.cpp = cpp; - } - - public String getOcpo() { - return ocpo; - } - - public void setOcpo(String ocpo) { - this.ocpo = ocpo; - } - - public String getContractNumber() { - return contractNumber; - } - - public void setContractNumber(String contractNumber) { - this.contractNumber = contractNumber; - } - - public LocalDate getContractDate() { - return contractDate; - } - - public void setContractDate(LocalDate contractDate) { - this.contractDate = contractDate; - } - - public LocalDate getRegistrationDate() { - return registrationDate; - } - - public void setRegistrationDate(LocalDate registrationDate) { - this.registrationDate = registrationDate; - } - - public LocalDate getSystemDate() { - return systemDate; - } - - public void setSystemDate(LocalDate systemDate) { - this.systemDate = systemDate; - } - - public Instant getAccessDate() { - return accessDate; - } - - public void setAccessDate(Instant accessDate) { - this.accessDate = accessDate; - } - - public Instant getSuspentionDate() { - return suspentionDate; - } - - public void setSuspentionDate(Instant suspentionDate) { - this.suspentionDate = suspentionDate; - } - - public Instant getReopeningDate() { - return reopeningDate; - } - - public void setReopeningDate(Instant reopeningDate) { - this.reopeningDate = reopeningDate; - } - - public Instant getCloseDate() { - return closeDate; - } - - public void setCloseDate(Instant closeDate) { - this.closeDate = closeDate; - } - - public Instant getExclusionDate() { - return exclusionDate; - } - - public void setExclusionDate(Instant exclusionDate) { - this.exclusionDate = exclusionDate; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java index c61a198c1..97903530d 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/KeyRate.java @@ -10,6 +10,7 @@ import java.time.LocalDate; *

* DB table: KEY_RATE **/ +@Deprecated public class KeyRate extends SpcexObjectBase { private BigDecimal rate; private LocalDate startDate; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedDealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedDealRegister.java deleted file mode 100644 index 099f66bd7..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedDealRegister.java +++ /dev/null @@ -1,153 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -/** - * Реестр сделок допущенных к клирингу - *

- * DB table: ADMITTED_DEAL_REGISTER - **/ -public class AdmittedDealRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Long executionId; - private String companyFullName; - private LocalDate tradingDate; - private Long exchangeExecutionId; - private Instant exchangeExecutionTime; - private String securitySymbol; - private String securityFullName; - private String sellerFullName; - private String sellerClearingCode; - private String sellerAccount; - private String buyerFullName; - private String buyerClearingCode; - private String buyerAccount; - private BigDecimal amount; - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ClearMemberRegisterChange.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ClearMemberRegisterChange.java deleted file mode 100644 index b87973543..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ClearMemberRegisterChange.java +++ /dev/null @@ -1,41 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.spcex.platform.classes.base.SpcexObjectBase; - -import java.time.Instant; - -/** - * Журнал изменений информации участников клиринга - **/ -public class ClearMemberRegisterChange extends SpcexObjectBase { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Instant date; - private String comment; - private String clearingCode; - - public Instant getDate() { - return date; - } - - public void setDate(Instant date) { - this.date = date; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public String getClearingCode() { - return clearingCode; - } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; - } -} diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredDealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredDealRegister.java deleted file mode 100644 index 925eeab6a..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredDealRegister.java +++ /dev/null @@ -1,148 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class CoveredDealRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Long executionId; - private String companyFullName; - private LocalDate tradingDate; - private Long exchangeExecutionId; - private Instant exchangeExecutionTime; - private String securitySymbol; - private String securityFullName; - private String sellerFullName; - private String sellerClearingCode; - private String sellerAccount; - private String buyerFullName; - private String buyerClearingCode; - private String buyerAccount; - private BigDecimal amount; - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DealRegister.java deleted file mode 100644 index d267160bf..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DealRegister.java +++ /dev/null @@ -1,190 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class DealRegister extends BusinessObject { - private Long executionId; - private Long exchangeExecutionId; - private Instant exchangeExecutionTime; - private LocalDate tradingDate; - private String account; - private String market; - private BigDecimal price; - private BigDecimal amount; - private String side; - private String settlementCurrency; - private Long companyId; - private LocalDate firstLegSettlementDate; - private LocalDate secondLegSettlementDate; - private String securityFullName; - private String securitySymbol; - private Long securityId; - private Long counterPartyId; - private String coverageStatus; - private Long sessionId; - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public String getMarket() { - return market; - } - - public void setMarket(String market) { - this.market = market; - } - - public BigDecimal getPrice() { - return price; - } - - public void setPrice(BigDecimal price) { - this.price = price; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public String getSide() { - return side; - } - - public void setSide(String side) { - this.side = side; - } - - public String getSettlementCurrency() { - return settlementCurrency; - } - - public void setSettlementCurrency(String settlementCurrency) { - this.settlementCurrency = settlementCurrency; - } - - public Long getCompanyId() { - return companyId; - } - - public void setCompanyId(Long companyId) { - this.companyId = companyId; - } - - public LocalDate getFirstLegSettlementDate() { - return firstLegSettlementDate; - } - - public void setFirstLegSettlementDate(LocalDate firstLegSettlementDate) { - this.firstLegSettlementDate = firstLegSettlementDate; - } - - public LocalDate getSecondLegSettlementDate() { - return secondLegSettlementDate; - } - - public void setSecondLegSettlementDate(LocalDate secondLegSettlementDate) { - this.secondLegSettlementDate = secondLegSettlementDate; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public Long getSecurityId() { - return securityId; - } - - public void setSecurityId(Long securityId) { - this.securityId = securityId; - } - - public Long getCounterPartyId() { - return counterPartyId; - } - - public void setCounterPartyId(Long counterPartyId) { - this.counterPartyId = counterPartyId; - } - - public String getCoverageStatus() { - return coverageStatus; - } - - public void setCoverageStatus(String coverageStatus) { - this.coverageStatus = coverageStatus; - } - - public Long getSessionId() { - return sessionId; - } - - public void setSessionId(Long sessionId) { - this.sessionId = sessionId; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/OrderRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/OrderRegister.java deleted file mode 100644 index cf0986da9..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/OrderRegister.java +++ /dev/null @@ -1,93 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.LocalDate; - -public class OrderRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private String creditLegAccount; - private BigDecimal creditLegAmount; - private String creditLegCurrencyCode; - private Long creditLegDirection; - private String debitLegAccount; - private String sender; - private String addressee; - private String documentNumber; - private LocalDate clearingDate; - - public String getCreditLegAccount() { - return creditLegAccount; - } - - public void setCreditLegAccount(String creditLegAccount) { - this.creditLegAccount = creditLegAccount; - } - - public BigDecimal getCreditLegAmount() { - return creditLegAmount; - } - - public void setCreditLegAmount(BigDecimal creditLegAmount) { - this.creditLegAmount = creditLegAmount; - } - - public String getCreditLegCurrencyCode() { - return creditLegCurrencyCode; - } - - public void setCreditLegCurrencyCode(String creditLegCurrencyCode) { - this.creditLegCurrencyCode = creditLegCurrencyCode; - } - - public Long getCreditLegDirection() { - return creditLegDirection; - } - - public void setCreditLegDirection(Long creditLegDirection) { - this.creditLegDirection = creditLegDirection; - } - - public String getDebitLegAccount() { - return debitLegAccount; - } - - public void setDebitLegAccount(String debitLegAccount) { - this.debitLegAccount = debitLegAccount; - } - - public String getSender() { - return sender; - } - - public void setSender(String sender) { - this.sender = sender; - } - - public String getAddressee() { - return addressee; - } - - public void setAddressee(String addressee) { - this.addressee = addressee; - } - - public String getDocumentNumber() { - return documentNumber; - } - - public void setDocumentNumber(String documentNumber) { - this.documentNumber = documentNumber; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/UncoveredDealRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/UncoveredDealRegister.java deleted file mode 100644 index 6319b1c4b..000000000 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/UncoveredDealRegister.java +++ /dev/null @@ -1,157 +0,0 @@ -package ru.clearing.classes.statics.data.register; - -import ru.clearing.classes.ConstSerializable; -import ru.clearing.classes.objects.BusinessObject; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class UncoveredDealRegister extends BusinessObject { - private static final long serialVersionUID = ConstSerializable.serialVersionUID; - - private Long executionId; - private String companyFullName; - private LocalDate tradingDate; - private Long exchangeExecutionId; - private Instant exchangeExecutionTime; - private String securitySymbol; - private String securityFullName; - private String sellerFullName; - private String sellerClearingCode; - private String sellerAccount; - private String buyerFullName; - private String buyerClearingCode; - private String buyerAccount; - private BigDecimal amount; - private String resultStatus; - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public String getResultStatus() { - return resultStatus; - } - - public void setResultStatus(String resultStatus) { - this.resultStatus = resultStatus; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java index 2072f0cb0..47a8dda6f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf16.java @@ -14,6 +14,7 @@ import java.time.Instant; *

* DB table: S_DF16 **/ +@Deprecated public class SDf16 extends SpcexObjectBase implements WithAccount, WithMarket, WithSum { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java index 21aad630a..635cea099 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf17.java @@ -12,6 +12,7 @@ import java.time.Instant; *

* DB table: S_DF17 **/ +@Deprecated public class SDf17 extends SpcexObjectBase implements WithAccount { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java index 73415e77a..371b64f6e 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf18.java @@ -12,6 +12,7 @@ import java.time.Instant; *

* DB table: S_DF18 **/ +@Deprecated public class SDf18 extends SpcexObjectBase implements WithAccount { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java index ea549408f..9d7bd187c 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/LiabilitiesClaimsMoneyCreator.java @@ -19,6 +19,7 @@ import java.util.Optional; import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; +@Deprecated // liabilitiesClaimsMoney даляется @Component public class LiabilitiesClaimsMoneyCreator { private final Logger log = LoggerFactory.getLogger(this.getClass()); diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceAccountTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceAccountTypeDictionary.java deleted file mode 100644 index 12705e856..000000000 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/BalanceAccountTypeDictionary.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.clearing.platform.dictionary; - -/** - * Справочник типов лимитов - * - * Dictionary DB table: BALANCE_ACCOUNT_TYPE_DICTIONARY - **/ -public class BalanceAccountTypeDictionary extends AbstractDictionary { - private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; - -} diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeDirectionDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeDirectionDictionary.java deleted file mode 100644 index 917285857..000000000 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeDirectionDictionary.java +++ /dev/null @@ -1,12 +0,0 @@ -package ru.clearing.platform.dictionary; - - -/** - * Направление начисления комиссии - * - * Dictionary DB table: CHARGE_DIRECTION_DICTIONARY - **/ -public class ChargeDirectionDictionary extends AbstractDictionary { - private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; - -} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeTypeDictionary.java deleted file mode 100644 index 6354dfd6a..000000000 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ChargeTypeDictionary.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.clearing.platform.dictionary; - -/** - * Справочник типов комиссий - * - * Dictionary DB table: CHARGE_TYPE_DICTIONARY - **/ -public class ChargeTypeDictionary extends AbstractDictionary { - private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; - -} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java index 391edcc78..e7060078f 100644 --- a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ClearingStatusDictionary.java @@ -5,6 +5,7 @@ package ru.clearing.platform.dictionary; * * Dictionary DB table: CLEARING_STATUS_DICTIONARY **/ +@Deprecated public class ClearingStatusDictionary extends AbstractDictionary { private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountBalanceMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountBalanceMapStore.java deleted file mode 100644 index ee9bac243..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AccountBalanceMapStore.java +++ /dev/null @@ -1,100 +0,0 @@ -package ru.spcex.clearing.imdg.businessobject; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Deprecated -//@Component -public class AccountBalanceMapStore extends TemplateMapStore { - - public AccountBalanceMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_AccountBalance; - } - - @Override - public String getTableName() { - return "ACCOUNT_BALANCE"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "COMPANY_ID", "CREATED_AT", "UPDATED_AT", "ACCOUNT_ID", "ACCOUNT_TYPE", - "ACCOUNT", "OPEN_BALANCE_AMOUNT", "START_BALANCE_AMOUNT", "CLOSE_BALANCE_AMOUNT", - "TRADE_BALANCE_AMOUNT", "FREE_BALANCE_AMOUNT", "CHANGE_BALANCE_AMOUNT", - "CREDIT_AMOUNT", "DEBIT_AMOUNT", "BALANCE_AMOUNT", "BALANCE_ACCOUNT_TYPE", - "CLEARING_DATE", "CURRENCY_CODE", "TRADING_CODE", "SHORT_NAME", "FULL_NAME" - }; - } - - @Override - public AccountBalance objectReader(ResultSet resultSet) throws SQLException { - AccountBalance object = new AccountBalance(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); - object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setOpenBalanceAmount(resultSet.getObject("OPEN_BALANCE_AMOUNT", BigDecimal.class)); - object.setStartBalanceAmount(resultSet.getObject("START_BALANCE_AMOUNT", BigDecimal.class)); - object.setCloseBalanceAmount(resultSet.getObject("CLOSE_BALANCE_AMOUNT", BigDecimal.class)); - object.setTradeBalanceAmount(resultSet.getObject("TRADE_BALANCE_AMOUNT", BigDecimal.class)); - object.setFreeBalanceAmount(resultSet.getObject("FREE_BALANCE_AMOUNT", BigDecimal.class)); - object.setChangeBalanceAmount(resultSet.getObject("CHANGE_BALANCE_AMOUNT", BigDecimal.class)); - object.setCreditAmount(resultSet.getObject("CREDIT_AMOUNT", BigDecimal.class)); - object.setDebitAmount(resultSet.getObject("DEBIT_AMOUNT", BigDecimal.class)); - object.setBalanceAmount(resultSet.getObject("BALANCE_AMOUNT", BigDecimal.class)); - object.setBalanceAccountType(resultSet.getObject("BALANCE_ACCOUNT_TYPE", String.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - object.setCurrencyCode(resultSet.getObject("CURRENCY_CODE", String.class)); - object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class)); - object.setShortName(resultSet.getObject("SHORT_NAME", String.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - return object; - } - - @Override - public Object[] objectToField(AccountBalance object) { - Object[] args = new Object[]{ - object.getId(), - object.getCompanyId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getAccountId(), - object.getAccountType(), - object.getAccount(), - object.getOpenBalanceAmount(), - object.getStartBalanceAmount(), - object.getCloseBalanceAmount(), - object.getTradeBalanceAmount(), - object.getFreeBalanceAmount(), - object.getChangeBalanceAmount(), - object.getCreditAmount(), - object.getDebitAmount(), - object.getBalanceAmount(), - object.getBalanceAccountType(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - object.getCurrencyCode(), - object.getTradingCode(), - object.getShortName(), - object.getFullName() - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsAssetsMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsAssetsMapStore.java deleted file mode 100644 index c9b1fc27f..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsAssetsMapStore.java +++ /dev/null @@ -1,108 +0,0 @@ -package ru.spcex.clearing.imdg.businessobject; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class LiabilitiesClaimsAssetsMapStore extends TemplateMapStore { - - public LiabilitiesClaimsAssetsMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_LiabilitiesClaimsAssets; - } - - @Override - public String getTableName() { - return "LIABILITIES_CLAIMS_ASSETS"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "COMPANY_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "ACCOUNT_ID", "ACCOUNT_TYPE", "ACCOUNT", - "LIABILITIES_QUANTITY", "CLAIMS_QUANTITY", "CURRENCY", "SETTLEMENT_DATE", "TRADING_DATE", "REFUND_DATE", - "PRICE", "SECURITY_ID", "TRADING_CODE", "CLEARING_CODE", "SHORT_NAME", "CONTRACT", "COMMENT", "FULL_NAME", - "PARENT_ID", "LIABILITIES_CLAIMS_MONEY_ID", "CLEARING_STATUS", "PAYMENT_ID", "REFUND_PAYMENT_ID" - }; - } - - @Override - public LiabilitiesClaimsAssets objectReader(ResultSet resultSet) throws SQLException { - LiabilitiesClaimsAssets object = new LiabilitiesClaimsAssets(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); - object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setLiabilitiesQuantity(resultSet.getObject("LIABILITIES_QUANTITY", BigDecimal.class)); - object.setClaimsQuantity(resultSet.getObject("CLAIMS_QUANTITY", BigDecimal.class)); - object.setCurrency(resultSet.getObject("CURRENCY", String.class)); - object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setRefundDate(getLocalDateFromSqlDate(resultSet, "REFUND_DATE")); - object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); - object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); - object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class)); - object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class)); - object.setShortName(resultSet.getObject("SHORT_NAME", String.class)); - object.setContract(resultSet.getObject("CONTRACT", String.class)); - object.setComment(resultSet.getObject("COMMENT", String.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - object.setParentId(resultSet.getObject("PARENT_ID", Long.class)); - object.setLiabilitiesClaimsMoneyId(resultSet.getObject("LIABILITIES_CLAIMS_MONEY_ID", Long.class)); - object.setClearingStatus(resultSet.getObject("CLEARING_STATUS", Long.class)); - object.setPaymentId(resultSet.getObject("PAYMENT_ID", Long.class)); - object.setRefundPaymentId(resultSet.getObject("REFUND_PAYMENT_ID", Long.class)); - return object; - } - - @Override - public Object[] objectToField(LiabilitiesClaimsAssets object) { - Object[] args = new Object[]{ - object.getId(), - object.getCompanyId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - object.getAccountId(), - object.getAccountType(), - object.getAccount(), - object.getLiabilitiesQuantity(), - object.getClaimsQuantity(), - object.getCurrency(), - TimeUtil.toDateFromLocalDate(object.getSettlementDate()), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - TimeUtil.toDateFromLocalDate(object.getRefundDate()), - object.getPrice(), - object.getSecurityId(), - object.getTradingCode(), - object.getClearingCode(), - object.getShortName(), - object.getContract(), - object.getComment(), - object.getFullName(), - object.getParentId(), - object.getLiabilitiesClaimsMoneyId(), - object.getClearingStatus(), - object.getPaymentId(), - object.getRefundPaymentId() - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsMoneyMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsMoneyMapStore.java deleted file mode 100644 index c28121186..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesClaimsMoneyMapStore.java +++ /dev/null @@ -1,95 +0,0 @@ -package ru.spcex.clearing.imdg.businessobject; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class LiabilitiesClaimsMoneyMapStore extends TemplateMapStore { - - public LiabilitiesClaimsMoneyMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_LiabilitiesClaimsMoney; - } - - @Override - public String getTableName() { - return "LIABILITIES_CLAIMS_MONEY"; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "company_id", - "account_id", - "account_type", - "account", - "liabilities_amount", - "claims_amount", - "settlement_date", - "trading_date", - "currency", - "trading_code", - "short_name", - "full_name", - "clearing_date", - }; - } - - @Override - public LiabilitiesClaimsMoney objectReader(ResultSet resultSet) throws SQLException { - LiabilitiesClaimsMoney object = new LiabilitiesClaimsMoney(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); - object.setAccountType(resultSet.getObject("ACCOUNT_TYPE", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setLiabilitiesAmount(resultSet.getObject("LIABILITIES_AMOUNT", BigDecimal.class)); - object.setClaimsAmount(resultSet.getObject("CLAIMS_AMOUNT", BigDecimal.class)); - object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setCurrency(resultSet.getObject("CURRENCY", String.class)); - object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class)); - object.setShortName(resultSet.getObject("SHORT_NAME", String.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - public Object[] objectToField(LiabilitiesClaimsMoney object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getCompanyId(), - object.getAccountId(), - object.getAccountType(), - object.getAccount(), - object.getLiabilitiesAmount(), - object.getClaimsAmount(), - TimeUtil.toDateFromLocalDate(object.getSettlementDate()), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getCurrency(), - object.getTradingCode(), - object.getShortName(), - object.getFullName(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/BalanceAccountTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/BalanceAccountTypeDictionaryMapStore.java deleted file mode 100644 index c775a4fd4..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/BalanceAccountTypeDictionaryMapStore.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.spcex.clearing.imdg.dictionary; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.platform.dictionary.BalanceAccountTypeDictionary; -import ru.spcex.clearing.imdg.base.DictionaryTMapStore; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -@Component -public class BalanceAccountTypeDictionaryMapStore extends DictionaryTMapStore { - - public BalanceAccountTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_BalanceAccountTypeDictionary; - } - - @Override - public String getTableName() { - return "BALANCE_ACCOUNT_TYPE_DICTIONARY"; - } - - @Override - public BalanceAccountTypeDictionary getDictionaryObject() { - return new BalanceAccountTypeDictionary(); - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ChargeDirectionDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ChargeDirectionDictionaryMapStore.java deleted file mode 100644 index 2889f9d78..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ChargeDirectionDictionaryMapStore.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.spcex.clearing.imdg.dictionary; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.platform.dictionary.ChargeDirectionDictionary; -import ru.spcex.clearing.imdg.base.DictionaryTMapStore; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -@Component -public class ChargeDirectionDictionaryMapStore extends DictionaryTMapStore { - - public ChargeDirectionDictionaryMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_ChargeDirectionDictionary; - } - - @Override - public String getTableName() { - return "CHARGE_DIRECTION_DICTIONARY"; - } - - @Override - public ChargeDirectionDictionary getDictionaryObject() { - return new ChargeDirectionDictionary(); - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ClearingStatusDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ClearingStatusDictionaryMapStore.java deleted file mode 100644 index f84a2e0a2..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ClearingStatusDictionaryMapStore.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.spcex.clearing.imdg.dictionary; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.platform.dictionary.ClearingStatusDictionary; -import ru.spcex.clearing.imdg.base.DictionaryTMapStore; -import ru.spcex.clearing.imdg.IMDGDistributedNames; - -@Component -public class ClearingStatusDictionaryMapStore extends DictionaryTMapStore { - - public ClearingStatusDictionaryMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_ClearingStatusDictionary; - } - - @Override - public String getTableName() { - return "CLEARING_STATUS_DICTIONARY"; - } - - @Override - public ClearingStatusDictionary getDictionaryObject() { - return new ClearingStatusDictionary(); - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AdmittedDealRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AdmittedDealRegisterMapStore.java deleted file mode 100644 index 6b3e65d55..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/AdmittedDealRegisterMapStore.java +++ /dev/null @@ -1,101 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class AdmittedDealRegisterMapStore extends TemplateMapStore { - - public AdmittedDealRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "ADMITTED_DEAL_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_AdmittedDealRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXECUTION_ID", - "COMPANY_FULL_NAME", - "TRADING_DATE", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "SECURITY_SYMBOL", - "SECURITY_FULL_NAME", - "SELLER_FULL_NAME", - "SELLER_CLEARING_CODE", - "SELLER_ACCOUNT", - "BUYER_FULL_NAME", - "BUYER_CLEARING_CODE", - "BUYER_ACCOUNT", - "AMOUNT", - "CLEARING_DATE", - }; - } - - @Override - protected AdmittedDealRegister objectReader(ResultSet resultSet) throws SQLException { - AdmittedDealRegister object = new AdmittedDealRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setExecutionId(resultSet.getObject("EXECUTION_ID", Long.class)); - object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); - object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); - object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); - object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); - object.setSellerFullName(resultSet.getObject("SELLER_FULL_NAME", String.class)); - object.setSellerClearingCode(resultSet.getObject("SELLER_CLEARING_CODE", String.class)); - object.setSellerAccount(resultSet.getObject("SELLER_ACCOUNT", String.class)); - object.setBuyerFullName(resultSet.getObject("BUYER_FULL_NAME", String.class)); - object.setBuyerClearingCode(resultSet.getObject("BUYER_CLEARING_CODE", String.class)); - object.setBuyerAccount(resultSet.getObject("BUYER_ACCOUNT", String.class)); - object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(AdmittedDealRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getExecutionId(), - object.getCompanyFullName(), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getExchangeExecutionId(), - TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), - object.getSecuritySymbol(), - object.getSecurityFullName(), - object.getSellerFullName(), - object.getSellerClearingCode(), - object.getSellerAccount(), - object.getBuyerFullName(), - object.getBuyerClearingCode(), - object.getBuyerAccount(), - object.getAmount(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java deleted file mode 100644 index b40e95341..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/BalanceRegisterMapStore.java +++ /dev/null @@ -1,98 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class BalanceRegisterMapStore extends TemplateMapStore { - - public BalanceRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "BALANCE_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_BalanceRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "S_DF01_DATE", - "CURRENCY_CODE", - "SET_HOUSE_NAME", - "ACCOUNT", - "INFO_ACCOUNT", - "REMAINDER_SUM", - "BLOCKED_SUM", - "UNBLOCKED_SUM", - "INN", - "MARKET", - "FULL_NAME", - "TYPE_REMAINS", - "DOC_NUMBER", - "COMPANY_ID" - }; - } - - @Override - protected BalanceRegister objectReader(ResultSet resultSet) throws SQLException { - BalanceRegister object = new BalanceRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setsDf01Date(getInstantFromTimestamp(resultSet, "S_DF01_DATE")); - object.setCurrencyCode(resultSet.getObject("CURRENCY_CODE", String.class)); - object.setSetHouseName(resultSet.getObject("SET_HOUSE_NAME", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setInfoAccount(resultSet.getObject("INFO_ACCOUNT", String.class)); - object.setRemainderSum(resultSet.getObject("REMAINDER_SUM", BigDecimal.class)); - object.setBlockedSum(resultSet.getObject("BLOCKED_SUM", BigDecimal.class)); - object.setUnblockedSum(resultSet.getObject("UNBLOCKED_SUM", BigDecimal.class)); - object.setInn(resultSet.getObject("INN", String.class)); - object.setMarket(resultSet.getObject("MARKET", Long.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - object.setTypeRemains(resultSet.getObject("TYPE_REMAINS", String.class)); - object.setDocNumber(resultSet.getObject("DOC_NUMBER", String.class)); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - return object; - } - - @Override - protected Object[] objectToField(BalanceRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - TimeUtil.toDateFromInstant(object.getsDf01Date()), - object.getCurrencyCode(), - object.getSetHouseName(), - object.getAccount(), - object.getInfoAccount(), - object.getRemainderSum(), - object.getBlockedSum(), - object.getUnblockedSum(), - object.getInn(), - object.getMarket(), - object.getFullName(), - object.getTypeRemains(), - object.getDocNumber(), - object.getCompanyId() - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearMemberRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearMemberRegisterMapStore.java deleted file mode 100644 index df29c7f8a..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ClearMemberRegisterMapStore.java +++ /dev/null @@ -1,130 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class ClearMemberRegisterMapStore extends TemplateMapStore { - - public ClearMemberRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "CLEARMEMBER_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_ClearMemberRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "TRADING_CODE", - "CLEARING_CODE", - "FULL_NAME", - "SHORT_NAME", - "CATEGORY_LIST", - "CORPORATION_SOLE", - "ACCOUNT", - "BANK", - "BANK_NAME", - "INN", - "BIC", - "OGRN", - "CPP", - "OCPO", - "CONTRACT_NUMBER", - "CONTRACT_DATE", - "REGISTRATION_DATE", - "SYSTEM_DATE", - "ACCESS_DATE", - "SUSPENTION_DATE", - "REOPENING_DATE", - "CLOSE_DATE", - "EXCLUSION_DATE", - "ADDRESS", - "EMAIL", - }; - } - - @Override - protected ClearMemberRegister objectReader(ResultSet resultSet) throws SQLException { - ClearMemberRegister object = new ClearMemberRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setTradingCode(resultSet.getObject("TRADING_CODE", String.class)); - object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class)); - object.setFullName(resultSet.getObject("FULL_NAME", String.class)); - object.setShortName(resultSet.getObject("SHORT_NAME", String.class)); - object.setCategoryList(resultSet.getObject("CATEGORY_LIST", String.class)); - object.setCorporationSole(resultSet.getObject("CORPORATION_SOLE", String.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setBank(resultSet.getObject("BANK", Long.class)); - object.setBankName(resultSet.getObject("BANK_NAME", String.class)); - object.setInn(resultSet.getObject("INN", String.class)); - object.setBic(resultSet.getObject("BIC", String.class)); - object.setOgrn(resultSet.getObject("OGRN", String.class)); - object.setCpp(resultSet.getObject("CPP", String.class)); - object.setOcpo(resultSet.getObject("OCPO", String.class)); - object.setContractNumber(resultSet.getObject("CONTRACT_NUMBER", String.class)); - object.setContractDate(getLocalDateFromSqlDate(resultSet, "CONTRACT_DATE")); - object.setRegistrationDate(getLocalDateFromSqlDate(resultSet, "REGISTRATION_DATE")); - object.setSystemDate(getLocalDateFromSqlDate(resultSet, "SYSTEM_DATE")); - object.setAccessDate(getInstantFromTimestamp(resultSet, "ACCESS_DATE")); - object.setSuspentionDate(getInstantFromTimestamp(resultSet, "SUSPENTION_DATE")); - object.setReopeningDate(getInstantFromTimestamp(resultSet, "REOPENING_DATE")); - object.setCloseDate(getInstantFromTimestamp(resultSet, "CLOSE_DATE")); - object.setExclusionDate(getInstantFromTimestamp(resultSet, "EXCLUSION_DATE")); - object.setAddress(resultSet.getObject("ADDRESS", String.class)); - object.setEmail(resultSet.getObject("EMAIL", String.class)); - return object; - } - - @Override - protected Object[] objectToField(ClearMemberRegister clearMemberRegister) { - Object[] args = new Object[]{ - clearMemberRegister.getId(), - TimeUtil.toDateFromInstant(clearMemberRegister.getCreated()), - TimeUtil.toDateFromInstant(clearMemberRegister.getUpdated()), - clearMemberRegister.getTradingCode(), - clearMemberRegister.getClearingCode(), - clearMemberRegister.getFullName(), - clearMemberRegister.getShortName(), - clearMemberRegister.getCategoryList(), - clearMemberRegister.getCorporationSole(), - clearMemberRegister.getAccount(), - clearMemberRegister.getBank(), - clearMemberRegister.getBankName(), - clearMemberRegister.getInn(), - clearMemberRegister.getBic(), - clearMemberRegister.getOgrn(), - clearMemberRegister.getCpp(), - clearMemberRegister.getOcpo(), - clearMemberRegister.getContractNumber(), - TimeUtil.toDateFromLocalDate(clearMemberRegister.getContractDate()), - TimeUtil.toDateFromLocalDate(clearMemberRegister.getRegistrationDate()), - TimeUtil.toDateFromLocalDate(clearMemberRegister.getSystemDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getAccessDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getSuspentionDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getReopeningDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getCloseDate()), - TimeUtil.toDateFromInstant(clearMemberRegister.getExclusionDate()), - clearMemberRegister.getAddress(), - clearMemberRegister.getEmail() - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CoveredDealRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CoveredDealRegisterMapStore.java deleted file mode 100644 index 7ffb2875d..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/CoveredDealRegisterMapStore.java +++ /dev/null @@ -1,101 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class CoveredDealRegisterMapStore extends TemplateMapStore { - - public CoveredDealRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "COVERED_DEAL_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_CoveredDealRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXECUTION_ID", - "COMPANY_FULL_NAME", - "TRADING_DATE", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "SECURITY_SYMBOL", - "SECURITY_FULL_NAME", - "SELLER_FULL_NAME", - "SELLER_CLEARING_CODE", - "SELLER_ACCOUNT", - "BUYER_FULL_NAME", - "BUYER_CLEARING_CODE", - "BUYER_ACCOUNT", - "AMOUNT", - "CLEARING_DATE", - }; - } - - @Override - protected CoveredDealRegister objectReader(ResultSet resultSet) throws SQLException { - CoveredDealRegister object = new CoveredDealRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setExecutionId(resultSet.getObject("EXECUTION_ID", Long.class)); - object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); - object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); - object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); - object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); - object.setSellerFullName(resultSet.getObject("SELLER_FULL_NAME", String.class)); - object.setSellerClearingCode(resultSet.getObject("SELLER_CLEARING_CODE", String.class)); - object.setSellerAccount(resultSet.getObject("SELLER_ACCOUNT", String.class)); - object.setBuyerFullName(resultSet.getObject("BUYER_FULL_NAME", String.class)); - object.setBuyerClearingCode(resultSet.getObject("BUYER_CLEARING_CODE", String.class)); - object.setBuyerAccount(resultSet.getObject("BUYER_ACCOUNT", String.class)); - object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(CoveredDealRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getExecutionId(), - object.getCompanyFullName(), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getExchangeExecutionId(), - TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), - object.getSecuritySymbol(), - object.getSecurityFullName(), - object.getSellerFullName(), - object.getSellerClearingCode(), - object.getSellerAccount(), - object.getBuyerFullName(), - object.getBuyerClearingCode(), - object.getBuyerAccount(), - object.getAmount(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DealRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DealRegisterMapStore.java deleted file mode 100644 index 04c001815..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/DealRegisterMapStore.java +++ /dev/null @@ -1,116 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.DealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class DealRegisterMapStore extends TemplateMapStore { - - public DealRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "DEAL_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_DealRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXECUTION_ID", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "TRADING_DATE", - "ACCOUNT", - "MARKET", - "PRICE", - "AMOUNT", - "SIDE", - "SETTLEMENT_CURRENCY", - "COMPANY_ID", - "FIRST_LEG_SETTLEMENT_DATE", - "SECOND_LEG_SETTLEMENT_DATE", - "SECURITY_FULL_NAME", - "SECURITY_SYMBOL", - "SECURITY_ID", - "COUNTER_PARTY_ID", - "COVERAGE_STATUS", - "SESSION_ID", - "CLEARING_DATE", - }; - } - - @Override - protected DealRegister objectReader(ResultSet resultSet) throws SQLException { - DealRegister object = new DealRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setExecutionId(resultSet.getObject("EXECUTION_ID", Long.class)); - object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); - object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setMarket(resultSet.getObject("MARKET", String.class)); - object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); - object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setSide(resultSet.getObject("SIDE", String.class)); - object.setSettlementCurrency(resultSet.getObject("SETTLEMENT_CURRENCY", String.class)); - object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); - object.setFirstLegSettlementDate(getLocalDateFromSqlDate(resultSet, "FIRST_LEG_SETTLEMENT_DATE")); - object.setSecondLegSettlementDate(getLocalDateFromSqlDate(resultSet, "SECOND_LEG_SETTLEMENT_DATE")); - object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); - object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); - object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); - object.setCounterPartyId(resultSet.getObject("COUNTER_PARTY_ID", Long.class)); - object.setCoverageStatus(resultSet.getObject("COVERAGE_STATUS", String.class)); - object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(DealRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getExecutionId(), - object.getExchangeExecutionId(), - TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getAccount(), - object.getMarket(), - object.getPrice(), - object.getAmount(), - object.getSide(), - object.getSettlementCurrency(), - object.getCompanyId(), - TimeUtil.toDateFromLocalDate(object.getFirstLegSettlementDate()), - TimeUtil.toDateFromLocalDate(object.getSecondLegSettlementDate()), - object.getSecurityFullName(), - object.getSecuritySymbol(), - object.getSecurityId(), - object.getCounterPartyId(), - object.getCoverageStatus(), - object.getSessionId(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java deleted file mode 100644 index cfc36bb45..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/KeyRateMapStore.java +++ /dev/null @@ -1,66 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.misc.KeyRate; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class KeyRateMapStore extends TemplateMapStore { - - public KeyRateMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "KEY_RATE"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_KeyRate; - } - - @Override - public String[] getIndexingField() { - return new String[]{"startDate", "endDate"}; - } - - @Override - public String[] getFields() { - return new String[]{"id", "rate", "start_date", "end_date", "document", "workflow_status"}; - } - - @Override - protected KeyRate objectReader(ResultSet resultSet) throws SQLException { - KeyRate keyRate = new KeyRate(); - keyRate.setId(resultSet.getObject("ID", Long.class)); - keyRate.setRate(resultSet.getObject("RATE", BigDecimal.class)); - keyRate.setStartDate(getLocalDateFromSqlDate(resultSet, "START_DATE")); - keyRate.setEndDate(getLocalDateFromSqlDate(resultSet, "END_DATE")); - keyRate.setDocument(resultSet.getObject("DOCUMENT", String.class)); - keyRate.setWorkflowStatus(resultSet.getObject("WORKFLOW_STATUS", String.class)); - return keyRate; - } - - @Override - protected Object[] objectToField(KeyRate partnerList) { - Object[] args = new Object[]{ - partnerList.getId(), - partnerList.getRate(), - TimeUtil.toDateFromLocalDate(partnerList.getStartDate()), - TimeUtil.toDateFromLocalDate(partnerList.getEndDate()), - partnerList.getDocument(), - partnerList.getWorkflowStatus() - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java deleted file mode 100644 index d8f63be13..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/OrderRegisterMapStore.java +++ /dev/null @@ -1,83 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class OrderRegisterMapStore extends TemplateMapStore { - - public OrderRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "ORDER_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_OrderRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "CREDIT_LEG_ACCOUNT", - "CREDIT_LEG_AMOUNT", - "CREDIT_LEG_CURRENCY_CODE", - "CREDIT_LEG_DIRECTION", - "DEBIT_LEG_ACCOUNT", - "SENDER", - "ADDRESSEE", - "DOCUMENT_NUMBER", - "CLEARING_DATE", - }; - } - - @Override - protected OrderRegister objectReader(ResultSet resultSet) throws SQLException { - OrderRegister object = new OrderRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setCreditLegAccount(resultSet.getObject("CREDIT_LEG_ACCOUNT", String.class)); - object.setCreditLegAmount(resultSet.getObject("CREDIT_LEG_AMOUNT", BigDecimal.class)); - object.setCreditLegCurrencyCode(resultSet.getObject("CREDIT_LEG_CURRENCY_CODE", String.class)); - object.setCreditLegDirection(resultSet.getObject("CREDIT_LEG_DIRECTION", Long.class)); - object.setDebitLegAccount(resultSet.getObject("DEBIT_LEG_ACCOUNT", String.class)); - object.setSender(resultSet.getObject("SENDER", String.class)); - object.setAddressee(resultSet.getObject("ADDRESSEE", String.class)); - object.setDocumentNumber(resultSet.getObject("DOCUMENT_NUMBER", String.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(OrderRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getCreditLegAccount(), - object.getCreditLegAmount(), - object.getCreditLegCurrencyCode(), - object.getCreditLegDirection(), - object.getDebitLegAccount(), - object.getSender(), - object.getAddressee(), - object.getDocumentNumber(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java deleted file mode 100644 index ca6190d50..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf16MapStore.java +++ /dev/null @@ -1,75 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.sdf.SDf16; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class SDf16MapStore extends TemplateMapStore { - - public SDf16MapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_SDf16; - } - - @Override - public String getTableName() { - return "S_DF16"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "ACCOUNT", "SUM", "MARKET", "TYPE", "INN", "BIC", "SPEC", "NUMBER", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" - }; - } - - @Override - public SDf16 objectReader(ResultSet resultSet) throws SQLException { - SDf16 object = new SDf16(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setSum(resultSet.getObject("SUM", BigDecimal.class)); - object.setMarket(resultSet.getObject("MARKET", String.class)); - object.setType(resultSet.getObject("TYPE", String.class)); - object.setInn(resultSet.getObject("INN", BigDecimal.class)); - object.setBic(resultSet.getObject("BIC", BigDecimal.class)); - object.setSpec(resultSet.getObject("SPEC", String.class)); - object.setNumber(resultSet.getObject("NUMBER", BigDecimal.class)); - object.setFileName(resultSet.getObject("FILE_NAME", String.class)); - object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); - object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - return object; - } - - @Override - public Object[] objectToField(SDf16 object) { - Object[] args = new Object[]{ - object.getId(), - object.getAccount(), - object.getSum(), - object.getMarket(), - object.getType(), - object.getInn(), - object.getBic(), - object.getSpec(), - object.getNumber(), - object.getFileName(), - TimeUtil.toDateFromInstant(object.getGenerationTime()), - object.getGenerationId() - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java deleted file mode 100644 index 0feedea18..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf17MapStore.java +++ /dev/null @@ -1,77 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.sdf.SDf17; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class SDf17MapStore extends TemplateMapStore { - - public SDf17MapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_SDf17; - } - - @Override - public String getTableName() { - return "S_DF17"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "ACCOUNT", "SUM", "MARKET", "TYPE", "INN", "BIC", "SPEC", "NUMBER", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF16_ID" - }; - } - - @Override - public SDf17 objectReader(ResultSet resultSet) throws SQLException { - SDf17 object = new SDf17(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setSum(resultSet.getObject("SUM", BigDecimal.class)); - object.setMarket(resultSet.getObject("MARKET", String.class)); - object.setType(resultSet.getObject("TYPE", String.class)); - object.setInn(resultSet.getObject("INN", BigDecimal.class)); - object.setBic(resultSet.getObject("BIC", BigDecimal.class)); - object.setSpec(resultSet.getObject("SPEC", String.class)); - object.setNumber(resultSet.getObject("NUMBER", BigDecimal.class)); - object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); - object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); - object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - object.setInSDf16Id(resultSet.getObject("IN_S_DF16_ID", Long.class)); - return object; - } - - @Override - public Object[] objectToField(SDf17 object) { - Object[] args = new Object[]{ - object.getId(), - object.getAccount(), - object.getSum(), - object.getMarket(), - object.getType(), - object.getInn(), - object.getBic(), - object.getSpec(), - object.getNumber(), - object.getResult(), - TimeUtil.toDateFromInstant(object.getGenerationTime()), - object.getGenerationId(), - object.getInSDf16Id() - }; - return args; - } - -} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java deleted file mode 100644 index 7a785dc1c..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf18MapStore.java +++ /dev/null @@ -1,67 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.sdf.SDf18; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class SDf18MapStore extends TemplateMapStore { - - public SDf18MapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_SDf18; - } - - @Override - public String getTableName() { - return "S_DF18"; - } - - @Override - public String[] getFields() { - return new String[]{ - "ID", "ACCOUNT", "DEAL", "STATUS", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF12_ID" - }; - } - - @Override - public SDf18 objectReader(ResultSet resultSet) throws SQLException { - SDf18 object = new SDf18(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setDeal(resultSet.getObject("DEAL", String.class)); - object.setStatus(resultSet.getObject("STATUS", Long.class)); - object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); - object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); - object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - object.setInSDf12Id(resultSet.getObject("IN_S_DF12_ID", Long.class)); - return object; - } - - @Override - public Object[] objectToField(SDf18 object) { - Object[] args = new Object[]{ - object.getId(), - object.getAccount(), - object.getDeal(), - object.getStatus(), - object.getResult(), - TimeUtil.toDateFromInstant(object.getGenerationTime()), - object.getGenerationId(), - object.getInSDf12Id() - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UncoveredDealRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UncoveredDealRegisterMapStore.java deleted file mode 100644 index c4df8b816..000000000 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/UncoveredDealRegisterMapStore.java +++ /dev/null @@ -1,104 +0,0 @@ -package ru.spcex.clearing.imdg.object; - -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.imdg.base.TemplateMapStore; -import ru.spcex.platform.utils.time.TimeUtil; - -import java.math.BigDecimal; -import java.sql.ResultSet; -import java.sql.SQLException; - -@Component -public class UncoveredDealRegisterMapStore extends TemplateMapStore { - - public UncoveredDealRegisterMapStore(JdbcTemplate jdbcTemplate) { - super(jdbcTemplate); - } - - @Override - public String getTableName() { - return "UNCOVERED_DEAL_REGISTER"; - } - - @Override - public String getMapName() { - return IMDGDistributedNames.Map_UncoveredDealRegister; - } - - @Override - public String[] getFields() { - return new String[]{"ID", "CREATED_AT", "UPDATED_AT", - "EXECUTION_ID", - "COMPANY_FULL_NAME", - "TRADING_DATE", - "EXCHANGE_EXECUTION_ID", - "EXCHANGE_EXECUTION_TIME", - "SECURITY_SYMBOL", - "SECURITY_FULL_NAME", - "SELLER_FULL_NAME", - "SELLER_CLEARING_CODE", - "SELLER_ACCOUNT", - "BUYER_FULL_NAME", - "BUYER_CLEARING_CODE", - "BUYER_ACCOUNT", - "AMOUNT", - "RESULT_STATUS", - "CLEARING_DATE", - }; - } - - @Override - protected UncoveredDealRegister objectReader(ResultSet resultSet) throws SQLException { - UncoveredDealRegister object = new UncoveredDealRegister(); - object.setId(resultSet.getObject("ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setExecutionId(resultSet.getObject("EXECUTION_ID", Long.class)); - object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); - object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); - object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); - object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); - object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); - object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); - object.setSellerFullName(resultSet.getObject("SELLER_FULL_NAME", String.class)); - object.setSellerClearingCode(resultSet.getObject("SELLER_CLEARING_CODE", String.class)); - object.setSellerAccount(resultSet.getObject("SELLER_ACCOUNT", String.class)); - object.setBuyerFullName(resultSet.getObject("BUYER_FULL_NAME", String.class)); - object.setBuyerClearingCode(resultSet.getObject("BUYER_CLEARING_CODE", String.class)); - object.setBuyerAccount(resultSet.getObject("BUYER_ACCOUNT", String.class)); - object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setResultStatus(resultSet.getObject("RESULT_STATUS", String.class)); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); - return object; - } - - @Override - protected Object[] objectToField(UncoveredDealRegister object) { - Object[] args = new Object[]{ - object.getId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - object.getExecutionId(), - object.getCompanyFullName(), - TimeUtil.toDateFromLocalDate(object.getTradingDate()), - object.getExchangeExecutionId(), - TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), - object.getSecuritySymbol(), - object.getSecurityFullName(), - object.getSellerFullName(), - object.getSellerClearingCode(), - object.getSellerAccount(), - object.getBuyerFullName(), - object.getBuyerClearingCode(), - object.getBuyerAccount(), - object.getAmount(), - object.getResultStatus(), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), - }; - return args; - } - -} diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index 61480d59f..b7265aba4 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java @@ -13,8 +13,6 @@ import ru.clearing.classes.statics.data.instrument.issue.*; import ru.clearing.classes.statics.data.journal.InDocumentJournal; import ru.clearing.classes.statics.data.journal.ManagementJournal; import ru.clearing.classes.statics.data.journal.OutDocumentJournal; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsAssets; -import ru.clearing.classes.statics.data.liabilities.LiabilitiesClaimsMoney; import ru.clearing.classes.statics.data.messages.ErrorText; import ru.clearing.classes.statics.data.misc.*; import ru.clearing.classes.statics.data.payment.PaymentInstruction; @@ -148,10 +146,6 @@ public class RunnableMapNamesForTesting { new SettingOperation("setQuantity", new Object[]{new BigDecimal("852.64")}), new SettingOperation("setSettlementAmount", new Object[]{new BigDecimal("853.64")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Launcher, Launcher.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_LiabilitiesClaimsAssets, LiabilitiesClaimsAssets.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_LiabilitiesClaimsMoney, LiabilitiesClaimsMoney.class, - new SettingOperation("setClaimsAmount", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("04.92")}), - new SettingOperation("setLiabilitiesAmount", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("06.26")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Listing, Listing.class, new SettingOperation("setLotSize", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("21.11")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ManagementJournal, ManagementJournal.class)); @@ -191,10 +185,7 @@ public class RunnableMapNamesForTesting { //dictionary checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_AccountTypeDictionary, AccountTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_AllowedDictionary, AllowedDictionary.class)); - checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_BalanceAccountTypeDictionary, BalanceAccountTypeDictionary.class)); - checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ChargeDirectionDictionary, ChargeDirectionDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingCategoryDictionary, ClearingCategoryDictionary.class)); - checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingStatusDictionary, ClearingStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_CompanyRoleDictionary, CompanyRoleDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_CompanySymbolDictionary, CompanySymbolDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ConnectionStateDictionary, ConnectionStateDictionary.class)); @@ -248,28 +239,15 @@ public class RunnableMapNamesForTesting { checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ClearingAccountTypeDictionary, ClearingAccountTypeDictionary.class)); //object - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_AdmittedDealRegister, AdmittedDealRegister.class, - new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_BankAccount, BankAccount.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ClearMemberRegister, ClearMemberRegister.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Contact, Contact.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ContractRegister, ContractRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CoveredDealRegister, CoveredDealRegister.class, - new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Currency, Currency.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DealRegister, DealRegister.class, - new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), @@ -298,7 +276,6 @@ public class RunnableMapNamesForTesting { //new SettingOperation("setNominalValue", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("25.25")}) )); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Notification, Notification.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_OrderRegister, OrderRegister.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_OutDocumentJournal, OutDocumentJournal.class, new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("28.28")}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class)); @@ -318,9 +295,6 @@ public class RunnableMapNamesForTesting { checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf11, SDf11.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf12, SDf12.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf13, SDf13.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf16, SDf16.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf17, SDf17.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf18, SDf18.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Session, Session.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_STrades, STrades.class, new SettingOperation("setQty", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}), @@ -329,10 +303,6 @@ public class RunnableMapNamesForTesting { new SettingOperation("setQty", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(18)}), new SettingOperation("setValue", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(18)}) )); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UncoveredDealRegister, UncoveredDealRegister.class, - new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UserRoleSession, UserRoleSession.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_UserSettings, UserSettings.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_VerificationResult, VerificationResult.class, diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterService.java deleted file mode 100644 index 61f5417e0..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterService.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.spcex.clearing.registry.service; - - -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.producer.Producer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.AdmittedDealRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class AdmittedDealRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg admittedDealRegisterMap; - - @Autowired - public AdmittedDealRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.admittedDealRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_AdmittedDealRegister, AdmittedDealRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(AdmittedDealRegisterNewRequest.class) - .setConsumer(this::admittedDealRegisterNew) - .forDestination(Consts.REGISTRY_ADMITTED_DEAL_REGISTER_NEW, callbacks::put); - init(); - } - - public void admittedDealRegisterNew(BaseRequest userRequest) { - AdmittedDealRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("AdmittedDealRegisterNewRequest received"); - AdmittedDealRegister register = new AdmittedDealRegister(); - register.setExecutionId(req.getExecutionId()); - register.setCompanyFullName(req.getCompanyFullName()); - register.setTradingDate(req.getTradingDate()); - register.setExchangeExecutionId(req.getExchangeExecutionId()); - register.setExchangeExecutionTime(req.getExchangeExecutionTime()); - register.setSecuritySymbol(req.getSecuritySymbol()); - register.setSecurityFullName(req.getSecurityFullName()); - register.setSellerFullName(req.getSellerFullName()); - register.setSellerClearingCode(req.getSellerClearingCode()); - register.setSellerAccount(req.getSellerAccount()); - register.setBuyerFullName(req.getBuyerFullName()); - register.setBuyerClearingCode(req.getBuyerClearingCode()); - register.setBuyerAccount(req.getBuyerAccount()); - register.setAmount(req.getAmount()); - register.setClearingDate(req.getClearingDate()); - admittedDealRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/BalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/BalanceRegisterService.java deleted file mode 100644 index 21c639fe6..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/BalanceRegisterService.java +++ /dev/null @@ -1,62 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.producer.Producer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.BalanceRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - - -@Service -public class BalanceRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg balanceRegisterMap; - - @Autowired - public BalanceRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.balanceRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BalanceRegister, BalanceRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(BalanceRegisterNewRequest.class) - .setConsumer(this::balanceRegisterNew) - .forDestination(Consts.REGISTRY_BALANCE_REGISTER_NEW, callbacks::put); - init(); - } - - public void balanceRegisterNew(BaseRequest userRequest) { - BalanceRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("BalanceRegisterNewRequest received"); - BalanceRegister register = new BalanceRegister(); - register.setsDf01Date(req.getsDf01Date()); - register.setCurrencyCode(req.getCurrencyCode()); - register.setSetHouseName(req.getSetHouseName()); - register.setAccount(req.getAccount()); - register.setInfoAccount(req.getInfoAccount()); - register.setRemainderSum(req.getRemainderSum()); - register.setBlockedSum(req.getBlockedSum()); - register.setUnblockedSum(req.getUnblockedSum()); - register.setInn(req.getInn()); - register.setMarket(req.getMarket()); - register.setFullName(req.getFullName()); - register.setTypeRemains(req.getTypeRemains()); - register.setDocNumber(req.getDocNumber()); - register.setCompanyId(req.getCompanyId()); - balanceRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeService.java deleted file mode 100644 index 40bd281ef..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeService.java +++ /dev/null @@ -1,51 +0,0 @@ -package ru.spcex.clearing.registry.service; - - -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.producer.Producer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.register.ClearMemberRegisterChange; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.ClearMemberRegisterChangeNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class ClearMemberRegisterChangeService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg clearMemberRegisterChangeMap; - - @Autowired - public ClearMemberRegisterChangeService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.clearMemberRegisterChangeMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearMemberRegisterChange, ClearMemberRegisterChange.class); - } - - @Override - public void afterPropertiesSet() { - callback(ClearMemberRegisterChangeNewRequest.class) - .setConsumer(this::clearMemberRegisterChangeNew) - .forDestination(Consts.REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW, callbacks::put); - init(); - } - - public void clearMemberRegisterChangeNew(BaseRequest userRequest) { - ClearMemberRegisterChangeNewRequest req = userRequest.getRequestPayload(); - log.debug("ClearMemberRegisterChangeNewRequest received"); - ClearMemberRegisterChange register = new ClearMemberRegisterChange(); - register.setDate(req.getDate()); - register.setComment(req.getComment()); - register.setClearingCode(req.getClearingCode()); - clearMemberRegisterChangeMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterService.java deleted file mode 100644 index aeaab9ced..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ClearMemberRegisterService.java +++ /dev/null @@ -1,73 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.producer.Producer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.ClearMemberRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - - -@Service -public class ClearMemberRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg clearMemberRegisterMap; - - @Autowired - public ClearMemberRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.clearMemberRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearMemberRegister, ClearMemberRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(ClearMemberRegisterNewRequest.class) - .setConsumer(this::clearMemberRegisterNew) - .forDestination(Consts.REGISTRY_CLEAR_MEMBER_REGISTER_NEW, callbacks::put); - init(); - } - - public void clearMemberRegisterNew(BaseRequest userRequest) { - ClearMemberRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("ClearMemberRegisterNewRequest received"); - ClearMemberRegister register = new ClearMemberRegister(); - register.setTradingCode(req.getTradingCode()); - register.setClearingCode(req.getClearingCode()); - register.setFullName(req.getFullName()); - register.setShortName(req.getShortName()); - register.setCategoryList(req.getCategoryList()); - register.setCorporationSole(req.getCorporationSole()); - register.setAccount(req.getAccount()); - register.setBank(req.getBank()); - register.setBankName(req.getBankName()); - register.setInn(req.getInn()); - register.setBic(req.getBic()); - register.setOgrn(req.getOgrn()); - register.setCpp(req.getCpp()); - register.setOcpo(req.getOcpo()); - register.setContractNumber(req.getContractNumber()); - register.setContractDate(req.getContractDate()); - register.setRegistrationDate(req.getRegistrationDate()); - register.setSystemDate(req.getSystemDate()); - register.setAccessDate(req.getAccessDate()); - register.setSuspentionDate(req.getSuspentionDate()); - register.setReopeningDate(req.getReopeningDate()); - register.setCloseDate(req.getCloseDate()); - register.setExclusionDate(req.getExclusionDate()); - register.setAddress(req.getAddress()); - register.setEmail(req.getEmail()); - clearMemberRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredDealRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredDealRegisterService.java deleted file mode 100644 index 8b7c51dd3..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredDealRegisterService.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.spcex.clearing.registry.service; - - -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.producer.Producer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.CoveredDealRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class CoveredDealRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg coveredDealRegisterMap; - - @Autowired - public CoveredDealRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.coveredDealRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CoveredDealRegister, CoveredDealRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(CoveredDealRegisterNewRequest.class) - .setConsumer(this::coveredDealRegisterNew) - .forDestination(Consts.REGISTRY_COVERED_DEAL_REGISTER_NEW, callbacks::put); - init(); - } - - public void coveredDealRegisterNew(BaseRequest userRequest) { - CoveredDealRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("CoveredDealRegisterNewRequest received"); - CoveredDealRegister register = new CoveredDealRegister(); - register.setExecutionId(req.getExecutionId()); - register.setCompanyFullName(req.getCompanyFullName()); - register.setTradingDate(req.getTradingDate()); - register.setExchangeExecutionId(req.getExchangeExecutionId()); - register.setExchangeExecutionTime(req.getExchangeExecutionTime()); - register.setSecuritySymbol(req.getSecuritySymbol()); - register.setSecurityFullName(req.getSecurityFullName()); - register.setSellerFullName(req.getSellerFullName()); - register.setSellerClearingCode(req.getSellerClearingCode()); - register.setSellerAccount(req.getSellerAccount()); - register.setBuyerFullName(req.getBuyerFullName()); - register.setBuyerClearingCode(req.getBuyerClearingCode()); - register.setBuyerAccount(req.getBuyerAccount()); - register.setAmount(req.getAmount()); - register.setClearingDate(req.getClearingDate()); - coveredDealRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/OrderRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/OrderRegisterService.java deleted file mode 100644 index af076b9dc..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/OrderRegisterService.java +++ /dev/null @@ -1,56 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.producer.Producer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.OrderRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class OrderRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg orderRegisterMap; - - @Autowired - public OrderRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.orderRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_OrderRegister, OrderRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(OrderRegisterNewRequest.class) - .setConsumer(this::orderRegisterNew) - .forDestination(Consts.REGISTRY_ORDER_REGISTER_NEW, callbacks::put); - init(); - } - - public void orderRegisterNew(BaseRequest userRequest) { - OrderRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("OrderRegisterNewRequest received"); - OrderRegister register = new OrderRegister(); - register.setCreditLegAccount(req.getCreditLegAccount()); - register.setCreditLegAmount(req.getCreditLegAmount()); - register.setCreditLegCurrencyCode(req.getCreditLegCurrencyCode()); - register.setCreditLegDirection(req.getCreditLegDirection()); - register.setDebitLegAccount(req.getDebitLegAccount()); - register.setSender(req.getSender()); - register.setAddressee(req.getAddressee()); - register.setDocumentNumber(req.getDocumentNumber()); - register.setClearingDate(req.getClearingDate()); - orderRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java deleted file mode 100644 index f9b0d6580..000000000 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterService.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.producer.Producer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.UncoveredDealRegisterNewRequest; -import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; - -@Service -public class UncoveredDealRegisterService extends QueueConsumer implements InitializingBean { - private final Logger log = LoggerFactory.getLogger(getClass()); - - private final Imdg uncoveredDealRegisterMap; - - @Autowired - public UncoveredDealRegisterService(Consumer kafkaQueue, Producer kafkaProducer, - ImdgProvider imdgProvider) { - super(kafkaQueue, kafkaProducer); - this.uncoveredDealRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_UncoveredDealRegister, UncoveredDealRegister.class); - } - - @Override - public void afterPropertiesSet() { - callback(UncoveredDealRegisterNewRequest.class) - .setConsumer(this::uncoveredDealRegisterNew) - .forDestination(Consts.REGISTRY_UNCOVERED_DEAL_REGISTER_NEW, callbacks::put); - init(); - } - - public void uncoveredDealRegisterNew(BaseRequest userRequest) { - UncoveredDealRegisterNewRequest req = userRequest.getRequestPayload(); - log.debug("UncoveredDealRegisterNewRequest received"); - UncoveredDealRegister register = new UncoveredDealRegister(); - register.setExecutionId(req.getExecutionId()); - register.setCompanyFullName(req.getCompanyFullName()); - register.setTradingDate(req.getTradingDate()); - register.setExchangeExecutionId(req.getExchangeExecutionId()); - register.setExchangeExecutionTime(req.getExchangeExecutionTime()); - register.setSecuritySymbol(req.getSecuritySymbol()); - register.setSecurityFullName(req.getSecurityFullName()); - register.setSellerFullName(req.getSellerFullName()); - register.setSellerClearingCode(req.getSellerClearingCode()); - register.setSellerAccount(req.getSellerAccount()); - register.setBuyerFullName(req.getBuyerFullName()); - register.setBuyerClearingCode(req.getBuyerClearingCode()); - register.setBuyerAccount(req.getBuyerAccount()); - register.setAmount(req.getAmount()); - register.setResultStatus(req.getResultStatus()); - register.setClearingDate(req.getClearingDate()); - uncoveredDealRegisterMap.insert(register); - log.debug("successfully processed, id {}", register.getId()); - } -} diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterServiceTest.java deleted file mode 100644 index acddc52d4..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/AdmittedDealRegisterServiceTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.MockConsumer; -import org.apache.kafka.clients.producer.MockProducer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import ru.clearing.classes.statics.data.register.AdmittedDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.AdmittedDealRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - AdmittedDealRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class AdmittedDealRegisterServiceTest { - - public static final MatcherFactory.Matcher ADMITTED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_ADMITTED_DEAL_REGISTER_NEW = Consts.REGISTRY_ADMITTED_DEAL_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - AdmittedDealRegisterService admittedDealRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg admittedDealRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.admittedDealRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_AdmittedDealRegister, AdmittedDealRegister.class); - } - - /** - * {@link AdmittedDealRegisterService#admittedDealRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link AdmittedDealRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link AdmittedDealRegisterNewRequest}:
- */ - @Test - void admittedDealRegisterNew() { - //ARRANGE - Long executionId = 1234L; - AdmittedDealRegisterNewRequest admittedDealRegisterNewRequest = new AdmittedDealRegisterNewRequest(); - admittedDealRegisterNewRequest.setExecutionId(executionId); - admittedDealRegisterNewRequest.setCompanyFullName("companyFullName"); - admittedDealRegisterNewRequest.setTradingDate(LocalDate.now()); - admittedDealRegisterNewRequest.setExchangeExecutionId(1L); - admittedDealRegisterNewRequest.setExchangeExecutionTime(Instant.now()); - admittedDealRegisterNewRequest.setSecuritySymbol("symbol"); - admittedDealRegisterNewRequest.setSecurityFullName("full name"); - admittedDealRegisterNewRequest.setSellerFullName("full name"); - admittedDealRegisterNewRequest.setSellerClearingCode("code"); - admittedDealRegisterNewRequest.setSellerAccount("1561658"); - admittedDealRegisterNewRequest.setBuyerFullName("full name"); - admittedDealRegisterNewRequest.setBuyerClearingCode("ClearingCode"); - admittedDealRegisterNewRequest.setBuyerAccount("65464643"); - admittedDealRegisterNewRequest.setAmount(new BigDecimal(12)); - admittedDealRegisterNewRequest.setClearingDate(LocalDate.now()); - - AdmittedDealRegister predictableAdmittedDealRegister = new AdmittedDealRegister(); - predictableAdmittedDealRegister.setExecutionId(admittedDealRegisterNewRequest.getExecutionId()); - predictableAdmittedDealRegister.setCompanyFullName(admittedDealRegisterNewRequest.getCompanyFullName()); - predictableAdmittedDealRegister.setTradingDate(admittedDealRegisterNewRequest.getTradingDate()); - predictableAdmittedDealRegister.setExchangeExecutionId(admittedDealRegisterNewRequest.getExchangeExecutionId()); - predictableAdmittedDealRegister.setExchangeExecutionTime(admittedDealRegisterNewRequest.getExchangeExecutionTime()); - predictableAdmittedDealRegister.setSecuritySymbol(admittedDealRegisterNewRequest.getSecuritySymbol()); - predictableAdmittedDealRegister.setSecurityFullName(admittedDealRegisterNewRequest.getSecurityFullName()); - predictableAdmittedDealRegister.setSellerFullName(admittedDealRegisterNewRequest.getSellerFullName()); - predictableAdmittedDealRegister.setSellerClearingCode(admittedDealRegisterNewRequest.getSellerClearingCode()); - predictableAdmittedDealRegister.setSellerAccount(admittedDealRegisterNewRequest.getSellerAccount()); - predictableAdmittedDealRegister.setBuyerFullName(admittedDealRegisterNewRequest.getBuyerFullName()); - predictableAdmittedDealRegister.setBuyerClearingCode(admittedDealRegisterNewRequest.getBuyerClearingCode()); - predictableAdmittedDealRegister.setBuyerAccount(admittedDealRegisterNewRequest.getBuyerAccount()); - predictableAdmittedDealRegister.setAmount(admittedDealRegisterNewRequest.getAmount()); - predictableAdmittedDealRegister.setClearingDate(admittedDealRegisterNewRequest.getClearingDate()); - - //ACT - String jsonString = getJsonStringForNew(admittedDealRegisterNewRequest, ID); - - addRecordToKafka((MockConsumer) admittedDealRegisterService.getConsumer(), TOPIC_REGISTRY_ADMITTED_DEAL_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - AdmittedDealRegister resultNew = admittedDealRegisterMap.getSingleObjectBySQL(String.format("executionId = %d", executionId)); - predictableAdmittedDealRegister.setId(resultNew.getId()); - ADMITTED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableAdmittedDealRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/BalanceRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/BalanceRegisterServiceTest.java deleted file mode 100644 index 4b5167e0d..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/BalanceRegisterServiceTest.java +++ /dev/null @@ -1,113 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.MockConsumer; -import org.apache.kafka.clients.producer.MockProducer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import ru.clearing.classes.statics.data.misc.BalanceRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.BalanceRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - BalanceRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class BalanceRegisterServiceTest { - public static final MatcherFactory.Matcher ADMITTED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_BALANCE_REGISTER_NEW = Consts.REGISTRY_BALANCE_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - BalanceRegisterService balanceRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg balanceRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.balanceRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_BalanceRegister, BalanceRegister.class); - } - - /** - * {@link BalanceRegisterService#balanceRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link BalanceRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link BalanceRegisterNewRequest}:
- */ - @Test - void balanceRegisterNew() { - //ARRANGE - Long companyId = 1234L; - BalanceRegisterNewRequest balanceRegisterNewRequest = new BalanceRegisterNewRequest(); - balanceRegisterNewRequest.setsDf01Date(Instant.now()); - balanceRegisterNewRequest.setCurrencyCode("currencyCode"); - balanceRegisterNewRequest.setSetHouseName("houseName"); - balanceRegisterNewRequest.setAccount("121546854"); - balanceRegisterNewRequest.setInfoAccount("account"); - balanceRegisterNewRequest.setRemainderSum(new BigDecimal(76)); - balanceRegisterNewRequest.setBlockedSum(new BigDecimal(16)); - balanceRegisterNewRequest.setUnblockedSum(new BigDecimal(46)); - balanceRegisterNewRequest.setInn("inn"); - balanceRegisterNewRequest.setMarket(12L); - balanceRegisterNewRequest.setFullName("fullName"); - balanceRegisterNewRequest.setTypeRemains("typeRemains"); - balanceRegisterNewRequest.setDocNumber("docNumber"); - balanceRegisterNewRequest.setCompanyId(companyId); - - BalanceRegister predictableBalanceRegister = new BalanceRegister(); - predictableBalanceRegister.setsDf01Date(balanceRegisterNewRequest.getsDf01Date()); - predictableBalanceRegister.setCurrencyCode(balanceRegisterNewRequest.getCurrencyCode()); - predictableBalanceRegister.setSetHouseName(balanceRegisterNewRequest.getSetHouseName()); - predictableBalanceRegister.setAccount(balanceRegisterNewRequest.getAccount()); - predictableBalanceRegister.setInfoAccount(balanceRegisterNewRequest.getInfoAccount()); - predictableBalanceRegister.setRemainderSum(balanceRegisterNewRequest.getRemainderSum()); - predictableBalanceRegister.setBlockedSum(balanceRegisterNewRequest.getBlockedSum()); - predictableBalanceRegister.setUnblockedSum(balanceRegisterNewRequest.getUnblockedSum()); - predictableBalanceRegister.setInn(balanceRegisterNewRequest.getInn()); - predictableBalanceRegister.setMarket(balanceRegisterNewRequest.getMarket()); - predictableBalanceRegister.setFullName(balanceRegisterNewRequest.getFullName()); - predictableBalanceRegister.setTypeRemains(balanceRegisterNewRequest.getTypeRemains()); - predictableBalanceRegister.setDocNumber(balanceRegisterNewRequest.getDocNumber()); - predictableBalanceRegister.setCompanyId(balanceRegisterNewRequest.getCompanyId()); - //ACT - String jsonString = getJsonStringForNew(balanceRegisterNewRequest, ID); - - addRecordToKafka((MockConsumer) balanceRegisterService.getConsumer(), TOPIC_REGISTRY_BALANCE_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - BalanceRegister resultNew = balanceRegisterMap.getSingleObjectBySQL(String.format("companyId = %d", companyId)); - predictableBalanceRegister.setId(resultNew.getId()); - ADMITTED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableBalanceRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeServiceTest.java deleted file mode 100644 index 844ef4480..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterChangeServiceTest.java +++ /dev/null @@ -1,90 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.MockConsumer; -import org.apache.kafka.clients.producer.MockProducer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import ru.clearing.classes.statics.data.register.ClearMemberRegisterChange; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.ClearMemberRegisterChangeNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.time.Instant; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - ClearMemberRegisterChangeService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class ClearMemberRegisterChangeServiceTest { - public static final MatcherFactory.Matcher CLEAR_MEMBER_REGISTER_CHANGE_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW = Consts.REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - ClearMemberRegisterChangeService clearMemberRegisterChangeService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg clearMemberRegisterChangeMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.clearMemberRegisterChangeMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ClearMemberRegisterChange, ClearMemberRegisterChange.class); - } - - /** - * {@link ClearMemberRegisterChangeService#clearMemberRegisterChangeNew(BaseRequest)}
- * Тест проверяет создание сущности {@link ClearMemberRegisterChange} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ClearMemberRegisterChangeNewRequest}:
- */ - @Test - void clearMemberRegisterChangeNew() { - //ARRANGE - String comment = "comment"; - ClearMemberRegisterChangeNewRequest clearMemberRegisterChangeNewRequest = new ClearMemberRegisterChangeNewRequest(); - clearMemberRegisterChangeNewRequest.setDate(Instant.now()); - clearMemberRegisterChangeNewRequest.setComment("comment"); - clearMemberRegisterChangeNewRequest.setClearingCode("clearingCode"); - - ClearMemberRegisterChange predictableClearMemberRegisterChange = new ClearMemberRegisterChange(); - predictableClearMemberRegisterChange.setDate(clearMemberRegisterChangeNewRequest.getDate()); - predictableClearMemberRegisterChange.setComment(clearMemberRegisterChangeNewRequest.getComment()); - predictableClearMemberRegisterChange.setClearingCode(clearMemberRegisterChangeNewRequest.getClearingCode()); - //ACT - String jsonString = getJsonStringForNew(clearMemberRegisterChangeNewRequest, ID); - - addRecordToKafka((MockConsumer) clearMemberRegisterChangeService.getConsumer(), TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_CHANGE_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - ClearMemberRegisterChange resultNew = clearMemberRegisterChangeMap.getSingleObjectBySQL(String.format("comment = %s", comment)); - predictableClearMemberRegisterChange.setId(resultNew.getId()); - CLEAR_MEMBER_REGISTER_CHANGE_MATCHER.assertMatch(resultNew, predictableClearMemberRegisterChange); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterServiceTest.java deleted file mode 100644 index 0cbabb914..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ClearMemberRegisterServiceTest.java +++ /dev/null @@ -1,135 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.MockConsumer; -import org.apache.kafka.clients.producer.MockProducer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import ru.clearing.classes.statics.data.misc.ClearMemberRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.ClearMemberRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - ClearMemberRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class ClearMemberRegisterServiceTest { - public static final MatcherFactory.Matcher CLEAR_MEMBER_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_NEW = Consts.REGISTRY_CLEAR_MEMBER_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - ClearMemberRegisterService clearMemberRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg clearMemberRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.clearMemberRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_ClearMemberRegister, ClearMemberRegister.class); - } - - /** - * {@link ClearMemberRegisterService#clearMemberRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link ClearMemberRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link ClearMemberRegisterNewRequest}:
- */ - @Test - void clearMemberRegisterNew() { - //ARRANGE - Long bank = 1234L; - ClearMemberRegisterNewRequest clearMemberRegisterNewRequest = new ClearMemberRegisterNewRequest(); - clearMemberRegisterNewRequest.setTradingCode("tradingCode"); - clearMemberRegisterNewRequest.setClearingCode("clearingCode"); - clearMemberRegisterNewRequest.setFullName("fullName"); - clearMemberRegisterNewRequest.setShortName("shortName"); - clearMemberRegisterNewRequest.setCategoryList("categoryList"); - clearMemberRegisterNewRequest.setCorporationSole("corporationSole"); - clearMemberRegisterNewRequest.setAccount("1246984698"); - clearMemberRegisterNewRequest.setBank(bank); - clearMemberRegisterNewRequest.setBankName("bankName"); - clearMemberRegisterNewRequest.setInn("inn"); - clearMemberRegisterNewRequest.setBic("bic"); - clearMemberRegisterNewRequest.setOgrn("ogrn"); - clearMemberRegisterNewRequest.setCpp("cpp"); - clearMemberRegisterNewRequest.setOcpo("ocpo"); - clearMemberRegisterNewRequest.setContractNumber("contractNumber"); - clearMemberRegisterNewRequest.setContractDate(LocalDate.now()); - clearMemberRegisterNewRequest.setRegistrationDate(LocalDate.now()); - clearMemberRegisterNewRequest.setSystemDate(LocalDate.now()); - clearMemberRegisterNewRequest.setAccessDate(Instant.now()); - clearMemberRegisterNewRequest.setSuspentionDate(Instant.now()); - clearMemberRegisterNewRequest.setReopeningDate(Instant.now()); - clearMemberRegisterNewRequest.setCloseDate(Instant.now()); - clearMemberRegisterNewRequest.setExclusionDate(Instant.now()); - clearMemberRegisterNewRequest.setAddress("address"); - clearMemberRegisterNewRequest.setEmail("email"); - - ClearMemberRegister predictableClearMemberRegister = new ClearMemberRegister(); - predictableClearMemberRegister.setTradingCode(clearMemberRegisterNewRequest.getTradingCode()); - predictableClearMemberRegister.setClearingCode(clearMemberRegisterNewRequest.getClearingCode()); - predictableClearMemberRegister.setFullName(clearMemberRegisterNewRequest.getFullName()); - predictableClearMemberRegister.setShortName(clearMemberRegisterNewRequest.getShortName()); - predictableClearMemberRegister.setCategoryList(clearMemberRegisterNewRequest.getCategoryList()); - predictableClearMemberRegister.setCorporationSole(clearMemberRegisterNewRequest.getCorporationSole()); - predictableClearMemberRegister.setAccount(clearMemberRegisterNewRequest.getAccount()); - predictableClearMemberRegister.setBank(clearMemberRegisterNewRequest.getBank()); - predictableClearMemberRegister.setBankName(clearMemberRegisterNewRequest.getBankName()); - predictableClearMemberRegister.setInn(clearMemberRegisterNewRequest.getInn()); - predictableClearMemberRegister.setBic(clearMemberRegisterNewRequest.getBic()); - predictableClearMemberRegister.setOgrn(clearMemberRegisterNewRequest.getOgrn()); - predictableClearMemberRegister.setCpp(clearMemberRegisterNewRequest.getCpp()); - predictableClearMemberRegister.setOcpo(clearMemberRegisterNewRequest.getOcpo()); - predictableClearMemberRegister.setContractNumber(clearMemberRegisterNewRequest.getContractNumber()); - predictableClearMemberRegister.setContractDate(clearMemberRegisterNewRequest.getContractDate()); - predictableClearMemberRegister.setRegistrationDate(clearMemberRegisterNewRequest.getRegistrationDate()); - predictableClearMemberRegister.setSystemDate(clearMemberRegisterNewRequest.getSystemDate()); - predictableClearMemberRegister.setAccessDate(clearMemberRegisterNewRequest.getAccessDate()); - predictableClearMemberRegister.setSuspentionDate(clearMemberRegisterNewRequest.getSuspentionDate()); - predictableClearMemberRegister.setReopeningDate(clearMemberRegisterNewRequest.getReopeningDate()); - predictableClearMemberRegister.setCloseDate(clearMemberRegisterNewRequest.getCloseDate()); - predictableClearMemberRegister.setExclusionDate(clearMemberRegisterNewRequest.getExclusionDate()); - predictableClearMemberRegister.setAddress(clearMemberRegisterNewRequest.getAddress()); - predictableClearMemberRegister.setEmail(clearMemberRegisterNewRequest.getEmail()); - //ACT - String jsonString = getJsonStringForNew(clearMemberRegisterNewRequest, ID); - - addRecordToKafka((MockConsumer) clearMemberRegisterService.getConsumer(), TOPIC_REGISTRY_CLEAR_MEMBER_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - ClearMemberRegister resultNew = clearMemberRegisterMap.getSingleObjectBySQL(String.format("bank = %d", bank)); - predictableClearMemberRegister.setId(resultNew.getId()); - CLEAR_MEMBER_REGISTER_MATCHER.assertMatch(resultNew, predictableClearMemberRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredDealRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredDealRegisterServiceTest.java deleted file mode 100644 index 921dfe0a3..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/CoveredDealRegisterServiceTest.java +++ /dev/null @@ -1,116 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.MockConsumer; -import org.apache.kafka.clients.producer.MockProducer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import ru.clearing.classes.statics.data.register.CoveredDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.CoveredDealRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - CoveredDealRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class CoveredDealRegisterServiceTest { - public static final MatcherFactory.Matcher COVERED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_COVERED_DEAL_REGISTER_NEW = Consts.REGISTRY_COVERED_DEAL_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - CoveredDealRegisterService coveredDealRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg coveredDealRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.coveredDealRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_CoveredDealRegister, CoveredDealRegister.class); - } - - /** - * {@link CoveredDealRegisterService#coveredDealRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link CoveredDealRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link CoveredDealRegisterNewRequest}:
- */ - @Test - void coveredDealRegisterNew() { - //ARRANGE - Long executionId = 1234L; - CoveredDealRegisterNewRequest coveredDealRegisterNewRequest = new CoveredDealRegisterNewRequest(); - coveredDealRegisterNewRequest.setExecutionId(executionId); - coveredDealRegisterNewRequest.setCompanyFullName("companyFullName"); - coveredDealRegisterNewRequest.setTradingDate(LocalDate.now()); - coveredDealRegisterNewRequest.setExchangeExecutionId(1212L); - coveredDealRegisterNewRequest.setExchangeExecutionTime(Instant.now()); - coveredDealRegisterNewRequest.setSecuritySymbol("securitySymbol"); - coveredDealRegisterNewRequest.setSecurityFullName("fullName"); - coveredDealRegisterNewRequest.setSellerFullName("sellerFullName"); - coveredDealRegisterNewRequest.setSellerClearingCode("sellerClearingCode"); - coveredDealRegisterNewRequest.setSellerAccount("sellerAccount"); - coveredDealRegisterNewRequest.setBuyerFullName("buyerFullName"); - coveredDealRegisterNewRequest.setBuyerClearingCode("buyerClearingCode"); - coveredDealRegisterNewRequest.setBuyerAccount("buyerAccount"); - coveredDealRegisterNewRequest.setAmount(new BigDecimal(412)); - coveredDealRegisterNewRequest.setClearingDate(LocalDate.now()); - - CoveredDealRegister predictableCoveredDealRegister = new CoveredDealRegister(); - predictableCoveredDealRegister.setExecutionId(coveredDealRegisterNewRequest.getExecutionId()); - predictableCoveredDealRegister.setCompanyFullName(coveredDealRegisterNewRequest.getCompanyFullName()); - predictableCoveredDealRegister.setTradingDate(coveredDealRegisterNewRequest.getTradingDate()); - predictableCoveredDealRegister.setExchangeExecutionId(coveredDealRegisterNewRequest.getExchangeExecutionId()); - predictableCoveredDealRegister.setExchangeExecutionTime(coveredDealRegisterNewRequest.getExchangeExecutionTime()); - predictableCoveredDealRegister.setSecuritySymbol(coveredDealRegisterNewRequest.getSecuritySymbol()); - predictableCoveredDealRegister.setSecurityFullName(coveredDealRegisterNewRequest.getSecurityFullName()); - predictableCoveredDealRegister.setSellerFullName(coveredDealRegisterNewRequest.getSellerFullName()); - predictableCoveredDealRegister.setSellerClearingCode(coveredDealRegisterNewRequest.getSellerClearingCode()); - predictableCoveredDealRegister.setSellerAccount(coveredDealRegisterNewRequest.getSellerAccount()); - predictableCoveredDealRegister.setBuyerFullName(coveredDealRegisterNewRequest.getBuyerFullName()); - predictableCoveredDealRegister.setBuyerClearingCode(coveredDealRegisterNewRequest.getBuyerClearingCode()); - predictableCoveredDealRegister.setBuyerAccount(coveredDealRegisterNewRequest.getBuyerAccount()); - predictableCoveredDealRegister.setAmount(coveredDealRegisterNewRequest.getAmount()); - predictableCoveredDealRegister.setClearingDate(coveredDealRegisterNewRequest.getClearingDate()); - //ACT - String jsonString = getJsonStringForNew(coveredDealRegisterNewRequest, ID); - - addRecordToKafka((MockConsumer) coveredDealRegisterService.getConsumer(), TOPIC_REGISTRY_COVERED_DEAL_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - CoveredDealRegister resultNew = coveredDealRegisterMap.getSingleObjectBySQL(String.format("executionId = %d", executionId)); - predictableCoveredDealRegister.setId(resultNew.getId()); - COVERED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableCoveredDealRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/OrderRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/OrderRegisterServiceTest.java deleted file mode 100644 index 6cd5a8472..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/OrderRegisterServiceTest.java +++ /dev/null @@ -1,105 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.MockConsumer; -import org.apache.kafka.clients.producer.MockProducer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import ru.clearing.classes.statics.data.register.OrderRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.OrderRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - OrderRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class OrderRegisterServiceTest { - public static final MatcherFactory.Matcher ORDER_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_ORDER_REGISTER_NEW = Consts.REGISTRY_ORDER_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - OrderRegisterService orderRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg orderRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.orderRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_OrderRegister, OrderRegister.class); - } - - /** - * {@link OrderRegisterService#orderRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link OrderRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link OrderRegisterNewRequest}:
- */ - @Test - void orderRegisterNew() { - //ARRANGE - Long creditLegDirection = 1234L; - OrderRegisterNewRequest req = new OrderRegisterNewRequest(); - req.setCreditLegAccount("creditLegAccount"); - req.setCreditLegAmount(new BigDecimal(0)); - req.setCreditLegCurrencyCode("creditLegCurrencyCode"); - req.setCreditLegDirection(creditLegDirection); - req.setDebitLegAccount(req.getDebitLegAccount()); - req.setSender(req.getSender()); - req.setAddressee(req.getAddressee()); - req.setDocumentNumber(req.getDocumentNumber()); - req.setClearingDate(req.getClearingDate()); - req.setClearingDate(LocalDate.now()); - - OrderRegister predictableOrderRegister = new OrderRegister(); - predictableOrderRegister.setCreditLegAccount(req.getCreditLegAccount()); - predictableOrderRegister.setCreditLegAmount(req.getCreditLegAmount()); - predictableOrderRegister.setCreditLegCurrencyCode(req.getCreditLegCurrencyCode()); - predictableOrderRegister.setCreditLegDirection(req.getCreditLegDirection()); - predictableOrderRegister.setDebitLegAccount(req.getDebitLegAccount()); - predictableOrderRegister.setSender(req.getSender()); - predictableOrderRegister.setAddressee(req.getAddressee()); - predictableOrderRegister.setDocumentNumber(req.getDocumentNumber()); - predictableOrderRegister.setClearingDate(req.getClearingDate()); - predictableOrderRegister.setClearingDate(req.getClearingDate()); - //ACT - String jsonString = getJsonStringForNew(req, ID); - - addRecordToKafka((MockConsumer) orderRegisterService.getConsumer(), TOPIC_REGISTRY_ORDER_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - OrderRegister resultNew = orderRegisterMap.getSingleObjectBySQL(String.format("creditLegDirection = %d", creditLegDirection)); - predictableOrderRegister.setId(resultNew.getId()); - ORDER_REGISTER_MATCHER.assertMatch(resultNew, predictableOrderRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterServiceTest.java deleted file mode 100644 index 26cc0f08d..000000000 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/UncoveredDealRegisterServiceTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package ru.spcex.clearing.registry.service; - -import org.apache.kafka.clients.consumer.MockConsumer; -import org.apache.kafka.clients.producer.MockProducer; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; -import ru.clearing.classes.statics.data.register.UncoveredDealRegister; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.BaseRequest; -import ru.spcex.clearing.platform.messaging.domain.Consts; -import ru.spcex.clearing.platform.messaging.domain.cud.registry.UncoveredDealRegisterNewRequest; -import ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration; -import ru.spcex.clearing.registry.config.KafkaConfigTest; -import ru.spcex.clearing.registry.utils.MatcherFactory; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -import static ru.spcex.clearing.registry.config.HazelcastServiceTestConfiguration.currentID; -import static ru.spcex.clearing.registry.utils.MatcherFactory.usingIgnoringFieldsComparator; -import static ru.spcex.clearing.registry.utils.TestUtils.*; - -@ExtendWith(SpringExtension.class) -@ContextConfiguration(classes = { - UncoveredDealRegisterService.class, - KafkaConfigTest.class, - HazelcastServiceTestConfiguration.class}) -class UncoveredDealRegisterServiceTest { - public static final MatcherFactory.Matcher UNCOVERED_DEAL_REGISTER_MATCHER = usingIgnoringFieldsComparator(); - private static final int PARTITION = 0; - private static final String TOPIC_REGISTRY_UNCOVERED_DEAL_REGISTER_NEW = Consts.REGISTRY_UNCOVERED_DEAL_REGISTER_NEW; - private static final Long ID = currentID.getAndIncrement(); - @Autowired - UncoveredDealRegisterService uncoveredDealRegisterService; - @Autowired - @Qualifier("hazelcastServiceTest") - private HazelcastService hazelcastServiceTest; - private Imdg uncoveredDealRegisterMap; - - @Captor - private ArgumentCaptor producerRecord; - @SpyBean - private MockProducer mockProducer; - - @PostConstruct - private void init() { - hazelcastServiceTest.waitAvailable(); - this.uncoveredDealRegisterMap = hazelcastServiceTest.getImdg(IMDGDistributedNames.Map_UncoveredDealRegister, UncoveredDealRegister.class); - } - - /** - * {@link UncoveredDealRegisterService#uncoveredDealRegisterNew(BaseRequest)}
- * Тест проверяет создание сущности {@link UncoveredDealRegister} в Hazelcast при передаче из Apache Kafka.
- * Входной запрос {@link UncoveredDealRegisterNewRequest}:
- */ - @Test - void uncoveredDealRegisterNew() { - //ARRANGE - Long executionId = 1234L; - UncoveredDealRegisterNewRequest req = new UncoveredDealRegisterNewRequest(); - req.setExecutionId(executionId); - req.setCompanyFullName("companyFullName"); - req.setTradingDate(LocalDate.now()); - req.setExchangeExecutionId(121L); - req.setExchangeExecutionTime(Instant.now()); - req.setSecuritySymbol("securitySymbol"); - req.setSecurityFullName("fullName"); - req.setSellerFullName("sellerFullName"); - req.setSellerClearingCode("sellerClearingCode"); - req.setSellerAccount("sellerAccount"); - req.setBuyerFullName("buyerFullName"); - req.setBuyerClearingCode("clearingCode"); - req.setBuyerAccount("buyerAccount"); - req.setAmount(new BigDecimal(21)); - req.setResultStatus("resultStatus"); - req.setClearingDate(LocalDate.now()); - - UncoveredDealRegister predictableUncoveredDealRegister = new UncoveredDealRegister(); - predictableUncoveredDealRegister.setExecutionId(req.getExecutionId()); - predictableUncoveredDealRegister.setCompanyFullName(req.getCompanyFullName()); - predictableUncoveredDealRegister.setTradingDate(req.getTradingDate()); - predictableUncoveredDealRegister.setExchangeExecutionId(req.getExchangeExecutionId()); - predictableUncoveredDealRegister.setExchangeExecutionTime(req.getExchangeExecutionTime()); - predictableUncoveredDealRegister.setSecuritySymbol(req.getSecuritySymbol()); - predictableUncoveredDealRegister.setSecurityFullName(req.getSecurityFullName()); - predictableUncoveredDealRegister.setSellerFullName(req.getSellerFullName()); - predictableUncoveredDealRegister.setSellerClearingCode(req.getSellerClearingCode()); - predictableUncoveredDealRegister.setSellerAccount(req.getSellerAccount()); - predictableUncoveredDealRegister.setBuyerFullName(req.getBuyerFullName()); - predictableUncoveredDealRegister.setBuyerClearingCode(req.getBuyerClearingCode()); - predictableUncoveredDealRegister.setBuyerAccount(req.getBuyerAccount()); - predictableUncoveredDealRegister.setAmount(req.getAmount()); - predictableUncoveredDealRegister.setResultStatus(req.getResultStatus()); - predictableUncoveredDealRegister.setClearingDate(req.getClearingDate()); - //ACT - String jsonString = getJsonStringForNew(req, ID); - - addRecordToKafka((MockConsumer) uncoveredDealRegisterService.getConsumer(), TOPIC_REGISTRY_UNCOVERED_DEAL_REGISTER_NEW, PARTITION, 0, jsonString); - - //ASSERT - waitingWhenAddedRecordAndCheckIt(ID, mockProducer, producerRecord); - UncoveredDealRegister resultNew = uncoveredDealRegisterMap.getSingleObjectBySQL(String.format("executionId = %d", executionId)); - predictableUncoveredDealRegister.setId(resultNew.getId()); - UNCOVERED_DEAL_REGISTER_MATCHER.assertMatch(resultNew, predictableUncoveredDealRegister); - } -} \ No newline at end of file diff --git a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java index b1fcc4ec7..528c77777 100644 --- a/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java +++ b/clearing-parent/utility-service/src/main/java/ru/spcex/clearing/utility/service/KeyRateService.java @@ -19,6 +19,7 @@ import ru.spcex.platform.enumeration.Status; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +@Deprecated // KeyRate was deleted @Service public class KeyRateService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); diff --git a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateFactory.java b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateFactory.java index f94d01e38..7dd532dc8 100644 --- a/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateFactory.java +++ b/clearing-parent/utility-service/src/test/java/ru/spcex/clearing/utility/service/KeyRateFactory.java @@ -8,6 +8,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.utilities.KeyRateUpdateRe import java.math.BigDecimal; import java.time.LocalDate; +@Deprecated class KeyRateFactory { LocalDate startDate = LocalDate.ofEpochDay(0); LocalDate endDate = LocalDate.ofEpochDay(0); diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java index 1e6577dd3..e4e2085f3 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/BalanceAccountType.java @@ -2,6 +2,7 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; +@Deprecated // Словарь balanceAccountTypeDictionary удалён public enum BalanceAccountType implements IEnumKey { Active("ACTV"), Blocked("BLKD"); diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java index 8bd22f9ff..82526ebaa 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/ClearingStatus.java @@ -2,6 +2,7 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumKey; +@Deprecated // словарь ClearingStatusDictionary удалён public enum ClearingStatus implements IEnumKey { OK("OK"), FAIL("FAIL"), diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index 3ec5f5b9f..a37a64c4b 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -11,6 +11,7 @@ public final class IMDGDistributedNames { public static final String Map_Contact = "Map_Contact"; public static final String Map_ProfileDocument = "Map_ProfileDocument"; public static final String Map_Account = "Map_Account"; + @Deprecated public static final String Map_AccountBalance = "Map_AccountBalance"; public static final String Map_AccountHistory = "Map_AccountHistory"; public static final String Map_AccountBalanceHistory = "Map_AccountBalanceHistory"; @@ -50,11 +51,14 @@ public final class IMDGDistributedNames { public static final String Map_SDf10 = "Map_SDf10"; public static final String Map_SDf11 = "Map_SDf11"; public static final String Map_SDf13 = "Map_SDf13"; + @Deprecated public static final String Map_SDf17 = "Map_SDf17"; + @Deprecated public static final String Map_SDf16 = "Map_SDf16"; public static final String Map_SDf08 = "Map_SDf08"; public static final String Map_SDf09 = "Map_SDf09"; public static final String Map_SDf12 = "Map_SDf12"; + @Deprecated public static final String Map_SDf18 = "Map_SDf18"; public static final String Map_SDf51 = "Map_sDf51"; public static final String Map_SDf52 = "Map_sDf52"; @@ -71,7 +75,7 @@ public final class IMDGDistributedNames { public static final String Map_OrganizationTypeDictionary = "Map_OrganizationTypeDictionary"; public static final String Map_WorkflowStatusDictionary = "Map_WorkflowStatusDictionary"; public static final String Map_AccountTypeDictionary = "Map_AccountTypeDictionary"; - public static final String Map_BalanceAccountTypeDictionary = "Map_BalanceAccountTypeDictionary"; + @Deprecated public static final String Map_ClearingStatusDictionary = "Map_ClearingStatusDictionary"; public static final String Map_CurrencyCodeDictionary = "Map_CurrencyCodeDictionary"; public static final String Map_ErrorCodeDictionary = "Map_ErrorCodeDictionary"; @@ -90,7 +94,6 @@ public final class IMDGDistributedNames { public static final String Map_StatementTypeDictionary = "Map_StatementTypeDictionary"; public static final String Map_TermTypeDictionary = "Map_TermTypeDictionary"; public static final String Map_CourierTypeDictionary = "Map_CourierTypeDictionary"; - public static final String Map_ChargeDirectionDictionary = "Map_ChargeDirectionDictionary"; public static final String Map_TaskDictionary = "Map_TaskDictionary"; public static final String Map_TaskStatusDictionary = "Map_TaskStatusDictionary"; public static final String Map_DayStatusDictionary = "Map_DayStatusDictionary"; @@ -99,6 +102,7 @@ public final class IMDGDistributedNames { public static final String Map_UserRoleDictionary = "Map_UserRoleDictionary"; public static final String Map_UserSettings = "Map_UserSettings"; public static final String Map_UserRoleSession = "Map_UserRoleSession"; + @Deprecated public static final String Map_KeyRate = "Map_KeyRate"; public static final String Map_MoneyMarketSecurity = "Map_MoneyMarketSecurity"; public static final String Map_Currency = "Map_Currency"; @@ -107,20 +111,14 @@ public final class IMDGDistributedNames { public static final String Map_Session = "Map_Session"; public static final String Map_SessionHistory = "Map_SessionHistory"; public static final String Map_Notification = "Map_Notification"; + @Deprecated public static final String Map_LiabilitiesClaimsAssets = "Map_LiabilitiesClaimsAssets"; + @Deprecated public static final String Map_LiabilitiesClaimsMoney = "Map_LiabilitiesClaimsMoney"; - public static final String Map_ClearMemberRegister = "Map_ClearMemberRegister"; - public static final String Map_ClearMemberRegisterChange = "Map_ClearMemberRegisterChange"; - public static final String Map_BalanceRegister = "Map_BalanceRegister"; public static final String Map_ExecutionDeposit = "Map_ExecutionDeposit"; public static final String Map_ExecutionDepositHistory = "Map_ExecutionDepositHistory"; - public static final String Map_DealRegister = "Map_DealRegister"; - public static final String Map_AdmittedDealRegister = "Map_AdmittedDealRegister"; - public static final String Map_CoveredDealRegister = "Map_CoveredDealRegister"; - public static final String Map_UncoveredDealRegister = "Map_UncoveredDealRegister"; public static final String Map_ReportRegister = "Map_ReportRegister"; public static final String Map_ContractRegister = "Map_ContractRegister"; - public static final String Map_OrderRegister = "Map_OrderRegister"; public static final String Map_VerificationResult = "Map_VerificationResult"; public static final String Map_STrades = "Map_STrades"; public static final String Map_SectionDictionary = "Map_SectionDictionary"; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/AdmittedDealRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/AdmittedDealRegisterNewRequest.java deleted file mode 100644 index 41870f415..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/AdmittedDealRegisterNewRequest.java +++ /dev/null @@ -1,211 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.registry; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class AdmittedDealRegisterNewRequest { - @JsonProperty - public Long executionId; - @JsonProperty - public String companyFullName; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate tradingDate; - @JsonProperty - public Long exchangeExecutionId; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant exchangeExecutionTime; - @JsonProperty - public String securitySymbol; - @JsonProperty - public String securityFullName; - @JsonProperty - public String sellerFullName; - @JsonProperty - public String sellerClearingCode; - @JsonProperty - public String sellerAccount; - @JsonProperty - public String buyerFullName; - @JsonProperty - public String buyerClearingCode; - @JsonProperty - public String buyerAccount; - @JsonProperty - public BigDecimal amount; - @JsonProperty - public Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant updatedAt; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterChangeNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterChangeNewRequest.java deleted file mode 100644 index 9f9eee634..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterChangeNewRequest.java +++ /dev/null @@ -1,44 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.registry; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer; - -import java.time.Instant; - -public class ClearMemberRegisterChangeNewRequest { - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant date; - @JsonProperty - private String clearingCode; - @JsonProperty - private String comment; - - public Instant getDate() { - return date; - } - - public void setDate(Instant date) { - this.date = date; - } - - public String getClearingCode() { - return clearingCode; - } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterNewRequest.java deleted file mode 100644 index eed8c58bd..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/ClearMemberRegisterNewRequest.java +++ /dev/null @@ -1,343 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.registry; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.time.Instant; -import java.time.LocalDate; - -public class ClearMemberRegisterNewRequest { - - @JsonProperty - private String tradingCode; - - @JsonProperty - private String clearingCode; - - @JsonProperty - private String fullName; - - @JsonProperty - private String shortName; - - @JsonProperty - private String categoryList; - - @JsonProperty - private String corporationSole; - - @JsonProperty - private String account; - - @JsonProperty - private Long bank; - - @JsonProperty - private String bankName; - - @JsonProperty - private String inn; - - @JsonProperty - private String bic; - - @JsonProperty - private String ogrn; - - @JsonProperty - private String cpp; - - @JsonProperty - private String ocpo; - - @JsonProperty - private String contractNumber; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate contractDate; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate registrationDate; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate systemDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant accessDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant suspentionDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant reopeningDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant closeDate; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant exclusionDate; - - @JsonProperty - private String address; - - @JsonProperty - private String email; - - @JsonProperty - private Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant updatedAt; - - public String getTradingCode() { - return tradingCode; - } - - public void setTradingCode(String tradingCode) { - this.tradingCode = tradingCode; - } - - public String getClearingCode() { - return clearingCode; - } - - public void setClearingCode(String clearingCode) { - this.clearingCode = clearingCode; - } - - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - - public String getShortName() { - return shortName; - } - - public void setShortName(String shortName) { - this.shortName = shortName; - } - - public String getCategoryList() { - return categoryList; - } - - public void setCategoryList(String categoryList) { - this.categoryList = categoryList; - } - - public String getCorporationSole() { - return corporationSole; - } - - public void setCorporationSole(String corporationSole) { - this.corporationSole = corporationSole; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public Long getBank() { - return bank; - } - - public void setBank(Long bank) { - this.bank = bank; - } - - public String getBankName() { - return bankName; - } - - public void setBankName(String bankName) { - this.bankName = bankName; - } - - public String getInn() { - return inn; - } - - public void setInn(String inn) { - this.inn = inn; - } - - public String getBic() { - return bic; - } - - public void setBic(String bic) { - this.bic = bic; - } - - public String getOgrn() { - return ogrn; - } - - public void setOgrn(String ogrn) { - this.ogrn = ogrn; - } - - public String getCpp() { - return cpp; - } - - public void setCpp(String cpp) { - this.cpp = cpp; - } - - public String getOcpo() { - return ocpo; - } - - public void setOcpo(String ocpo) { - this.ocpo = ocpo; - } - - public String getContractNumber() { - return contractNumber; - } - - public void setContractNumber(String contractNumber) { - this.contractNumber = contractNumber; - } - - public LocalDate getContractDate() { - return contractDate; - } - - public void setContractDate(LocalDate contractDate) { - this.contractDate = contractDate; - } - - public LocalDate getRegistrationDate() { - return registrationDate; - } - - public void setRegistrationDate(LocalDate registrationDate) { - this.registrationDate = registrationDate; - } - - public LocalDate getSystemDate() { - return systemDate; - } - - public void setSystemDate(LocalDate systemDate) { - this.systemDate = systemDate; - } - - public Instant getAccessDate() { - return accessDate; - } - - public void setAccessDate(Instant accessDate) { - this.accessDate = accessDate; - } - - public Instant getSuspentionDate() { - return suspentionDate; - } - - public void setSuspentionDate(Instant suspentionDate) { - this.suspentionDate = suspentionDate; - } - - public Instant getReopeningDate() { - return reopeningDate; - } - - public void setReopeningDate(Instant reopeningDate) { - this.reopeningDate = reopeningDate; - } - - public Instant getCloseDate() { - return closeDate; - } - - public void setCloseDate(Instant closeDate) { - this.closeDate = closeDate; - } - - public Instant getExclusionDate() { - return exclusionDate; - } - - public void setExclusionDate(Instant exclusionDate) { - this.exclusionDate = exclusionDate; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/CoveredDealRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/CoveredDealRegisterNewRequest.java deleted file mode 100644 index ec1d1908b..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/CoveredDealRegisterNewRequest.java +++ /dev/null @@ -1,225 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.registry; - - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class CoveredDealRegisterNewRequest { - - @JsonProperty - public Long executionId; - - @JsonProperty - public String companyFullName; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate tradingDate; - - @JsonProperty - public Long exchangeExecutionId; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant exchangeExecutionTime; //todo clarify is timestamp suitable for this request or not - - @JsonProperty - public String securitySymbol; - - @JsonProperty - public String securityFullName; - - @JsonProperty - public String sellerFullName; - - @JsonProperty - public String sellerClearingCode; - - @JsonProperty - public String sellerAccount; - - @JsonProperty - public String buyerFullName; - - @JsonProperty - public String buyerClearingCode; - - @JsonProperty - public String buyerAccount; - - @JsonProperty - public BigDecimal amount; - - @JsonProperty - public Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - public Instant updatedAt; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - public LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/OrderRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/OrderRegisterNewRequest.java deleted file mode 100644 index 7eae019d3..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/OrderRegisterNewRequest.java +++ /dev/null @@ -1,155 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.registry; - - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class OrderRegisterNewRequest { - - @JsonProperty - private String creditLegAccount; - - @JsonProperty - private BigDecimal creditLegAmount; - - @JsonProperty - private String creditLegCurrencyCode; - - @JsonProperty - private Long creditLegDirection; - - @JsonProperty - private String debitLegAccount; - - @JsonProperty - private String sender; - - @JsonProperty - private String addressee; - - @JsonProperty - private String documentNumber; - - @JsonProperty - private Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant updatedAt; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate clearingDate; - - public String getCreditLegAccount() { - return creditLegAccount; - } - - public void setCreditLegAccount(String creditLegAccount) { - this.creditLegAccount = creditLegAccount; - } - - public BigDecimal getCreditLegAmount() { - return creditLegAmount; - } - - public void setCreditLegAmount(BigDecimal creditLegAmount) { - this.creditLegAmount = creditLegAmount; - } - - public String getCreditLegCurrencyCode() { - return creditLegCurrencyCode; - } - - public void setCreditLegCurrencyCode(String creditLegCurrencyCode) { - this.creditLegCurrencyCode = creditLegCurrencyCode; - } - - public Long getCreditLegDirection() { - return creditLegDirection; - } - - public void setCreditLegDirection(Long creditLegDirection) { - this.creditLegDirection = creditLegDirection; - } - - public String getDebitLegAccount() { - return debitLegAccount; - } - - public void setDebitLegAccount(String debitLegAccount) { - this.debitLegAccount = debitLegAccount; - } - - public String getSender() { - return sender; - } - - public void setSender(String sender) { - this.sender = sender; - } - - public String getAddressee() { - return addressee; - } - - public void setAddressee(String addressee) { - this.addressee = addressee; - } - - public String getDocumentNumber() { - return documentNumber; - } - - public void setDocumentNumber(String documentNumber) { - this.documentNumber = documentNumber; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java deleted file mode 100644 index bdd06a020..000000000 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/registry/UncoveredDealRegisterNewRequest.java +++ /dev/null @@ -1,235 +0,0 @@ -package ru.spcex.clearing.platform.messaging.domain.cud.registry; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.InstantDateTimeDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.deserialize.LocalDateDeserializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.InstantDateTimeSerializer; -import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSerializer; - -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; - -public class UncoveredDealRegisterNewRequest { - - @JsonProperty - private Long executionId; - - @JsonProperty - private String companyFullName; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate tradingDate; - - @JsonProperty - private Long exchangeExecutionId; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant exchangeExecutionTime; - - @JsonProperty - private String securitySymbol; - - @JsonProperty - private String securityFullName; - - @JsonProperty - private String sellerFullName; - - @JsonProperty - private String sellerClearingCode; - - @JsonProperty - private String sellerAccount; - - @JsonProperty - private String buyerFullName; - - @JsonProperty - private String buyerClearingCode; - - @JsonProperty - private String buyerAccount; - - @JsonProperty - private BigDecimal amount; - - @JsonProperty - private String resultStatus; - - @JsonProperty - private Long id; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant createdAt; - - @JsonSerialize(using = InstantDateTimeSerializer.class) - @JsonDeserialize(using = InstantDateTimeDeserializer.class) - @JsonProperty - private Instant updatedAt; - - @JsonSerialize(using = LocalDateSerializer.class) - @JsonDeserialize(using = LocalDateDeserializer.class) - @JsonProperty - private LocalDate clearingDate; - - public Long getExecutionId() { - return executionId; - } - - public void setExecutionId(Long executionId) { - this.executionId = executionId; - } - - public String getCompanyFullName() { - return companyFullName; - } - - public void setCompanyFullName(String companyFullName) { - this.companyFullName = companyFullName; - } - - public LocalDate getTradingDate() { - return tradingDate; - } - - public void setTradingDate(LocalDate tradingDate) { - this.tradingDate = tradingDate; - } - - public Long getExchangeExecutionId() { - return exchangeExecutionId; - } - - public void setExchangeExecutionId(Long exchangeExecutionId) { - this.exchangeExecutionId = exchangeExecutionId; - } - - public Instant getExchangeExecutionTime() { - return exchangeExecutionTime; - } - - public void setExchangeExecutionTime(Instant exchangeExecutionTime) { - this.exchangeExecutionTime = exchangeExecutionTime; - } - - public String getSecuritySymbol() { - return securitySymbol; - } - - public void setSecuritySymbol(String securitySymbol) { - this.securitySymbol = securitySymbol; - } - - public String getSecurityFullName() { - return securityFullName; - } - - public void setSecurityFullName(String securityFullName) { - this.securityFullName = securityFullName; - } - - public String getSellerFullName() { - return sellerFullName; - } - - public void setSellerFullName(String sellerFullName) { - this.sellerFullName = sellerFullName; - } - - public String getSellerClearingCode() { - return sellerClearingCode; - } - - public void setSellerClearingCode(String sellerClearingCode) { - this.sellerClearingCode = sellerClearingCode; - } - - public String getSellerAccount() { - return sellerAccount; - } - - public void setSellerAccount(String sellerAccount) { - this.sellerAccount = sellerAccount; - } - - public String getBuyerFullName() { - return buyerFullName; - } - - public void setBuyerFullName(String buyerFullName) { - this.buyerFullName = buyerFullName; - } - - public String getBuyerClearingCode() { - return buyerClearingCode; - } - - public void setBuyerClearingCode(String buyerClearingCode) { - this.buyerClearingCode = buyerClearingCode; - } - - public String getBuyerAccount() { - return buyerAccount; - } - - public void setBuyerAccount(String buyerAccount) { - this.buyerAccount = buyerAccount; - } - - public BigDecimal getAmount() { - return amount; - } - - public void setAmount(BigDecimal amount) { - this.amount = amount; - } - - public String getResultStatus() { - return resultStatus; - } - - public void setResultStatus(String resultStatus) { - this.resultStatus = resultStatus; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedAt() { - return createdAt; - } - - public void setCreatedAt(Instant createdAt) { - this.createdAt = createdAt; - } - - public Instant getUpdatedAt() { - return updatedAt; - } - - public void setUpdatedAt(Instant updatedAt) { - this.updatedAt = updatedAt; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; - } -} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateNewRequest.java index 5bf616b23..fe89f75c2 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateNewRequest.java @@ -8,7 +8,7 @@ import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSeria import java.math.BigDecimal; import java.time.LocalDate; - +@Deprecated public class KeyRateNewRequest { @JsonProperty public BigDecimal keyRate; diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateUpdateRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateUpdateRequest.java index 7534f9078..04ad1413d 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateUpdateRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/utilities/KeyRateUpdateRequest.java @@ -8,7 +8,7 @@ import ru.spcex.clearing.platform.messaging.domain.json.serialize.LocalDateSeria import java.math.BigDecimal; import java.time.LocalDate; - +@Deprecated public class KeyRateUpdateRequest { @JsonProperty public Long id; From 61ed69c676d1cdffb019bfec26b46a9bdbf8aab8 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 19:21:30 +0300 Subject: [PATCH 29/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D1=81=D0=BB=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=80=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/AccountBalanceService.java | 1 + .../dictionary/EventTypeDictionary.java | 11 +++++++ .../dictionary/InOutSDfTypeDictionary.java | 11 +++++++ .../dictionary/MarketTypeDictionary.java | 11 +++++++ .../NotificationStatusDictionary.java | 11 +++++++ .../dictionary/ObjectTypeDictionary.java | 11 +++++++ .../TransactionStatusDictionary.java | 11 +++++++ .../EventTypeDictionaryMapStore.java | 31 +++++++++++++++++++ .../InOutSDfTypeDictionaryMapStore.java | 31 +++++++++++++++++++ .../MarketTypeDictionaryMapStore.java | 31 +++++++++++++++++++ .../NotificationStatusDictionaryMapStore.java | 31 +++++++++++++++++++ .../ObjectTypeDictionaryMapStore.java | 31 +++++++++++++++++++ .../TransactionStatusDictionaryMapStore.java | 31 +++++++++++++++++++ .../structure/RunnableMapNamesForTesting.java | 6 ++++ .../clearing/imdg/IMDGDistributedNames.java | 8 ++++- 15 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java create mode 100644 clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/EventTypeDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/InOutSDfTypeDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/MarketTypeDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NotificationStatusDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ObjectTypeDictionaryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/TransactionStatusDictionaryMapStore.java diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java index d10e23a02..42a0c440d 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/AccountBalanceService.java @@ -30,6 +30,7 @@ import java.util.function.Function; import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD; +@Deprecated @Component public class AccountBalanceService { private final Logger log = LoggerFactory.getLogger(getClass()); diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java new file mode 100644 index 000000000..8a7dd4138 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/EventTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов изменений записей + * + * Dictionary DB table: EVENT_TYPE_DICTIONARY + **/ +public class EventTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java new file mode 100644 index 000000000..4223a6a26 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/InOutSDfTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов входящих и исходящих записей + *

+ * Dictionary DB table: IN_OUT_S_DF_TYPE_DICTIONARY + **/ +public class InOutSDfTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java new file mode 100644 index 000000000..82b7b83f5 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/MarketTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов торгов + *

+ * Dictionary DB table: MARKET_TYPE_DICTIONARY + **/ +public class MarketTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} \ No newline at end of file diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java new file mode 100644 index 000000000..bd9bc2b04 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/NotificationStatusDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник статусов сообщений + * + * Dictionary DB table: NOTIFICATION_STATUS_DICTIONARY + **/ +public class NotificationStatusDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java new file mode 100644 index 000000000..771901575 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/ObjectTypeDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник типов объектов + * + * Dictionary DB table: OBJECT_TYPE_DICTIONARY + **/ +public class ObjectTypeDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} diff --git a/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java new file mode 100644 index 000000000..6228f8057 --- /dev/null +++ b/clearing-parent/dictionary/src/main/java/ru/clearing/platform/dictionary/TransactionStatusDictionary.java @@ -0,0 +1,11 @@ +package ru.clearing.platform.dictionary; + +/** + * Справочник статусов транзакций + *

+ * Dictionary DB table: TRANSACTION_STATUS_DICTIONARY + **/ +public class TransactionStatusDictionary extends AbstractDictionary { + private static final long serialVersionUID = ConstDictionarySerializable.serialVersionUID; + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/EventTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/EventTypeDictionaryMapStore.java new file mode 100644 index 000000000..2cacd8244 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/EventTypeDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.EventTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class EventTypeDictionaryMapStore extends DictionaryTMapStore { + + public EventTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_EventTypeDictionary; + } + + @Override + public String getTableName() { + return "EVENT_TYPE_DICTIONARY"; + } + + @Override + public EventTypeDictionary getDictionaryObject() { + return new EventTypeDictionary(); + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/InOutSDfTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/InOutSDfTypeDictionaryMapStore.java new file mode 100644 index 000000000..1ff0b3e7f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/InOutSDfTypeDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.InOutSDfTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class InOutSDfTypeDictionaryMapStore extends DictionaryTMapStore { + + public InOutSDfTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_InOutSDfTypeDictionary; + } + + @Override + public String getTableName() { + return "IN_OUT_S_DF_TYPE_DICTIONARY"; + } + + @Override + public InOutSDfTypeDictionary getDictionaryObject() { + return new InOutSDfTypeDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/MarketTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/MarketTypeDictionaryMapStore.java new file mode 100644 index 000000000..7342926ee --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/MarketTypeDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.MarketTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class MarketTypeDictionaryMapStore extends DictionaryTMapStore { + + public MarketTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_MarketTypeDictionary; + } + + @Override + public String getTableName() { + return "MARKET_TYPE_DICTIONARY"; + } + + @Override + public MarketTypeDictionary getDictionaryObject() { + return new MarketTypeDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NotificationStatusDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NotificationStatusDictionaryMapStore.java new file mode 100644 index 000000000..1eb7495d7 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/NotificationStatusDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.NotificationStatusDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class NotificationStatusDictionaryMapStore extends DictionaryTMapStore { + + public NotificationStatusDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_NotificationStatusDictionary; + } + + @Override + public String getTableName() { + return "NOTIFICATION_STATUS_DICTIONARY"; + } + + @Override + public NotificationStatusDictionary getDictionaryObject() { + return new NotificationStatusDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ObjectTypeDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ObjectTypeDictionaryMapStore.java new file mode 100644 index 000000000..456ea628f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/ObjectTypeDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.ObjectTypeDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class ObjectTypeDictionaryMapStore extends DictionaryTMapStore { + + public ObjectTypeDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ObjectTypeDictionary; + } + + @Override + public String getTableName() { + return "OBJECT_TYPE_DICTIONARY"; + } + + @Override + public ObjectTypeDictionary getDictionaryObject() { + return new ObjectTypeDictionary(); + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/TransactionStatusDictionaryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/TransactionStatusDictionaryMapStore.java new file mode 100644 index 000000000..59ed1c8ed --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/dictionary/TransactionStatusDictionaryMapStore.java @@ -0,0 +1,31 @@ +package ru.spcex.clearing.imdg.dictionary; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.platform.dictionary.TransactionStatusDictionary; +import ru.spcex.clearing.imdg.base.DictionaryTMapStore; +import ru.spcex.clearing.imdg.IMDGDistributedNames; + +@Component +public class TransactionStatusDictionaryMapStore extends DictionaryTMapStore { + + public TransactionStatusDictionaryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_TransactionStatusDictionary; + } + + @Override + public String getTableName() { + return "TRANSACTION_STATUS_DICTIONARY"; + } + + @Override + public TransactionStatusDictionary getDictionaryObject() { + return new TransactionStatusDictionary(); + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index b7265aba4..55c19946c 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java @@ -197,17 +197,22 @@ public class RunnableMapNamesForTesting { checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_DayStatusDictionary, DayStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_DocumentTypeDictionary, DocumentTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ErrorCodeDictionary, ErrorCodeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_EventTypeDictionary, EventTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_InOutSDfTypeDictionary, InOutSDfTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_InstrumentTypeDictionary, InstrumentTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_LegalKindDictionary, LegalKindDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ManagementJournalPurposeDictionary, ManagementJournalPurposeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ManagementJournalStatusDictionary, ManagementJournalStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ManagementJournalTypeDictionary, ManagementJournalTypeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_MarketTypeDictionary, MarketTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_MoneyFlowSideDictionary, MoneyFlowSideDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_MarketCodeDictionary, MarketCodeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_NotificationStatusDictionary, NotificationStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_OperationStatusDictionary, OperationStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_OperationTypeDictionary, OperationTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_OrganizationTypeDictionary, OrganizationTypeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ObjectTypeDictionary, ObjectTypeDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ParentDictionary, ParentDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_ResultStatusDictionary, ResultStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_SessionStatusDictionary, SessionStatusDictionary.class)); @@ -220,6 +225,7 @@ public class RunnableMapNamesForTesting { checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_TaskDictionary, TaskDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_TaskStatusDictionary, TaskStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_TermTypeDictionary, TermTypeDictionary.class)); + checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_TransactionStatusDictionary, TransactionStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_UserRoleDictionary, UserRoleDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_WorkflowStatusDictionary, WorkflowStatusDictionary.class)); checkerDictionaryMapStores.add(new CheckerDictionaryMapStore<>(IMDGDistributedNames.Map_SectionDictionary, SectionDictionary.class)); diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index a37a64c4b..ab6bcf7ad 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -19,6 +19,7 @@ public final class IMDGDistributedNames { public static final String Map_ClearingAccount = "Map_ClearingAccount"; public static final String Map_ClearingAccountHistory = "Map_ClearingAccountHistory"; public static final String Map_ManagementJournal = "Map_ManagementJournal"; + public static final String Map_NotificationStatusDictionary = "Map_NotificationStatusDictionary"; public static final String Map_Listing = "Map_Listing"; public static final String Map_Market = "Map_Market"; public static final String Map_BankAccount = "Map_BankAccount"; @@ -31,7 +32,8 @@ public final class IMDGDistributedNames { public static final String Map_RelationHistory = "Map_RelationHistory"; public static final String Map_ErrorText = "Map_ErrorText"; public static final String Map_Statement = "Map_Statement"; - public static final String Map_MarketAccess = "Map_MarketAccess"; + public static final String Map_MarketAccess = "Map_MarketAccess"; // todo unused? + public static final String Map_MarketTypeDictionary = "Map_MarketTypeDictionary"; public static final String Map_UserConnect = "Map_UserConnect"; public static final String Map_UserConnectHistory = "Map_UserConnectHistory"; public static final String Map_User = "Map_User"; @@ -43,6 +45,7 @@ public final class IMDGDistributedNames { public static final String Map_PlannerTemplate = "Map_PlannerTemplate"; public static final String Map_InDocumentJournal = "Map_InDocumentJournal"; public static final String Map_OutDocumentJournal = "Map_OutDocumentJournal"; + public static final String Map_ObjectTypeDictionary = "Map_ObjectTypeDictionary"; public static final String Map_SDf01 = "Map_SDf01"; public static final String Map_SDf02 = "Map_SDf02"; public static final String Map_SDf03 = "Map_SDf03"; @@ -79,7 +82,9 @@ public final class IMDGDistributedNames { public static final String Map_ClearingStatusDictionary = "Map_ClearingStatusDictionary"; public static final String Map_CurrencyCodeDictionary = "Map_CurrencyCodeDictionary"; public static final String Map_ErrorCodeDictionary = "Map_ErrorCodeDictionary"; + public static final String Map_EventTypeDictionary = "Map_EventTypeDictionary"; public static final String Map_InOutDirectionDictionary = "Map_InOutDirectionDictionary"; + public static final String Map_InOutSDfTypeDictionary = "Map_InOutSDfTypeDictionary"; public static final String Map_InstrumentTypeDictionary = "Map_InstrumentTypeDictionary"; public static final String Map_ManagementJournalPurposeDictionary = "Map_ManagementJournalPurposeDictionary"; public static final String Map_ManagementJournalStatusDictionary = "Map_ManagementJournalStatusDictionary"; @@ -93,6 +98,7 @@ public final class IMDGDistributedNames { public static final String Map_ServiceStatusDictionary = "Map_ServiceStatusDictionary"; public static final String Map_StatementTypeDictionary = "Map_StatementTypeDictionary"; public static final String Map_TermTypeDictionary = "Map_TermTypeDictionary"; + public static final String Map_TransactionStatusDictionary = "Map_TransactionStatusDictionary"; public static final String Map_CourierTypeDictionary = "Map_CourierTypeDictionary"; public static final String Map_TaskDictionary = "Map_TaskDictionary"; public static final String Map_TaskStatusDictionary = "Map_TaskStatusDictionary"; From c42733812123b4890f882c3b27480b4e3aff3f46 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 10 May 2023 19:52:08 +0300 Subject: [PATCH 30/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../register/AdmittedLiabilitiesRegister.java | 92 ++++++++++ .../register/CoveredLiabilitiesRegister.java | 101 +++++++++++ .../data/register/DepoBalanceRegister.java | 60 +++++++ .../DepoPaymentInstructionRegister.java | 73 ++++++++ .../register/ExcludeLiabilitiesRegister.java | 124 ++++++++++++++ .../data/register/ExecutionRegister.java | 157 ++++++++++++++++++ .../data/register/LiabilitiesRegister.java | 123 ++++++++++++++ .../data/register/MoneyBalanceRegister.java | 97 +++++++++++ .../MoneyPaymentInstructionRegister.java | 74 +++++++++ .../AdmittedLiabilitiesRegisterMapStore.java | 75 +++++++++ .../CoveredLiabilitiesRegisterMapStore.java | 76 +++++++++ .../DepoBalanceRegisterMapStore.java | 67 ++++++++ ...epoPaymentInstructionRegisterMapStore.java | 71 ++++++++ .../ExcludeLiabilitiesRegisterMapStore.java | 84 ++++++++++ .../ExecutionRegisterMapStore.java | 91 ++++++++++ .../LiabilitiesRegisterMapStore.java | 84 ++++++++++ .../MoneyBalanceRegisterMapStore.java | 77 +++++++++ ...neyPaymentInstructionRegisterMapStore.java | 71 ++++++++ .../structure/RunnableMapNamesForTesting.java | 27 +++ .../clearing/imdg/IMDGDistributedNames.java | 9 + 20 files changed, 1633 insertions(+) create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AdmittedLiabilitiesRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CoveredLiabilitiesRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoBalanceRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoPaymentInstructionRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExcludeLiabilitiesRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java new file mode 100644 index 000000000..067ad3e16 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/AdmittedLiabilitiesRegister.java @@ -0,0 +1,92 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; + +/** + * Реестр обязательств, допущенных к клирингу + * + * DB table: ADMITTED_LIABILITIES_REGISTER + **/ +public class AdmittedLiabilitiesRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String companyFullName; + private Long sessionId; + private String securitySymbol; + private String securityFullName; + private Long companyId; + private String clearingCode; + private String account; + private BigDecimal amount; + private LocalDate clearingDate; + + public String getCompanyFullName() { + return companyFullName; + } + public void setCompanyFullName(String value) { + this.companyFullName=value; + } + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + public void setSecuritySymbol(String value) { + this.securitySymbol=value; + } + + public String getSecurityFullName() { + return securityFullName; + } + public void setSecurityFullName(String value) { + this.securityFullName=value; + } + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public String getClearingCode() { + return clearingCode; + } + public void setClearingCode(String value) { + this.clearingCode=value; + } + + public String getAccount() { + return account; + } + public void setAccount(String value) { + this.account=value; + } + + public BigDecimal getAmount() { + return amount; + } + public void setAmount(BigDecimal value) { + this.amount=value; + } + + public LocalDate getClearingDate() { + return clearingDate; + } + public void setClearingDate(LocalDate value) { + this.clearingDate=value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java new file mode 100644 index 000000000..9fbddd902 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/CoveredLiabilitiesRegister.java @@ -0,0 +1,101 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; + +/** + * Реестр обязательств, прошедших процедуру контроля обеспечения + *

+ * DB table: COVERED_LIABILITIES_REGISTER + **/ +public class CoveredLiabilitiesRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String companyFullName; + private Long sessionId; + private String securitySymbol; + private String securityFullName; + private Long companyId; + private String clearingCode; + private String account; + private BigDecimal amount; + private LocalDate clearingDate; + + public String getCompanyFullName() { + return companyFullName; + } + + public void setCompanyFullName(String value) { + this.companyFullName = value; + } + + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long value) { + this.sessionId = value; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + + public void setSecuritySymbol(String value) { + this.securitySymbol = value; + } + + public String getSecurityFullName() { + return securityFullName; + } + + public void setSecurityFullName(String value) { + this.securityFullName = value; + } + + public Long getCompanyId() { + return companyId; + } + + public void setCompanyId(Long value) { + this.companyId = value; + } + + public String getClearingCode() { + return clearingCode; + } + + public void setClearingCode(String value) { + this.clearingCode = value; + } + + public String getAccount() { + return account; + } + + public void setAccount(String value) { + this.account = value; + } + + public BigDecimal getAmount() { + return amount; + } + + public void setAmount(BigDecimal value) { + this.amount = value; + } + + public LocalDate getClearingDate() { + return clearingDate; + } + + public void setClearingDate(LocalDate value) { + this.clearingDate = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java new file mode 100644 index 000000000..4b2611694 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoBalanceRegister.java @@ -0,0 +1,60 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.Instant; + +/** + * Реестр остатков ценных бумаг + * + * DB table: DEPO_BALANCE_REGISTER + **/ +public class DepoBalanceRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long companyId; + private Long sessionId; + private String depoCode; + private BigDecimal quantity; + private String securitySymbol; + + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public String getDepoCode() { + return depoCode; + } + public void setDepoCode(String value) { + this.depoCode=value; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantity(BigDecimal value) { + this.quantity=value; + } + + public String getSecuritySymbol() { + return securitySymbol; + } + public void setSecuritySymbol(String value) { + this.securitySymbol=value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java new file mode 100644 index 000000000..b67352c33 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/DepoPaymentInstructionRegister.java @@ -0,0 +1,73 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; + +import java.math.BigDecimal; + +/** + * Реестр распоряжений, направленных расчетному депозитарию + * + * DB table: DEPO_PAYMENT_INSTRUCTION_REGISTER + **/ +public class DepoPaymentInstructionRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long companyId; + private String tradingClearingRegistryType; + private String tradingClearingRegistry; + private String cbCode; + private BigDecimal quantity; + private Long direction; + private Long sessionId; + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public String getTradingClearingRegistryType() { + return tradingClearingRegistryType; + } + public void setTradingClearingRegistryType(String value) { + this.tradingClearingRegistryType=value; + } + + public String getTradingClearingRegistry() { + return tradingClearingRegistry; + } + public void setTradingClearingRegistry(String value) { + this.tradingClearingRegistry=value; + } + + public String getCbCode() { + return cbCode; + } + public void setCbCode(String value) { + this.cbCode=value; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantity(BigDecimal value) { + this.quantity=value; + } + + public Long getDirection() { + return direction; + } + public void setDirection(Long value) { + this.direction=value; + } + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java new file mode 100644 index 000000000..2a8c8ef71 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExcludeLiabilitiesRegister.java @@ -0,0 +1,124 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * Реестр обязательств, исключенных из клирингового пула + * + * DB table: EXCLUDE_LIABILITIES_REGISTER + **/ +public class ExcludeLiabilitiesRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long sessionId; + private LocalDate validFromDate; + private LocalDate validToDate; + private Long companyId; + private String companyFullName; + private String inn; + private String segment; + private String registryCode; + private String account; + private String registryStatus; + private String currency; + private BigDecimal sumLiabilities; + private LocalDate settlementDate; + + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public LocalDate getValidFromDate() { + return validFromDate; + } + public void setValidFromDate(LocalDate value) { + this.validFromDate=value; + } + + public LocalDate getValidToDate() { + return validToDate; + } + public void setValidToDate(LocalDate value) { + this.validToDate=value; + } + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public String getCompanyFullName() { + return companyFullName; + } + public void setCompanyFullName(String value) { + this.companyFullName=value; + } + + public String getInn() { + return inn; + } + public void setInn(String value) { + this.inn=value; + } + + public String getSegment() { + return segment; + } + public void setSegment(String value) { + this.segment=value; + } + + public String getRegistryCode() { + return registryCode; + } + public void setRegistryCode(String value) { + this.registryCode=value; + } + + public String getAccount() { + return account; + } + public void setAccount(String value) { + this.account=value; + } + + public String getRegistryStatus() { + return registryStatus; + } + public void setRegistryStatus(String value) { + this.registryStatus=value; + } + + public String getCurrency() { + return currency; + } + public void setCurrency(String value) { + this.currency=value; + } + + public BigDecimal getSumLiabilities() { + return sumLiabilities; + } + public void setSumLiabilities(BigDecimal value) { + this.sumLiabilities=value; + } + + public LocalDate getSettlementDate() { + return settlementDate; + } + public void setSettlementDate(LocalDate value) { + this.settlementDate=value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java new file mode 100644 index 000000000..3258f0eab --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ExecutionRegister.java @@ -0,0 +1,157 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; + +/** + * Реестр сделок + * + * DB table: EXECUTION_REGISTER + **/ +public class ExecutionRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private LocalDate tradingDate; + private Long exchangeExecutionId; + private Instant exchangeExecutionTime; + private Long securityId; + private Long sellerId; + private String sellerClearingCode; + private String sellerTradingClearingRegister; + private String sellerMoneyAccount; + private String sellerDepoAccount; + private Long buyerId; + private String buyerClearingCode; + private String buyerTradingClearingRegister; + private String buyerMoneyAccount; + private String buyerDepoAccount; + private BigDecimal amount; + private BigDecimal quantity; + private LocalDate clearingDate; + + public LocalDate getTradingDate() { + return tradingDate; + } + public void setTradingDate(LocalDate value) { + this.tradingDate=value; + } + + public Long getExchangeExecutionId() { + return exchangeExecutionId; + } + public void setExchangeExecutionId(Long value) { + this.exchangeExecutionId=value; + } + + public Instant getExchangeExecutionTime() { + return exchangeExecutionTime; + } + public void setExchangeExecutionTime(Instant value) { + this.exchangeExecutionTime=value; + } + + public Long getSecurityId() { + return securityId; + } + public void setSecurityId(Long value) { + this.securityId=value; + } + + public Long getSellerId() { + return sellerId; + } + public void setSellerId(Long value) { + this.sellerId=value; + } + + public String getSellerClearingCode() { + return sellerClearingCode; + } + public void setSellerClearingCode(String value) { + this.sellerClearingCode=value; + } + + public String getSellerTradingClearingRegister() { + return sellerTradingClearingRegister; + } + public void setSellerTradingClearingRegister(String value) { + this.sellerTradingClearingRegister=value; + } + + public String getSellerMoneyAccount() { + return sellerMoneyAccount; + } + public void setSellerMoneyAccount(String value) { + this.sellerMoneyAccount=value; + } + + public String getSellerDepoAccount() { + return sellerDepoAccount; + } + public void setSellerDepoAccount(String value) { + this.sellerDepoAccount=value; + } + + public Long getBuyerId() { + return buyerId; + } + public void setBuyerId(Long value) { + this.buyerId=value; + } + + public String getBuyerClearingCode() { + return buyerClearingCode; + } + public void setBuyerClearingCode(String value) { + this.buyerClearingCode=value; + } + + public String getBuyerTradingClearingRegister() { + return buyerTradingClearingRegister; + } + public void setBuyerTradingClearingRegister(String value) { + this.buyerTradingClearingRegister=value; + } + + public String getBuyerMoneyAccount() { + return buyerMoneyAccount; + } + public void setBuyerMoneyAccount(String value) { + this.buyerMoneyAccount=value; + } + + public String getBuyerDepoAccount() { + return buyerDepoAccount; + } + public void setBuyerDepoAccount(String value) { + this.buyerDepoAccount=value; + } + + public BigDecimal getAmount() { + return amount; + } + public void setAmount(BigDecimal value) { + this.amount=value; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantity(BigDecimal value) { + this.quantity=value; + } + + + public LocalDate getClearingDate() { + return clearingDate; + } + public void setClearingDate(LocalDate value) { + this.clearingDate=value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java new file mode 100644 index 000000000..c3a7ef58d --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/LiabilitiesRegister.java @@ -0,0 +1,123 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * Реестр учета обязательств + * + * DB table: LIABILITIES_REGISTER + **/ +public class LiabilitiesRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long sessionId; + private LocalDate validFromDate; + private LocalDate validToDate; + private Long companyId; + private String companyFullName; + private String inn; + private String segment; + private String registryCode; + private String account; + private String registryStatus; + private String currency; + private BigDecimal sumLiabilities; + private LocalDate settlementDate; + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public LocalDate getValidFromDate() { + return validFromDate; + } + public void setValidFromDate(LocalDate value) { + this.validFromDate=value; + } + + public LocalDate getValidToDate() { + return validToDate; + } + public void setValidToDate(LocalDate value) { + this.validToDate=value; + } + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + + public String getCompanyFullName() { + return companyFullName; + } + public void setCompanyFullName(String value) { + this.companyFullName=value; + } + + public String getInn() { + return inn; + } + public void setInn(String value) { + this.inn=value; + } + + public String getSegment() { + return segment; + } + public void setSegment(String value) { + this.segment=value; + } + + public String getRegistryCode() { + return registryCode; + } + public void setRegistryCode(String value) { + this.registryCode=value; + } + + public String getAccount() { + return account; + } + public void setAccount(String value) { + this.account=value; + } + + public String getRegistryStatus() { + return registryStatus; + } + public void setRegistryStatus(String value) { + this.registryStatus=value; + } + + public String getCurrency() { + return currency; + } + public void setCurrency(String value) { + this.currency=value; + } + + public BigDecimal getSumLiabilities() { + return sumLiabilities; + } + public void setSumLiabilities(BigDecimal value) { + this.sumLiabilities=value; + } + + public LocalDate getSettlementDate() { + return settlementDate; + } + public void setSettlementDate(LocalDate value) { + this.settlementDate=value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java new file mode 100644 index 000000000..0a46a9e6b --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyBalanceRegister.java @@ -0,0 +1,97 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; + +import java.math.BigDecimal; + +/** + * Реестр остатков денежных средств + * + * DB table: MONEY_BALANCE_REGISTER + **/ +public class MoneyBalanceRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String setHouseName; + private String account; + private String infoAccount; + private BigDecimal remainderSum; + private BigDecimal blockedSum; + private BigDecimal unblockedSum; + private String inn; + private Long sessionId; + private String companyFullName; + private Long companyId; + + public String getSetHouseName() { + return setHouseName; + } + public void setSetHouseName(String value) { + this.setHouseName=value; + } + + public String getAccount() { + return account; + } + public void setAccount(String value) { + this.account=value; + } + + public String getInfoAccount() { + return infoAccount; + } + public void setInfoAccount(String value) { + this.infoAccount=value; + } + + public BigDecimal getRemainderSum() { + return remainderSum; + } + public void setRemainderSum(BigDecimal value) { + this.remainderSum=value; + } + + public BigDecimal getBlockedSum() { + return blockedSum; + } + public void setBlockedSum(BigDecimal value) { + this.blockedSum=value; + } + + public BigDecimal getUnblockedSum() { + return unblockedSum; + } + public void setUnblockedSum(BigDecimal value) { + this.unblockedSum=value; + } + + public String getInn() { + return inn; + } + public void setInn(String value) { + this.inn=value; + } + + public Long getSessionId() { + return sessionId; + } + public void setSessionId(Long value) { + this.sessionId=value; + } + + public String getCompanyFullName() { + return companyFullName; + } + public void setCompanyFullName(String value) { + this.companyFullName=value; + } + + public Long getCompanyId() { + return companyId; + } + public void setCompanyId(Long value) { + this.companyId=value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java new file mode 100644 index 000000000..c9734d18e --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/MoneyPaymentInstructionRegister.java @@ -0,0 +1,74 @@ +package ru.clearing.classes.statics.data.register; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * Реестр распоряжений, направленных расчетной организации + * + * DB table: MONEY_PAYMENT_INSTRUCTION_REGISTER + **/ +public class MoneyPaymentInstructionRegister extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String creditLegAccount; + private BigDecimal creditLegAmount; + private String creditLegCurrencyCode; + private String debitLegAccount; + private String sender; + private String addressee; + private LocalDate clearingDate; + + public String getCreditLegAccount() { + return creditLegAccount; + } + public void setCreditLegAccount(String value) { + this.creditLegAccount=value; + } + + public BigDecimal getCreditLegAmount() { + return creditLegAmount; + } + public void setCreditLegAmount(BigDecimal value) { + this.creditLegAmount=value; + } + + public String getCreditLegCurrencyCode() { + return creditLegCurrencyCode; + } + public void setCreditLegCurrencyCode(String value) { + this.creditLegCurrencyCode=value; + } + + public String getDebitLegAccount() { + return debitLegAccount; + } + public void setDebitLegAccount(String value) { + this.debitLegAccount=value; + } + + public String getSender() { + return sender; + } + public void setSender(String value) { + this.sender=value; + } + + public String getAddressee() { + return addressee; + } + public void setAddressee(String value) { + this.addressee=value; + } + + public LocalDate getClearingDate() { + return clearingDate; + } + public void setClearingDate(LocalDate value) { + this.clearingDate=value; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AdmittedLiabilitiesRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AdmittedLiabilitiesRegisterMapStore.java new file mode 100644 index 000000000..341c7cabe --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/AdmittedLiabilitiesRegisterMapStore.java @@ -0,0 +1,75 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.AdmittedLiabilitiesRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class AdmittedLiabilitiesRegisterMapStore extends TemplateMapStore { + + public AdmittedLiabilitiesRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_AdmittedLiabilitiesRegister; + } + + @Override + public String getTableName() { + return "ADMITTED_LIABILITIES_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "COMPANY_FULL_NAME", "SESSION_ID", "SECURITY_SYMBOL", "SECURITY_FULL_NAME", "COMPANY_ID", "CLEARING_CODE", "ACCOUNT", "AMOUNT", "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" + }; + } + + @Override + public AdmittedLiabilitiesRegister objectReader(ResultSet resultSet) throws SQLException { + AdmittedLiabilitiesRegister object = new AdmittedLiabilitiesRegister(); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); + object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(AdmittedLiabilitiesRegister object) { + Object[] args = new Object[]{ + object.getCompanyFullName(), + object.getSessionId(), + object.getSecuritySymbol(), + object.getSecurityFullName(), + object.getCompanyId(), + object.getClearingCode(), + object.getAccount(), + object.getAmount(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CoveredLiabilitiesRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CoveredLiabilitiesRegisterMapStore.java new file mode 100644 index 000000000..85f1d7956 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/CoveredLiabilitiesRegisterMapStore.java @@ -0,0 +1,76 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.CoveredLiabilitiesRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class CoveredLiabilitiesRegisterMapStore extends TemplateMapStore { + + public CoveredLiabilitiesRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_CoveredLiabilitiesRegister; + } + + @Override + public String getTableName() { + return "COVERED_LIABILITIES_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "COMPANY_FULL_NAME", "SESSION_ID", "SECURITY_SYMBOL", "SECURITY_FULL_NAME", "COMPANY_ID", "CLEARING_CODE", "ACCOUNT", "AMOUNT", "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" + }; + } + + @Override + public CoveredLiabilitiesRegister objectReader(ResultSet resultSet) throws SQLException { + CoveredLiabilitiesRegister object = new CoveredLiabilitiesRegister(); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); + object.setSecurityFullName(resultSet.getObject("SECURITY_FULL_NAME", String.class)); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setClearingCode(resultSet.getObject("CLEARING_CODE", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(CoveredLiabilitiesRegister object) { + Object[] args = new Object[]{ + object.getCompanyFullName(), + object.getSessionId(), + object.getSecuritySymbol(), + object.getSecurityFullName(), + object.getCompanyId(), + object.getClearingCode(), + object.getAccount(), + object.getAmount(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoBalanceRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoBalanceRegisterMapStore.java new file mode 100644 index 000000000..409bd3b7e --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoBalanceRegisterMapStore.java @@ -0,0 +1,67 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.register.DepoBalanceRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class DepoBalanceRegisterMapStore extends TemplateMapStore { + + public DepoBalanceRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_DepoBalanceRegister; + } + + @Override + public String getTableName() { + return "DEPO_BALANCE_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "COMPANY_ID", "SESSION_ID", "DEPO_CODE", "QUANTITY", "SECURITY_SYMBOL" + }; + } + + @Override + public DepoBalanceRegister objectReader(ResultSet resultSet) throws SQLException { + DepoBalanceRegister object = new DepoBalanceRegister(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setDepoCode(resultSet.getObject("DEPO_CODE", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", BigDecimal.class)); + object.setSecuritySymbol(resultSet.getObject("SECURITY_SYMBOL", String.class)); + return object; + } + + @Override + public Object[] objectToField(DepoBalanceRegister object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getCompanyId(), + object.getSessionId(), + object.getDepoCode(), + object.getQuantity(), + object.getSecuritySymbol() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoPaymentInstructionRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoPaymentInstructionRegisterMapStore.java new file mode 100644 index 000000000..fd1795e76 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/DepoPaymentInstructionRegisterMapStore.java @@ -0,0 +1,71 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.DepoPaymentInstructionRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class DepoPaymentInstructionRegisterMapStore extends TemplateMapStore { + + public DepoPaymentInstructionRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_DepoPaymentInstructionRegister; + } + + @Override + public String getTableName() { + return "DEPO_PAYMENT_INSTRUCTION_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "COMPANY_ID", "TRADING_CLEARING_REGISTRY_TYPE", "TRADING_CLEARING_REGISTRY", "CB_CODE", "QUANTITY", "DIRECTION", "SESSION_ID" + }; + } + + @Override + public DepoPaymentInstructionRegister objectReader(ResultSet resultSet) throws SQLException { + DepoPaymentInstructionRegister object = new DepoPaymentInstructionRegister(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setTradingClearingRegistryType(resultSet.getObject("TRADING_CLEARING_REGISTRY_TYPE", String.class)); + object.setTradingClearingRegistry(resultSet.getObject("TRADING_CLEARING_REGISTRY", String.class)); + object.setCbCode(resultSet.getObject("CB_CODE", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", BigDecimal.class)); + object.setDirection(resultSet.getObject("DIRECTION", Long.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(DepoPaymentInstructionRegister object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getCompanyId(), + object.getTradingClearingRegistryType(), + object.getTradingClearingRegistry(), + object.getCbCode(), + object.getQuantity(), + object.getDirection(), + object.getSessionId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExcludeLiabilitiesRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExcludeLiabilitiesRegisterMapStore.java new file mode 100644 index 000000000..01046555b --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExcludeLiabilitiesRegisterMapStore.java @@ -0,0 +1,84 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.register.ExcludeLiabilitiesRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class ExcludeLiabilitiesRegisterMapStore extends TemplateMapStore { + + public ExcludeLiabilitiesRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ExcludeLiabilitiesRegister; + } + + @Override + public String getTableName() { + return "EXCLUDE_LIABILITIES_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "SESSION_ID", "VALID_FROM_DATE", "VALID_TO_DATE", "COMPANY_ID", "COMPANY_FULL_NAME", "INN", "SEGMENT", "REGISTRY_CODE", "ACCOUNT", "REGISTRY_STATUS", "CURRENCY", "SUM_LIABILITIES", "SETTLEMENT_DATE" + }; + } + + @Override + public ExcludeLiabilitiesRegister objectReader(ResultSet resultSet) throws SQLException { + ExcludeLiabilitiesRegister object = new ExcludeLiabilitiesRegister(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setValidFromDate(getLocalDateFromSqlDate(resultSet, "VALID_FROM_DATE")); + object.setValidToDate(getLocalDateFromSqlDate(resultSet, "VALID_TO_DATE")); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setInn(resultSet.getObject("INN", String.class)); + object.setSegment(resultSet.getObject("SEGMENT", String.class)); + object.setRegistryCode(resultSet.getObject("REGISTRY_CODE", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setRegistryStatus(resultSet.getObject("REGISTRY_STATUS", String.class)); + object.setCurrency(resultSet.getObject("CURRENCY", String.class)); + object.setSumLiabilities(resultSet.getObject("SUM_LIABILITIES", BigDecimal.class)); + object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); + return object; + } + + @Override + public Object[] objectToField(ExcludeLiabilitiesRegister object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getSessionId(), + TimeUtil.toDateFromLocalDate(object.getValidFromDate()), + TimeUtil.toDateFromLocalDate(object.getValidToDate()), + object.getCompanyId(), + object.getCompanyFullName(), + object.getInn(), + object.getSegment(), + object.getRegistryCode(), + object.getAccount(), + object.getRegistryStatus(), + object.getCurrency(), + object.getSumLiabilities(), + TimeUtil.toDateFromLocalDate(object.getSettlementDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionRegisterMapStore.java new file mode 100644 index 000000000..1407f4dd2 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/ExecutionRegisterMapStore.java @@ -0,0 +1,91 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.ExecutionRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class ExecutionRegisterMapStore extends TemplateMapStore { + + public ExecutionRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_ExecutionRegister; + } + + @Override + public String getTableName() { + return "EXECUTION_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "TRADING_DATE", "EXCHANGE_EXECUTION_ID", "EXCHANGE_EXECUTION_TIME", "SECURITY_ID", "SELLER_ID", "SELLER_CLEARING_CODE", "SELLER_TRADING_CLEARING_REGISTER", "SELLER_MONEY_ACCOUNT", "SELLER_DEPO_ACCOUNT", "BUYER_ID", "BUYER_CLEARING_CODE", "BUYER_TRADING_CLEARING_REGISTER", "BUYER_MONEY_ACCOUNT", "BUYER_DEPO_ACCOUNT", "AMOUNT", "QUANTITY", "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" + }; + } + + @Override + public ExecutionRegister objectReader(ResultSet resultSet) throws SQLException { + ExecutionRegister object = new ExecutionRegister(); + object.setTradingDate(getLocalDateFromSqlDate(resultSet, "TRADING_DATE")); + object.setExchangeExecutionId(resultSet.getObject("EXCHANGE_EXECUTION_ID", Long.class)); + object.setExchangeExecutionTime(getInstantFromTimestamp(resultSet, "EXCHANGE_EXECUTION_TIME")); + object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); + object.setSellerId(resultSet.getObject("SELLER_ID", Long.class)); + object.setSellerClearingCode(resultSet.getObject("SELLER_CLEARING_CODE", String.class)); + object.setSellerTradingClearingRegister(resultSet.getObject("SELLER_TRADING_CLEARING_REGISTER", String.class)); + object.setSellerMoneyAccount(resultSet.getObject("SELLER_MONEY_ACCOUNT", String.class)); + object.setSellerDepoAccount(resultSet.getObject("SELLER_DEPO_ACCOUNT", String.class)); + object.setBuyerId(resultSet.getObject("BUYER_ID", Long.class)); + object.setBuyerClearingCode(resultSet.getObject("BUYER_CLEARING_CODE", String.class)); + object.setBuyerTradingClearingRegister(resultSet.getObject("BUYER_TRADING_CLEARING_REGISTER", String.class)); + object.setBuyerMoneyAccount(resultSet.getObject("BUYER_MONEY_ACCOUNT", String.class)); + object.setBuyerDepoAccount(resultSet.getObject("BUYER_DEPO_ACCOUNT", String.class)); + object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); + object.setQuantity(resultSet.getObject("QUANTITY", BigDecimal.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(ExecutionRegister object) { + Object[] args = new Object[]{ + TimeUtil.toDateFromLocalDate(object.getTradingDate()), + object.getExchangeExecutionId(), + TimeUtil.toDateFromInstant(object.getExchangeExecutionTime()), + object.getSecurityId(), + object.getSellerId(), + object.getSellerClearingCode(), + object.getSellerTradingClearingRegister(), + object.getSellerMoneyAccount(), + object.getSellerDepoAccount(), + object.getBuyerId(), + object.getBuyerClearingCode(), + object.getBuyerTradingClearingRegister(), + object.getBuyerMoneyAccount(), + object.getBuyerDepoAccount(), + object.getAmount(), + object.getQuantity(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesRegisterMapStore.java new file mode 100644 index 000000000..dbc7e7917 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/LiabilitiesRegisterMapStore.java @@ -0,0 +1,84 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.register.LiabilitiesRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class LiabilitiesRegisterMapStore extends TemplateMapStore { + + public LiabilitiesRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_LiabilitiesRegister; + } + + @Override + public String getTableName() { + return "LIABILITIES_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "CREATED_AT", "UPDATED_AT", "SESSION_ID", "VALID_FROM_DATE", "VALID_TO_DATE", "COMPANY_ID", "COMPANY_FULL_NAME", "INN", "SEGMENT", "REGISTRY_CODE", "ACCOUNT", "REGISTRY_STATUS", "CURRENCY", "SUM_LIABILITIES", "SETTLEMENT_DATE" + }; + } + + @Override + public LiabilitiesRegister objectReader(ResultSet resultSet) throws SQLException { + LiabilitiesRegister object = new LiabilitiesRegister(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setValidFromDate(getLocalDateFromSqlDate(resultSet, "VALID_FROM_DATE")); + object.setValidToDate(getLocalDateFromSqlDate(resultSet, "VALID_TO_DATE")); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setInn(resultSet.getObject("INN", String.class)); + object.setSegment(resultSet.getObject("SEGMENT", String.class)); + object.setRegistryCode(resultSet.getObject("REGISTRY_CODE", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setRegistryStatus(resultSet.getObject("REGISTRY_STATUS", String.class)); + object.setCurrency(resultSet.getObject("CURRENCY", String.class)); + object.setSumLiabilities(resultSet.getObject("SUM_LIABILITIES", BigDecimal.class)); + object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); + return object; + } + + @Override + public Object[] objectToField(LiabilitiesRegister object) { + Object[] args = new Object[]{ + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + object.getSessionId(), + TimeUtil.toDateFromLocalDate(object.getValidFromDate()), + TimeUtil.toDateFromLocalDate(object.getValidToDate()), + object.getCompanyId(), + object.getCompanyFullName(), + object.getInn(), + object.getSegment(), + object.getRegistryCode(), + object.getAccount(), + object.getRegistryStatus(), + object.getCurrency(), + object.getSumLiabilities(), + TimeUtil.toDateFromLocalDate(object.getSettlementDate()) + }; + return args; + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java new file mode 100644 index 000000000..d770db1a8 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyBalanceRegisterMapStore.java @@ -0,0 +1,77 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.register.MoneyBalanceRegister; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class MoneyBalanceRegisterMapStore extends TemplateMapStore { + + public MoneyBalanceRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_MoneyBalanceRegister; + } + + @Override + public String getTableName() { + return "MONEY_BALANCE_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "SET_HOUSE_NAME", "ACCOUNT", "INFO_ACCOUNT", "REMAINDER_SUM", "BLOCKED_SUM", "UNBLOCKED_SUM", "INN", "SESSION_ID", "COMPANY_FULL_NAME", "COMPANY_ID", "ID", "CREATED_AT", "UPDATED_AT" + }; + } + + @Override + public MoneyBalanceRegister objectReader(ResultSet resultSet) throws SQLException { + MoneyBalanceRegister object = new MoneyBalanceRegister(); + object.setSetHouseName(resultSet.getObject("SET_HOUSE_NAME", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setInfoAccount(resultSet.getObject("INFO_ACCOUNT", String.class)); + object.setRemainderSum(resultSet.getObject("REMAINDER_SUM", BigDecimal.class)); + object.setBlockedSum(resultSet.getObject("BLOCKED_SUM", BigDecimal.class)); + object.setUnblockedSum(resultSet.getObject("UNBLOCKED_SUM", BigDecimal.class)); + object.setInn(resultSet.getObject("INN", String.class)); + object.setSessionId(resultSet.getObject("SESSION_ID", Long.class)); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); + object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + return object; + } + + @Override + public Object[] objectToField(MoneyBalanceRegister object) { + Object[] args = new Object[]{ + object.getSetHouseName(), + object.getAccount(), + object.getInfoAccount(), + object.getRemainderSum(), + object.getBlockedSum(), + object.getUnblockedSum(), + object.getInn(), + object.getSessionId(), + object.getCompanyFullName(), + object.getCompanyId(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java new file mode 100644 index 000000000..9f9b59ba9 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/MoneyPaymentInstructionRegisterMapStore.java @@ -0,0 +1,71 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.register.MoneyPaymentInstructionRegister; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class MoneyPaymentInstructionRegisterMapStore extends TemplateMapStore { + + public MoneyPaymentInstructionRegisterMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_MoneyPaymentInstructionRegister; + } + + @Override + public String getTableName() { + return "MONEY_PAYMENT_INSTRUCTION_REGISTER"; + } + + @Override + public String[] getFields() { + return new String[]{ + "CREDIT_LEG_ACCOUNT", "CREDIT_LEG_AMOUNT", "CREDIT_LEG_CURRENCY_CODE", "DEBIT_LEG_ACCOUNT", "SENDER", "ADDRESSEE", "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" + }; + } + + @Override + public MoneyPaymentInstructionRegister objectReader(ResultSet resultSet) throws SQLException { + MoneyPaymentInstructionRegister object = new MoneyPaymentInstructionRegister(); + object.setCreditLegAccount(resultSet.getObject("CREDIT_LEG_ACCOUNT", String.class)); + object.setCreditLegAmount(resultSet.getObject("CREDIT_LEG_AMOUNT", BigDecimal.class)); + object.setCreditLegCurrencyCode(resultSet.getObject("CREDIT_LEG_CURRENCY_CODE", String.class)); + object.setDebitLegAccount(resultSet.getObject("DEBIT_LEG_ACCOUNT", String.class)); + object.setSender(resultSet.getObject("SENDER", String.class)); + object.setAddressee(resultSet.getObject("ADDRESSEE", String.class)); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(MoneyPaymentInstructionRegister object) { + Object[] args = new Object[]{ + object.getCreditLegAccount(), + object.getCreditLegAmount(), + object.getCreditLegCurrencyCode(), + object.getDebitLegAccount(), + object.getSender(), + object.getAddressee(), + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index 55c19946c..7a261636b 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java @@ -253,6 +253,33 @@ public class RunnableMapNamesForTesting { checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ContractRegister, ContractRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_AdmittedLiabilitiesRegister, AdmittedLiabilitiesRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CoveredLiabilitiesRegister, CoveredLiabilitiesRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DepoBalanceRegister, DepoBalanceRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DepoPaymentInstructionRegister, DepoPaymentInstructionRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExcludeLiabilitiesRegister, ExcludeLiabilitiesRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExecutionRegister, ExecutionRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_LiabilitiesRegister, LiabilitiesRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MoneyBalanceRegister, MoneyBalanceRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MoneyPaymentInstructionRegister, MoneyPaymentInstructionRegister.class, + new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Currency, Currency.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index ab6bcf7ad..2d027ab6c 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -125,6 +125,15 @@ public final class IMDGDistributedNames { public static final String Map_ExecutionDepositHistory = "Map_ExecutionDepositHistory"; public static final String Map_ReportRegister = "Map_ReportRegister"; public static final String Map_ContractRegister = "Map_ContractRegister"; + public static final String Map_AdmittedLiabilitiesRegister = "Map_AdmittedLiabilitiesRegister"; + public static final String Map_CoveredLiabilitiesRegister = "Map_CoveredLiabilitiesRegister"; + public static final String Map_DepoBalanceRegister = "Map_DepoBalanceRegister"; + public static final String Map_DepoPaymentInstructionRegister = "Map_DepoPaymentInstructionRegister"; + public static final String Map_ExcludeLiabilitiesRegister = "Map_ExcludeLiabilitiesRegister"; + public static final String Map_ExecutionRegister = "Map_ExecutionRegister"; + public static final String Map_LiabilitiesRegister = "Map_LiabilitiesRegister"; + public static final String Map_MoneyBalanceRegister = "Map_MoneyBalanceRegister"; + public static final String Map_MoneyPaymentInstructionRegister = "Map_MoneyPaymentInstructionRegister"; public static final String Map_VerificationResult = "Map_VerificationResult"; public static final String Map_STrades = "Map_STrades"; public static final String Map_SectionDictionary = "Map_SectionDictionary"; From 3931d453da4757f797ae06e74a2768199ca80c37 Mon Sep 17 00:00:00 2001 From: ialbert Date: Thu, 11 May 2023 12:18:48 +0300 Subject: [PATCH 31/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-290?= =?UTF-8?q?=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20CORRELATION=5FI?= =?UTF-8?q?D=20header=20=D0=B2=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=B0=D1=84=D0=BA=D0=B8,=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20Spring=20ReplyingKafkaTemplate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform-parent/platform-messaging/pom.xml | 4 +++ .../messaging/domain/BaseRequest.java | 12 ++++++++ .../messaging/service/QueueConsumer.java | 28 +++++++++++++++---- .../service/sender/CorrelationHeader.java | 23 +++++++++++++++ .../messaging/service/sender/KafkaSender.java | 12 ++++++-- 5 files changed, 71 insertions(+), 8 deletions(-) create mode 100644 platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/CorrelationHeader.java diff --git a/platform-parent/platform-messaging/pom.xml b/platform-parent/platform-messaging/pom.xml index 40ee2a9a9..0de27f80b 100644 --- a/platform-parent/platform-messaging/pom.xml +++ b/platform-parent/platform-messaging/pom.xml @@ -49,5 +49,9 @@ platform-enum provided + + org.springframework.kafka + spring-kafka + \ No newline at end of file diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/BaseRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/BaseRequest.java index 5672500aa..8fd44bef4 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/BaseRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/BaseRequest.java @@ -1,5 +1,6 @@ package ru.spcex.clearing.platform.messaging.domain; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import ru.spcex.platform.classes.base.interfaces.WithId; @@ -26,6 +27,9 @@ public class BaseRequest implements WithId { @JsonProperty private Long userId; + @JsonIgnore + private byte[] correlationId; + @Override public Long getId() { return id; @@ -58,4 +62,12 @@ public class BaseRequest implements WithId { public void setUserId(Long userId) { this.userId = userId; } + + public byte[] getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(byte[] correlationId) { + this.correlationId = correlationId; + } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java index 0b26d5c03..307432a21 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/QueueConsumer.java @@ -9,13 +9,16 @@ import org.apache.kafka.clients.producer.Producer; import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.clients.producer.RecordMetadata; import org.apache.kafka.common.errors.WakeupException; +import org.apache.kafka.common.header.Header; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.kafka.support.KafkaHeaders; import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.logic.functional.BuilderConsumerStep; import ru.spcex.clearing.platform.messaging.logic.functional.ConsumerSpecificClass; +import ru.spcex.clearing.platform.messaging.service.sender.CorrelationHeader; import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.log.ExceptionUtils; @@ -80,19 +83,24 @@ public class QueueConsumer implements AutoCloseable { consumer.subscribe(callbacks.keySet()); } Object o = null; + Header correlationId = null; int lastErrors = 0; while (!closed.get()) { try { ConsumerRecords records = consumer.poll(Duration.of(10, ChronoUnit.SECONDS)); for (ConsumerRecord next : records) { + correlationId = next.headers().lastHeader(KafkaHeaders.CORRELATION_ID); ConsumerSpecificClass callback = callbacks.get(next.topic()); Class clazz = callback.getClazz(); JavaType payloadType = json.getTypeFactory().constructParametricType(BaseRequest.class, clazz); o = json.readValue((String) next.value(), payloadType); + if (correlationId != null) { + ((BaseRequest) o).setCorrelationId(correlationId.value()); + } if (needsProcessing(next.topic(), (BaseRequest) o)) { Object topicResponse = callback.acceptRaw(o); if (producer != null) { - sendResponse((BaseRequest) o, topicResponse); + sendResponse((BaseRequest) o, topicResponse, correlationId); } } } @@ -100,7 +108,7 @@ public class QueueConsumer implements AutoCloseable { } catch (Throwable e) { log.error(ExceptionUtils.getStackTrace(e)); if (producer != null && o != null) { - sendErrorResponse((BaseRequest) o); + sendErrorResponse((BaseRequest) o, correlationId); } if (lastErrors++ > 20) { log.warn("Too many error at row, {}. Sleep.", lastErrors); @@ -124,7 +132,7 @@ public class QueueConsumer implements AutoCloseable { } //мб перенести в другой класс - private void sendErrorResponse(BaseRequest o) { + private void sendErrorResponse(BaseRequest o, Header correlationId) { outputExecutor.submit(() -> { try { Future send; @@ -136,7 +144,11 @@ public class QueueConsumer implements AutoCloseable { req.setRequestPayload(success); req.setId(o.getId()); req.setActionType(ActionType.SYSTEM); - send = producer.send(new ProducerRecord<>(Consts.REQUEST_INFO_UPDATE, req)); + ProducerRecord respRec = new ProducerRecord<>(Consts.REQUEST_INFO_UPDATE, req); + if (correlationId != null) { + respRec.headers().add(KafkaHeaders.CORRELATION_ID, correlationId.value()); + } + send = producer.send(respRec); send.get(); } catch (Exception e) { if (e instanceof InterruptedException) { @@ -147,7 +159,7 @@ public class QueueConsumer implements AutoCloseable { }); } - private void sendResponse(BaseRequest o, Object response) { + private void sendResponse(BaseRequest o, Object response, Header correlationId) { outputExecutor.submit(() -> { try { Future send; @@ -163,7 +175,11 @@ public class QueueConsumer implements AutoCloseable { success.setStatus(Status.Success); req.setRequestPayload(success); } - send = producer.send(new ProducerRecord<>(Consts.REQUEST_INFO_UPDATE, req)); + ProducerRecord respRec = new ProducerRecord<>(Consts.REQUEST_INFO_UPDATE, req); + if (correlationId != null) { + respRec.headers().add(new CorrelationHeader(correlationId.value().clone())); + } + send = producer.send(respRec); send.get(); } catch (Exception e) { log.error(ExceptionUtils.getStackTrace(e)); diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/CorrelationHeader.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/CorrelationHeader.java new file mode 100644 index 000000000..83f0c7c8f --- /dev/null +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/CorrelationHeader.java @@ -0,0 +1,23 @@ +package ru.spcex.clearing.platform.messaging.service.sender; + +import org.apache.kafka.common.header.Header; +import org.springframework.kafka.support.KafkaHeaders; + +public class CorrelationHeader implements Header { + + private final byte[] correlationId; + + public CorrelationHeader(byte[] correlationId) { + this.correlationId = correlationId; + } + + @Override + public String key() { + return KafkaHeaders.CORRELATION_ID; + } + + @Override + public byte[] value() { + return correlationId; + } +} diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java index 613966cc8..35617813f 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/service/sender/KafkaSender.java @@ -34,14 +34,17 @@ public class KafkaSender { return new KafkaSenderBuilderImpl(); } - - public Long sendRequestToQueue(String destination, Object requestPayload) { + public Long sendRequestToQueue(String destination, Object requestPayload, byte[] correlationId) { BaseRequest request = new BaseRequest<>(); request.setId(idGenerator.get()); request.setActionType(ActionType.SYSTEM); request.setRequestPayload(requestPayload); //сохраняет данные о запросе в хранилище saveRequestToStorage(destination, request); + ProducerRecord> prdRec = new ProducerRecord<>(destination, request); + if (correlationId != null) { + prdRec.headers().add(new CorrelationHeader(correlationId.clone())); + } Future send = kafka.send(new ProducerRecord<>(destination, request)); try { send.get(); @@ -55,6 +58,11 @@ public class KafkaSender { return request.getId(); } + + public Long sendRequestToQueue(String destination, Object requestPayload) { + return sendRequestToQueue(destination, requestPayload, null); + } + private void saveRequestToStorage(String destination, BaseRequest request) { if (!saveRequestInfo) { return; From 8eb1b699027d8979fc3443ca9e01f2c1d3659439 Mon Sep 17 00:00:00 2001 From: ialbert Date: Thu, 11 May 2023 12:48:34 +0300 Subject: [PATCH 32/60] http://jira.mfd.msk:8088/browse/CLS-277 --- .../ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java index 8d49ef72e..c60bb0930 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/SdfCreatorBySTLDPayment.java @@ -3,9 +3,10 @@ package ru.spcex.clearing.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.ClearingMemberCategory; +import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.payment.PaymentInstruction; import ru.clearing.classes.statics.data.sdf.SDf03; import ru.clearing.classes.statics.data.sdf.SDf11; @@ -43,7 +44,7 @@ public class SdfCreatorBySTLDPayment { private final KafkaSender kafkaSender; @Autowired - public SdfCreatorBySTLDPayment(ImdgProvider imdgProvider, PaymentInstructionSorter senderGroupSorter, KafkaSender kafkaSender) { + public SdfCreatorBySTLDPayment(ImdgProvider imdgProvider, PaymentInstructionSorter senderGroupSorter, @Qualifier("kafkaSender") KafkaSender kafkaSender) { this.paymentImdgs = imdgProvider.getImdg(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class); this.clearingMemberCategoryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class); this.sdf03Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf03, SDf03.class); From 9bba734885238552c60a1a4184990e3f942f94e3 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Thu, 11 May 2023 13:49:48 +0300 Subject: [PATCH 33/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-262?= =?UTF-8?q?=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=BD=D1=83=D1=8E=20=D0=BB=D0=BE=D0=B3=D0=B8?= =?UTF-8?q?=D0=BA=D1=83=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20(=D0=BD=D0=B5=D0=BE?= =?UTF-8?q?=D0=B1=D1=85=D0=BE=D0=B4=D0=B8=D0=BC=D0=BE=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=A2=D0=97).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lim/exporter/config/ImdgConfig.java | 46 +++++++++ .../services/AbstractExporterService.java | 9 +- .../services/MoneyExporterService.java | 93 +++++++++++++++++-- .../services/SecurityExporterService.java | 69 ++++++++++++-- 4 files changed, 201 insertions(+), 16 deletions(-) create mode 100644 clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/ImdgConfig.java diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/ImdgConfig.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/ImdgConfig.java new file mode 100644 index 000000000..34ed1dcd9 --- /dev/null +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/config/ImdgConfig.java @@ -0,0 +1,46 @@ +package ru.spcex.clearing.lim.exporter.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import ru.spcex.clearing.lim.exporter.config.settings.ExportLimServiceSettings; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.iml.hazelcast.service.HazelcastService; + +@Configuration +public class ImdgConfig { + private static ThreadPoolTaskExecutor createThreadPoolTaskExecutor(int maxPoolSz, boolean waitForCompletion) { + ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor(); + if (maxPoolSz > 2) { + pool.setKeepAliveSeconds(60); + pool.setAllowCoreThreadTimeOut(true); + } + pool.setCorePoolSize(maxPoolSz); + pool.setWaitForTasksToCompleteOnShutdown(waitForCompletion); + return pool; + } + + @Bean(name = "taskExecutorHazelcastClientInitializer") + public ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer() { + return createThreadPoolTaskExecutor(1, true); + } + + @Bean(name = "taskExecutorIdGeneratorAwaiter") + public ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter() { + return createThreadPoolTaskExecutor(1, false); + } + + @Autowired + @Bean + public ImdgProvider imdgProvider( + @Qualifier("taskExecutorHazelcastClientInitializer") ThreadPoolTaskExecutor taskExecutorHazelcastClientInitializer, + @Qualifier("taskExecutorIdGeneratorAwaiter") ThreadPoolTaskExecutor taskExecutorIdGeneratorAwaiter, + ExportLimServiceSettings settings) { + return new HazelcastService(taskExecutorHazelcastClientInitializer, + taskExecutorIdGeneratorAwaiter, + settings.getHazelcast()); + } + +} diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java index 8d1023274..61cb29394 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/AbstractExporterService.java @@ -1,5 +1,7 @@ package ru.spcex.clearing.lim.exporter.services; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import ru.spcex.clearing.lim.exporter.config.SFTPConfig; import java.io.File; @@ -11,7 +13,7 @@ import java.time.format.DateTimeFormatter; import java.util.Collection; public abstract class AbstractExporterService { - + private final Logger log = LoggerFactory.getLogger(getClass()); private static final DateTimeFormatter dtFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); private final SFTPConfig.LimGateway gateway; @@ -21,7 +23,9 @@ public abstract class AbstractExporterService { public abstract Collection getLimFileRows(); public abstract String getTargetFileName(); + public void process() { + log.debug("Start export {} Lim file", getTargetFileName()); String fileName = getTargetFileName(); File limFile = new File(fileName); @@ -29,8 +33,11 @@ public abstract class AbstractExporterService { try { Files.write(limFilePath, getLimFileRows()); gateway.sendToSftp(limFile); + + log.debug("Successfully exported {} file", fileName); Files.deleteIfExists(limFilePath); } catch (IOException e) { + log.error("Failed export {} file", fileName); throw new RuntimeException(e); } } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java index 057263e9b..c66f61648 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/MoneyExporterService.java @@ -1,27 +1,104 @@ package ru.spcex.clearing.lim.exporter.services; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.registry.Registry; +import ru.clearing.classes.statics.data.registry.TradingClearingRegistry; +import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.lim.exporter.config.SFTPConfig; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; -import java.util.Arrays; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class MoneyExporterService extends AbstractExporterService { + private final Logger log = LoggerFactory.getLogger(getClass()); + private final Imdg registryImdg; + private final List validStatus = List.of("ACTV", "ROPN"); + private final Imdg tradingClearingRegistryImdg; - public MoneyExporterService(SFTPConfig.LimGateway gateway) { + public MoneyExporterService(SFTPConfig.LimGateway gateway, ImdgProvider imdgProvider) { super(gateway); - } - - @Override - public Collection getLimFileRows(){ - List limFileRows = Arrays.asList("a", "b", "c"); - return limFileRows; + this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); + this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class); } @Override public String getTargetFileName() { return prepareFileName("money"); } + + @Override + public Collection getLimFileRows() { + log.debug("Started loading and formation of money file lines"); + LocalDate currentDate = LocalDate.now(); + List limFileRows = new ArrayList<>(); + Collection registriesA = registryImdg.getCollectionObjectsByFieldValues( + Map.of("registryDesignation", "A", + "registryInstrumentType", "M", + "registryCode", "F", + "clearingDate", currentDate)); + Collection registriesD = registryImdg.getCollectionObjectsByFieldValues( + Map.of("registryDesignation", "D", + "registryInstrumentType", "M", + "registryCode", "T", + "clearingDate", currentDate)); + Map> byTcrA = registriesA.stream() + .collect(Collectors.groupingBy(Registry::getTradingClearingRegistry)); + Map> byTcrD = registriesD.stream() + .collect(Collectors.groupingBy(Registry::getTradingClearingRegistry)); + + for(Map.Entry> entryA : byTcrA.entrySet()){ + List registriesListA = entryA.getValue(); + List registriesListB = byTcrD.get(entryA.getKey()); + for (Registry registry : registriesListA){ + if(checkNotBloked(registry)){ + //из ТЗ пока не понятно как соотнести Registry из registriesListA и registriesListB по валюте(RUB, USD) и вычислить остаток на денежном счете +// limFileRows.add(getRow(...)); + } + } + } + log.debug("Successfully completed the formation of rows: {} for export money", limFileRows.size()); + return limFileRows; + } + + private boolean checkNotBloked(Registry registry){ + TradingClearingRegistry tradingClearingRegistry = tradingClearingRegistryImdg.getSingleObjectByID(registry.getTradingClearingRegistryId()); + return validStatus.contains(tradingClearingRegistry.getStatus()); + } + + //поменяется при обновлении ТЗ + private String getRow(Registry registryA, Registry registryB){ + StringBuilder row = new StringBuilder(); + + row.append("MONEY: FIRM_ID = "); + row.append(registryA.getTradingCode()); + + row.append("; TAG = SPVB"); + + row.append("; CURR_CODE = "); +// MoneyMarketSecurity mms = moneyMarketSecurityMap.getSingleObjectByFieldValues(Map.of("securityId", )); + + row.append("; CLIENT_CODE = "); + row.append(registryA.getTradingClearingRegistry()); + + row.append("; OPEN_BALANCE = "); + BigDecimal balance = registryA.getBalance() != null ? + registryB.getBalance() != null ? registryA.getBalance().subtract(registryB.getBalance()) : registryA.getBalance() : + BigDecimal.ZERO; + row.append(balance); + + row.append("; OPEN_LIMIT = 0.00"); + + row.append("; LIMIT_KIND = 0;"); + return row.toString(); + } } diff --git a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java index 254f89ab0..206bbfb42 100644 --- a/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java +++ b/clearing-parent/lim-exporter/src/main/java/ru/spcex/clearing/lim/exporter/services/SecurityExporterService.java @@ -1,26 +1,81 @@ package ru.spcex.clearing.lim.exporter.services; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import ru.clearing.classes.statics.data.registry.Registry; +import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.lim.exporter.config.SFTPConfig; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; -import java.util.Arrays; +import java.time.LocalDate; +import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; @Service public class SecurityExporterService extends AbstractExporterService { - public SecurityExporterService(SFTPConfig.LimGateway gateway) { + private final Logger log = LoggerFactory.getLogger(getClass()); + + private final Imdg registryImdg; + + public SecurityExporterService(SFTPConfig.LimGateway gateway, ImdgProvider imdgProvider) { super(gateway); + this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); } - @Override - public Collection getLimFileRows(){ - List limFileRows = Arrays.asList("a", "b", "c"); - return limFileRows; - } @Override public String getTargetFileName() { return prepareFileName("security"); } + + @Override + public Collection getLimFileRows(){ + log.debug("Started loading and formation of DEPO file lines"); + LocalDate currentDate = LocalDate.now(); + List limFileRows = new ArrayList<>(); + Collection registries = registryImdg.getCollectionObjectsByFieldValues( + Map.of("registryDesignation", "A", + "registryInstrumentType", "S", + "registryCode", "T", + "clearingDate", currentDate)); + for (Registry registry : registries){ + limFileRows.add(getRow(registry)); + } + log.debug("Successfully completed the formation of rows: {} for export DEPO", limFileRows.size()); + return limFileRows; + } + + private String getRow(Registry registry){ + StringBuilder row = new StringBuilder(); + + row.append("DEPO: FIRM_ID = "); + row.append(registry.getTradingCode()); + + row.append("; SECCODE = "); + row.append(getSecurityShortName(registry)); + + row.append("; CLIENT_CODE = "); + row.append(registry.getTradingClearingRegistry()); + + row.append("; OPEN_BALANCE = "); + row.append(registry.getBalance()); + + row.append("; OPEN_LIMIT = 0"); + + row.append("; TRDACCID = "); + row.append(registry.getTradingClearingRegistry()); + + row.append("; LIMIT_KIND = 0;"); + + return row.toString(); + } + + //скорее всего в новой редакции ТЗ не понадобится + private String getSecurityShortName(Registry registry){ + return null; + } } From c752efceec1ad8cc4e6976d7e7510e708e5620df Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 11 May 2023 14:20:11 +0300 Subject: [PATCH 34/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D1=8B=20(=D0=BD=D0=B5=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BF=D0=B8=D0=BB=D0=B8=D1=80=D1=83=D0=B5=D1=82?= =?UTF-8?q?=D1=81=D1=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/misc/MarketDataLiquidation.java | 45 ++ .../statics/data/misc/Notification.java | 6 +- .../data/misc/NotificationHistory.java | 28 ++ .../statics/data/payment/Operation.java | 61 +++ .../data/payment/PaymentInstruction.java | 197 ++++---- .../data/register/ContractRegister.java | 6 +- .../statics/data/register/ReportRegister.java | 3 + .../classes/statics/data/sdf/SDf01.java | 2 +- .../classes/statics/data/sdf/SDf02.java | 11 +- .../classes/statics/data/sdf/SDf03.java | 235 +--------- .../classes/statics/data/sdf/SDf04.java | 237 +--------- .../classes/statics/data/sdf/SDf06.java | 135 ++++++ .../classes/statics/data/sdf/SDf07.java | 144 ++++++ .../classes/statics/data/sdf/SDf08.java | 67 ++- .../classes/statics/data/sdf/SDf09.java | 78 ++-- .../classes/statics/data/sdf/SDf10.java | 85 ++-- .../classes/statics/data/sdf/SDf11.java | 424 ++---------------- .../classes/statics/data/sdf/SDf12.java | 74 +-- .../classes/statics/data/sdf/SDf13.java | 413 ++--------------- .../classes/statics/data/sdf/SDf14.java | 54 +++ .../classes/statics/data/sdf/SDf20.java | 134 ++++++ .../classes/statics/data/sdf/SDf54.java | 395 ++++++++++++++++ .../classes/statics/data/sdf/SDf55.java | 404 +++++++++++++++++ .../classes/statics/data/sdf/SDf56.java | 79 ++++ .../classes/statics/data/sdf/SDf57.java | 377 ++++++++++++++++ .../statics/data/statement/Statement.java | 116 ++--- .../NotificationHistoryMapStore.java | 57 +++ .../businessobject/OperationMapStore.java | 66 +++ .../businessobject/StatementMapStore.java | 30 +- .../imdg/object/ContractRegisterMapStore.java | 2 +- .../object/MarketDataLiquidationMapStore.java | 60 +++ .../imdg/object/NotificationMapStore.java | 64 ++- .../object/PaymentInstructionMapStore.java | 139 +++--- .../clearing/imdg/object/SDf02MapStore.java | 6 +- .../clearing/imdg/object/SDf03MapStore.java | 57 +-- .../clearing/imdg/object/SDf04MapStore.java | 107 ++--- .../clearing/imdg/object/SDf06MapStore.java | 80 ++++ .../clearing/imdg/object/SDf07MapStore.java | 81 ++++ .../clearing/imdg/object/SDf08MapStore.java | 18 +- .../clearing/imdg/object/SDf09MapStore.java | 31 +- .../clearing/imdg/object/SDf10MapStore.java | 35 +- .../clearing/imdg/object/SDf11MapStore.java | 116 +---- .../clearing/imdg/object/SDf12MapStore.java | 25 +- .../clearing/imdg/object/SDf13MapStore.java | 108 +---- .../clearing/imdg/object/SDf14MapStore.java | 61 +++ .../clearing/imdg/object/SDf20MapStore.java | 78 ++++ .../clearing/imdg/object/SDf54MapStore.java | 137 ++++++ .../clearing/imdg/object/SDf55MapStore.java | 138 ++++++ .../clearing/imdg/object/SDf56MapStore.java | 66 +++ .../clearing/imdg/object/SDf57MapStore.java | 132 ++++++ .../imdg/services/UpdateMapService.java | 6 + .../structure/RunnableMapNamesForTesting.java | 13 +- .../clearing/imdg/IMDGDistributedNames.java | 17 +- 53 files changed, 3509 insertions(+), 2031 deletions(-) create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketDataLiquidation.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/NotificationHistory.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/Operation.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf06.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf07.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf14.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf20.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf54.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf55.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf56.java create mode 100644 clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf57.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/NotificationHistoryMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/OperationMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MarketDataLiquidationMapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf06MapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf07MapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf14MapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf20MapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf54MapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf55MapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf56MapStore.java create mode 100644 clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf57MapStore.java diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketDataLiquidation.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketDataLiquidation.java new file mode 100644 index 000000000..066986ea2 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/MarketDataLiquidation.java @@ -0,0 +1,45 @@ +package ru.clearing.classes.statics.data.misc; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.LocalDate; + +/** + * Статичная ценовая информация для ликвидации активов + *

+ * DB table: MARKET_DATA_LIQUIDATION + **/ +public class MarketDataLiquidation extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long securityId; + private BigDecimal price; + private LocalDate clearingDate; + + public Long getSecurityId() { + return securityId; + } + + public void setSecurityId(Long value) { + this.securityId = value; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal value) { + this.price = value; + } + + public LocalDate getClearingDate() { + return clearingDate; + } + + public void setClearingDate(LocalDate value) { + this.clearingDate = value; + } + +} diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/Notification.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/Notification.java index df2b6e295..4474adea4 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/Notification.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/Notification.java @@ -13,7 +13,7 @@ public class Notification extends BusinessObject { private Long senderId; private Long addresseeId; private String objectType; - private Instant objectId; + private Long objectId; private String notificationStatus; public LocalDate getClearingDate() { @@ -48,11 +48,11 @@ public class Notification extends BusinessObject { this.objectType = objectType; } - public Instant getObjectId() { + public Long getObjectId() { return objectId; } - public void setObjectId(Instant objectId) { + public void setObjectId(Long objectId) { this.objectId = objectId; } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/NotificationHistory.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/NotificationHistory.java new file mode 100644 index 000000000..bb774c91c --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/misc/NotificationHistory.java @@ -0,0 +1,28 @@ +package ru.clearing.classes.statics.data.misc; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessEvent; + +import java.io.Serial; + +/** + * Изменение состояния объекта Сообщения + *

+ * DB table: NOTIFICATION_HISTORY + **/ +public class NotificationHistory extends BusinessEvent { + @Serial + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Notification object; + + @Override + public Notification getObject() { + return object; + } + + @Override + public void setObject(Notification object) { + this.object = object; + } +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/Operation.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/Operation.java new file mode 100644 index 000000000..f8a8f5d0b --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/Operation.java @@ -0,0 +1,61 @@ +package ru.clearing.classes.statics.data.payment; + +import ru.clearing.classes.ConstSerializable; +import ru.clearing.classes.objects.BusinessObject; +import java.time.LocalDate; + +/** + * Проводки + * + * DB table: OPERATION + **/ +public class Operation extends BusinessObject { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long addresseeId; + private Long senderId; + private LocalDate clearingDate; + private Long operationTypeId; + private String operationStatus; + + public Long getAddresseeId() { + return addresseeId; + } + + public void setAddresseeId(Long value) { + this.addresseeId = value; + } + + public Long getSenderId() { + return senderId; + } + + public void setSenderId(Long value) { + this.senderId = value; + } + + public LocalDate getClearingDate() { + return clearingDate; + } + + public void setClearingDate(LocalDate value) { + this.clearingDate = value; + } + + public Long getOperationTypeId() { + return operationTypeId; + } + + public void setOperationTypeId(Long value) { + this.operationTypeId = value; + } + + public String getOperationStatus() { + return operationStatus; + } + + public void setOperationStatus(String value) { + this.operationStatus = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/PaymentInstruction.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/PaymentInstruction.java index d9e54e5e4..7370f7111 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/PaymentInstruction.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/payment/PaymentInstruction.java @@ -3,35 +3,40 @@ package ru.clearing.classes.statics.data.payment; import ru.clearing.classes.ConstSerializable; import ru.clearing.classes.objects.BusinessObject; +import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; public class PaymentInstruction extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private Long senderId; // type="1" - private Long addresseeId; // type="1" - private String adresseeBic; // type="2" - private String payeeBankName; // type="2" - private String payeeBic; // type="2" - private String addresseeBankName; // type="2" - private Instant paymentDate; // type="4" - private String paymentPurpose; // type="2" - private LocalDate settlementDate; // type="6" - private Long creditLegAmount; // type="1" - private Long debitLegAmount; // type="1" - private Long creditLegAccountId; // type="1" - private String creditCsAccount; // type="2" - private String creditLegAccount; // type="2" - private Long debitLegAccountId; // type="1" - private String debitCsAccount; // type="2" - private String debitLegAccount; // type="2" - private Long creditLegDirection; // type="1" - private Long debitLegDirection; // type="1" - private String creditLegCurrencyCode; // type="12" - private String debitLegCurrencyCode; // type="12" - private LocalDate clearingDate; // type="6" - private String transactionStatus; // type="12" - private String documentNumber; // type="2" + + private Long senderId; + private Long addresseeId; + private String payeeBic; + private String adresseeBic; + private String payeeBankName; + private String addresseeBankName; + private Instant paymentDate; + private String paymentPurpose; + private LocalDate settlementDate; + private BigDecimal creditLeg_amount; + private BigDecimal debitLeg_amount; + private Long creditLeg_accountId; + private String credit_csAccount; + private String creditLeg_account; + private Long debitLeg_accountId; + private String debit_csAccount; + private String debitLeg_account; + private String creditLeg_direction; + private String debitLeg_direction; + private String creditLeg_currencyCode; + private String debitLeg_currencyCode; + private Long creditLeg_securityId; + private Long debitLeg_securityId; + private String transactionStatus; + private String documentNumber; + private LocalDate clearingDate; + private Long sessionId; public Long getSenderId() { return senderId; @@ -49,6 +54,14 @@ public class PaymentInstruction extends BusinessObject { this.addresseeId = addresseeId; } + public String getPayeeBic() { + return payeeBic; + } + + public void setPayeeBic(String payeeBic) { + this.payeeBic = payeeBic; + } + public String getAdresseeBic() { return adresseeBic; } @@ -65,14 +78,6 @@ public class PaymentInstruction extends BusinessObject { this.payeeBankName = payeeBankName; } - public String getPayeeBic() { - return payeeBic; - } - - public void setPayeeBic(String payeeBic) { - this.payeeBic = payeeBic; - } - public String getAddresseeBankName() { return addresseeBankName; } @@ -105,108 +110,116 @@ public class PaymentInstruction extends BusinessObject { this.settlementDate = settlementDate; } - public Long getCreditLegAmount() { - return creditLegAmount; + public BigDecimal getCreditLeg_amount() { + return creditLeg_amount; } - public void setCreditLegAmount(Long creditLegAmount) { - this.creditLegAmount = creditLegAmount; + public void setCreditLeg_amount(BigDecimal creditLeg_amount) { + this.creditLeg_amount = creditLeg_amount; } - public Long getDebitLegAmount() { - return debitLegAmount; + public BigDecimal getDebitLeg_amount() { + return debitLeg_amount; } - public void setDebitLegAmount(Long debitLegAmount) { - this.debitLegAmount = debitLegAmount; + public void setDebitLeg_amount(BigDecimal debitLeg_amount) { + this.debitLeg_amount = debitLeg_amount; } - public Long getCreditLegAccountId() { - return creditLegAccountId; + public Long getCreditLeg_accountId() { + return creditLeg_accountId; } - public void setCreditLegAccountId(Long creditLegAccountId) { - this.creditLegAccountId = creditLegAccountId; + public void setCreditLeg_accountId(Long creditLeg_accountId) { + this.creditLeg_accountId = creditLeg_accountId; } - public String getCreditCsAccount() { - return creditCsAccount; + public String getCredit_csAccount() { + return credit_csAccount; } - public void setCreditCsAccount(String creditCsAccount) { - this.creditCsAccount = creditCsAccount; + public void setCredit_csAccount(String credit_csAccount) { + this.credit_csAccount = credit_csAccount; } - public String getCreditLegAccount() { - return creditLegAccount; + public String getCreditLeg_account() { + return creditLeg_account; } - public void setCreditLegAccount(String creditLegAccount) { - this.creditLegAccount = creditLegAccount; + public void setCreditLeg_account(String creditLeg_account) { + this.creditLeg_account = creditLeg_account; } - public Long getDebitLegAccountId() { - return debitLegAccountId; + public Long getDebitLeg_accountId() { + return debitLeg_accountId; } - public void setDebitLegAccountId(Long debitLegAccountId) { - this.debitLegAccountId = debitLegAccountId; + public void setDebitLeg_accountId(Long debitLeg_accountId) { + this.debitLeg_accountId = debitLeg_accountId; } - public String getDebitCsAccount() { - return debitCsAccount; + public String getDebit_csAccount() { + return debit_csAccount; } - public void setDebitCsAccount(String debitCsAccount) { - this.debitCsAccount = debitCsAccount; + public void setDebit_csAccount(String debit_csAccount) { + this.debit_csAccount = debit_csAccount; } - public String getDebitLegAccount() { - return debitLegAccount; + public String getDebitLeg_account() { + return debitLeg_account; } - public void setDebitLegAccount(String debitLegAccount) { - this.debitLegAccount = debitLegAccount; + public void setDebitLeg_account(String debitLeg_account) { + this.debitLeg_account = debitLeg_account; } - public Long getCreditLegDirection() { - return creditLegDirection; + public String getCreditLeg_direction() { + return creditLeg_direction; } - public void setCreditLegDirection(Long creditLegDirection) { - this.creditLegDirection = creditLegDirection; + public void setCreditLeg_direction(String creditLeg_direction) { + this.creditLeg_direction = creditLeg_direction; } - public Long getDebitLegDirection() { - return debitLegDirection; + public String getDebitLeg_direction() { + return debitLeg_direction; } - public void setDebitLegDirection(Long debitLegDirection) { - this.debitLegDirection = debitLegDirection; + public void setDebitLeg_direction(String debitLeg_direction) { + this.debitLeg_direction = debitLeg_direction; } - public String getCreditLegCurrencyCode() { - return creditLegCurrencyCode; + public String getCreditLeg_currencyCode() { + return creditLeg_currencyCode; } - public void setCreditLegCurrencyCode(String creditLegCurrencyCode) { - this.creditLegCurrencyCode = creditLegCurrencyCode; + public void setCreditLeg_currencyCode(String creditLeg_currencyCode) { + this.creditLeg_currencyCode = creditLeg_currencyCode; } - public String getDebitLegCurrencyCode() { - return debitLegCurrencyCode; + public String getDebitLeg_currencyCode() { + return debitLeg_currencyCode; } - public void setDebitLegCurrencyCode(String debitLegCurrencyCode) { - this.debitLegCurrencyCode = debitLegCurrencyCode; + public void setDebitLeg_currencyCode(String debitLeg_currencyCode) { + this.debitLeg_currencyCode = debitLeg_currencyCode; } - public LocalDate getClearingDate() { - return clearingDate; + public Long getCreditLeg_securityId() { + return creditLeg_securityId; } - public void setClearingDate(LocalDate clearingDate) { - this.clearingDate = clearingDate; + public void setCreditLeg_securityId(Long creditLeg_securityId) { + this.creditLeg_securityId = creditLeg_securityId; + } + + public Long getDebitLeg_securityId() { + return debitLeg_securityId; + } + + public void setDebitLeg_securityId(Long debitLeg_securityId) { + this.debitLeg_securityId = debitLeg_securityId; } public String getTransactionStatus() { @@ -224,4 +237,20 @@ public class PaymentInstruction extends BusinessObject { public void setDocumentNumber(String documentNumber) { this.documentNumber = documentNumber; } + + public LocalDate getClearingDate() { + return clearingDate; + } + + public void setClearingDate(LocalDate clearingDate) { + this.clearingDate = clearingDate; + } + + public Long getSessionId() { + return sessionId; + } + + public void setSessionId(Long sessionId) { + this.sessionId = sessionId; + } } \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ContractRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ContractRegister.java index 186f2d69f..abc1f6f44 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ContractRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ContractRegister.java @@ -11,7 +11,7 @@ public class ContractRegister extends BusinessObject { private String name; private String number; private LocalDate issueDate; - private Long companyFullName; + private String companyFullName; private Long companyId; private String documentType; private String issuePlace; @@ -47,11 +47,11 @@ public class ContractRegister extends BusinessObject { this.issueDate = issueDate; } - public Long getCompanyFullName() { + public String getCompanyFullName() { return companyFullName; } - public void setCompanyFullName(Long companyFullName) { + public void setCompanyFullName(String companyFullName) { this.companyFullName = companyFullName; } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ReportRegister.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ReportRegister.java index 6cda6e948..b15481ac9 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ReportRegister.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/register/ReportRegister.java @@ -5,6 +5,9 @@ import ru.clearing.classes.objects.BusinessObject; import java.time.LocalDate; +/** + * DB table: REPORT_REGISTER + */ public class ReportRegister extends BusinessObject { private static final long serialVersionUID = ConstSerializable.serialVersionUID; diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf01.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf01.java index 2a4e77b3e..d17918ae7 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf01.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf01.java @@ -8,7 +8,7 @@ import ru.spcex.platform.classes.base.interfaces.WithMarket; import java.time.Instant; /** - * ДФ-01 Информация о денежных средствах, находящихся на торговых банковских счетах Участников клиринга + * ДФ-01 Информации о денежных средствах, находящихся на торговых банковских счетах участников клиринга *

* DB table: S_DF01 **/ diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf02.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf02.java index d905b58ab..3d2608149 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf02.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf02.java @@ -29,7 +29,7 @@ public class SDf02 extends SpcexObjectBase implements WithAccount { private String result; private Instant generationTime; private Long generationId; - private Long inSDf01Id; + private Long inSDfId; public String getCurr_code() { return curr_code; @@ -152,12 +152,11 @@ public class SDf02 extends SpcexObjectBase implements WithAccount { this.generationId = value; } - public Long getInSDf01Id() { - return inSDf01Id; + public Long getInSDfId() { + return inSDfId; } - public void setInSDf01Id(Long value) { - this.inSDf01Id = value; + public void setInSDfId(Long inSDfId) { + this.inSDfId = inSDfId; } - } \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf03.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf03.java index a8ab57740..fd41ea0ea 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf03.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf03.java @@ -6,7 +6,7 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; /** - * ДФ-03 Сводное платежное поручение + * ДФ-03 Реестр платежных поручений *

* DB table: S_DF03 **/ @@ -17,15 +17,12 @@ public class SDf03 extends SpcexObjectBase { private String doc_type; private String docnm_ref; private String docnmprev; - private String priority; - private String sbankcode; private String c_acc_deb; private String sbanknam1; private String sbanknam2; private String sbanknam3; private String sbanknam4; private String sbanknam5; - private String rbankcode; private String c_acc_cred; private String rbanknam1; private String rbanknam2; @@ -33,31 +30,9 @@ public class SDf03 extends SpcexObjectBase { private String rbanknam4; private String rbanknam5; private String pay_date; - private String ext_date; private String pay_val; private String sum_deb; - private String sclientn1; - private String sclientn2; - private String sclientn3; - private String sclientn4; - private String sc_code; - private String acc_deb; - private String rclientn1; - private String rclientn2; - private String rclientn3; - private String rclientn4; - private String acc_kr_1; - private String acc_kr_2; - private String sp_code; private String specif_1; - private String specif_2; - private String specif_3; - private String specif_4; - private String specif_5; - private String specif_6; - private String send_type; - private String servdate; - private String doc_result; private String imp_result; private Instant generationTime; private Long generationId; @@ -87,20 +62,12 @@ public class SDf03 extends SpcexObjectBase { this.docnm_ref = docnm_ref; } - public String getPriority() { - return priority; + public String getDocnmprev() { + return docnmprev; } - public void setPriority(String priority) { - this.priority = priority; - } - - public String getSbankcode() { - return sbankcode; - } - - public void setSbankcode(String sbankcode) { - this.sbankcode = sbankcode; + public void setDocnmprev(String docnmprev) { + this.docnmprev = docnmprev; } public String getC_acc_deb() { @@ -151,14 +118,6 @@ public class SDf03 extends SpcexObjectBase { this.sbanknam5 = sbanknam5; } - public String getRbankcode() { - return rbankcode; - } - - public void setRbankcode(String rbankcode) { - this.rbankcode = rbankcode; - } - public String getC_acc_cred() { return c_acc_cred; } @@ -215,14 +174,6 @@ public class SDf03 extends SpcexObjectBase { this.pay_date = pay_date; } - public String getExt_date() { - return ext_date; - } - - public void setExt_date(String ext_date) { - this.ext_date = ext_date; - } - public String getPay_val() { return pay_val; } @@ -239,110 +190,6 @@ public class SDf03 extends SpcexObjectBase { this.sum_deb = sum_deb; } - public String getSclientn1() { - return sclientn1; - } - - public void setSclientn1(String sclientn1) { - this.sclientn1 = sclientn1; - } - - public String getSclientn2() { - return sclientn2; - } - - public void setSclientn2(String sclientn2) { - this.sclientn2 = sclientn2; - } - - public String getSclientn3() { - return sclientn3; - } - - public void setSclientn3(String sclientn3) { - this.sclientn3 = sclientn3; - } - - public String getSclientn4() { - return sclientn4; - } - - public void setSclientn4(String sclientn4) { - this.sclientn4 = sclientn4; - } - - public String getSc_code() { - return sc_code; - } - - public void setSc_code(String sc_code) { - this.sc_code = sc_code; - } - - public String getAcc_deb() { - return acc_deb; - } - - public void setAcc_deb(String acc_deb) { - this.acc_deb = acc_deb; - } - - public String getRclientn1() { - return rclientn1; - } - - public void setRclientn1(String rclientn1) { - this.rclientn1 = rclientn1; - } - - public String getRclientn2() { - return rclientn2; - } - - public void setRclientn2(String rclientn2) { - this.rclientn2 = rclientn2; - } - - public String getRclientn3() { - return rclientn3; - } - - public void setRclientn3(String rclientn3) { - this.rclientn3 = rclientn3; - } - - public String getRclientn4() { - return rclientn4; - } - - public void setRclientn4(String rclientn4) { - this.rclientn4 = rclientn4; - } - - public String getAcc_kr_1() { - return acc_kr_1; - } - - public void setAcc_kr_1(String acc_kr_1) { - this.acc_kr_1 = acc_kr_1; - } - - public String getAcc_kr_2() { - return acc_kr_2; - } - - public void setAcc_kr_2(String acc_kr_2) { - this.acc_kr_2 = acc_kr_2; - } - - public String getSp_code() { - return sp_code; - } - - public void setSp_code(String sp_code) { - this.sp_code = sp_code; - } - public String getSpecif_1() { return specif_1; } @@ -351,70 +198,6 @@ public class SDf03 extends SpcexObjectBase { this.specif_1 = specif_1; } - public String getSpecif_2() { - return specif_2; - } - - public void setSpecif_2(String specif_2) { - this.specif_2 = specif_2; - } - - public String getSpecif_3() { - return specif_3; - } - - public void setSpecif_3(String specif_3) { - this.specif_3 = specif_3; - } - - public String getSpecif_4() { - return specif_4; - } - - public void setSpecif_4(String specif_4) { - this.specif_4 = specif_4; - } - - public String getSpecif_5() { - return specif_5; - } - - public void setSpecif_5(String specif_5) { - this.specif_5 = specif_5; - } - - public String getSpecif_6() { - return specif_6; - } - - public void setSpecif_6(String specif_6) { - this.specif_6 = specif_6; - } - - public String getSend_type() { - return send_type; - } - - public void setSend_type(String send_type) { - this.send_type = send_type; - } - - public String getServdate() { - return servdate; - } - - public void setServdate(String servdate) { - this.servdate = servdate; - } - - public String getDoc_result() { - return doc_result; - } - - public void setDoc_result(String doc_result) { - this.doc_result = doc_result; - } - public String getImp_result() { return imp_result; } @@ -439,14 +222,6 @@ public class SDf03 extends SpcexObjectBase { this.generationId = generationId; } - public String getDocnmprev() { - return docnmprev; - } - - public void setDocnmprev(String docnmprev) { - this.docnmprev = docnmprev; - } - public Long getPaymentInstructionId() { return paymentInstructionId; } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf04.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf04.java index 4f651e876..015b2fc12 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf04.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf04.java @@ -6,7 +6,7 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; /** - * ДФ-03 Сводное платежное поручение + * ДФ-04 Подтверждение проведения расчетов * * DB table: S_DF03 **/ @@ -17,15 +17,12 @@ public class SDf04 extends SpcexObjectBase { private String doc_type; private String docnm_ref; private String docnmprev; - private String priority; - private String sbankcode; private String c_acc_deb; private String sbanknam1; private String sbanknam2; private String sbanknam3; private String sbanknam4; private String sbanknam5; - private String rbankcode; private String c_acc_cred; private String rbanknam1; private String rbanknam2; @@ -33,33 +30,11 @@ public class SDf04 extends SpcexObjectBase { private String rbanknam4; private String rbanknam5; private String pay_date; - private String ext_date; private String pay_val; private String sum_deb; - private String sclientn1; - private String sclientn2; - private String sclientn3; - private String sclientn4; - private String sc_code; - private String acc_deb; - private String rclientn1; - private String rclientn2; - private String rclientn3; - private String rclientn4; - private String acc_kr_1; - private String acc_kr_2; - private String sp_code; private String specif_1; - private String specif_2; - private String specif_3; - private String specif_4; - private String specif_5; - private String specif_6; - private String send_type; - private String servdate; - private String doc_result; private String imp_result; - private String file_name; + private String fileName; private Instant generationTime; private Long generationId; @@ -95,22 +70,6 @@ public class SDf04 extends SpcexObjectBase { this.docnmprev = docnmprev; } - public String getPriority() { - return priority; - } - - public void setPriority(String priority) { - this.priority = priority; - } - - public String getSbankcode() { - return sbankcode; - } - - public void setSbankcode(String sbankcode) { - this.sbankcode = sbankcode; - } - public String getC_acc_deb() { return c_acc_deb; } @@ -159,14 +118,6 @@ public class SDf04 extends SpcexObjectBase { this.sbanknam5 = sbanknam5; } - public String getRbankcode() { - return rbankcode; - } - - public void setRbankcode(String rbankcode) { - this.rbankcode = rbankcode; - } - public String getC_acc_cred() { return c_acc_cred; } @@ -223,14 +174,6 @@ public class SDf04 extends SpcexObjectBase { this.pay_date = pay_date; } - public String getExt_date() { - return ext_date; - } - - public void setExt_date(String ext_date) { - this.ext_date = ext_date; - } - public String getPay_val() { return pay_val; } @@ -247,110 +190,6 @@ public class SDf04 extends SpcexObjectBase { this.sum_deb = sum_deb; } - public String getSclientn1() { - return sclientn1; - } - - public void setSclientn1(String sclientn1) { - this.sclientn1 = sclientn1; - } - - public String getSclientn2() { - return sclientn2; - } - - public void setSclientn2(String sclientn2) { - this.sclientn2 = sclientn2; - } - - public String getSclientn3() { - return sclientn3; - } - - public void setSclientn3(String sclientn3) { - this.sclientn3 = sclientn3; - } - - public String getSclientn4() { - return sclientn4; - } - - public void setSclientn4(String sclientn4) { - this.sclientn4 = sclientn4; - } - - public String getSc_code() { - return sc_code; - } - - public void setSc_code(String sc_code) { - this.sc_code = sc_code; - } - - public String getAcc_deb() { - return acc_deb; - } - - public void setAcc_deb(String acc_deb) { - this.acc_deb = acc_deb; - } - - public String getRclientn1() { - return rclientn1; - } - - public void setRclientn1(String rclientn1) { - this.rclientn1 = rclientn1; - } - - public String getRclientn2() { - return rclientn2; - } - - public void setRclientn2(String rclientn2) { - this.rclientn2 = rclientn2; - } - - public String getRclientn3() { - return rclientn3; - } - - public void setRclientn3(String rclientn3) { - this.rclientn3 = rclientn3; - } - - public String getRclientn4() { - return rclientn4; - } - - public void setRclientn4(String rclientn4) { - this.rclientn4 = rclientn4; - } - - public String getAcc_kr_1() { - return acc_kr_1; - } - - public void setAcc_kr_1(String acc_kr_1) { - this.acc_kr_1 = acc_kr_1; - } - - public String getAcc_kr_2() { - return acc_kr_2; - } - - public void setAcc_kr_2(String acc_kr_2) { - this.acc_kr_2 = acc_kr_2; - } - - public String getSp_code() { - return sp_code; - } - - public void setSp_code(String sp_code) { - this.sp_code = sp_code; - } - public String getSpecif_1() { return specif_1; } @@ -359,70 +198,6 @@ public class SDf04 extends SpcexObjectBase { this.specif_1 = specif_1; } - public String getSpecif_2() { - return specif_2; - } - - public void setSpecif_2(String specif_2) { - this.specif_2 = specif_2; - } - - public String getSpecif_3() { - return specif_3; - } - - public void setSpecif_3(String specif_3) { - this.specif_3 = specif_3; - } - - public String getSpecif_4() { - return specif_4; - } - - public void setSpecif_4(String specif_4) { - this.specif_4 = specif_4; - } - - public String getSpecif_5() { - return specif_5; - } - - public void setSpecif_5(String specif_5) { - this.specif_5 = specif_5; - } - - public String getSpecif_6() { - return specif_6; - } - - public void setSpecif_6(String specif_6) { - this.specif_6 = specif_6; - } - - public String getSend_type() { - return send_type; - } - - public void setSend_type(String send_type) { - this.send_type = send_type; - } - - public String getServdate() { - return servdate; - } - - public void setServdate(String servdate) { - this.servdate = servdate; - } - - public String getDoc_result() { - return doc_result; - } - - public void setDoc_result(String doc_result) { - this.doc_result = doc_result; - } - public String getImp_result() { return imp_result; } @@ -431,12 +206,12 @@ public class SDf04 extends SpcexObjectBase { this.imp_result = imp_result; } - public String getFile_name() { - return file_name; + public String getFileName() { + return fileName; } - public void setFile_name(String file_name) { - this.file_name = file_name; + public void setFileName(String fileName) { + this.fileName = fileName; } public Instant getGenerationTime() { diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf06.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf06.java new file mode 100644 index 000000000..1e2c5e432 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf06.java @@ -0,0 +1,135 @@ +package ru.clearing.classes.statics.data.sdf; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.Instant; + +/** + * ДФ-06 Запрос на зачисление/списание денежных средств + *

+ * DB table: S_DF06 + **/ +public class SDf06 extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String account; + private BigDecimal sum; + private String market; + private String type; + private String deal; + private String clientN; + private BigDecimal inn; + private BigDecimal bic; + private String spec; + private BigDecimal number; + private String fileName; + private Instant generationTime; + private Long generationId; + + public String getAccount() { + return account; + } + + public void setAccount(String value) { + this.account = value; + } + + public BigDecimal getSum() { + return sum; + } + + public void setSum(BigDecimal value) { + this.sum = value; + } + + public String getMarket() { + return market; + } + + public void setMarket(String value) { + this.market = value; + } + + public String getType() { + return type; + } + + public void setType(String value) { + this.type = value; + } + + public String getDeal() { + return deal; + } + + public void setDeal(String value) { + this.deal = value; + } + + public String getClientN() { + return clientN; + } + + public void setClientN(String value) { + this.clientN = value; + } + + public BigDecimal getInn() { + return inn; + } + + public void setInn(BigDecimal value) { + this.inn = value; + } + + public BigDecimal getBic() { + return bic; + } + + public void setBic(BigDecimal value) { + this.bic = value; + } + + public String getSpec() { + return spec; + } + + public void setSpec(String value) { + this.spec = value; + } + + public BigDecimal getNumber() { + return number; + } + + public void setNumber(BigDecimal value) { + this.number = value; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String value) { + this.fileName = value; + } + + public Instant getGenerationTime() { + return generationTime; + } + + public void setGenerationTime(Instant value) { + this.generationTime = value; + } + + public Long getGenerationId() { + return generationId; + } + + public void setGenerationId(Long value) { + this.generationId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf07.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf07.java new file mode 100644 index 000000000..21355472e --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf07.java @@ -0,0 +1,144 @@ +package ru.clearing.classes.statics.data.sdf; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.Instant; + +/** + * ДФ-07 Ответ на запрос по зачислению/списанию денежных средств + *

+ * DB table: S_DF07 + **/ +public class SDf07 extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String account; + private BigDecimal sum; + private String market; + private String type; + private String deal; + private String clientN; + private BigDecimal inn; + private BigDecimal bic; + private String spec; + private BigDecimal number; + private BigDecimal result; + private Instant generationTime; + private Long generationId; + private Long inSDfId; + + public String getAccount() { + return account; + } + + public void setAccount(String value) { + this.account = value; + } + + public BigDecimal getSum() { + return sum; + } + + public void setSum(BigDecimal value) { + this.sum = value; + } + + public String getMarket() { + return market; + } + + public void setMarket(String value) { + this.market = value; + } + + public String getType() { + return type; + } + + public void setType(String value) { + this.type = value; + } + + public String getDeal() { + return deal; + } + + public void setDeal(String value) { + this.deal = value; + } + + public String getClientN() { + return clientN; + } + + public void setClientN(String value) { + this.clientN = value; + } + + public BigDecimal getInn() { + return inn; + } + + public void setInn(BigDecimal value) { + this.inn = value; + } + + public BigDecimal getBic() { + return bic; + } + + public void setBic(BigDecimal value) { + this.bic = value; + } + + public String getSpec() { + return spec; + } + + public void setSpec(String value) { + this.spec = value; + } + + public BigDecimal getNumber() { + return number; + } + + public void setNumber(BigDecimal value) { + this.number = value; + } + + public BigDecimal getResult() { + return result; + } + + public void setResult(BigDecimal value) { + this.result = value; + } + + public Instant getGenerationTime() { + return generationTime; + } + + public void setGenerationTime(Instant value) { + this.generationTime = value; + } + + public Long getGenerationId() { + return generationId; + } + + public void setGenerationId(Long value) { + this.generationId = value; + } + + public Long getInSDfId() { + return inSDfId; + } + + public void setInSDfId(Long value) { + this.inSDfId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf08.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf08.java index ea7f7ad24..7a46d1be1 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf08.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf08.java @@ -6,48 +6,83 @@ import ru.spcex.platform.classes.base.SpcexObjectBase; import java.time.Instant; /** - * ДФ-08 Запрос остатков по всем счетам + * ДФ-08 Загрузка счетов с остатками *

* DB table: S_DF08 **/ public class SDf08 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private String number; - private String datetime; + private String outDocument; + private String depoCode; + private String quantity; + private String securityCode; + private String clientName; + private String fileName; private Instant generationTime; private Long generationId; - public String getNumber() { - return number; + public String getOutDocument() { + return outDocument; } - public void setNumber(String value) { - this.number = value; + public void setOutDocument(String outDocument) { + this.outDocument = outDocument; } - public String getDatetime() { - return datetime; + public String getDepoCode() { + return depoCode; } - public void setDatetime(String value) { - this.datetime = value; + public void setDepoCode(String depoCode) { + this.depoCode = depoCode; + } + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } + + public String getSecurityCode() { + return securityCode; + } + + public void setSecurityCode(String securityCode) { + this.securityCode = securityCode; + } + + public String getClientName() { + return clientName; + } + + public void setClientName(String clientName) { + this.clientName = clientName; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String fileName) { + this.fileName = fileName; } public Instant getGenerationTime() { return generationTime; } - public void setGenerationTime(Instant value) { - this.generationTime = value; + public void setGenerationTime(Instant generationTime) { + this.generationTime = generationTime; } public Long getGenerationId() { return generationId; } - public void setGenerationId(Long value) { - this.generationId = value; + public void setGenerationId(Long generationId) { + this.generationId = generationId; } - } \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf09.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf09.java index 821d48f23..27bcae5dd 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf09.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf09.java @@ -2,86 +2,82 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.classes.base.interfaces.WithAccount; -import ru.spcex.platform.classes.base.interfaces.WithMarket; -import ru.spcex.platform.classes.base.interfaces.WithSum; import java.math.BigDecimal; import java.time.Instant; /** - * ДФ-08 Запрос остатков по всем счетам + * ДФ-09 Ответ на загрузку счетов с остатками *

* DB table: S_DF08 **/ -public class SDf09 extends SpcexObjectBase implements WithAccount, WithMarket, WithSum { +public class SDf09 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private String account; - private BigDecimal sum; - private String market; - private String type; - private BigDecimal number; - private BigDecimal inn; - private String fileName; + private String outDocument; + private String inDocument; + private String depoCode; + private String quantity; + private String securityCode; + private String clientName; + private BigDecimal result; private Instant generationTime; private Long generationId; - @Override - public String getAccount() { - return account; + public String getOutDocument() { + return outDocument; } - public void setAccount(String account) { - this.account = account; + public void setOutDocument(String outDocument) { + this.outDocument = outDocument; } - public BigDecimal getSum() { - return sum; + public String getInDocument() { + return inDocument; } - public void setSum(BigDecimal sum) { - this.sum = sum; + public void setInDocument(String inDocument) { + this.inDocument = inDocument; } - public String getMarket() { - return market; + public String getDepoCode() { + return depoCode; } - public void setMarket(String market) { - this.market = market; + public void setDepoCode(String depoCode) { + this.depoCode = depoCode; } - public String getType() { - return type; + public String getQuantity() { + return quantity; } - public void setType(String type) { - this.type = type; + public void setQuantity(String quantity) { + this.quantity = quantity; } - public BigDecimal getNumber() { - return number; + public String getSecurityCode() { + return securityCode; } - public void setNumber(BigDecimal number) { - this.number = number; + public void setSecurityCode(String securityCode) { + this.securityCode = securityCode; } - public BigDecimal getInn() { - return inn; + public String getClientName() { + return clientName; } - public void setInn(BigDecimal inn) { - this.inn = inn; + public void setClientName(String clientName) { + this.clientName = clientName; } - public String getFileName() { - return fileName; + public BigDecimal getResult() { + return result; } - public void setFileName(String fileName) { - this.fileName = fileName; + public void setResult(BigDecimal result) { + this.result = result; } public Instant getGenerationTime() { diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf10.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf10.java index d8a2575b0..5a5c34987 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf10.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf10.java @@ -2,85 +2,72 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.classes.base.interfaces.WithAccount; -import java.math.BigDecimal; import java.time.Instant; /** - * ДФ-10 Подтверждение о загрузке по поступлению на клиринговый счет + * sDf10 - ДФ-10 Запрос на зачисление/списание ценных бумаг *

* DB table: S_DF10 */ -public class SDf10 extends SpcexObjectBase implements WithAccount { +public class SDf10 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private String account; - private BigDecimal sum; - private String market; - private String type; - private BigDecimal number; - private BigDecimal inn; - private String result; + private String outDocument; + private String depoCode; + private String quantity; + private String securityCode; + private String clientName; + private String fileName; private Instant generationTime; private Long generationId; - private Long inSDf09Id; - @Override - public String getAccount() { - return account; + public String getOutDocument() { + return outDocument; } - public void setAccount(String account) { - this.account = account; + public void setOutDocument(String outDocument) { + this.outDocument = outDocument; } - public BigDecimal getSum() { - return sum; + public String getDepoCode() { + return depoCode; } - public void setSum(BigDecimal sum) { - this.sum = sum; + public void setDepoCode(String depoCode) { + this.depoCode = depoCode; } - public String getMarket() { - return market; + public String getQuantity() { + return quantity; } - public void setMarket(String market) { - this.market = market; + public void setQuantity(String quantity) { + this.quantity = quantity; } - public String getType() { - return type; + public String getSecurityCode() { + return securityCode; } - public void setType(String type) { - this.type = type; + public void setSecurityCode(String securityCode) { + this.securityCode = securityCode; } - public BigDecimal getNumber() { - return number; + public String getClientName() { + return clientName; } - public void setNumber(BigDecimal number) { - this.number = number; + public void setClientName(String clientName) { + this.clientName = clientName; } - public BigDecimal getInn() { - return inn; + public String getFileName() { + return fileName; } - public void setInn(BigDecimal inn) { - this.inn = inn; - } - - public String getResult() { - return result; - } - - public void setResult(String result) { - this.result = result; + public void setFileName(String fileName) { + this.fileName = fileName; } public Instant getGenerationTime() { @@ -98,12 +85,4 @@ public class SDf10 extends SpcexObjectBase implements WithAccount { public void setGenerationId(Long generationId) { this.generationId = generationId; } - - public Long getInSDf09Id() { - return inSDf09Id; - } - - public void setInSDf09Id(Long inSDf09Id) { - this.inSDf09Id = inSDf09Id; - } } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf11.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf11.java index b0b27136c..ec4b1c75f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf11.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf11.java @@ -3,423 +3,81 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; +import java.math.BigDecimal; import java.time.Instant; /** - * ДФ-11 Из КС в ПРЦ Платежное распоряжение на перевод средств с ТБС Участника на КС Инициатора + * ДФ-11 Ответ на Запрос на зачисление/списание ценных бумаг *

* DB table: S_DF11 **/ public class SDf11 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private String seg_type; - private String doc_type; - private String docnm_ref; - private String docnmprev; - private String priority; - private String sbankcode; - private String c_acc_deb; - private String sbanknam1; - private String sbanknam2; - private String sbanknam3; - private String sbanknam4; - private String sbanknam5; - private String rbankcode; - private String c_acc_cred; - private String rbanknam1; - private String rbanknam2; - private String rbanknam3; - private String rbanknam4; - private String rbanknam5; - private String pay_date; - private String ext_date; - private String pay_val; - private String sum_deb; - private String sclientn1; - private String sclientn2; - private String sclientn3; - private String sclientn4; - private String sc_code; - private String acc_deb; - private String rclientn1; - private String rclientn2; - private String rclientn3; - private String rclientn4; - private String acc_kr_1; - private String acc_kr_2; - private String sp_code; - private String specif_1; - private String specif_2; - private String specif_3; - private String specif_4; - private String specif_5; - private String specif_6; - private String send_type; - private String servdate; - private String doc_result; + private String outDocument; + private String inDocument; + private String depoCode; + private String quantity; + private String securityCode; + private String clientName; + private BigDecimal result; private Instant generationTime; private Long generationId; - private Long paymentInstructionId; - public String getSeg_type() { - return seg_type; + public String getOutDocument() { + return outDocument; } - public void setSeg_type(String seg_type) { - this.seg_type = seg_type; + public void setOutDocument(String outDocument) { + this.outDocument = outDocument; } - public String getDoc_type() { - return doc_type; + public String getInDocument() { + return inDocument; } - public void setDoc_type(String doc_type) { - this.doc_type = doc_type; + public void setInDocument(String inDocument) { + this.inDocument = inDocument; } - public String getDocnm_ref() { - return docnm_ref; + public String getDepoCode() { + return depoCode; } - public void setDocnm_ref(String docnm_ref) { - this.docnm_ref = docnm_ref; + public void setDepoCode(String depoCode) { + this.depoCode = depoCode; } - public String getDocnmprev() { - return docnmprev; + public String getQuantity() { + return quantity; } - public void setDocnmprev(String docnmprev) { - this.docnmprev = docnmprev; + public void setQuantity(String quantity) { + this.quantity = quantity; } - public String getPriority() { - return priority; + public String getSecurityCode() { + return securityCode; } - public void setPriority(String priority) { - this.priority = priority; + public void setSecurityCode(String securityCode) { + this.securityCode = securityCode; } - public String getSbankcode() { - return sbankcode; + public String getClientName() { + return clientName; } - public void setSbankcode(String sbankcode) { - this.sbankcode = sbankcode; + public void setClientName(String clientName) { + this.clientName = clientName; } - public String getC_acc_deb() { - return c_acc_deb; + public BigDecimal getResult() { + return result; } - public void setC_acc_deb(String c_acc_deb) { - this.c_acc_deb = c_acc_deb; - } - - public String getSbanknam1() { - return sbanknam1; - } - - public void setSbanknam1(String sbanknam1) { - this.sbanknam1 = sbanknam1; - } - - public String getSbanknam2() { - return sbanknam2; - } - - public void setSbanknam2(String sbanknam2) { - this.sbanknam2 = sbanknam2; - } - - public String getSbanknam3() { - return sbanknam3; - } - - public void setSbanknam3(String sbanknam3) { - this.sbanknam3 = sbanknam3; - } - - public String getSbanknam4() { - return sbanknam4; - } - - public void setSbanknam4(String sbanknam4) { - this.sbanknam4 = sbanknam4; - } - - public String getSbanknam5() { - return sbanknam5; - } - - public void setSbanknam5(String sbanknam5) { - this.sbanknam5 = sbanknam5; - } - - public String getRbankcode() { - return rbankcode; - } - - public void setRbankcode(String rbankcode) { - this.rbankcode = rbankcode; - } - - public String getC_acc_cred() { - return c_acc_cred; - } - - public void setC_acc_cred(String c_acc_cred) { - this.c_acc_cred = c_acc_cred; - } - - public String getRbanknam1() { - return rbanknam1; - } - - public void setRbanknam1(String rbanknam1) { - this.rbanknam1 = rbanknam1; - } - - public String getRbanknam2() { - return rbanknam2; - } - - public void setRbanknam2(String rbanknam2) { - this.rbanknam2 = rbanknam2; - } - - public String getRbanknam3() { - return rbanknam3; - } - - public void setRbanknam3(String rbanknam3) { - this.rbanknam3 = rbanknam3; - } - - public String getRbanknam4() { - return rbanknam4; - } - - public void setRbanknam4(String rbanknam4) { - this.rbanknam4 = rbanknam4; - } - - public String getRbanknam5() { - return rbanknam5; - } - - public void setRbanknam5(String rbanknam5) { - this.rbanknam5 = rbanknam5; - } - - public String getPay_date() { - return pay_date; - } - - public void setPay_date(String pay_date) { - this.pay_date = pay_date; - } - - public String getExt_date() { - return ext_date; - } - - public void setExt_date(String ext_date) { - this.ext_date = ext_date; - } - - public String getPay_val() { - return pay_val; - } - - public void setPay_val(String pay_val) { - this.pay_val = pay_val; - } - - public String getSum_deb() { - return sum_deb; - } - - public void setSum_deb(String sum_deb) { - this.sum_deb = sum_deb; - } - - public String getSclientn1() { - return sclientn1; - } - - public void setSclientn1(String sclientn1) { - this.sclientn1 = sclientn1; - } - - public String getSclientn2() { - return sclientn2; - } - - public void setSclientn2(String sclientn2) { - this.sclientn2 = sclientn2; - } - - public String getSclientn3() { - return sclientn3; - } - - public void setSclientn3(String sclientn3) { - this.sclientn3 = sclientn3; - } - - public String getSclientn4() { - return sclientn4; - } - - public void setSclientn4(String sclientn4) { - this.sclientn4 = sclientn4; - } - - public String getSc_code() { - return sc_code; - } - - public void setSc_code(String sc_code) { - this.sc_code = sc_code; - } - - public String getAcc_deb() { - return acc_deb; - } - - public void setAcc_deb(String acc_deb) { - this.acc_deb = acc_deb; - } - - public String getRclientn1() { - return rclientn1; - } - - public void setRclientn1(String rclientn1) { - this.rclientn1 = rclientn1; - } - - public String getRclientn2() { - return rclientn2; - } - - public void setRclientn2(String rclientn2) { - this.rclientn2 = rclientn2; - } - - public String getRclientn3() { - return rclientn3; - } - - public void setRclientn3(String rclientn3) { - this.rclientn3 = rclientn3; - } - - public String getRclientn4() { - return rclientn4; - } - - public void setRclientn4(String rclientn4) { - this.rclientn4 = rclientn4; - } - - public String getAcc_kr_1() { - return acc_kr_1; - } - - public void setAcc_kr_1(String acc_kr_1) { - this.acc_kr_1 = acc_kr_1; - } - - public String getAcc_kr_2() { - return acc_kr_2; - } - - public void setAcc_kr_2(String acc_kr_2) { - this.acc_kr_2 = acc_kr_2; - } - - public String getSp_code() { - return sp_code; - } - - public void setSp_code(String sp_code) { - this.sp_code = sp_code; - } - - public String getSpecif_1() { - return specif_1; - } - - public void setSpecif_1(String specif_1) { - this.specif_1 = specif_1; - } - - public String getSpecif_2() { - return specif_2; - } - - public void setSpecif_2(String specif_2) { - this.specif_2 = specif_2; - } - - public String getSpecif_3() { - return specif_3; - } - - public void setSpecif_3(String specif_3) { - this.specif_3 = specif_3; - } - - public String getSpecif_4() { - return specif_4; - } - - public void setSpecif_4(String specif_4) { - this.specif_4 = specif_4; - } - - public String getSpecif_5() { - return specif_5; - } - - public void setSpecif_5(String specif_5) { - this.specif_5 = specif_5; - } - - public String getSpecif_6() { - return specif_6; - } - - public void setSpecif_6(String specif_6) { - this.specif_6 = specif_6; - } - - public String getSend_type() { - return send_type; - } - - public void setSend_type(String send_type) { - this.send_type = send_type; - } - - public String getServdate() { - return servdate; - } - - public void setServdate(String servdate) { - this.servdate = servdate; - } - - public String getDoc_result() { - return doc_result; - } - - public void setDoc_result(String doc_result) { - this.doc_result = doc_result; + public void setResult(BigDecimal result) { + this.result = result; } public Instant getGenerationTime() { @@ -437,12 +95,4 @@ public class SDf11 extends SpcexObjectBase { public void setGenerationId(Long generationId) { this.generationId = generationId; } - - public Long getPaymentInstructionId() { - return paymentInstructionId; - } - - public void setPaymentInstructionId(Long paymentInstructionId) { - this.paymentInstructionId = paymentInstructionId; - } } diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf12.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf12.java index dafeee777..99073a3be 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf12.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf12.java @@ -2,72 +2,88 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; -import ru.spcex.platform.classes.base.interfaces.WithAccount; +import java.math.BigDecimal; import java.time.Instant; /** - * ДФ-12 Из ПРЦ в КС Информация о блокировке/разблокировке/закрытии ТБС УК + * ДФ-12 Распоряжение на проведение операций по итогам клиринга *

* DB table: S_DF12 **/ -public class SDf12 extends SpcexObjectBase implements WithAccount { +public class SDf12 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private String account; - private String deal; - private Long status; - private String fileName; + private String outDocument; + private String quantity; + private String securityCode; + private String depoCodeSender; + private String depoCodeAdressee; + private BigDecimal result; private Instant generationTime; private Long generationId; - @Override - public String getAccount() { - return account; + public String getOutDocument() { + return outDocument; } - public void setAccount(String value) { - this.account = value; + public void setOutDocument(String outDocument) { + this.outDocument = outDocument; } - public String getDeal() { - return deal; + public String getQuantity() { + return quantity; } - public void setDeal(String value) { - this.deal = value; + public void setQuantity(String quantity) { + this.quantity = quantity; } - public Long getStatus() { - return status; + public String getSecurityCode() { + return securityCode; } - public void setStatus(Long value) { - this.status = value; + public void setSecurityCode(String securityCode) { + this.securityCode = securityCode; } - public String getFileName() { - return fileName; + public String getDepoCodeSender() { + return depoCodeSender; } - public void setFileName(String value) { - this.fileName = value; + public void setDepoCodeSender(String depoCodeSender) { + this.depoCodeSender = depoCodeSender; + } + + public String getDepoCodeAdressee() { + return depoCodeAdressee; + } + + public void setDepoCodeAdressee(String depoCodeAdressee) { + this.depoCodeAdressee = depoCodeAdressee; + } + + public BigDecimal getResult() { + return result; + } + + public void setResult(BigDecimal result) { + this.result = result; } public Instant getGenerationTime() { return generationTime; } - public void setGenerationTime(Instant value) { - this.generationTime = value; + public void setGenerationTime(Instant generationTime) { + this.generationTime = generationTime; } public Long getGenerationId() { return generationId; } - public void setGenerationId(Long value) { - this.generationId = value; + public void setGenerationId(Long generationId) { + this.generationId = generationId; } - } \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf13.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf13.java index 0f88d7aa9..15b14ef97 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf13.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf13.java @@ -3,422 +3,63 @@ package ru.clearing.classes.statics.data.sdf; import ru.clearing.classes.ConstSerializable; import ru.spcex.platform.classes.base.SpcexObjectBase; +import java.math.BigDecimal; import java.time.Instant; /** - * ДФ-13 Вывод свободных средств для инициаторов категории В с клирингового счета 30414/7 - платежное поручение АО СПВБ на вывод средств из РО + * ДФ-13 Уведомление о статусе исполнения или мотивированный отказ *

* DB table: S_DF13 **/ public class SDf13 extends SpcexObjectBase { private static final long serialVersionUID = ConstSerializable.serialVersionUID; - private String seg_type; - private String doc_type; - private String docnm_ref; - private String docnmprev; - private String priority; - private String sbankcode; - private String c_acc_deb; - private String sbanknam1; - private String sbanknam2; - private String sbanknam3; - private String sbanknam4; - private String sbanknam5; - private String rbankcode; - private String c_acc_cred; - private String rbanknam1; - private String op_type; - private String op_order; - private String rbanknam4; - private String rbanknam5; - private String pay_date; - private String ext_date; - private String pay_val; - private String sum_deb; - private String sclientn1; - private String inn_deb; - private String kpp_deb; - private String sclientn4; - private String sc_code; - private String acc_deb; - private String rclientn1; - private String inn_cred; - private String kpp_cred; - private String rclientn4; - private String acc_kr_1; - private String acc_kr_2; - private String sp_code; - private String specif_1; - private String specif_2; - private String specif_3; - private String specif_4; - private String specif_5; - private String specif_6; - private String send_type; - private String servdate; - private String doc_result; + private String outDocument; + private String inDocument; + private BigDecimal result; + private String textError; + private String fileName; private Instant generationTime; private Long generationId; - public String getSeg_type() { - return seg_type; + public String getOutDocument() { + return outDocument; } - public void setSeg_type(String seg_type) { - this.seg_type = seg_type; + public void setOutDocument(String outDocument) { + this.outDocument = outDocument; } - public String getDoc_type() { - return doc_type; + public String getInDocument() { + return inDocument; } - public void setDoc_type(String doc_type) { - this.doc_type = doc_type; + public void setInDocument(String inDocument) { + this.inDocument = inDocument; } - public String getDocnm_ref() { - return docnm_ref; + public BigDecimal getResult() { + return result; } - public void setDocnm_ref(String docnm_ref) { - this.docnm_ref = docnm_ref; + public void setResult(BigDecimal result) { + this.result = result; } - public String getDocnmprev() { - return docnmprev; + public String getTextError() { + return textError; } - public void setDocnmprev(String docnmprev) { - this.docnmprev = docnmprev; + public void setTextError(String textError) { + this.textError = textError; } - public String getPriority() { - return priority; + public String getFileName() { + return fileName; } - public void setPriority(String priority) { - this.priority = priority; - } - - public String getSbankcode() { - return sbankcode; - } - - public void setSbankcode(String sbankcode) { - this.sbankcode = sbankcode; - } - - public String getC_acc_deb() { - return c_acc_deb; - } - - public void setC_acc_deb(String c_acc_deb) { - this.c_acc_deb = c_acc_deb; - } - - public String getSbanknam1() { - return sbanknam1; - } - - public void setSbanknam1(String sbanknam1) { - this.sbanknam1 = sbanknam1; - } - - public String getSbanknam2() { - return sbanknam2; - } - - public void setSbanknam2(String sbanknam2) { - this.sbanknam2 = sbanknam2; - } - - public String getSbanknam3() { - return sbanknam3; - } - - public void setSbanknam3(String sbanknam3) { - this.sbanknam3 = sbanknam3; - } - - public String getSbanknam4() { - return sbanknam4; - } - - public void setSbanknam4(String sbanknam4) { - this.sbanknam4 = sbanknam4; - } - - public String getSbanknam5() { - return sbanknam5; - } - - public void setSbanknam5(String sbanknam5) { - this.sbanknam5 = sbanknam5; - } - - public String getRbankcode() { - return rbankcode; - } - - public void setRbankcode(String rbankcode) { - this.rbankcode = rbankcode; - } - - public String getC_acc_cred() { - return c_acc_cred; - } - - public void setC_acc_cred(String c_acc_cred) { - this.c_acc_cred = c_acc_cred; - } - - public String getRbanknam1() { - return rbanknam1; - } - - public void setRbanknam1(String rbanknam1) { - this.rbanknam1 = rbanknam1; - } - - public String getOp_type() { - return op_type; - } - - public void setOp_type(String op_type) { - this.op_type = op_type; - } - - public String getOp_order() { - return op_order; - } - - public void setOp_order(String op_order) { - this.op_order = op_order; - } - - public String getRbanknam4() { - return rbanknam4; - } - - public void setRbanknam4(String rbanknam4) { - this.rbanknam4 = rbanknam4; - } - - public String getRbanknam5() { - return rbanknam5; - } - - public void setRbanknam5(String rbanknam5) { - this.rbanknam5 = rbanknam5; - } - - public String getPay_date() { - return pay_date; - } - - public void setPay_date(String pay_date) { - this.pay_date = pay_date; - } - - public String getExt_date() { - return ext_date; - } - - public void setExt_date(String ext_date) { - this.ext_date = ext_date; - } - - public String getPay_val() { - return pay_val; - } - - public void setPay_val(String pay_val) { - this.pay_val = pay_val; - } - - public String getSum_deb() { - return sum_deb; - } - - public void setSum_deb(String sum_deb) { - this.sum_deb = sum_deb; - } - - public String getSclientn1() { - return sclientn1; - } - - public void setSclientn1(String sclientn1) { - this.sclientn1 = sclientn1; - } - - public String getInn_deb() { - return inn_deb; - } - - public void setInn_deb(String inn_deb) { - this.inn_deb = inn_deb; - } - - public String getKpp_deb() { - return kpp_deb; - } - - public void setKpp_deb(String kpp_deb) { - this.kpp_deb = kpp_deb; - } - - public String getSclientn4() { - return sclientn4; - } - - public void setSclientn4(String sclientn4) { - this.sclientn4 = sclientn4; - } - - public String getSc_code() { - return sc_code; - } - - public void setSc_code(String sc_code) { - this.sc_code = sc_code; - } - - public String getAcc_deb() { - return acc_deb; - } - - public void setAcc_deb(String acc_deb) { - this.acc_deb = acc_deb; - } - - public String getRclientn1() { - return rclientn1; - } - - public void setRclientn1(String rclientn1) { - this.rclientn1 = rclientn1; - } - - public String getInn_cred() { - return inn_cred; - } - - public void setInn_cred(String inn_cred) { - this.inn_cred = inn_cred; - } - - public String getKpp_cred() { - return kpp_cred; - } - - public void setKpp_cred(String kpp_cred) { - this.kpp_cred = kpp_cred; - } - - public String getRclientn4() { - return rclientn4; - } - - public void setRclientn4(String rclientn4) { - this.rclientn4 = rclientn4; - } - - public String getAcc_kr_1() { - return acc_kr_1; - } - - public void setAcc_kr_1(String acc_kr_1) { - this.acc_kr_1 = acc_kr_1; - } - - public String getAcc_kr_2() { - return acc_kr_2; - } - - public void setAcc_kr_2(String acc_kr_2) { - this.acc_kr_2 = acc_kr_2; - } - - public String getSp_code() { - return sp_code; - } - - public void setSp_code(String sp_code) { - this.sp_code = sp_code; - } - - public String getSpecif_1() { - return specif_1; - } - - public void setSpecif_1(String specif_1) { - this.specif_1 = specif_1; - } - - public String getSpecif_2() { - return specif_2; - } - - public void setSpecif_2(String specif_2) { - this.specif_2 = specif_2; - } - - public String getSpecif_3() { - return specif_3; - } - - public void setSpecif_3(String specif_3) { - this.specif_3 = specif_3; - } - - public String getSpecif_4() { - return specif_4; - } - - public void setSpecif_4(String specif_4) { - this.specif_4 = specif_4; - } - - public String getSpecif_5() { - return specif_5; - } - - public void setSpecif_5(String specif_5) { - this.specif_5 = specif_5; - } - - public String getSpecif_6() { - return specif_6; - } - - public void setSpecif_6(String specif_6) { - this.specif_6 = specif_6; - } - - public String getSend_type() { - return send_type; - } - - public void setSend_type(String send_type) { - this.send_type = send_type; - } - - public String getServdate() { - return servdate; - } - - public void setServdate(String servdate) { - this.servdate = servdate; - } - - public String getDoc_result() { - return doc_result; - } - - public void setDoc_result(String doc_result) { - this.doc_result = doc_result; + public void setFileName(String fileName) { + this.fileName = fileName; } public Instant getGenerationTime() { diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf14.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf14.java new file mode 100644 index 000000000..ef977149f --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf14.java @@ -0,0 +1,54 @@ +package ru.clearing.classes.statics.data.sdf; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.math.BigDecimal; +import java.time.Instant; + +/** + * ДФ-14 Уведомление о завершении расчетов + *

+ * DB table: S_DF14 + **/ +public class SDf14 extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String outDocument; + private BigDecimal result; + private Instant generationTime; + private Long generationId; + + public String getOutDocument() { + return outDocument; + } + + public void setOutDocument(String value) { + this.outDocument = value; + } + + public BigDecimal getResult() { + return result; + } + + public void setResult(BigDecimal value) { + this.result = value; + } + + public Instant getGenerationTime() { + return generationTime; + } + + public void setGenerationTime(Instant value) { + this.generationTime = value; + } + + public Long getGenerationId() { + return generationId; + } + + public void setGenerationId(Long value) { + this.generationId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf20.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf20.java new file mode 100644 index 000000000..edbfc006d --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf20.java @@ -0,0 +1,134 @@ +package ru.clearing.classes.statics.data.sdf; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.time.Instant; + +/** + * ДФ-20 Отчет об исполнении поручения на зачисление/списание ценных бумаг + *

+ * DB table: S_DF20 + **/ +public class SDf20 extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String outDocument; + private String inDocument; + private String security; + private String openBalance; + private String depoCodeCl; + private String quantity; + private String operationCode; + private String depoCodeCorr; + private String operationDate; + private String closeBalance; + private String fileName; + private Instant generationTime; + private Long generationId; + + public String getOutDocument() { + return outDocument; + } + + public void setOutDocument(String value) { + this.outDocument = value; + } + + public String getInDocument() { + return inDocument; + } + + public void setInDocument(String value) { + this.inDocument = value; + } + + public String getSecurity() { + return security; + } + + public void setSecurity(String value) { + this.security = value; + } + + public String getOpenBalance() { + return openBalance; + } + + public void setOpenBalance(String value) { + this.openBalance = value; + } + + public String getDepoCodeCl() { + return depoCodeCl; + } + + public void setDepoCodeCl(String value) { + this.depoCodeCl = value; + } + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String value) { + this.quantity = value; + } + + public String getOperationCode() { + return operationCode; + } + + public void setOperationCode(String value) { + this.operationCode = value; + } + + public String getDepoCodeCorr() { + return depoCodeCorr; + } + + public void setDepoCodeCorr(String value) { + this.depoCodeCorr = value; + } + + public String getOperationDate() { + return operationDate; + } + + public void setOperationDate(String value) { + this.operationDate = value; + } + + public String getCloseBalance() { + return closeBalance; + } + + public void setCloseBalance(String value) { + this.closeBalance = value; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String value) { + this.fileName = value; + } + + public Instant getGenerationTime() { + return generationTime; + } + + public void setGenerationTime(Instant value) { + this.generationTime = value; + } + + public Long getGenerationId() { + return generationId; + } + + public void setGenerationId(Long value) { + this.generationId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf54.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf54.java new file mode 100644 index 000000000..8d5aad9d7 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf54.java @@ -0,0 +1,395 @@ +package ru.clearing.classes.statics.data.sdf; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.time.Instant; + +/** + * ДФ-54 Вывод свободных средств для инициаторов категории В с клирингового счета 30414 + *

+ * DB table: S_DF54 + **/ +public class SDf54 extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String seg_type; + private String doc_type; + private String docnm_ref; + private String docnmprev; + private String sbankcode; + private String c_acc_deb; + private String sbanknam1; + private String sbanknam2; + private String sbanknam3; + private String sbanknam4; + private String sbanknam5; + private String rbankcode; + private String c_acc_cred; + private String rbanknam1; + private String rbanknam2; + private String rbanknam3; + private String rbanknam4; + private String rbanknam5; + private String op_type; + private String op_order; + private String pay_date; + private String pay_val; + private String sum_deb; + private String sclientn1; + private String sclientn2; + private String sclientn3; + private String sclientn4; + private String inn_deb; + private String kpp_deb; + private String acc_deb; + private String rclientn1; + private String rclientn2; + private String rclientn3; + private String rclientn4; + private String inn_cred; + private String kpp_cred; + private String acc_kr_1; + private String specif_1; + private String send_type; + private String doc_result; + private Instant generationTime; + private Long generationId; + + public String getSeg_type() { + return seg_type; + } + + public void setSeg_type(String value) { + this.seg_type = value; + } + + public String getDoc_type() { + return doc_type; + } + + public void setDoc_type(String value) { + this.doc_type = value; + } + + public String getDocnm_ref() { + return docnm_ref; + } + + public void setDocnm_ref(String value) { + this.docnm_ref = value; + } + + public String getDocnmprev() { + return docnmprev; + } + + public void setDocnmprev(String value) { + this.docnmprev = value; + } + + public String getSbankcode() { + return sbankcode; + } + + public void setSbankcode(String value) { + this.sbankcode = value; + } + + public String getC_acc_deb() { + return c_acc_deb; + } + + public void setC_acc_deb(String value) { + this.c_acc_deb = value; + } + + public String getSbanknam1() { + return sbanknam1; + } + + public void setSbanknam1(String value) { + this.sbanknam1 = value; + } + + public String getSbanknam2() { + return sbanknam2; + } + + public void setSbanknam2(String value) { + this.sbanknam2 = value; + } + + public String getSbanknam3() { + return sbanknam3; + } + + public void setSbanknam3(String value) { + this.sbanknam3 = value; + } + + public String getSbanknam4() { + return sbanknam4; + } + + public void setSbanknam4(String value) { + this.sbanknam4 = value; + } + + public String getSbanknam5() { + return sbanknam5; + } + + public void setSbanknam5(String value) { + this.sbanknam5 = value; + } + + public String getRbankcode() { + return rbankcode; + } + + public void setRbankcode(String value) { + this.rbankcode = value; + } + + public String getC_acc_cred() { + return c_acc_cred; + } + + public void setC_acc_cred(String value) { + this.c_acc_cred = value; + } + + public String getRbanknam1() { + return rbanknam1; + } + + public void setRbanknam1(String value) { + this.rbanknam1 = value; + } + + public String getRbanknam2() { + return rbanknam2; + } + + public void setRbanknam2(String value) { + this.rbanknam2 = value; + } + + public String getRbanknam3() { + return rbanknam3; + } + + public void setRbanknam3(String value) { + this.rbanknam3 = value; + } + + public String getRbanknam4() { + return rbanknam4; + } + + public void setRbanknam4(String value) { + this.rbanknam4 = value; + } + + public String getRbanknam5() { + return rbanknam5; + } + + public void setRbanknam5(String value) { + this.rbanknam5 = value; + } + + public String getOp_type() { + return op_type; + } + + public void setOp_type(String value) { + this.op_type = value; + } + + public String getOp_order() { + return op_order; + } + + public void setOp_order(String value) { + this.op_order = value; + } + + public String getPay_date() { + return pay_date; + } + + public void setPay_date(String value) { + this.pay_date = value; + } + + public String getPay_val() { + return pay_val; + } + + public void setPay_val(String value) { + this.pay_val = value; + } + + public String getSum_deb() { + return sum_deb; + } + + public void setSum_deb(String value) { + this.sum_deb = value; + } + + public String getSclientn1() { + return sclientn1; + } + + public void setSclientn1(String value) { + this.sclientn1 = value; + } + + public String getSclientn2() { + return sclientn2; + } + + public void setSclientn2(String value) { + this.sclientn2 = value; + } + + public String getSclientn3() { + return sclientn3; + } + + public void setSclientn3(String value) { + this.sclientn3 = value; + } + + public String getSclientn4() { + return sclientn4; + } + + public void setSclientn4(String value) { + this.sclientn4 = value; + } + + public String getInn_deb() { + return inn_deb; + } + + public void setInn_deb(String value) { + this.inn_deb = value; + } + + public String getKpp_deb() { + return kpp_deb; + } + + public void setKpp_deb(String value) { + this.kpp_deb = value; + } + + public String getAcc_deb() { + return acc_deb; + } + + public void setAcc_deb(String value) { + this.acc_deb = value; + } + + public String getRclientn1() { + return rclientn1; + } + + public void setRclientn1(String value) { + this.rclientn1 = value; + } + + public String getRclientn2() { + return rclientn2; + } + + public void setRclientn2(String value) { + this.rclientn2 = value; + } + + public String getRclientn3() { + return rclientn3; + } + + public void setRclientn3(String value) { + this.rclientn3 = value; + } + + public String getRclientn4() { + return rclientn4; + } + + public void setRclientn4(String value) { + this.rclientn4 = value; + } + + public String getInn_cred() { + return inn_cred; + } + + public void setInn_cred(String value) { + this.inn_cred = value; + } + + public String getKpp_cred() { + return kpp_cred; + } + + public void setKpp_cred(String value) { + this.kpp_cred = value; + } + + public String getAcc_kr_1() { + return acc_kr_1; + } + + public void setAcc_kr_1(String value) { + this.acc_kr_1 = value; + } + + public String getSpecif_1() { + return specif_1; + } + + public void setSpecif_1(String value) { + this.specif_1 = value; + } + + public String getSend_type() { + return send_type; + } + + public void setSend_type(String value) { + this.send_type = value; + } + + public String getDoc_result() { + return doc_result; + } + + public void setDoc_result(String value) { + this.doc_result = value; + } + + public Instant getGenerationTime() { + return generationTime; + } + + public void setGenerationTime(Instant value) { + this.generationTime = value; + } + + public Long getGenerationId() { + return generationId; + } + + public void setGenerationId(Long value) { + this.generationId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf55.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf55.java new file mode 100644 index 000000000..926da9346 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf55.java @@ -0,0 +1,404 @@ +package ru.clearing.classes.statics.data.sdf; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.time.Instant; + +/** + * ДФ-55 Квитанция об обработке ДФ-54 + *

+ * DB table: S_DF55 + **/ +public class SDf55 extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String seg_type; + private String doc_type; + private String docnm_ref; + private String docnmprev; + private String sbankcode; + private String c_acc_deb; + private String sbanknam1; + private String sbanknam2; + private String sbanknam3; + private String sbanknam4; + private String sbanknam5; + private String rbankcode; + private String c_acc_cred; + private String rbanknam1; + private String rbanknam2; + private String rbanknam3; + private String rbanknam4; + private String rbanknam5; + private String op_type; + private String op_order; + private String pay_date; + private String pay_val; + private String sum_deb; + private String sclientn1; + private String sclientn2; + private String sclientn3; + private String sclientn4; + private String inn_deb; + private String kpp_deb; + private String acc_deb; + private String rclientn1; + private String rclientn2; + private String rclientn3; + private String rclientn4; + private String inn_cred; + private String kpp_cred; + private String acc_kr_1; + private String specif_1; + private String send_type; + private String doc_result; + private String fileName; + private Instant generationTime; + private Long generationId; + + public String getSeg_type() { + return seg_type; + } + + public void setSeg_type(String value) { + this.seg_type = value; + } + + public String getDoc_type() { + return doc_type; + } + + public void setDoc_type(String value) { + this.doc_type = value; + } + + public String getDocnm_ref() { + return docnm_ref; + } + + public void setDocnm_ref(String value) { + this.docnm_ref = value; + } + + public String getDocnmprev() { + return docnmprev; + } + + public void setDocnmprev(String value) { + this.docnmprev = value; + } + + public String getSbankcode() { + return sbankcode; + } + + public void setSbankcode(String value) { + this.sbankcode = value; + } + + public String getC_acc_deb() { + return c_acc_deb; + } + + public void setC_acc_deb(String value) { + this.c_acc_deb = value; + } + + public String getSbanknam1() { + return sbanknam1; + } + + public void setSbanknam1(String value) { + this.sbanknam1 = value; + } + + public String getSbanknam2() { + return sbanknam2; + } + + public void setSbanknam2(String value) { + this.sbanknam2 = value; + } + + public String getSbanknam3() { + return sbanknam3; + } + + public void setSbanknam3(String value) { + this.sbanknam3 = value; + } + + public String getSbanknam4() { + return sbanknam4; + } + + public void setSbanknam4(String value) { + this.sbanknam4 = value; + } + + public String getSbanknam5() { + return sbanknam5; + } + + public void setSbanknam5(String value) { + this.sbanknam5 = value; + } + + public String getRbankcode() { + return rbankcode; + } + + public void setRbankcode(String value) { + this.rbankcode = value; + } + + public String getC_acc_cred() { + return c_acc_cred; + } + + public void setC_acc_cred(String value) { + this.c_acc_cred = value; + } + + public String getRbanknam1() { + return rbanknam1; + } + + public void setRbanknam1(String value) { + this.rbanknam1 = value; + } + + public String getRbanknam2() { + return rbanknam2; + } + + public void setRbanknam2(String value) { + this.rbanknam2 = value; + } + + public String getRbanknam3() { + return rbanknam3; + } + + public void setRbanknam3(String value) { + this.rbanknam3 = value; + } + + public String getRbanknam4() { + return rbanknam4; + } + + public void setRbanknam4(String value) { + this.rbanknam4 = value; + } + + public String getRbanknam5() { + return rbanknam5; + } + + public void setRbanknam5(String value) { + this.rbanknam5 = value; + } + + public String getOp_type() { + return op_type; + } + + public void setOp_type(String value) { + this.op_type = value; + } + + public String getOp_order() { + return op_order; + } + + public void setOp_order(String value) { + this.op_order = value; + } + + public String getPay_date() { + return pay_date; + } + + public void setPay_date(String value) { + this.pay_date = value; + } + + public String getPay_val() { + return pay_val; + } + + public void setPay_val(String value) { + this.pay_val = value; + } + + public String getSum_deb() { + return sum_deb; + } + + public void setSum_deb(String value) { + this.sum_deb = value; + } + + public String getSclientn1() { + return sclientn1; + } + + public void setSclientn1(String value) { + this.sclientn1 = value; + } + + public String getSclientn2() { + return sclientn2; + } + + public void setSclientn2(String value) { + this.sclientn2 = value; + } + + public String getSclientn3() { + return sclientn3; + } + + public void setSclientn3(String value) { + this.sclientn3 = value; + } + + public String getSclientn4() { + return sclientn4; + } + + public void setSclientn4(String value) { + this.sclientn4 = value; + } + + public String getInn_deb() { + return inn_deb; + } + + public void setInn_deb(String value) { + this.inn_deb = value; + } + + public String getKpp_deb() { + return kpp_deb; + } + + public void setKpp_deb(String value) { + this.kpp_deb = value; + } + + public String getAcc_deb() { + return acc_deb; + } + + public void setAcc_deb(String value) { + this.acc_deb = value; + } + + public String getRclientn1() { + return rclientn1; + } + + public void setRclientn1(String value) { + this.rclientn1 = value; + } + + public String getRclientn2() { + return rclientn2; + } + + public void setRclientn2(String value) { + this.rclientn2 = value; + } + + public String getRclientn3() { + return rclientn3; + } + + public void setRclientn3(String value) { + this.rclientn3 = value; + } + + public String getRclientn4() { + return rclientn4; + } + + public void setRclientn4(String value) { + this.rclientn4 = value; + } + + public String getInn_cred() { + return inn_cred; + } + + public void setInn_cred(String value) { + this.inn_cred = value; + } + + public String getKpp_cred() { + return kpp_cred; + } + + public void setKpp_cred(String value) { + this.kpp_cred = value; + } + + public String getAcc_kr_1() { + return acc_kr_1; + } + + public void setAcc_kr_1(String value) { + this.acc_kr_1 = value; + } + + public String getSpecif_1() { + return specif_1; + } + + public void setSpecif_1(String value) { + this.specif_1 = value; + } + + public String getSend_type() { + return send_type; + } + + public void setSend_type(String value) { + this.send_type = value; + } + + public String getDoc_result() { + return doc_result; + } + + public void setDoc_result(String value) { + this.doc_result = value; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String value) { + this.fileName = value; + } + + public Instant getGenerationTime() { + return generationTime; + } + + public void setGenerationTime(Instant value) { + this.generationTime = value; + } + + public Long getGenerationId() { + return generationId; + } + + public void setGenerationId(Long value) { + this.generationId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf56.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf56.java new file mode 100644 index 000000000..54ac3ecf3 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf56.java @@ -0,0 +1,79 @@ +package ru.clearing.classes.statics.data.sdf; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.time.Instant; + +/** + * ДФ-56 Запрос транзакций за период + *

+ * DB table: S_DF56 + **/ +public class SDf56 extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private String number; + private String start_datetime; + private String end_datetime; + private String account; + private String deal; + private Instant generationTime; + private Long generationId; + + public String getNumber() { + return number; + } + + public void setNumber(String value) { + this.number = value; + } + + public String getStart_datetime() { + return start_datetime; + } + + public void setStart_datetime(String value) { + this.start_datetime = value; + } + + public String getEnd_datetime() { + return end_datetime; + } + + public void setEnd_datetime(String value) { + this.end_datetime = value; + } + + public String getAccount() { + return account; + } + + public void setAccount(String value) { + this.account = value; + } + + public String getDeal() { + return deal; + } + + public void setDeal(String value) { + this.deal = value; + } + + public Instant getGenerationTime() { + return generationTime; + } + + public void setGenerationTime(Instant value) { + this.generationTime = value; + } + + public Long getGenerationId() { + return generationId; + } + + public void setGenerationId(Long value) { + this.generationId = value; + } +} diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf57.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf57.java new file mode 100644 index 000000000..f66fcc510 --- /dev/null +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/sdf/SDf57.java @@ -0,0 +1,377 @@ +package ru.clearing.classes.statics.data.sdf; + +import ru.clearing.classes.ConstSerializable; +import ru.spcex.platform.classes.base.SpcexObjectBase; + +import java.time.Instant; + +/** + * ДФ-57 Список транзакций о списании/зачислении за период по всем счетам (ТБС и КС) + *

+ * DB table: S_DF57 + **/ +public class SDf57 extends SpcexObjectBase { + private static final long serialVersionUID = ConstSerializable.serialVersionUID; + + private Long dbfId; + private String deal_deb; + private String deal_cred; + private String sbankcode; + private String c_acc_deb; + private String sbanknam1; + private String sbanknam2; + private String sbanknam3; + private String sbanknam4; + private String sbanknam5; + private String rbankcode; + private String c_acc_cred; + private String rbanknam1; + private String rbanknam2; + private String rbanknam3; + private String rbanknam4; + private String rbanknam5; + private String op_type; + private String pay_date; + private String ext_date; + private String pay_val; + private String sum_deb; + private String sclientn1; + private String sclientn2; + private String sclientn3; + private String sclientn4; + private String inn_deb; + private String kpp_deb; + private String acc_deb; + private String rclientn1; + private String rclientn2; + private String rclientn3; + private String rclientn4; + private String inn_cred; + private String kpp_cred; + private String acc_kr; + private String specif; + private String fileName; + private Instant generationTime; + private Long generationId; + + public Long getDbfId() { + return dbfId; + } + + public void setDbfId(Long value) { + this.dbfId = value; + } + + public String getDeal_deb() { + return deal_deb; + } + + public void setDeal_deb(String value) { + this.deal_deb = value; + } + + public String getDeal_cred() { + return deal_cred; + } + + public void setDeal_cred(String value) { + this.deal_cred = value; + } + + public String getSbankcode() { + return sbankcode; + } + + public void setSbankcode(String value) { + this.sbankcode = value; + } + + public String getC_acc_deb() { + return c_acc_deb; + } + + public void setC_acc_deb(String value) { + this.c_acc_deb = value; + } + + public String getSbanknam1() { + return sbanknam1; + } + + public void setSbanknam1(String value) { + this.sbanknam1 = value; + } + + public String getSbanknam2() { + return sbanknam2; + } + + public void setSbanknam2(String value) { + this.sbanknam2 = value; + } + + public String getSbanknam3() { + return sbanknam3; + } + + public void setSbanknam3(String value) { + this.sbanknam3 = value; + } + + public String getSbanknam4() { + return sbanknam4; + } + + public void setSbanknam4(String value) { + this.sbanknam4 = value; + } + + public String getSbanknam5() { + return sbanknam5; + } + + public void setSbanknam5(String value) { + this.sbanknam5 = value; + } + + public String getRbankcode() { + return rbankcode; + } + + public void setRbankcode(String value) { + this.rbankcode = value; + } + + public String getC_acc_cred() { + return c_acc_cred; + } + + public void setC_acc_cred(String value) { + this.c_acc_cred = value; + } + + public String getRbanknam1() { + return rbanknam1; + } + + public void setRbanknam1(String value) { + this.rbanknam1 = value; + } + + public String getRbanknam2() { + return rbanknam2; + } + + public void setRbanknam2(String value) { + this.rbanknam2 = value; + } + + public String getRbanknam3() { + return rbanknam3; + } + + public void setRbanknam3(String value) { + this.rbanknam3 = value; + } + + public String getRbanknam4() { + return rbanknam4; + } + + public void setRbanknam4(String value) { + this.rbanknam4 = value; + } + + public String getRbanknam5() { + return rbanknam5; + } + + public void setRbanknam5(String value) { + this.rbanknam5 = value; + } + + public String getOp_type() { + return op_type; + } + + public void setOp_type(String value) { + this.op_type = value; + } + + public String getPay_date() { + return pay_date; + } + + public void setPay_date(String value) { + this.pay_date = value; + } + + public String getExt_date() { + return ext_date; + } + + public void setExt_date(String value) { + this.ext_date = value; + } + + public String getPay_val() { + return pay_val; + } + + public void setPay_val(String value) { + this.pay_val = value; + } + + public String getSum_deb() { + return sum_deb; + } + + public void setSum_deb(String value) { + this.sum_deb = value; + } + + public String getSclientn1() { + return sclientn1; + } + + public void setSclientn1(String value) { + this.sclientn1 = value; + } + + public String getSclientn2() { + return sclientn2; + } + + public void setSclientn2(String value) { + this.sclientn2 = value; + } + + public String getSclientn3() { + return sclientn3; + } + + public void setSclientn3(String value) { + this.sclientn3 = value; + } + + public String getSclientn4() { + return sclientn4; + } + + public void setSclientn4(String value) { + this.sclientn4 = value; + } + + public String getInn_deb() { + return inn_deb; + } + + public void setInn_deb(String value) { + this.inn_deb = value; + } + + public String getKpp_deb() { + return kpp_deb; + } + + public void setKpp_deb(String value) { + this.kpp_deb = value; + } + + public String getAcc_deb() { + return acc_deb; + } + + public void setAcc_deb(String value) { + this.acc_deb = value; + } + + public String getRclientn1() { + return rclientn1; + } + + public void setRclientn1(String value) { + this.rclientn1 = value; + } + + public String getRclientn2() { + return rclientn2; + } + + public void setRclientn2(String value) { + this.rclientn2 = value; + } + + public String getRclientn3() { + return rclientn3; + } + + public void setRclientn3(String value) { + this.rclientn3 = value; + } + + public String getRclientn4() { + return rclientn4; + } + + public void setRclientn4(String value) { + this.rclientn4 = value; + } + + public String getInn_cred() { + return inn_cred; + } + + public void setInn_cred(String value) { + this.inn_cred = value; + } + + public String getKpp_cred() { + return kpp_cred; + } + + public void setKpp_cred(String value) { + this.kpp_cred = value; + } + + public String getAcc_kr() { + return acc_kr; + } + + public void setAcc_kr(String value) { + this.acc_kr = value; + } + + public String getSpecif() { + return specif; + } + + public void setSpecif(String value) { + this.specif = value; + } + + public String getFileName() { + return fileName; + } + + public void setFileName(String value) { + this.fileName = value; + } + + public Instant getGenerationTime() { + return generationTime; + } + + public void setGenerationTime(Instant value) { + this.generationTime = value; + } + + public Long getGenerationId() { + return generationId; + } + + public void setGenerationId(Long value) { + this.generationId = value; + } + +} \ No newline at end of file diff --git a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/statement/Statement.java b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/statement/Statement.java index f6872ed68..5a165da5f 100644 --- a/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/statement/Statement.java +++ b/clearing-parent/classes/src/main/java/ru/clearing/classes/statics/data/statement/Statement.java @@ -16,156 +16,164 @@ public class Statement extends BusinessObject { private Long addresseeId; private Long senderId; - private LocalDate clearingDate; private String statementType; + private Long securityId; + private String contract; private String comment; private Long accountId; private String account; private String inOutDirection; private LocalDate settlementDate; private BigDecimal amount; - private String cashMovementCurrencyCode; private String operationStatus; - private String errorCode; - private String errorText; + private Long errorCodeId; + private Long errorTextId; private Long inSDfId; private Long outSDfId; private String inOutSDfType; + private LocalDate clearingDate; public Long getAddresseeId() { return addresseeId; } - public void setAddresseeId(Long value) { - this.addresseeId = value; + public void setAddresseeId(Long addresseeId) { + this.addresseeId = addresseeId; } public Long getSenderId() { return senderId; } - public void setSenderId(Long value) { - this.senderId = value; - } - - public LocalDate getClearingDate() { - return clearingDate; - } - - public void setClearingDate(LocalDate value) { - this.clearingDate = value; + public void setSenderId(Long senderId) { + this.senderId = senderId; } public String getStatementType() { return statementType; } - public void setStatementType(String value) { - this.statementType = value; + public void setStatementType(String statementType) { + this.statementType = statementType; + } + + public Long getSecurityId() { + return securityId; + } + + public void setSecurityId(Long securityId) { + this.securityId = securityId; + } + + public String getContract() { + return contract; + } + + public void setContract(String contract) { + this.contract = contract; } public String getComment() { return comment; } - public void setComment(String value) { - this.comment = value; + public void setComment(String comment) { + this.comment = comment; } public Long getAccountId() { return accountId; } - public void setAccountId(Long value) { - this.accountId = value; + public void setAccountId(Long accountId) { + this.accountId = accountId; } public String getAccount() { return account; } - public void setAccount(String value) { - this.account = value; + public void setAccount(String account) { + this.account = account; } public String getInOutDirection() { return inOutDirection; } - public void setInOutDirection(String value) { - this.inOutDirection = value; + public void setInOutDirection(String inOutDirection) { + this.inOutDirection = inOutDirection; } public LocalDate getSettlementDate() { return settlementDate; } - public void setSettlementDate(LocalDate value) { - this.settlementDate = value; + public void setSettlementDate(LocalDate settlementDate) { + this.settlementDate = settlementDate; } public BigDecimal getAmount() { return amount; } - public void setAmount(BigDecimal value) { - this.amount = value; - } - - public String getCashMovementCurrencyCode() { - return cashMovementCurrencyCode; - } - - public void setCashMovementCurrencyCode(String value) { - this.cashMovementCurrencyCode = value; + public void setAmount(BigDecimal amount) { + this.amount = amount; } public String getOperationStatus() { return operationStatus; } - public void setOperationStatus(String value) { - this.operationStatus = value; + public void setOperationStatus(String operationStatus) { + this.operationStatus = operationStatus; } - public String getErrorCode() { - return errorCode; + public Long getErrorCodeId() { + return errorCodeId; } - public void setErrorCode(String value) { - this.errorCode = value; + public void setErrorCodeId(Long errorCodeId) { + this.errorCodeId = errorCodeId; } - public String getErrorText() { - return errorText; + public Long getErrorTextId() { + return errorTextId; } - public void setErrorText(String value) { - this.errorText = value; + public void setErrorTextId(Long errorTextId) { + this.errorTextId = errorTextId; } public Long getInSDfId() { return inSDfId; } - public void setInSDfId(Long value) { - this.inSDfId = value; + public void setInSDfId(Long inSDfId) { + this.inSDfId = inSDfId; } public Long getOutSDfId() { return outSDfId; } - public void setOutSDfId(Long value) { - this.outSDfId = value; + public void setOutSDfId(Long outSDfId) { + this.outSDfId = outSDfId; } public String getInOutSDfType() { return inOutSDfType; } - public void setInOutSDfType(String value) { - this.inOutSDfType = value; + public void setInOutSDfType(String inOutSDfType) { + this.inOutSDfType = inOutSDfType; } + public LocalDate getClearingDate() { + return clearingDate; + } + + public void setClearingDate(LocalDate clearingDate) { + this.clearingDate = clearingDate; + } } \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/NotificationHistoryMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/NotificationHistoryMapStore.java new file mode 100644 index 000000000..a70332a61 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessevent/NotificationHistoryMapStore.java @@ -0,0 +1,57 @@ +package ru.spcex.clearing.imdg.businessevent; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.misc.Notification; +import ru.clearing.classes.statics.data.misc.NotificationHistory; +import ru.spcex.clearing.imdg.base.TemplateEventMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +@Component +public class NotificationHistoryMapStore extends TemplateEventMapStore { + + public NotificationHistoryMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_NotificationHistory; + } + + @Override + public String getTableName() { + return "NOTIFICATION_HISTORY"; + } + + @Override + public String[] getFields() { + return new String[]{"ID", "EVENT_TIME", "EVENT_USER_ID", "EVENT_TYPE", + "NOTIFICATION_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "SENDER_ID", "ADDRESSEE_ID", "OBJECT_TYPE", "OBJECT_ID", "NOTIFICATION_STATUS" + }; + } + + @Override + public Object[] objectToField(NotificationHistory historyLog) { + Notification object = historyLog.getObject(); + Object[] args = new Object[]{ + historyLog.getId(), + TimeUtil.toDateFromInstant(historyLog.getEventTime()), + historyLog.getUserId(), + historyLog.getEventType(), + + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()), + object.getSenderId(), + object.getAddresseeId(), + object.getObjectType(), + object.getObjectId(), + object.getNotificationStatus() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/OperationMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/OperationMapStore.java new file mode 100644 index 000000000..8161f263f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/OperationMapStore.java @@ -0,0 +1,66 @@ +package ru.spcex.clearing.imdg.businessobject; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.payment.Operation; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class OperationMapStore extends TemplateMapStore { + + public OperationMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_Operation; + } + + @Override + public String getTableName() { + return "OPERATION"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "ADDRESSEE_ID", "SENDER_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "OPERATION_TYPE_ID", "OPERATION_STATUS" + }; + } + + @Override + public Operation objectReader(ResultSet resultSet) throws SQLException { + Operation object = new Operation(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setAddresseeId(resultSet.getObject("ADDRESSEE_ID", Long.class)); + object.setSenderId(resultSet.getObject("SENDER_ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + object.setOperationTypeId(resultSet.getObject("OPERATION_TYPE_ID", Long.class)); + object.setOperationStatus(resultSet.getObject("OPERATION_STATUS", String.class)); + return object; + } + + @Override + public Object[] objectToField(Operation object) { + Object[] args = new Object[]{ + object.getId(), + object.getAddresseeId(), + object.getSenderId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()), + object.getOperationTypeId(), + object.getOperationStatus() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/StatementMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/StatementMapStore.java index 2ac34dbaa..babef23ac 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/StatementMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/businessobject/StatementMapStore.java @@ -31,7 +31,7 @@ public class StatementMapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "ADDRESSEE_ID", "SENDER_ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "STATEMENT_TYPE", "COMMENT", "ACCOUNT_ID", "ACCOUNT", "IN_OUT_DIRECTION", "SETTLEMENT_DATE", "AMOUNT", "CASH_MOVEMENT_CURRENCY_CODE", "OPERATION_STATUS", "ERROR_CODE", "ERROR_TEXT", "IN_S_DF_ID", "OUT_S_DF_ID", "IN_OUT_S_DF_TYPE" + "ID", "ADDRESSEE_ID", "SENDER_ID", "STATEMENT_TYPE", "SECURITY_ID", "CONTRACT", "COMMENT", "ACCOUNT_ID", "ACCOUNT", "IN_OUT_DIRECTION", "SETTLEMENT_DATE", "AMOUNT", "OPERATION_STATUS", "ERROR_CODE_ID", "ERROR_TEXT_ID", "IN_S_DF_ID", "OUT_S_DF_ID", "IN_OUT_S_DF_TYPE", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE" }; } @@ -41,23 +41,24 @@ public class StatementMapStore extends TemplateMapStore { object.setId(resultSet.getObject("ID", Long.class)); object.setAddresseeId(resultSet.getObject("ADDRESSEE_ID", Long.class)); object.setSenderId(resultSet.getObject("SENDER_ID", Long.class)); - object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); - object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); - object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); object.setStatementType(resultSet.getObject("STATEMENT_TYPE", String.class)); + object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); + object.setContract(resultSet.getObject("CONTRACT", String.class)); object.setComment(resultSet.getObject("COMMENT", String.class)); object.setAccountId(resultSet.getObject("ACCOUNT_ID", Long.class)); object.setAccount(resultSet.getObject("ACCOUNT", String.class)); object.setInOutDirection(resultSet.getObject("IN_OUT_DIRECTION", String.class)); object.setSettlementDate(getLocalDateFromSqlDate(resultSet, "SETTLEMENT_DATE")); object.setAmount(resultSet.getObject("AMOUNT", BigDecimal.class)); - object.setCashMovementCurrencyCode(resultSet.getObject("CASH_MOVEMENT_CURRENCY_CODE", String.class)); object.setOperationStatus(resultSet.getObject("OPERATION_STATUS", String.class)); - object.setErrorCode(resultSet.getObject("ERROR_CODE", String.class)); - object.setErrorText(resultSet.getObject("ERROR_TEXT", String.class)); + object.setErrorCodeId(resultSet.getObject("ERROR_CODE_ID", Long.class)); + object.setErrorTextId(resultSet.getObject("ERROR_TEXT_ID", Long.class)); object.setInSDfId(resultSet.getObject("IN_S_DF_ID", Long.class)); object.setOutSDfId(resultSet.getObject("OUT_S_DF_ID", Long.class)); object.setInOutSDfType(resultSet.getObject("IN_OUT_S_DF_TYPE", String.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); return object; } @@ -67,23 +68,24 @@ public class StatementMapStore extends TemplateMapStore { object.getId(), object.getAddresseeId(), object.getSenderId(), - TimeUtil.toDateFromInstant(object.getCreated()), - TimeUtil.toDateFromInstant(object.getUpdated()), - TimeUtil.toDateFromLocalDate(object.getClearingDate()), object.getStatementType(), + object.getSecurityId(), + object.getContract(), object.getComment(), object.getAccountId(), object.getAccount(), object.getInOutDirection(), TimeUtil.toDateFromLocalDate(object.getSettlementDate()), object.getAmount(), - object.getCashMovementCurrencyCode(), object.getOperationStatus(), - object.getErrorCode(), - object.getErrorText(), + object.getErrorCodeId(), + object.getErrorTextId(), object.getInSDfId(), object.getOutSDfId(), - object.getInOutSDfType() + object.getInOutSDfType(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ContractRegisterMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ContractRegisterMapStore.java index a97030e36..c86d05117 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ContractRegisterMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/ContractRegisterMapStore.java @@ -56,7 +56,7 @@ public class ContractRegisterMapStore extends TemplateMapStore object.setName(resultSet.getObject("NAME", String.class)); object.setNumber(resultSet.getObject("NUMBER", String.class)); object.setIssueDate(getLocalDateFromSqlDate(resultSet, "ISSUE_DATE")); - object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", Long.class)); + object.setCompanyFullName(resultSet.getObject("COMPANY_FULL_NAME", String.class)); object.setCompanyId(resultSet.getObject("COMPANY_ID", Long.class)); object.setDocumentType(resultSet.getObject("DOCUMENT_TYPE", String.class)); object.setIssuePlace(resultSet.getObject("ISSUE_PLACE", String.class)); diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MarketDataLiquidationMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MarketDataLiquidationMapStore.java new file mode 100644 index 000000000..5b7d9be69 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/MarketDataLiquidationMapStore.java @@ -0,0 +1,60 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.misc.MarketDataLiquidation; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class MarketDataLiquidationMapStore extends TemplateMapStore { + + public MarketDataLiquidationMapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_MarketDataLiquidation; + } + + @Override + public String getTableName() { + return "MARKET_DATA_LIQUIDATION"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "SECURITY_ID", "PRICE", "CLEARING_DATE" + }; + } + + @Override + public MarketDataLiquidation objectReader(ResultSet resultSet) throws SQLException { + MarketDataLiquidation object = new MarketDataLiquidation(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setSecurityId(resultSet.getObject("SECURITY_ID", Long.class)); + object.setPrice(resultSet.getObject("PRICE", BigDecimal.class)); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + return object; + } + + @Override + public Object[] objectToField(MarketDataLiquidation object) { + Object[] args = new Object[]{ + object.getId(), + object.getSecurityId(), + object.getPrice(), + TimeUtil.toDateFromLocalDate(object.getClearingDate()) + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/NotificationMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/NotificationMapStore.java index 1731f9845..ffbd7f8f0 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/NotificationMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/NotificationMapStore.java @@ -17,58 +17,50 @@ public class NotificationMapStore extends TemplateMapStore { super(jdbcTemplate); } - @Override - public String getTableName() { - return "NOTIFICATION"; - } - @Override public String getMapName() { return IMDGDistributedNames.Map_Notification; } + @Override + public String getTableName() { + return "NOTIFICATION"; + } + @Override public String[] getFields() { return new String[]{ - "id", - "created_at", - "updated_at", - "clearing_date", - "sender_id", - "addressee_id", - "object_type", - "object_id", - "notification_status" + "ID", "CREATED_AT", "UPDATED_AT", "CLEARING_DATE", "SENDER_ID", "ADDRESSEE_ID", "OBJECT_TYPE", "OBJECT_ID", "NOTIFICATION_STATUS" }; } @Override - protected Notification objectReader(ResultSet resultSet) throws SQLException { - Notification notification = new Notification(); - notification.setId(resultSet.getLong("id")); - notification.setCreated(getInstantFromTimestamp(resultSet, "created_at")); - notification.setUpdated(getInstantFromTimestamp(resultSet, "updated_at")); - notification.setClearingDate(getLocalDateFromSqlDate(resultSet, "clearing_date")); - notification.setSenderId(resultSet.getLong("sender_id")); - notification.setAddresseeId(resultSet.getLong("addressee_id")); - notification.setObjectType(resultSet.getString("object_type")); - notification.setObjectId(getInstantFromTimestamp(resultSet, "object_id")); - notification.setNotificationStatus(resultSet.getString("notification_status")); - return notification; + public Notification objectReader(ResultSet resultSet) throws SQLException { + Notification object = new Notification(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setCreated(getInstantFromTimestamp(resultSet, "CREATED_AT")); + object.setUpdated(getInstantFromTimestamp(resultSet, "UPDATED_AT")); + object.setClearingDate(getLocalDateFromSqlDate(resultSet, "CLEARING_DATE")); + object.setSenderId(resultSet.getObject("SENDER_ID", Long.class)); + object.setAddresseeId(resultSet.getObject("ADDRESSEE_ID", Long.class)); + object.setObjectType(resultSet.getObject("OBJECT_TYPE", String.class)); + object.setObjectId(resultSet.getObject("OBJECT_ID", Long.class)); + object.setNotificationStatus(resultSet.getObject("NOTIFICATION_STATUS", String.class)); + return object; } @Override - protected Object[] objectToField(Notification notification) { + public Object[] objectToField(Notification object) { Object[] args = new Object[]{ - notification.getId(), - TimeUtil.toDateFromInstant(notification.getCreated()), - TimeUtil.toDateFromInstant(notification.getUpdated()), - notification.getClearingDate(), - notification.getSenderId(), - notification.getAddresseeId(), - notification.getObjectType(), - TimeUtil.toDateFromInstant(notification.getObjectId()), - notification.getNotificationStatus() + object.getId(), + TimeUtil.toDateFromInstant(object.getCreated()), + TimeUtil.toDateFromInstant(object.getUpdated()), + TimeUtil.toDateFromLocalDate(object.getClearingDate()), + object.getSenderId(), + object.getAddresseeId(), + object.getObjectType(), + object.getObjectId(), + object.getNotificationStatus() }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/PaymentInstructionMapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/PaymentInstructionMapStore.java index 3a4fa3c31..11281e96f 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/PaymentInstructionMapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/PaymentInstructionMapStore.java @@ -7,6 +7,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; import ru.spcex.platform.utils.time.TimeUtil; +import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; @@ -17,86 +18,92 @@ public class PaymentInstructionMapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "CURR_CODE", "ACCOUNT", "REMAINDER", "DEAL", "ACC_CODE", "DAT", "MARKET", "ACC_NAME", "ACC_TYPE", "SUMENGAGE", "SUMUNBLOCK", "FILE_TYPE", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF01_ID" + "ID", "CURR_CODE", "ACCOUNT", "REMAINDER", "DEAL", "ACC_CODE", "DAT", "MARKET", "ACC_NAME", "ACC_TYPE", "SUMENGAGE", "SUMUNBLOCK", "FILE_TYPE", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF_ID" }; } @@ -53,7 +53,7 @@ public class SDf02MapStore extends TemplateMapStore { object.setResult(resultSet.getObject("RESULT", String.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - object.setInSDf01Id(resultSet.getObject("IN_S_DF01_ID", Long.class)); + object.setInSDfId(resultSet.getObject("IN_S_DF_ID", Long.class)); return object; } @@ -76,7 +76,7 @@ public class SDf02MapStore extends TemplateMapStore { object.getResult(), TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId(), - object.getInSDf01Id() + object.getInSDfId() }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf03MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf03MapStore.java index b06068c55..2a22e089e 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf03MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf03MapStore.java @@ -30,12 +30,7 @@ public class SDf03MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "SEG_TYPE", "DOC_TYPE", "DOCNM_REF", "DOCNMPREV", "PRIORITY", "SBANKCODE", "C_ACC_DEB", "SBANKNAM1", "SBANKNAM2", - "SBANKNAM3", "SBANKNAM4", "SBANKNAM5", "RBANKCODE", "C_ACC_CRED", "RBANKNAM1", "RBANKNAM2", "RBANKNAM3", - "RBANKNAM4", "RBANKNAM5", "PAY_DATE", "EXT_DATE", "PAY_VAL", "SUM_DEB", "SCLIENTN1", "SCLIENTN2", - "SCLIENTN3", "SCLIENTN4", "SC_CODE", "ACC_DEB", "RCLIENTN1", "RCLIENTN2", "RCLIENTN3", "RCLIENTN4", - "ACC_KR_1", "ACC_KR_2", "SP_CODE", "SPECIF_1", "SPECIF_2", "SPECIF_3", "SPECIF_4", "SPECIF_5", - "SPECIF_6", "SEND_TYPE", "SERVDATE", "DOC_RESULT", "IMP_RESULT", "GENERATION_TIME", "GENERATION_ID", "PAYMENT_INSTRUCTION_ID" + "ID", "SEG_TYPE", "DOC_TYPE", "DOCNM_REF", "DOCNMPREV", "C_ACC_DEB", "SBANKNAM1", "SBANKNAM2", "SBANKNAM3", "SBANKNAM4", "SBANKNAM5", "C_ACC_CRED", "RBANKNAM1", "RBANKNAM2", "RBANKNAM3", "RBANKNAM4", "RBANKNAM5", "PAY_DATE", "PAY_VAL", "SUM_DEB", "SPECIF_1", "IMP_RESULT", "GENERATION_TIME", "GENERATION_ID", "PAYMENT_INSTRUCTION_ID" }; } @@ -47,15 +42,12 @@ public class SDf03MapStore extends TemplateMapStore { object.setDoc_type(resultSet.getObject("DOC_TYPE", String.class)); object.setDocnm_ref(resultSet.getObject("DOCNM_REF", String.class)); object.setDocnmprev(resultSet.getObject("DOCNMPREV", String.class)); - object.setPriority(resultSet.getObject("PRIORITY", String.class)); - object.setSbankcode(resultSet.getObject("SBANKCODE", String.class)); object.setC_acc_deb(resultSet.getObject("C_ACC_DEB", String.class)); object.setSbanknam1(resultSet.getObject("SBANKNAM1", String.class)); object.setSbanknam2(resultSet.getObject("SBANKNAM2", String.class)); object.setSbanknam3(resultSet.getObject("SBANKNAM3", String.class)); object.setSbanknam4(resultSet.getObject("SBANKNAM4", String.class)); object.setSbanknam5(resultSet.getObject("SBANKNAM5", String.class)); - object.setRbankcode(resultSet.getObject("RBANKCODE", String.class)); object.setC_acc_cred(resultSet.getObject("C_ACC_CRED", String.class)); object.setRbanknam1(resultSet.getObject("RBANKNAM1", String.class)); object.setRbanknam2(resultSet.getObject("RBANKNAM2", String.class)); @@ -63,31 +55,9 @@ public class SDf03MapStore extends TemplateMapStore { object.setRbanknam4(resultSet.getObject("RBANKNAM4", String.class)); object.setRbanknam5(resultSet.getObject("RBANKNAM5", String.class)); object.setPay_date(resultSet.getObject("PAY_DATE", String.class)); - object.setExt_date(resultSet.getObject("EXT_DATE", String.class)); object.setPay_val(resultSet.getObject("PAY_VAL", String.class)); object.setSum_deb(resultSet.getObject("SUM_DEB", String.class)); - object.setSclientn1(resultSet.getObject("SCLIENTN1", String.class)); - object.setSclientn2(resultSet.getObject("SCLIENTN2", String.class)); - object.setSclientn3(resultSet.getObject("SCLIENTN3", String.class)); - object.setSclientn4(resultSet.getObject("SCLIENTN4", String.class)); - object.setSc_code(resultSet.getObject("SC_CODE", String.class)); - object.setAcc_deb(resultSet.getObject("ACC_DEB", String.class)); - object.setRclientn1(resultSet.getObject("RCLIENTN1", String.class)); - object.setRclientn2(resultSet.getObject("RCLIENTN2", String.class)); - object.setRclientn3(resultSet.getObject("RCLIENTN3", String.class)); - object.setRclientn4(resultSet.getObject("RCLIENTN4", String.class)); - object.setAcc_kr_1(resultSet.getObject("ACC_KR_1", String.class)); - object.setAcc_kr_2(resultSet.getObject("ACC_KR_2", String.class)); - object.setSp_code(resultSet.getObject("SP_CODE", String.class)); object.setSpecif_1(resultSet.getObject("SPECIF_1", String.class)); - object.setSpecif_2(resultSet.getObject("SPECIF_2", String.class)); - object.setSpecif_3(resultSet.getObject("SPECIF_3", String.class)); - object.setSpecif_4(resultSet.getObject("SPECIF_4", String.class)); - object.setSpecif_5(resultSet.getObject("SPECIF_5", String.class)); - object.setSpecif_6(resultSet.getObject("SPECIF_6", String.class)); - object.setSend_type(resultSet.getObject("SEND_TYPE", String.class)); - object.setServdate(resultSet.getObject("SERVDATE", String.class)); - object.setDoc_result(resultSet.getObject("DOC_RESULT", String.class)); object.setImp_result(resultSet.getObject("IMP_RESULT", String.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); @@ -103,15 +73,12 @@ public class SDf03MapStore extends TemplateMapStore { object.getDoc_type(), object.getDocnm_ref(), object.getDocnmprev(), - object.getPriority(), - object.getSbankcode(), object.getC_acc_deb(), object.getSbanknam1(), object.getSbanknam2(), object.getSbanknam3(), object.getSbanknam4(), object.getSbanknam5(), - object.getRbankcode(), object.getC_acc_cred(), object.getRbanknam1(), object.getRbanknam2(), @@ -119,31 +86,9 @@ public class SDf03MapStore extends TemplateMapStore { object.getRbanknam4(), object.getRbanknam5(), object.getPay_date(), - object.getExt_date(), object.getPay_val(), object.getSum_deb(), - object.getSclientn1(), - object.getSclientn2(), - object.getSclientn3(), - object.getSclientn4(), - object.getSc_code(), - object.getAcc_deb(), - object.getRclientn1(), - object.getRclientn2(), - object.getRclientn3(), - object.getRclientn4(), - object.getAcc_kr_1(), - object.getAcc_kr_2(), - object.getSp_code(), object.getSpecif_1(), - object.getSpecif_2(), - object.getSpecif_3(), - object.getSpecif_4(), - object.getSpecif_5(), - object.getSpecif_6(), - object.getSend_type(), - object.getServdate(), - object.getDoc_result(), object.getImp_result(), TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId(), diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf04MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf04MapStore.java index b2cd9d2fd..1b1ac63b5 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf04MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf04MapStore.java @@ -30,12 +30,7 @@ public class SDf04MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "id", "seg_type", "doc_type", "docnm_ref", "docnmprev", "priority", "sbankcode", "c_acc_deb", "sbanknam1", - "sbanknam2", "sbanknam3", "sbanknam4", "sbanknam5", "rbankcode", "c_acc_cred", "rbanknam1", "rbanknam2", - "rbanknam3", "rbanknam4", "rbanknam5", "pay_date", "ext_date", "pay_val", "sum_deb", "sclientn1", "sclientn2", - "sclientn3", "sclientn4", "sc_code", "acc_deb", "rclientn1", "rclientn2", "rclientn3", "rclientn4", "acc_kr_1", - "acc_kr_2", "sp_code", "specif_1", "specif_2", "specif_3", "specif_4", "specif_5", "specif_6", "send_type", - "servdate", "doc_result", "imp_result", "file_name", "generation_time", "generation_id" + "ID", "SEG_TYPE", "DOC_TYPE", "DOCNM_REF", "DOCNMPREV", "C_ACC_DEB", "SBANKNAM1", "SBANKNAM2", "SBANKNAM3", "SBANKNAM4", "SBANKNAM5", "C_ACC_CRED", "RBANKNAM1", "RBANKNAM2", "RBANKNAM3", "RBANKNAM4", "RBANKNAM5", "PAY_DATE", "PAY_VAL", "SUM_DEB", "SPECIF_1", "IMP_RESULT", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" }; } @@ -43,55 +38,30 @@ public class SDf04MapStore extends TemplateMapStore { public SDf04 objectReader(ResultSet resultSet) throws SQLException { SDf04 object = new SDf04(); object.setId(resultSet.getObject("ID", Long.class)); - object.setSeg_type(resultSet.getString("seg_type")); - object.setDoc_type(resultSet.getString("doc_type")); - object.setDocnm_ref(resultSet.getString("docnm_ref")); - object.setDocnmprev(resultSet.getString("docnmprev")); - object.setPriority(resultSet.getString("priority")); - object.setSbankcode(resultSet.getString("sbankcode")); - object.setC_acc_deb(resultSet.getString("c_acc_deb")); - object.setSbanknam1(resultSet.getString("sbanknam1")); - object.setSbanknam2(resultSet.getString("sbanknam2")); - object.setSbanknam3(resultSet.getString("sbanknam3")); - object.setSbanknam4(resultSet.getString("sbanknam4")); - object.setSbanknam5(resultSet.getString("sbanknam5")); - object.setRbankcode(resultSet.getString("rbankcode")); - object.setC_acc_cred(resultSet.getString("c_acc_cred")); - object.setRbanknam1(resultSet.getString("rbanknam1")); - object.setRbanknam2(resultSet.getString("rbanknam2")); - object.setRbanknam3(resultSet.getString("rbanknam3")); - object.setRbanknam4(resultSet.getString("rbanknam4")); - object.setRbanknam5(resultSet.getString("rbanknam5")); - object.setPay_date(resultSet.getString("pay_date")); - object.setExt_date(resultSet.getString("ext_date")); - object.setPay_val(resultSet.getString("pay_val")); - object.setSum_deb(resultSet.getString("sum_deb")); - object.setSclientn1(resultSet.getString("sclientn1")); - object.setSclientn2(resultSet.getString("sclientn2")); - object.setSclientn3(resultSet.getString("sclientn3")); - object.setSclientn4(resultSet.getString("sclientn4")); - object.setSc_code(resultSet.getString("sc_code")); - object.setAcc_deb(resultSet.getString("acc_deb")); - object.setRclientn1(resultSet.getString("rclientn1")); - object.setRclientn2(resultSet.getString("rclientn2")); - object.setRclientn3(resultSet.getString("rclientn3")); - object.setRclientn4(resultSet.getString("rclientn4")); - object.setAcc_kr_1(resultSet.getString("acc_kr_1")); - object.setAcc_kr_2(resultSet.getString("acc_kr_2")); - object.setSp_code(resultSet.getString("sp_code")); - object.setSpecif_1(resultSet.getString("specif_1")); - object.setSpecif_2(resultSet.getString("specif_2")); - object.setSpecif_3(resultSet.getString("specif_3")); - object.setSpecif_4(resultSet.getString("specif_4")); - object.setSpecif_5(resultSet.getString("specif_5")); - object.setSpecif_6(resultSet.getString("specif_6")); - object.setSend_type(resultSet.getString("send_type")); - object.setServdate(resultSet.getString("servdate")); - object.setDoc_result(resultSet.getString("doc_result")); - object.setImp_result(resultSet.getString("imp_result")); - object.setFile_name(resultSet.getString("file_name")); - object.setGenerationTime(getInstantFromTimestamp(resultSet, "generation_time")); - object.setGenerationId(resultSet.getObject("generation_id", Long.class)); + object.setSeg_type(resultSet.getObject("SEG_TYPE", String.class)); + object.setDoc_type(resultSet.getObject("DOC_TYPE", String.class)); + object.setDocnm_ref(resultSet.getObject("DOCNM_REF", String.class)); + object.setDocnmprev(resultSet.getObject("DOCNMPREV", String.class)); + object.setC_acc_deb(resultSet.getObject("C_ACC_DEB", String.class)); + object.setSbanknam1(resultSet.getObject("SBANKNAM1", String.class)); + object.setSbanknam2(resultSet.getObject("SBANKNAM2", String.class)); + object.setSbanknam3(resultSet.getObject("SBANKNAM3", String.class)); + object.setSbanknam4(resultSet.getObject("SBANKNAM4", String.class)); + object.setSbanknam5(resultSet.getObject("SBANKNAM5", String.class)); + object.setC_acc_cred(resultSet.getObject("C_ACC_CRED", String.class)); + object.setRbanknam1(resultSet.getObject("RBANKNAM1", String.class)); + object.setRbanknam2(resultSet.getObject("RBANKNAM2", String.class)); + object.setRbanknam3(resultSet.getObject("RBANKNAM3", String.class)); + object.setRbanknam4(resultSet.getObject("RBANKNAM4", String.class)); + object.setRbanknam5(resultSet.getObject("RBANKNAM5", String.class)); + object.setPay_date(resultSet.getObject("PAY_DATE", String.class)); + object.setPay_val(resultSet.getObject("PAY_VAL", String.class)); + object.setSum_deb(resultSet.getObject("SUM_DEB", String.class)); + object.setSpecif_1(resultSet.getObject("SPECIF_1", String.class)); + object.setImp_result(resultSet.getObject("IMP_RESULT", String.class)); + object.setFileName(resultSet.getObject("FILE_NAME", String.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); return object; } @@ -103,15 +73,12 @@ public class SDf04MapStore extends TemplateMapStore { object.getDoc_type(), object.getDocnm_ref(), object.getDocnmprev(), - object.getPriority(), - object.getSbankcode(), object.getC_acc_deb(), object.getSbanknam1(), object.getSbanknam2(), object.getSbanknam3(), object.getSbanknam4(), object.getSbanknam5(), - object.getRbankcode(), object.getC_acc_cred(), object.getRbanknam1(), object.getRbanknam2(), @@ -119,33 +86,11 @@ public class SDf04MapStore extends TemplateMapStore { object.getRbanknam4(), object.getRbanknam5(), object.getPay_date(), - object.getExt_date(), object.getPay_val(), object.getSum_deb(), - object.getSclientn1(), - object.getSclientn2(), - object.getSclientn3(), - object.getSclientn4(), - object.getSc_code(), - object.getAcc_deb(), - object.getRclientn1(), - object.getRclientn2(), - object.getRclientn3(), - object.getRclientn4(), - object.getAcc_kr_1(), - object.getAcc_kr_2(), - object.getSp_code(), object.getSpecif_1(), - object.getSpecif_2(), - object.getSpecif_3(), - object.getSpecif_4(), - object.getSpecif_5(), - object.getSpecif_6(), - object.getSend_type(), - object.getServdate(), - object.getDoc_result(), object.getImp_result(), - object.getFile_name(), + object.getFileName(), TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf06MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf06MapStore.java new file mode 100644 index 000000000..94edabb33 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf06MapStore.java @@ -0,0 +1,80 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.sdf.SDf06; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class SDf06MapStore extends TemplateMapStore { + + public SDf06MapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SDf06; + } + + @Override + public String getTableName() { + return "S_DF06"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "ACCOUNT", "SUM", "MARKET", "TYPE", "DEAL", "CLIENT_N", "INN", "BIC", "SPEC", "NUMBER", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" + }; + } + + @Override + public SDf06 objectReader(ResultSet resultSet) throws SQLException { + SDf06 object = new SDf06(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setSum(resultSet.getObject("SUM", BigDecimal.class)); + object.setMarket(resultSet.getObject("MARKET", String.class)); + object.setType(resultSet.getObject("TYPE", String.class)); + object.setDeal(resultSet.getObject("DEAL", String.class)); + object.setClientN(resultSet.getObject("CLIENT_N", String.class)); + object.setInn(resultSet.getObject("INN", BigDecimal.class)); + object.setBic(resultSet.getObject("BIC", BigDecimal.class)); + object.setSpec(resultSet.getObject("SPEC", String.class)); + object.setNumber(resultSet.getObject("NUMBER", BigDecimal.class)); + object.setFileName(resultSet.getObject("FILE_NAME", String.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(SDf06 object) { + Object[] args = new Object[]{ + object.getId(), + object.getAccount(), + object.getSum(), + object.getMarket(), + object.getType(), + object.getDeal(), + object.getClientN(), + object.getInn(), + object.getBic(), + object.getSpec(), + object.getNumber(), + object.getFileName(), + TimeUtil.toDateFromInstant(object.getGenerationTime()), + object.getGenerationId() + }; + return args; + } + +} diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf07MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf07MapStore.java new file mode 100644 index 000000000..e0d5118ff --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf07MapStore.java @@ -0,0 +1,81 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.sdf.SDf07; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class SDf07MapStore extends TemplateMapStore { + + public SDf07MapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SDf07; + } + + @Override + public String getTableName() { + return "S_DF07"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "ACCOUNT", "SUM", "MARKET", "TYPE", "DEAL", "CLIENT_N", "INN", "BIC", "SPEC", "NUMBER", "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF_ID" + }; + } + + @Override + public SDf07 objectReader(ResultSet resultSet) throws SQLException { + SDf07 object = new SDf07(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setSum(resultSet.getObject("SUM", BigDecimal.class)); + object.setMarket(resultSet.getObject("MARKET", String.class)); + object.setType(resultSet.getObject("TYPE", String.class)); + object.setDeal(resultSet.getObject("DEAL", String.class)); + object.setClientN(resultSet.getObject("CLIENT_N", String.class)); + object.setInn(resultSet.getObject("INN", BigDecimal.class)); + object.setBic(resultSet.getObject("BIC", BigDecimal.class)); + object.setSpec(resultSet.getObject("SPEC", String.class)); + object.setNumber(resultSet.getObject("NUMBER", BigDecimal.class)); + object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); + object.setInSDfId(resultSet.getObject("IN_S_DF_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(SDf07 object) { + Object[] args = new Object[]{ + object.getId(), + object.getAccount(), + object.getSum(), + object.getMarket(), + object.getType(), + object.getDeal(), + object.getClientN(), + object.getInn(), + object.getBic(), + object.getSpec(), + object.getNumber(), + object.getResult(), + TimeUtil.toDateFromInstant(object.getGenerationTime()), + object.getGenerationId(), + object.getInSDfId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf08MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf08MapStore.java index b81be7113..a061f133e 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf08MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf08MapStore.java @@ -30,7 +30,7 @@ public class SDf08MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "NUMBER", "DATETIME", "GENERATION_TIME", "GENERATION_ID" + "ID", "OUT_DOCUMENT", "DEPO_CODE", "QUANTITY", "SECURITY_CODE", "CLIENT_NAME", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" }; } @@ -38,8 +38,12 @@ public class SDf08MapStore extends TemplateMapStore { public SDf08 objectReader(ResultSet resultSet) throws SQLException { SDf08 object = new SDf08(); object.setId(resultSet.getObject("ID", Long.class)); - object.setNumber(resultSet.getObject("NUMBER", String.class)); - object.setDatetime(resultSet.getObject("DATETIME", String.class)); + object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class)); + object.setDepoCode(resultSet.getObject("DEPO_CODE", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", String.class)); + object.setSecurityCode(resultSet.getObject("SECURITY_CODE", String.class)); + object.setClientName(resultSet.getObject("CLIENT_NAME", String.class)); + object.setFileName(resultSet.getObject("FILE_NAME", String.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); return object; @@ -49,8 +53,12 @@ public class SDf08MapStore extends TemplateMapStore { public Object[] objectToField(SDf08 object) { Object[] args = new Object[]{ object.getId(), - object.getNumber(), - object.getDatetime(), + object.getOutDocument(), + object.getDepoCode(), + object.getQuantity(), + object.getSecurityCode(), + object.getClientName(), + object.getFileName(), TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf09MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf09MapStore.java index 2cc841e7d..d704935e2 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf09MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf09MapStore.java @@ -31,8 +31,7 @@ public class SDf09MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "ACCOUNT", "SUM", "MARKET", "TYPE", "NUMBER", "INN", "FILE_NAME", "GENERATION_TIME", - "GENERATION_ID" + "ID", "OUT_DOCUMENT", "IN_DOCUMENT", "DEPO_CODE", "QUANTITY", "SECURITY_CODE", "CLIENT_NAME", "RESULT", "GENERATION_TIME", "GENERATION_ID" }; } @@ -40,13 +39,13 @@ public class SDf09MapStore extends TemplateMapStore { public SDf09 objectReader(ResultSet resultSet) throws SQLException { SDf09 object = new SDf09(); object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getString("ACCOUNT")); - object.setSum(resultSet.getObject("SUM", BigDecimal.class)); - object.setMarket(resultSet.getString("MARKET")); - object.setType(resultSet.getString("TYPE")); - object.setNumber(resultSet.getObject("NUMBER", BigDecimal.class)); - object.setInn(resultSet.getObject("INN", BigDecimal.class)); - object.setFileName(resultSet.getString("FILE_NAME")); + object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class)); + object.setInDocument(resultSet.getObject("IN_DOCUMENT", String.class)); + object.setDepoCode(resultSet.getObject("DEPO_CODE", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", String.class)); + object.setSecurityCode(resultSet.getObject("SECURITY_CODE", String.class)); + object.setClientName(resultSet.getObject("CLIENT_NAME", String.class)); + object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); return object; @@ -56,13 +55,13 @@ public class SDf09MapStore extends TemplateMapStore { public Object[] objectToField(SDf09 object) { Object[] args = new Object[]{ object.getId(), - object.getAccount(), - object.getSum(), - object.getMarket(), - object.getType(), - object.getNumber(), - object.getInn(), - object.getFileName(), + object.getOutDocument(), + object.getInDocument(), + object.getDepoCode(), + object.getQuantity(), + object.getSecurityCode(), + object.getClientName(), + object.getResult(), TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf10MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf10MapStore.java index fab361ee3..6f5a547aa 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf10MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf10MapStore.java @@ -31,8 +31,8 @@ public class SDf10MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "ACCOUNT", "SUM", "MARKET", "TYPE", "NUMBER", "INN", - "RESULT", "GENERATION_TIME", "GENERATION_ID", "IN_S_DF09_ID" + "ID", "OUT_DOCUMENT", "DEPO_CODE", "QUANTITY", "SECURITY_CODE", "CLIENT_NAME", "FILE_NAME", + "GENERATION_TIME", "GENERATION_ID" }; } @@ -40,16 +40,14 @@ public class SDf10MapStore extends TemplateMapStore { public SDf10 objectReader(ResultSet resultSet) throws SQLException { SDf10 object = new SDf10(); object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setSum(resultSet.getObject("SUM", BigDecimal.class)); - object.setMarket(resultSet.getObject("MARKET", String.class)); - object.setType(resultSet.getObject("TYPE", String.class)); - object.setNumber(resultSet.getObject("NUMBER", BigDecimal.class)); - object.setInn(resultSet.getObject("INN", BigDecimal.class)); - object.setResult(resultSet.getObject("RESULT", String.class)); + object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class)); + object.setDepoCode(resultSet.getObject("DEPO_CODE", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", String.class)); + object.setSecurityCode(resultSet.getObject("SECURITY_CODE", String.class)); + object.setClientName(resultSet.getObject("CLIENT_NAME", String.class)); + object.setFileName(resultSet.getObject("FILE_NAME", String.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - object.setInSDf09Id(resultSet.getObject("IN_S_DF09_ID", Long.class)); return object; } @@ -57,18 +55,15 @@ public class SDf10MapStore extends TemplateMapStore { public Object[] objectToField(SDf10 object) { Object[] args = new Object[]{ object.getId(), - object.getAccount(), - object.getSum(), - object.getMarket(), - object.getType(), - object.getNumber(), - object.getInn(), - object.getResult(), + object.getOutDocument(), + object.getDepoCode(), + object.getQuantity(), + object.getSecurityCode(), + object.getClientName(), + object.getFileName(), TimeUtil.toDateFromInstant(object.getGenerationTime()), - object.getGenerationId(), - object.getInSDf09Id() + object.getGenerationId() }; return args; } - } \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf11MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf11MapStore.java index febedde70..67c69a293 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf11MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf11MapStore.java @@ -7,6 +7,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; import ru.spcex.platform.utils.time.TimeUtil; +import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; @@ -30,12 +31,7 @@ public class SDf11MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "SEG_TYPE", "DOC_TYPE", "DOCNM_REF", "DOCNMPREV", "PRIORITY", "SBANKCODE", "C_ACC_DEB", "SBANKNAM1", - "SBANKNAM2", "SBANKNAM3", "SBANKNAM4", "SBANKNAM5", "RBANKCODE", "C_ACC_CRED", "RBANKNAM1", "RBANKNAM2", - "RBANKNAM3", "RBANKNAM4", "RBANKNAM5", "PAY_DATE", "EXT_DATE", "PAY_VAL", "SUM_DEB", "SCLIENTN1", "SCLIENTN2", - "SCLIENTN3", "SCLIENTN4", "SC_CODE", "ACC_DEB", "RCLIENTN1", "RCLIENTN2", "RCLIENTN3", "RCLIENTN4", - "ACC_KR_1", "ACC_KR_2", "SP_CODE", "SPECIF_1", "SPECIF_2", "SPECIF_3", "SPECIF_4", "SPECIF_5", - "SPECIF_6", "SEND_TYPE", "SERVDATE", "DOC_RESULT", "GENERATION_TIME", "GENERATION_ID", "PAYMENT_INSTRUCTION_ID" + "ID", "OUT_DOCUMENT", "IN_DOCUMENT", "DEPO_CODE", "QUANTITY", "SECURITY_CODE", "CLIENT_NAME", "RESULT", "GENERATION_TIME", "GENERATION_ID" }; } @@ -43,54 +39,15 @@ public class SDf11MapStore extends TemplateMapStore { public SDf11 objectReader(ResultSet resultSet) throws SQLException { SDf11 object = new SDf11(); object.setId(resultSet.getObject("ID", Long.class)); - object.setSeg_type(resultSet.getObject("SEG_TYPE", String.class)); - object.setDoc_type(resultSet.getObject("DOC_TYPE", String.class)); - object.setDocnm_ref(resultSet.getObject("DOCNM_REF", String.class)); - object.setDocnmprev(resultSet.getObject("DOCNMPREV", String.class)); - object.setPriority(resultSet.getObject("PRIORITY", String.class)); - object.setSbankcode(resultSet.getObject("SBANKCODE", String.class)); - object.setC_acc_deb(resultSet.getObject("C_ACC_DEB", String.class)); - object.setSbanknam1(resultSet.getObject("SBANKNAM1", String.class)); - object.setSbanknam2(resultSet.getObject("SBANKNAM2", String.class)); - object.setSbanknam3(resultSet.getObject("SBANKNAM3", String.class)); - object.setSbanknam4(resultSet.getObject("SBANKNAM4", String.class)); - object.setSbanknam5(resultSet.getObject("SBANKNAM5", String.class)); - object.setRbankcode(resultSet.getObject("RBANKCODE", String.class)); - object.setC_acc_cred(resultSet.getObject("C_ACC_CRED", String.class)); - object.setRbanknam1(resultSet.getObject("RBANKNAM1", String.class)); - object.setRbanknam2(resultSet.getObject("RBANKNAM2", String.class)); - object.setRbanknam3(resultSet.getObject("RBANKNAM3", String.class)); - object.setRbanknam4(resultSet.getObject("RBANKNAM4", String.class)); - object.setRbanknam5(resultSet.getObject("RBANKNAM5", String.class)); - object.setPay_date(resultSet.getObject("PAY_DATE", String.class)); - object.setExt_date(resultSet.getObject("EXT_DATE", String.class)); - object.setPay_val(resultSet.getObject("PAY_VAL", String.class)); - object.setSum_deb(resultSet.getObject("SUM_DEB", String.class)); - object.setSclientn1(resultSet.getObject("SCLIENTN1", String.class)); - object.setSclientn2(resultSet.getObject("SCLIENTN2", String.class)); - object.setSclientn3(resultSet.getObject("SCLIENTN3", String.class)); - object.setSclientn4(resultSet.getObject("SCLIENTN4", String.class)); - object.setSc_code(resultSet.getObject("SC_CODE", String.class)); - object.setAcc_deb(resultSet.getObject("ACC_DEB", String.class)); - object.setRclientn1(resultSet.getObject("RCLIENTN1", String.class)); - object.setRclientn2(resultSet.getObject("RCLIENTN2", String.class)); - object.setRclientn3(resultSet.getObject("RCLIENTN3", String.class)); - object.setRclientn4(resultSet.getObject("RCLIENTN4", String.class)); - object.setAcc_kr_1(resultSet.getObject("ACC_KR_1", String.class)); - object.setAcc_kr_2(resultSet.getObject("ACC_KR_2", String.class)); - object.setSp_code(resultSet.getObject("SP_CODE", String.class)); - object.setSpecif_1(resultSet.getObject("SPECIF_1", String.class)); - object.setSpecif_2(resultSet.getObject("SPECIF_2", String.class)); - object.setSpecif_3(resultSet.getObject("SPECIF_3", String.class)); - object.setSpecif_4(resultSet.getObject("SPECIF_4", String.class)); - object.setSpecif_5(resultSet.getObject("SPECIF_5", String.class)); - object.setSpecif_6(resultSet.getObject("SPECIF_6", String.class)); - object.setSend_type(resultSet.getObject("SEND_TYPE", String.class)); - object.setServdate(resultSet.getObject("SERVDATE", String.class)); - object.setDoc_result(resultSet.getObject("DOC_RESULT", String.class)); + object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class)); + object.setInDocument(resultSet.getObject("IN_DOCUMENT", String.class)); + object.setDepoCode(resultSet.getObject("DEPO_CODE", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", String.class)); + object.setSecurityCode(resultSet.getObject("SECURITY_CODE", String.class)); + object.setClientName(resultSet.getObject("CLIENT_NAME", String.class)); + object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); - object.setPaymentInstructionId(resultSet.getObject("PAYMENT_INSTRUCTION_ID", Long.class)); return object; } @@ -98,54 +55,15 @@ public class SDf11MapStore extends TemplateMapStore { public Object[] objectToField(SDf11 object) { Object[] args = new Object[]{ object.getId(), - object.getSeg_type(), - object.getDoc_type(), - object.getDocnm_ref(), - object.getDocnmprev(), - object.getPriority(), - object.getSbankcode(), - object.getC_acc_deb(), - object.getSbanknam1(), - object.getSbanknam2(), - object.getSbanknam3(), - object.getSbanknam4(), - object.getSbanknam5(), - object.getRbankcode(), - object.getC_acc_cred(), - object.getRbanknam1(), - object.getRbanknam2(), - object.getRbanknam3(), - object.getRbanknam4(), - object.getRbanknam5(), - object.getPay_date(), - object.getExt_date(), - object.getPay_val(), - object.getSum_deb(), - object.getSclientn1(), - object.getSclientn2(), - object.getSclientn3(), - object.getSclientn4(), - object.getSc_code(), - object.getAcc_deb(), - object.getRclientn1(), - object.getRclientn2(), - object.getRclientn3(), - object.getRclientn4(), - object.getAcc_kr_1(), - object.getAcc_kr_2(), - object.getSp_code(), - object.getSpecif_1(), - object.getSpecif_2(), - object.getSpecif_3(), - object.getSpecif_4(), - object.getSpecif_5(), - object.getSpecif_6(), - object.getSend_type(), - object.getServdate(), - object.getDoc_result(), + object.getOutDocument(), + object.getInDocument(), + object.getDepoCode(), + object.getQuantity(), + object.getSecurityCode(), + object.getClientName(), + object.getResult(), TimeUtil.toDateFromInstant(object.getGenerationTime()), - object.getGenerationId(), - object.getPaymentInstructionId() + object.getGenerationId() }; return args; } diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf12MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf12MapStore.java index 0fa7ad736..8a0d1ec01 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf12MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf12MapStore.java @@ -3,14 +3,15 @@ package ru.spcex.clearing.imdg.object; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; -import ru.clearing.classes.statics.data.sdf.SDf12; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.sdf.SDf12; import ru.spcex.clearing.imdg.base.TemplateMapStore; import ru.spcex.platform.utils.time.TimeUtil; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.*; @Component public class SDf12MapStore extends TemplateMapStore { @@ -32,7 +33,7 @@ public class SDf12MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "ACCOUNT", "DEAL", "STATUS", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" + "ID", "OUT_DOCUMENT", "QUANTITY", "SECURITY_CODE", "DEPO_CODE_SENDER", "DEPO_CODE_ADRESSEE", "RESULT", "GENERATION_TIME", "GENERATION_ID" }; } @@ -40,10 +41,12 @@ public class SDf12MapStore extends TemplateMapStore { public SDf12 objectReader(ResultSet resultSet) throws SQLException { SDf12 object = new SDf12(); object.setId(resultSet.getObject("ID", Long.class)); - object.setAccount(resultSet.getObject("ACCOUNT", String.class)); - object.setDeal(resultSet.getObject("DEAL", String.class)); - object.setStatus(resultSet.getObject("STATUS", Long.class)); - object.setFileName(resultSet.getObject("FILE_NAME", String.class)); + object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", String.class)); + object.setSecurityCode(resultSet.getObject("SECURITY_CODE", String.class)); + object.setDepoCodeSender(resultSet.getObject("DEPO_CODE_SENDER", String.class)); + object.setDepoCodeAdressee(resultSet.getObject("DEPO_CODE_ADRESSEE", String.class)); + object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); return object; @@ -53,10 +56,12 @@ public class SDf12MapStore extends TemplateMapStore { public Object[] objectToField(SDf12 object) { Object[] args = new Object[]{ object.getId(), - object.getAccount(), - object.getDeal(), - object.getStatus(), - object.getFileName(), + object.getOutDocument(), + object.getQuantity(), + object.getSecurityCode(), + object.getDepoCodeSender(), + object.getDepoCodeAdressee(), + object.getResult(), TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf13MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf13MapStore.java index 01b9b80bf..a89719ba5 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf13MapStore.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf13MapStore.java @@ -7,6 +7,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.base.TemplateMapStore; import ru.spcex.platform.utils.time.TimeUtil; +import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; @@ -30,12 +31,7 @@ public class SDf13MapStore extends TemplateMapStore { @Override public String[] getFields() { return new String[]{ - "ID", "SEG_TYPE", "DOC_TYPE", "DOCNM_REF", "DOCNMPREV", "PRIORITY", "SBANKCODE", "C_ACC_DEB", "SBANKNAM1", - "SBANKNAM2", "SBANKNAM3", "SBANKNAM4", "SBANKNAM5", "RBANKCODE", "C_ACC_CRED", "RBANKNAM1", "OP_TYPE", - "OP_ORDER", "RBANKNAM4", "RBANKNAM5", "PAY_DATE", "EXT_DATE", "PAY_VAL", "SUM_DEB", "SCLIENTN1", "INN_DEB", - "KPP_DEB", "SCLIENTN4", "SC_CODE", "ACC_DEB", "RCLIENTN1", "INN_CRED", "KPP_CRED", "RCLIENTN4", "ACC_KR_1", - "ACC_KR_2", "SP_CODE", "SPECIF_1", "SPECIF_2", "SPECIF_3", "SPECIF_4", "SPECIF_5", "SPECIF_6", "SEND_TYPE", - "SERVDATE", "DOC_RESULT", "GENERATION_TIME", "GENERATION_ID" + "ID", "OUT_DOCUMENT", "IN_DOCUMENT", "RESULT", "TEXT_ERROR", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" }; } @@ -43,51 +39,11 @@ public class SDf13MapStore extends TemplateMapStore { public SDf13 objectReader(ResultSet resultSet) throws SQLException { SDf13 object = new SDf13(); object.setId(resultSet.getObject("ID", Long.class)); - object.setSeg_type(resultSet.getObject("SEG_TYPE", String.class)); - object.setDoc_type(resultSet.getObject("DOC_TYPE", String.class)); - object.setDocnm_ref(resultSet.getObject("DOCNM_REF", String.class)); - object.setDocnmprev(resultSet.getObject("DOCNMPREV", String.class)); - object.setPriority(resultSet.getObject("PRIORITY", String.class)); - object.setSbankcode(resultSet.getObject("SBANKCODE", String.class)); - object.setC_acc_deb(resultSet.getObject("C_ACC_DEB", String.class)); - object.setSbanknam1(resultSet.getObject("SBANKNAM1", String.class)); - object.setSbanknam2(resultSet.getObject("SBANKNAM2", String.class)); - object.setSbanknam3(resultSet.getObject("SBANKNAM3", String.class)); - object.setSbanknam4(resultSet.getObject("SBANKNAM4", String.class)); - object.setSbanknam5(resultSet.getObject("SBANKNAM5", String.class)); - object.setRbankcode(resultSet.getObject("RBANKCODE", String.class)); - object.setC_acc_cred(resultSet.getObject("C_ACC_CRED", String.class)); - object.setRbanknam1(resultSet.getObject("RBANKNAM1", String.class)); - object.setOp_type(resultSet.getObject("OP_TYPE", String.class)); - object.setOp_order(resultSet.getObject("OP_ORDER", String.class)); - object.setRbanknam4(resultSet.getObject("RBANKNAM4", String.class)); - object.setRbanknam5(resultSet.getObject("RBANKNAM5", String.class)); - object.setPay_date(resultSet.getObject("PAY_DATE", String.class)); - object.setExt_date(resultSet.getObject("EXT_DATE", String.class)); - object.setPay_val(resultSet.getObject("PAY_VAL", String.class)); - object.setSum_deb(resultSet.getObject("SUM_DEB", String.class)); - object.setSclientn1(resultSet.getObject("SCLIENTN1", String.class)); - object.setInn_deb(resultSet.getObject("INN_DEB", String.class)); - object.setKpp_deb(resultSet.getObject("KPP_DEB", String.class)); - object.setSclientn4(resultSet.getObject("SCLIENTN4", String.class)); - object.setSc_code(resultSet.getObject("SC_CODE", String.class)); - object.setAcc_deb(resultSet.getObject("ACC_DEB", String.class)); - object.setRclientn1(resultSet.getObject("RCLIENTN1", String.class)); - object.setInn_cred(resultSet.getObject("INN_CRED", String.class)); - object.setKpp_cred(resultSet.getObject("KPP_CRED", String.class)); - object.setRclientn4(resultSet.getObject("RCLIENTN4", String.class)); - object.setAcc_kr_1(resultSet.getObject("ACC_KR_1", String.class)); - object.setAcc_kr_2(resultSet.getObject("ACC_KR_2", String.class)); - object.setSp_code(resultSet.getObject("SP_CODE", String.class)); - object.setSpecif_1(resultSet.getObject("SPECIF_1", String.class)); - object.setSpecif_2(resultSet.getObject("SPECIF_2", String.class)); - object.setSpecif_3(resultSet.getObject("SPECIF_3", String.class)); - object.setSpecif_4(resultSet.getObject("SPECIF_4", String.class)); - object.setSpecif_5(resultSet.getObject("SPECIF_5", String.class)); - object.setSpecif_6(resultSet.getObject("SPECIF_6", String.class)); - object.setSend_type(resultSet.getObject("SEND_TYPE", String.class)); - object.setServdate(resultSet.getObject("SERVDATE", String.class)); - object.setDoc_result(resultSet.getObject("DOC_RESULT", String.class)); + object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class)); + object.setInDocument(resultSet.getObject("IN_DOCUMENT", String.class)); + object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); + object.setTextError(resultSet.getObject("TEXT_ERROR", String.class)); + object.setFileName(resultSet.getObject("FILE_NAME", String.class)); object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); return object; @@ -97,51 +53,11 @@ public class SDf13MapStore extends TemplateMapStore { public Object[] objectToField(SDf13 object) { Object[] args = new Object[]{ object.getId(), - object.getSeg_type(), - object.getDoc_type(), - object.getDocnm_ref(), - object.getDocnmprev(), - object.getPriority(), - object.getSbankcode(), - object.getC_acc_deb(), - object.getSbanknam1(), - object.getSbanknam2(), - object.getSbanknam3(), - object.getSbanknam4(), - object.getSbanknam5(), - object.getRbankcode(), - object.getC_acc_cred(), - object.getRbanknam1(), - object.getOp_type(), - object.getOp_order(), - object.getRbanknam4(), - object.getRbanknam5(), - object.getPay_date(), - object.getExt_date(), - object.getPay_val(), - object.getSum_deb(), - object.getSclientn1(), - object.getInn_deb(), - object.getKpp_deb(), - object.getSclientn4(), - object.getSc_code(), - object.getAcc_deb(), - object.getRclientn1(), - object.getInn_cred(), - object.getKpp_cred(), - object.getRclientn4(), - object.getAcc_kr_1(), - object.getAcc_kr_2(), - object.getSp_code(), - object.getSpecif_1(), - object.getSpecif_2(), - object.getSpecif_3(), - object.getSpecif_4(), - object.getSpecif_5(), - object.getSpecif_6(), - object.getSend_type(), - object.getServdate(), - object.getDoc_result(), + object.getOutDocument(), + object.getInDocument(), + object.getResult(), + object.getTextError(), + object.getFileName(), TimeUtil.toDateFromInstant(object.getGenerationTime()), object.getGenerationId() }; diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf14MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf14MapStore.java new file mode 100644 index 000000000..ab6c22e91 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf14MapStore.java @@ -0,0 +1,61 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.sdf.SDf14; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.math.BigDecimal; +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class SDf14MapStore extends TemplateMapStore { + + public SDf14MapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SDf14; + } + + @Override + public String getTableName() { + return "S_DF14"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "OUT_DOCUMENT", "RESULT", "GENERATION_TIME", "GENERATION_ID" + }; + } + + @Override + public SDf14 objectReader(ResultSet resultSet) throws SQLException { + SDf14 object = new SDf14(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class)); + object.setResult(resultSet.getObject("RESULT", BigDecimal.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(SDf14 object) { + Object[] args = new Object[]{ + object.getId(), + object.getOutDocument(), + object.getResult(), + TimeUtil.toDateFromInstant(object.getGenerationTime()), + object.getGenerationId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf20MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf20MapStore.java new file mode 100644 index 000000000..7ddf99571 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf20MapStore.java @@ -0,0 +1,78 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.sdf.SDf20; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class SDf20MapStore extends TemplateMapStore { + + public SDf20MapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SDf20; + } + + @Override + public String getTableName() { + return "S_DF20"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "OUT_DOCUMENT", "IN_DOCUMENT", "SECURITY", "OPEN_BALANCE", "DEPO_CODE_CL", "QUANTITY", "OPERATION_CODE", "DEPO_CODE_CORR", "OPERATION_DATE", "CLOSE_BALANCE", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" + }; + } + + @Override + public SDf20 objectReader(ResultSet resultSet) throws SQLException { + SDf20 object = new SDf20(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setOutDocument(resultSet.getObject("OUT_DOCUMENT", String.class)); + object.setInDocument(resultSet.getObject("IN_DOCUMENT", String.class)); + object.setSecurity(resultSet.getObject("SECURITY", String.class)); + object.setOpenBalance(resultSet.getObject("OPEN_BALANCE", String.class)); + object.setDepoCodeCl(resultSet.getObject("DEPO_CODE_CL", String.class)); + object.setQuantity(resultSet.getObject("QUANTITY", String.class)); + object.setOperationCode(resultSet.getObject("OPERATION_CODE", String.class)); + object.setDepoCodeCorr(resultSet.getObject("DEPO_CODE_CORR", String.class)); + object.setOperationDate(resultSet.getObject("OPERATION_DATE", String.class)); + object.setCloseBalance(resultSet.getObject("CLOSE_BALANCE", String.class)); + object.setFileName(resultSet.getObject("FILE_NAME", String.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(SDf20 object) { + Object[] args = new Object[]{ + object.getId(), + object.getOutDocument(), + object.getInDocument(), + object.getSecurity(), + object.getOpenBalance(), + object.getDepoCodeCl(), + object.getQuantity(), + object.getOperationCode(), + object.getDepoCodeCorr(), + object.getOperationDate(), + object.getCloseBalance(), + object.getFileName(), + TimeUtil.toDateFromInstant(object.getGenerationTime()), + object.getGenerationId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf54MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf54MapStore.java new file mode 100644 index 000000000..d8ff3af72 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf54MapStore.java @@ -0,0 +1,137 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.clearing.classes.statics.data.sdf.SDf54; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.*; + +@Component +public class SDf54MapStore extends TemplateMapStore { + + public SDf54MapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SDf54; + } + + @Override + public String getTableName() { + return "S_DF54"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "SEG_TYPE", "DOC_TYPE", "DOCNM_REF", "DOCNMPREV", "SBANKCODE", "C_ACC_DEB", "SBANKNAM1", "SBANKNAM2", "SBANKNAM3", "SBANKNAM4", "SBANKNAM5", "RBANKCODE", "C_ACC_CRED", "RBANKNAM1", "RBANKNAM2", "RBANKNAM3", "RBANKNAM4", "RBANKNAM5", "OP_TYPE", "OP_ORDER", "PAY_DATE", "PAY_VAL", "SUM_DEB", "SCLIENTN1", "SCLIENTN2", "SCLIENTN3", "SCLIENTN4", "INN_DEB", "KPP_DEB", "ACC_DEB", "RCLIENTN1", "RCLIENTN2", "RCLIENTN3", "RCLIENTN4", "INN_CRED", "KPP_CRED", "ACC_KR_1", "SPECIF_1", "SEND_TYPE", "DOC_RESULT", "GENERATION_TIME", "GENERATION_ID" + }; + } + + @Override + public SDf54 objectReader(ResultSet resultSet) throws SQLException { + SDf54 object = new SDf54(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setSeg_type(resultSet.getObject("SEG_TYPE", String.class)); + object.setDoc_type(resultSet.getObject("DOC_TYPE", String.class)); + object.setDocnm_ref(resultSet.getObject("DOCNM_REF", String.class)); + object.setDocnmprev(resultSet.getObject("DOCNMPREV", String.class)); + object.setSbankcode(resultSet.getObject("SBANKCODE", String.class)); + object.setC_acc_deb(resultSet.getObject("C_ACC_DEB", String.class)); + object.setSbanknam1(resultSet.getObject("SBANKNAM1", String.class)); + object.setSbanknam2(resultSet.getObject("SBANKNAM2", String.class)); + object.setSbanknam3(resultSet.getObject("SBANKNAM3", String.class)); + object.setSbanknam4(resultSet.getObject("SBANKNAM4", String.class)); + object.setSbanknam5(resultSet.getObject("SBANKNAM5", String.class)); + object.setRbankcode(resultSet.getObject("RBANKCODE", String.class)); + object.setC_acc_cred(resultSet.getObject("C_ACC_CRED", String.class)); + object.setRbanknam1(resultSet.getObject("RBANKNAM1", String.class)); + object.setRbanknam2(resultSet.getObject("RBANKNAM2", String.class)); + object.setRbanknam3(resultSet.getObject("RBANKNAM3", String.class)); + object.setRbanknam4(resultSet.getObject("RBANKNAM4", String.class)); + object.setRbanknam5(resultSet.getObject("RBANKNAM5", String.class)); + object.setOp_type(resultSet.getObject("OP_TYPE", String.class)); + object.setOp_order(resultSet.getObject("OP_ORDER", String.class)); + object.setPay_date(resultSet.getObject("PAY_DATE", String.class)); + object.setPay_val(resultSet.getObject("PAY_VAL", String.class)); + object.setSum_deb(resultSet.getObject("SUM_DEB", String.class)); + object.setSclientn1(resultSet.getObject("SCLIENTN1", String.class)); + object.setSclientn2(resultSet.getObject("SCLIENTN2", String.class)); + object.setSclientn3(resultSet.getObject("SCLIENTN3", String.class)); + object.setSclientn4(resultSet.getObject("SCLIENTN4", String.class)); + object.setInn_deb(resultSet.getObject("INN_DEB", String.class)); + object.setKpp_deb(resultSet.getObject("KPP_DEB", String.class)); + object.setAcc_deb(resultSet.getObject("ACC_DEB", String.class)); + object.setRclientn1(resultSet.getObject("RCLIENTN1", String.class)); + object.setRclientn2(resultSet.getObject("RCLIENTN2", String.class)); + object.setRclientn3(resultSet.getObject("RCLIENTN3", String.class)); + object.setRclientn4(resultSet.getObject("RCLIENTN4", String.class)); + object.setInn_cred(resultSet.getObject("INN_CRED", String.class)); + object.setKpp_cred(resultSet.getObject("KPP_CRED", String.class)); + object.setAcc_kr_1(resultSet.getObject("ACC_KR_1", String.class)); + object.setSpecif_1(resultSet.getObject("SPECIF_1", String.class)); + object.setSend_type(resultSet.getObject("SEND_TYPE", String.class)); + object.setDoc_result(resultSet.getObject("DOC_RESULT", String.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(SDf54 object) { + Object[] args = new Object[]{ + object.getId(), + object.getSeg_type(), + object.getDoc_type(), + object.getDocnm_ref(), + object.getDocnmprev(), + object.getSbankcode(), + object.getC_acc_deb(), + object.getSbanknam1(), + object.getSbanknam2(), + object.getSbanknam3(), + object.getSbanknam4(), + object.getSbanknam5(), + object.getRbankcode(), + object.getC_acc_cred(), + object.getRbanknam1(), + object.getRbanknam2(), + object.getRbanknam3(), + object.getRbanknam4(), + object.getRbanknam5(), + object.getOp_type(), + object.getOp_order(), + object.getPay_date(), + object.getPay_val(), + object.getSum_deb(), + object.getSclientn1(), + object.getSclientn2(), + object.getSclientn3(), + object.getSclientn4(), + object.getInn_deb(), + object.getKpp_deb(), + object.getAcc_deb(), + object.getRclientn1(), + object.getRclientn2(), + object.getRclientn3(), + object.getRclientn4(), + object.getInn_cred(), + object.getKpp_cred(), + object.getAcc_kr_1(), + object.getSpecif_1(), + object.getSend_type(), + object.getDoc_result(), + TimeUtil.toDateFromInstant(object.getGenerationTime()), + object.getGenerationId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf55MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf55MapStore.java new file mode 100644 index 000000000..40efb1f1f --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf55MapStore.java @@ -0,0 +1,138 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.sdf.SDf55; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class SDf55MapStore extends TemplateMapStore { + + public SDf55MapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SDf55; + } + + @Override + public String getTableName() { + return "S_DF55"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "SEG_TYPE", "DOC_TYPE", "DOCNM_REF", "DOCNMPREV", "SBANKCODE", "C_ACC_DEB", "SBANKNAM1", "SBANKNAM2", "SBANKNAM3", "SBANKNAM4", "SBANKNAM5", "RBANKCODE", "C_ACC_CRED", "RBANKNAM1", "RBANKNAM2", "RBANKNAM3", "RBANKNAM4", "RBANKNAM5", "OP_TYPE", "OP_ORDER", "PAY_DATE", "PAY_VAL", "SUM_DEB", "SCLIENTN1", "SCLIENTN2", "SCLIENTN3", "SCLIENTN4", "INN_DEB", "KPP_DEB", "ACC_DEB", "RCLIENTN1", "RCLIENTN2", "RCLIENTN3", "RCLIENTN4", "INN_CRED", "KPP_CRED", "ACC_KR_1", "SPECIF_1", "SEND_TYPE", "DOC_RESULT", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" + }; + } + + @Override + public SDf55 objectReader(ResultSet resultSet) throws SQLException { + SDf55 object = new SDf55(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setSeg_type(resultSet.getObject("SEG_TYPE", String.class)); + object.setDoc_type(resultSet.getObject("DOC_TYPE", String.class)); + object.setDocnm_ref(resultSet.getObject("DOCNM_REF", String.class)); + object.setDocnmprev(resultSet.getObject("DOCNMPREV", String.class)); + object.setSbankcode(resultSet.getObject("SBANKCODE", String.class)); + object.setC_acc_deb(resultSet.getObject("C_ACC_DEB", String.class)); + object.setSbanknam1(resultSet.getObject("SBANKNAM1", String.class)); + object.setSbanknam2(resultSet.getObject("SBANKNAM2", String.class)); + object.setSbanknam3(resultSet.getObject("SBANKNAM3", String.class)); + object.setSbanknam4(resultSet.getObject("SBANKNAM4", String.class)); + object.setSbanknam5(resultSet.getObject("SBANKNAM5", String.class)); + object.setRbankcode(resultSet.getObject("RBANKCODE", String.class)); + object.setC_acc_cred(resultSet.getObject("C_ACC_CRED", String.class)); + object.setRbanknam1(resultSet.getObject("RBANKNAM1", String.class)); + object.setRbanknam2(resultSet.getObject("RBANKNAM2", String.class)); + object.setRbanknam3(resultSet.getObject("RBANKNAM3", String.class)); + object.setRbanknam4(resultSet.getObject("RBANKNAM4", String.class)); + object.setRbanknam5(resultSet.getObject("RBANKNAM5", String.class)); + object.setOp_type(resultSet.getObject("OP_TYPE", String.class)); + object.setOp_order(resultSet.getObject("OP_ORDER", String.class)); + object.setPay_date(resultSet.getObject("PAY_DATE", String.class)); + object.setPay_val(resultSet.getObject("PAY_VAL", String.class)); + object.setSum_deb(resultSet.getObject("SUM_DEB", String.class)); + object.setSclientn1(resultSet.getObject("SCLIENTN1", String.class)); + object.setSclientn2(resultSet.getObject("SCLIENTN2", String.class)); + object.setSclientn3(resultSet.getObject("SCLIENTN3", String.class)); + object.setSclientn4(resultSet.getObject("SCLIENTN4", String.class)); + object.setInn_deb(resultSet.getObject("INN_DEB", String.class)); + object.setKpp_deb(resultSet.getObject("KPP_DEB", String.class)); + object.setAcc_deb(resultSet.getObject("ACC_DEB", String.class)); + object.setRclientn1(resultSet.getObject("RCLIENTN1", String.class)); + object.setRclientn2(resultSet.getObject("RCLIENTN2", String.class)); + object.setRclientn3(resultSet.getObject("RCLIENTN3", String.class)); + object.setRclientn4(resultSet.getObject("RCLIENTN4", String.class)); + object.setInn_cred(resultSet.getObject("INN_CRED", String.class)); + object.setKpp_cred(resultSet.getObject("KPP_CRED", String.class)); + object.setAcc_kr_1(resultSet.getObject("ACC_KR_1", String.class)); + object.setSpecif_1(resultSet.getObject("SPECIF_1", String.class)); + object.setSend_type(resultSet.getObject("SEND_TYPE", String.class)); + object.setDoc_result(resultSet.getObject("DOC_RESULT", String.class)); + object.setFileName(resultSet.getObject("FILE_NAME", String.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(SDf55 object) { + Object[] args = new Object[]{ + object.getId(), + object.getSeg_type(), + object.getDoc_type(), + object.getDocnm_ref(), + object.getDocnmprev(), + object.getSbankcode(), + object.getC_acc_deb(), + object.getSbanknam1(), + object.getSbanknam2(), + object.getSbanknam3(), + object.getSbanknam4(), + object.getSbanknam5(), + object.getRbankcode(), + object.getC_acc_cred(), + object.getRbanknam1(), + object.getRbanknam2(), + object.getRbanknam3(), + object.getRbanknam4(), + object.getRbanknam5(), + object.getOp_type(), + object.getOp_order(), + object.getPay_date(), + object.getPay_val(), + object.getSum_deb(), + object.getSclientn1(), + object.getSclientn2(), + object.getSclientn3(), + object.getSclientn4(), + object.getInn_deb(), + object.getKpp_deb(), + object.getAcc_deb(), + object.getRclientn1(), + object.getRclientn2(), + object.getRclientn3(), + object.getRclientn4(), + object.getInn_cred(), + object.getKpp_cred(), + object.getAcc_kr_1(), + object.getSpecif_1(), + object.getSend_type(), + object.getDoc_result(), + object.getFileName(), + TimeUtil.toDateFromInstant(object.getGenerationTime()), + object.getGenerationId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf56MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf56MapStore.java new file mode 100644 index 000000000..0de660d05 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf56MapStore.java @@ -0,0 +1,66 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.sdf.SDf56; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class SDf56MapStore extends TemplateMapStore { + + public SDf56MapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SDf56; + } + + @Override + public String getTableName() { + return "S_DF56"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "NUMBER", "START_DATETIME", "END_DATETIME", "ACCOUNT", "DEAL", "GENERATION_TIME", "GENERATION_ID" + }; + } + + @Override + public SDf56 objectReader(ResultSet resultSet) throws SQLException { + SDf56 object = new SDf56(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setNumber(resultSet.getObject("NUMBER", String.class)); + object.setStart_datetime(resultSet.getObject("START_DATETIME", String.class)); + object.setEnd_datetime(resultSet.getObject("END_DATETIME", String.class)); + object.setAccount(resultSet.getObject("ACCOUNT", String.class)); + object.setDeal(resultSet.getObject("DEAL", String.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(SDf56 object) { + Object[] args = new Object[]{ + object.getId(), + object.getNumber(), + object.getStart_datetime(), + object.getEnd_datetime(), + object.getAccount(), + object.getDeal(), + TimeUtil.toDateFromInstant(object.getGenerationTime()), + object.getGenerationId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf57MapStore.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf57MapStore.java new file mode 100644 index 000000000..8abdf9498 --- /dev/null +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/object/SDf57MapStore.java @@ -0,0 +1,132 @@ +package ru.spcex.clearing.imdg.object; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Component; +import ru.clearing.classes.statics.data.sdf.SDf57; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.clearing.imdg.base.TemplateMapStore; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.sql.ResultSet; +import java.sql.SQLException; + +@Component +public class SDf57MapStore extends TemplateMapStore { + + public SDf57MapStore(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public String getMapName() { + return IMDGDistributedNames.Map_SDf57; + } + + @Override + public String getTableName() { + return "S_DF57"; + } + + @Override + public String[] getFields() { + return new String[]{ + "ID", "DBF_ID", "DEAL_DEB", "DEAL_CRED", "SBANKCODE", "C_ACC_DEB", "SBANKNAM1", "SBANKNAM2", "SBANKNAM3", "SBANKNAM4", "SBANKNAM5", "RBANKCODE", "C_ACC_CRED", "RBANKNAM1", "RBANKNAM2", "RBANKNAM3", "RBANKNAM4", "RBANKNAM5", "OP_TYPE", "PAY_DATE", "EXT_DATE", "PAY_VAL", "SUM_DEB", "SCLIENTN1", "SCLIENTN2", "SCLIENTN3", "SCLIENTN4", "INN_DEB", "KPP_DEB", "ACC_DEB", "RCLIENTN1", "RCLIENTN2", "RCLIENTN3", "RCLIENTN4", "INN_CRED", "KPP_CRED", "ACC_KR", "SPECIF", "FILE_NAME", "GENERATION_TIME", "GENERATION_ID" + }; + } + + @Override + public SDf57 objectReader(ResultSet resultSet) throws SQLException { + SDf57 object = new SDf57(); + object.setId(resultSet.getObject("ID", Long.class)); + object.setDbfId(resultSet.getObject("DBF_ID", Long.class)); + object.setDeal_deb(resultSet.getObject("DEAL_DEB", String.class)); + object.setDeal_cred(resultSet.getObject("DEAL_CRED", String.class)); + object.setSbankcode(resultSet.getObject("SBANKCODE", String.class)); + object.setC_acc_deb(resultSet.getObject("C_ACC_DEB", String.class)); + object.setSbanknam1(resultSet.getObject("SBANKNAM1", String.class)); + object.setSbanknam2(resultSet.getObject("SBANKNAM2", String.class)); + object.setSbanknam3(resultSet.getObject("SBANKNAM3", String.class)); + object.setSbanknam4(resultSet.getObject("SBANKNAM4", String.class)); + object.setSbanknam5(resultSet.getObject("SBANKNAM5", String.class)); + object.setRbankcode(resultSet.getObject("RBANKCODE", String.class)); + object.setC_acc_cred(resultSet.getObject("C_ACC_CRED", String.class)); + object.setRbanknam1(resultSet.getObject("RBANKNAM1", String.class)); + object.setRbanknam2(resultSet.getObject("RBANKNAM2", String.class)); + object.setRbanknam3(resultSet.getObject("RBANKNAM3", String.class)); + object.setRbanknam4(resultSet.getObject("RBANKNAM4", String.class)); + object.setRbanknam5(resultSet.getObject("RBANKNAM5", String.class)); + object.setOp_type(resultSet.getObject("OP_TYPE", String.class)); + object.setPay_date(resultSet.getObject("PAY_DATE", String.class)); + object.setExt_date(resultSet.getObject("EXT_DATE", String.class)); + object.setPay_val(resultSet.getObject("PAY_VAL", String.class)); + object.setSum_deb(resultSet.getObject("SUM_DEB", String.class)); + object.setSclientn1(resultSet.getObject("SCLIENTN1", String.class)); + object.setSclientn2(resultSet.getObject("SCLIENTN2", String.class)); + object.setSclientn3(resultSet.getObject("SCLIENTN3", String.class)); + object.setSclientn4(resultSet.getObject("SCLIENTN4", String.class)); + object.setInn_deb(resultSet.getObject("INN_DEB", String.class)); + object.setKpp_deb(resultSet.getObject("KPP_DEB", String.class)); + object.setAcc_deb(resultSet.getObject("ACC_DEB", String.class)); + object.setRclientn1(resultSet.getObject("RCLIENTN1", String.class)); + object.setRclientn2(resultSet.getObject("RCLIENTN2", String.class)); + object.setRclientn3(resultSet.getObject("RCLIENTN3", String.class)); + object.setRclientn4(resultSet.getObject("RCLIENTN4", String.class)); + object.setInn_cred(resultSet.getObject("INN_CRED", String.class)); + object.setKpp_cred(resultSet.getObject("KPP_CRED", String.class)); + object.setAcc_kr(resultSet.getObject("ACC_KR", String.class)); + object.setSpecif(resultSet.getObject("SPECIF", String.class)); + object.setFileName(resultSet.getObject("FILE_NAME", String.class)); + object.setGenerationTime(getInstantFromTimestamp(resultSet, "GENERATION_TIME")); + object.setGenerationId(resultSet.getObject("GENERATION_ID", Long.class)); + return object; + } + + @Override + public Object[] objectToField(SDf57 object) { + Object[] args = new Object[]{ + object.getId(), + object.getDbfId(), + object.getDeal_deb(), + object.getDeal_cred(), + object.getSbankcode(), + object.getC_acc_deb(), + object.getSbanknam1(), + object.getSbanknam2(), + object.getSbanknam3(), + object.getSbanknam4(), + object.getSbanknam5(), + object.getRbankcode(), + object.getC_acc_cred(), + object.getRbanknam1(), + object.getRbanknam2(), + object.getRbanknam3(), + object.getRbanknam4(), + object.getRbanknam5(), + object.getOp_type(), + object.getPay_date(), + object.getExt_date(), + object.getPay_val(), + object.getSum_deb(), + object.getSclientn1(), + object.getSclientn2(), + object.getSclientn3(), + object.getSclientn4(), + object.getInn_deb(), + object.getKpp_deb(), + object.getAcc_deb(), + object.getRclientn1(), + object.getRclientn2(), + object.getRclientn3(), + object.getRclientn4(), + object.getInn_cred(), + object.getKpp_cred(), + object.getAcc_kr(), + object.getSpecif(), + object.getFileName(), + TimeUtil.toDateFromInstant(object.getGenerationTime()), + object.getGenerationId() + }; + return args; + } + +} \ No newline at end of file diff --git a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java index 43d66ee91..6b3590754 100644 --- a/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java +++ b/clearing-parent/imdg/src/main/java/ru/spcex/clearing/imdg/services/UpdateMapService.java @@ -54,6 +54,7 @@ public class UpdateMapService extends AbstractUpdateMapService { hazelcastServerInstance.getMap(IMDGDistributedNames.Map_CouponPeriod).addLocalEntryListener(this, Predicates.alwaysTrue(), true); hazelcastServerInstance.getMap(IMDGDistributedNames.Map_Listing).addLocalEntryListener(this, Predicates.alwaysTrue(), true); hazelcastServerInstance.getMap(IMDGDistributedNames.Map_Market).addLocalEntryListener(this, Predicates.alwaysTrue(), true); + hazelcastServerInstance.getMap(IMDGDistributedNames.Map_Notification).addLocalEntryListener(this, Predicates.alwaysTrue(), true); } @Override @@ -155,6 +156,11 @@ public class UpdateMapService extends AbstractUpdateMapService { createBusinessEvent(couponPeriodHistory, eventType); couponPeriodHistory.setObject((CouponPeriod) value); hazelcastServerInstance.getMap(IMDGDistributedNames.Map_CouponPeriodHistory).put(couponPeriodHistory.getId(), couponPeriodHistory); + } else if (value instanceof Notification) { + NotificationHistory notificationHistory = new NotificationHistory(); + createBusinessEvent(notificationHistory, eventType); + notificationHistory.setObject((Notification) value); + hazelcastServerInstance.getMap(IMDGDistributedNames.Map_NotificationHistory).put(notificationHistory.getId(), notificationHistory); } else if (value instanceof Security) { // Существуют наследники этой таблицы, по этому в последнюю очередь делать эту проверку. diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index 7a261636b..11c92a279 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java @@ -15,6 +15,7 @@ import ru.clearing.classes.statics.data.journal.ManagementJournal; import ru.clearing.classes.statics.data.journal.OutDocumentJournal; import ru.clearing.classes.statics.data.messages.ErrorText; import ru.clearing.classes.statics.data.misc.*; +import ru.clearing.classes.statics.data.payment.Operation; import ru.clearing.classes.statics.data.payment.PaymentInstruction; import ru.clearing.classes.statics.data.profile.Contact; import ru.clearing.classes.statics.data.profile.ProfileDocument; @@ -90,6 +91,7 @@ public class RunnableMapNamesForTesting { "object.lotSize") /*new SettingOperation("object.lotSize", new Object[]{new BigDecimal("850.640000000000000000")}),*/)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MarketHistory, MarketHistory.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_NotificationHistory, NotificationHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_CompanySymbolsHistory, CompanySymbolsHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ProfileDocumentHistory, ProfileDocumentHistory.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ClearingMemberCategoryHistory, ClearingMemberCategoryHistory.class)); @@ -308,9 +310,11 @@ public class RunnableMapNamesForTesting { )//, //new SettingOperation("setNominalValue", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("25.25")}) )); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MarketDataLiquidation, MarketDataLiquidation.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Notification, Notification.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_OutDocumentJournal, OutDocumentJournal.class, new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{new BigDecimal("28.28")}))); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Operation, Operation.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_PaymentInstruction, PaymentInstruction.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_PlannerAllToday, PlannerAllToday.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class)); @@ -322,12 +326,16 @@ public class RunnableMapNamesForTesting { checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf03, SDf03.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf04, SDf04.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf05, SDf05.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf06, SDf06.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf07, SDf07.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf08, SDf08.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf09, SDf09.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf10, SDf10.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf11, SDf11.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf12, SDf12.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf13, SDf13.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf14, SDf14.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf20, SDf20.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_Session, Session.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_STrades, STrades.class, new SettingOperation("setQty", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}), @@ -352,7 +360,10 @@ public class RunnableMapNamesForTesting { checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf51, SDf51.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf52, SDf52.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf53, SDf53.class)); - //todo other... + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf54, SDf54.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf55, SDf55.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf56, SDf56.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf57, SDf57.class)); } } diff --git a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java index 2d027ab6c..176213160 100644 --- a/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java +++ b/platform-parent/platform-imdg-api/src/main/java/ru/spcex/clearing/imdg/IMDGDistributedNames.java @@ -34,6 +34,7 @@ public final class IMDGDistributedNames { public static final String Map_Statement = "Map_Statement"; public static final String Map_MarketAccess = "Map_MarketAccess"; // todo unused? public static final String Map_MarketTypeDictionary = "Map_MarketTypeDictionary"; + public static final String Map_MarketDataLiquidation = "Map_MarketDataLiquidation"; public static final String Map_UserConnect = "Map_UserConnect"; public static final String Map_UserConnectHistory = "Map_UserConnectHistory"; public static final String Map_User = "Map_User"; @@ -51,21 +52,29 @@ public final class IMDGDistributedNames { public static final String Map_SDf03 = "Map_SDf03"; public static final String Map_SDf04 = "Map_SDf04"; public static final String Map_SDf05 = "Map_SDf05"; + public static final String Map_SDf06 = "Map_SDf06"; + public static final String Map_SDf07 = "Map_SDf07"; + public static final String Map_SDf08 = "Map_SDf08"; + public static final String Map_SDf09 = "Map_SDf09"; public static final String Map_SDf10 = "Map_SDf10"; public static final String Map_SDf11 = "Map_SDf11"; + public static final String Map_SDf12 = "Map_SDf12"; public static final String Map_SDf13 = "Map_SDf13"; + public static final String Map_SDf14 = "Map_SDf14"; @Deprecated public static final String Map_SDf17 = "Map_SDf17"; @Deprecated public static final String Map_SDf16 = "Map_SDf16"; - public static final String Map_SDf08 = "Map_SDf08"; - public static final String Map_SDf09 = "Map_SDf09"; - public static final String Map_SDf12 = "Map_SDf12"; @Deprecated public static final String Map_SDf18 = "Map_SDf18"; + public static final String Map_SDf20 = "Map_SDf20"; public static final String Map_SDf51 = "Map_sDf51"; public static final String Map_SDf52 = "Map_sDf52"; public static final String Map_SDf53 = "Map_sDf53"; + public static final String Map_SDf54 = "Map_sDf54"; + public static final String Map_SDf55 = "Map_sDf55"; + public static final String Map_SDf56 = "Map_sDf56"; + public static final String Map_SDf57 = "Map_sDf57"; public static final String Map_AllowedDictionary = "Map_AllowedDictionary"; public static final String Map_ClearingCategoryDictionary = "Map_ClearingCategoryDictionary"; public static final String Map_CompanyRoleDictionary = "Map_CompanyRoleDictionary"; @@ -90,6 +99,7 @@ public final class IMDGDistributedNames { public static final String Map_ManagementJournalStatusDictionary = "Map_ManagementJournalStatusDictionary"; public static final String Map_ManagementJournalTypeDictionary = "Map_ManagementJournalTypeDictionary"; public static final String Map_MoneyFlowSideDictionary = "Map_MoneyFlowSideDictionary"; + public static final String Map_Operation = "Map_Operation"; public static final String Map_OperationStatusDictionary = "Map_OperationStatusDictionary"; public static final String Map_OperationTypeDictionary = "Map_OperationTypeDictionary"; public static final String Map_ResultStatusDictionary = "Map_ResultStatusDictionary"; @@ -117,6 +127,7 @@ public final class IMDGDistributedNames { public static final String Map_Session = "Map_Session"; public static final String Map_SessionHistory = "Map_SessionHistory"; public static final String Map_Notification = "Map_Notification"; + public static final String Map_NotificationHistory = "Map_NotificationHistory"; @Deprecated public static final String Map_LiabilitiesClaimsAssets = "Map_LiabilitiesClaimsAssets"; @Deprecated From 457f05158833f51677e5e6924a579dfdf7df7d25 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 11 May 2023 14:31:24 +0300 Subject: [PATCH 35/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=B4=D0=B0,=20=D1=87=D1=82=D0=BE=D0=B1=D1=8B=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BF=D0=B8=D0=BB=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D1=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../misc/NotificationControllerTest.java | 2 +- .../PaymentInstructionControllerTest.java | 31 +- .../ContractRegisterControllerTest.java | 2 +- .../utilities/StatementControllerTest.java | 5 +- .../balance/config/SdfExecutorsConfig.java | 5 +- .../balance/config/ValidationConfig.java | 4 +- .../balance/service/Sdf01Executor.java | 13 +- .../balance/service/Sdf08Service.java | 4 +- .../balance/service/Sdf09Executor.java | 351 ++++++------- .../balance/service/Sdf16Executor.java | 8 +- .../balance/service/StatementService.java | 2 +- .../validation/Sdf09ValidationRule.java | 57 +- .../balance/service/AbstractServiceTest.java | 2 +- .../balance/service/Sdf01ExecutorTest.java | 5 +- .../balance/service/Sdf09ExecutorTest.java | 486 +++++++++--------- .../balance/service/Sdf16ExecutorTest.java | 1 - .../builder/PaymentInstructionCreator.java | 86 ++-- .../service/builder/Sdf03Builder.java | 32 +- .../service/builder/Sdf11Builder.java | 144 +++--- .../order/PaymentInstructionSorter.java | 27 +- .../services/converters/S_DF03_Converter.java | 50 +- .../services/converters/S_DF08_Converter.java | 4 +- .../services/converters/S_DF10_Converter.java | 14 +- .../services/converters/S_DF11_Converter.java | 90 ++-- .../logic/data/tables/SDf04Table.java | 52 +- .../logic/data/tables/SDf09Table.java | 14 +- .../logic/data/tables/SDf12Table.java | 8 +- .../service/ContractRegisterServiceTest.java | 2 +- .../ReportBR_0420314_P2_Collector.java | 17 +- .../registry/ContractRegisterNewRequest.java | 6 +- 30 files changed, 761 insertions(+), 763 deletions(-) diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/NotificationControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/NotificationControllerTest.java index e0cb15aad..cd026029e 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/NotificationControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/misc/NotificationControllerTest.java @@ -36,7 +36,7 @@ class NotificationControllerTest extends AbstractControllerTest { profileDocument.setSenderId(1000L); profileDocument.setAddresseeId(1000L); profileDocument.setObjectType("ObjectType"); - profileDocument.setObjectId(Instant.now()); + profileDocument.setObjectId(1111122222L); profileDocument.setNotificationStatus("Status"); profileDocument.setId(currentId.get()); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/payment/PaymentInstructionControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/payment/PaymentInstructionControllerTest.java index e1de08c64..e86246a80 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/payment/PaymentInstructionControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/payment/PaymentInstructionControllerTest.java @@ -9,6 +9,7 @@ import ru.spcex.clearing.backendapi.controller.queue.AbstractControllerTest; import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; import ru.spcex.clearing.imdg.IMDGDistributedNames; +import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; import java.util.Collection; @@ -32,6 +33,7 @@ class PaymentInstructionControllerTest extends AbstractControllerTest { void getAll() throws Exception { //ARRANGE PaymentInstruction paymentInstruction = new PaymentInstruction(); + paymentInstruction.setSenderId(1010L); paymentInstruction.setAddresseeId(1010L); paymentInstruction.setAdresseeBic("123456789"); @@ -41,21 +43,24 @@ class PaymentInstructionControllerTest extends AbstractControllerTest { paymentInstruction.setPaymentDate(Instant.now()); paymentInstruction.setPaymentPurpose("Purpose"); paymentInstruction.setSettlementDate(LocalDate.now()); - paymentInstruction.setCreditLegAmount(2020L); - paymentInstruction.setDebitLegAmount(2020L); - paymentInstruction.setCreditLegAccountId(2020L); - paymentInstruction.setCreditCsAccount("Ok"); - paymentInstruction.setCreditLegAccount("123456789"); - paymentInstruction.setDebitLegAccountId(3030L); - paymentInstruction.setDebitCsAccount("123456789"); - paymentInstruction.setDebitLegAccount("123456789"); - paymentInstruction.setCreditLegDirection(3030L); - paymentInstruction.setDebitLegDirection(3030L); - paymentInstruction.setCreditLegCurrencyCode("123456789"); - paymentInstruction.setDebitLegCurrencyCode("123456789"); - paymentInstruction.setClearingDate(LocalDate.now()); + paymentInstruction.setCreditLeg_amount(BigDecimal.valueOf(123.456)); + paymentInstruction.setDebitLeg_amount(BigDecimal.valueOf(123.256)); + paymentInstruction.setCreditLeg_accountId(currentId.get()); + paymentInstruction.setCredit_csAccount("ACCT1"); + paymentInstruction.setCreditLeg_account("ACCT2"); + paymentInstruction.setDebitLeg_accountId(222L); + paymentInstruction.setDebit_csAccount("ACCC3"); + paymentInstruction.setDebitLeg_account("AC-1"); + paymentInstruction.setCreditLeg_direction("BUY"); + paymentInstruction.setDebitLeg_direction("SELL"); + paymentInstruction.setCreditLeg_currencyCode("RUB"); + paymentInstruction.setDebitLeg_currencyCode("RUB"); + paymentInstruction.setCreditLeg_securityId(12L); + paymentInstruction.setDebitLeg_securityId(15L); paymentInstruction.setTransactionStatus("Status"); paymentInstruction.setDocumentNumber("123456789"); + paymentInstruction.setClearingDate(LocalDate.now()); + paymentInstruction.setSessionId(555L); paymentInstruction.setId(currentId.get()); IMap iMap = hazelcastServiceTest.getHazelcast().getMap(IMDGDistributedNames.Map_PaymentInstruction); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ContractRegisterControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ContractRegisterControllerTest.java index 3e756fcf4..259f0dcfb 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ContractRegisterControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/register/ContractRegisterControllerTest.java @@ -24,7 +24,7 @@ class ContractRegisterControllerTest extends AbstractControllerTest { contractRegister.setName("code"); contractRegister.setNumber("com"); contractRegister.setIssueDate(LocalDate.now()); - contractRegister.setCompanyFullName(currentId.get()); + contractRegister.setCompanyFullName("CF name C"); contractRegister.setCompanyId(currentId.get()); contractRegister.setDocumentType("symb"); contractRegister.setIssuePlace("name"); diff --git a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementControllerTest.java b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementControllerTest.java index added83eb..874338a6d 100644 --- a/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementControllerTest.java +++ b/clearing-parent/backend-api/src/test/java/ru/spcex/clearing/backendapi/controller/queue/utilities/StatementControllerTest.java @@ -77,10 +77,9 @@ class StatementControllerTest extends AbstractControllerTest { statement.setInOutDirection("direction"); statement.setSettlementDate(LocalDate.now()); statement.setAmount(new BigDecimal(0)); - statement.setCashMovementCurrencyCode("cash"); statement.setOperationStatus("status"); - statement.setErrorCode("error"); - statement.setErrorText("name"); + statement.setErrorCodeId(122L); + statement.setErrorTextId(123L); statement.setInSDfId(currentId.get()); statement.setOutSDfId(currentId.get()); statement.setInOutSDfType("type"); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/SdfExecutorsConfig.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/SdfExecutorsConfig.java index 9cf397465..0c6937090 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/SdfExecutorsConfig.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/SdfExecutorsConfig.java @@ -4,7 +4,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.spcex.clearing.balance.service.AbstractExecutor; import ru.spcex.clearing.balance.service.Sdf01Executor; -import ru.spcex.clearing.balance.service.Sdf09Executor; import ru.spcex.clearing.balance.service.Sdf16Executor; import ru.spcex.platform.classes.base.interfaces.WithAccount; import ru.spcex.platform.enumeration.SdfTable; @@ -17,11 +16,11 @@ public class SdfExecutorsConfig { @Bean("sdfExecutors") public Map> executorsMap(Sdf01Executor sdf01Executor, - Sdf09Executor sdf09Executor, + //Sdf09Executor sdf09Executor, Sdf16Executor sdf16Executor) { Map> executors = new HashMap<>(); executors.put(SdfTable.SDF_01, sdf01Executor); - executors.put(SdfTable.SDF_09, sdf09Executor); +// todo возможно удалят или переделают: executors.put(SdfTable.SDF_09, sdf09Executor); executors.put(SdfTable.SDF_16, sdf16Executor); return executors; } diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java index 4681150dc..87b39ee7f 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/config/ValidationConfig.java @@ -94,8 +94,8 @@ public class ValidationConfig { return new ValidatorImpl<>(context, Sdf09ValidationRule.CompanyPresent, Sdf09ValidationRule.AccountPresent, - MarketIsUValidationRule.instance, - AccountBalanceFreeAmountEnough.instance(SDf09.class) + MarketIsUValidationRule.instance + //,AccountBalanceFreeAmountEnough.instance(SDf09.class) ); }; } diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf01Executor.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf01Executor.java index aae3482b9..4b321782d 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf01Executor.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf01Executor.java @@ -101,10 +101,11 @@ public class Sdf01Executor extends AbstractExecutor { SDf02 sdf02New = createSuccessSdf02(sdf01, generationIdForGroup); sdf02Imdg.insert(sdf02New); statement.setOutSDfId(sdf02New.getId()); - AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); + AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), + null/*statement.getCashMovementCurrencyCode()*/); if (accountResult.getError() != null) { - statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); - statement.setErrorText(errorResolver.resolve(accountResult.getError())); + statement.setErrorCodeId(accountResult.getError().getSubject().getId()); + // todo statement.setErrorText(errorResolver.resolve(accountResult.getError())); } else { accountBalanceImdg.insert(accountResult.getAccount()); //insert == update? statement.setOperationStatus(OperationStatus.Executed.getKey()); @@ -126,7 +127,6 @@ public class Sdf01Executor extends AbstractExecutor { statement.setInOutDirection(InOutDirection.in.getKey()); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf01.getId()); statement.setInOutSDfType(InOutSDfType.type1.getKey()); @@ -141,7 +141,6 @@ public class Sdf01Executor extends AbstractExecutor { statement.setInOutDirection(InOutDirection.in.getKey()); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statementImdg.update(statement); } @@ -169,7 +168,7 @@ public class Sdf01Executor extends AbstractExecutor { sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setFile_type(sdf01.getFile_type()); - sDf02.setInSDf01Id(sdf01.getId()); + sDf02.setInSDfId(sdf01.getId()); String errorId = error.getSubject().getId().toString(); sDf02.setResult(errorId.substring(errorId.length() - 3)); sDf02.setGenerationId(generationIdForGroup); @@ -191,7 +190,7 @@ public class Sdf01Executor extends AbstractExecutor { sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setFile_type(sdf01.getFile_type()); - sDf02.setInSDf01Id(sdf01.getId()); + sDf02.setInSDfId(sdf01.getId()); sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationTime(Instant.now()); sDf02.setResult("OK!"); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf08Service.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf08Service.java index 41ae97a7d..61b4baac9 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf08Service.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf08Service.java @@ -45,9 +45,9 @@ public class Sdf08Service extends QueueConsumer implements InitializingBean { private void newSDf08(BaseRequest userRequest) { log.debug("getAllBalance request received"); SDf08 sDf08 = new SDf08(); - sDf08.setNumber(idGenerator.nextId().toString()); +// sDf08.setNumber(idGenerator.nextId().toString()); Instant now = Instant.now(); - sDf08.setDatetime(String.valueOf(now.toEpochMilli())); +// sDf08.setDatetime(String.valueOf(now.toEpochMilli())); sDf08.setGenerationTime(now); sDf08.setGenerationId(idGenerator.nextId()); sdf8Map.insert(sDf08); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java index 2291363ad..b52d2ab6c 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf09Executor.java @@ -1,175 +1,176 @@ -package ru.spcex.clearing.balance.service; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.account.Account; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.sdf.SDf09; -import ru.clearing.classes.statics.data.sdf.SDf10; -import ru.clearing.classes.statics.data.statement.Statement; -import ru.spcex.clearing.balance.errors.BalanceError; -import ru.spcex.clearing.balance.validation.ValidationStored; -import ru.spcex.clearing.imdg.IMDGDistributedNames; -import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; -import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; -import ru.spcex.platform.enumeration.*; -import ru.spcex.platform.imdg.api.Imdg; -import ru.spcex.platform.imdg.api.ImdgProvider; -import ru.spcex.platform.utils.enumeration.EnumMessage; -import ru.spcex.platform.utils.enumeration.IMessageResolver; -import ru.spcex.platform.utils.validation.IValidator; - -import java.time.Instant; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.util.Collection; -import java.util.Map; -import java.util.Optional; -import java.util.function.Function; - -@Service -public class Sdf09Executor extends AbstractExecutor { - private final Logger log = LoggerFactory.getLogger(getClass()); - private final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy"); - private final Imdg statementImdg; - private final Function sDf09Validator; - private final LoggingService errorLogger; - private final Imdg sdf10Imdg; - private final ImdgProvider imdgProvider; - private final AccountBalanceService accountBalanceService; - private final IMessageResolver errorResolver; - private final Imdg accountBalanceImdg; - - public Sdf09Executor(Function sDf09Validator, - LoggingService errorLogger, - ImdgProvider imdgProvider, - AccountBalanceService accountBalanceService, - IMessageResolver errorResolver) { - this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); - this.sdf10Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf10, SDf10.class); - this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);; - this.sDf09Validator = sDf09Validator; - this.errorLogger = errorLogger; - this.imdgProvider = imdgProvider; - this.accountBalanceService = accountBalanceService; - this.errorResolver = errorResolver; - } - - @Override - String exportTableName() { - return "DF-10"; - } - - public Result execute(Collection sdf, StatementRequest statementRequest){ - Result result = new Result(); - Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId(); - result.setGenerationId(generationIdForGroup); - for (SDf09 sdf09 : sdf) { - IValidator validator = sDf09Validator.apply(sdf09); - Optional error = validator.tillFirstError(); - Company company = validator.getStored(ValidationStored.Company); - if (statementRequest.getAccountCreationResults().size() == 0 - && BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { - //на данном шаге company существует -> getId ok - //формируем пакетный запрос на добавление account - //ответ придет в этот же метод, process - result.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); - log.info("account {} for sdf01.id={} not found - send request for creation", sdf09.getAccount(), sdf09.getId()); - continue; - } else if (BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { - log.error("fatal error: resumed processing after generating accounts, but no account found for sdf01.id={}", sdf09.getId()); - } - if (error.isPresent()) { - errorLogger.logError("sdf01.id={}", error.get(), sdf09.getId()); - sdf10Imdg.insert(createErrorSdf10(sdf09, error.get(), generationIdForGroup)); - continue; - } - Statement statement = statementImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount())); - if (statement == null) { - statement = createFlow(sdf09, - company, - validator.getStored(ValidationStored.Account)); - } else { - updateFlow(statement, sdf09, - validator.getStored(ValidationStored.Account)); - } - SDf10 sdf10New = createSuccessSdf10(sdf09, generationIdForGroup); - sdf10Imdg.insert(sdf10New); - statement.setOutSDfId(sdf10New.getId()); - AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); - if (accountResult.getError() != null) { - statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); - statement.setErrorText(errorResolver.resolve(accountResult.getError())); - } else { - accountBalanceImdg.insert(accountResult.getAccount()); //insert == update? - statement.setOperationStatus(OperationStatus.Executed.getKey()); - } - statementImdg.update(statement); - } - return result; - } - - private Statement createFlow(SDf09 sdf09, Company company, Account account) { - Statement statement = new Statement(); - statement.setAddresseeId(company.getId()); - statement.setSenderId(Sender.Prc.getId()); - statement.setCreated(Instant.now()); - statement.setClearingDate(LocalDate.now()); - statement.setStatementType(StatementType.incr.getKey()); - statement.setAccountId(account.getId()); - statement.setAccount(sdf09.getAccount()); - statement.setInOutDirection(InOutDirection.in.getKey()); - statement.setAmount(sdf09.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); - statement.setOperationStatus(OperationStatus.Pending.getKey()); - statement.setInSDfId(sdf09.getId()); - statement.setInOutSDfType(InOutSDfType.type9.getKey()); - statementImdg.insert(statement); - return statement; - } - - private void updateFlow(Statement statement, SDf09 sdf09, Account account) { - statement.setUpdated(Instant.now()); - statement.setAccountId(account.getId()); - statement.setAccount(sdf09.getAccount()); - statement.setInOutDirection(InOutDirection.in.getKey()); - statement.setAmount(sdf09.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); - statement.setInSDfId(sdf09.getId()); -// statement.setOutSDfId(sdf10.getId()); заполняется внешним кодом - statement.setInOutSDfType(InOutSDfType.type9.getKey()); - statementImdg.update(statement); - } - - private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { - AccountSdfRequestPart req = new AccountSdfRequestPart(); - req.setAccount(account); - req.setCompanyId(companyId); - req.setSdfId(sdf09Id); - return req; - } - - private SDf10 createErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { - SDf10 sDf10 = createSuccessSdf10(sdf09, generationIdForGroup); - String errorId = error.getSubject().getId().toString(); - sDf10.setResult(errorId.substring(errorId.length() - 3)); - return sDf10; - } - - private SDf10 createSuccessSdf10(SDf09 sdf09, Long generationIdForGroup) { - SDf10 sDf10 = new SDf10(); - sDf10.setAccount(sdf09.getAccount()); - sDf10.setSum(sdf09.getSum()); - sDf10.setMarket(sdf09.getMarket()); - sDf10.setType(sdf09.getType()); - sDf10.setNumber(sdf09.getNumber()); - sDf10.setInn(sdf09.getInn()); - sDf10.setResult("OK"); - sDf10.setGenerationId(generationIdForGroup); - sDf10.setGenerationTime(Instant.now()); - sDf10.setInSDf09Id(sdf09.getId()); - return sDf10; - } -} +//package ru.spcex.clearing.balance.service; +// +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.stereotype.Service; +//import ru.clearing.classes.statics.data.account.Account; +//import ru.clearing.classes.statics.data.account.AccountBalance; +//import ru.clearing.classes.statics.data.company.Company; +//import ru.clearing.classes.statics.data.sdf.SDf09; +//import ru.clearing.classes.statics.data.sdf.SDf10; +//import ru.clearing.classes.statics.data.statement.Statement; +//import ru.spcex.clearing.balance.errors.BalanceError; +//import ru.spcex.clearing.balance.validation.ValidationStored; +//import ru.spcex.clearing.imdg.IMDGDistributedNames; +//import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; +//import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; +//import ru.spcex.platform.enumeration.*; +//import ru.spcex.platform.imdg.api.Imdg; +//import ru.spcex.platform.imdg.api.ImdgProvider; +//import ru.spcex.platform.utils.enumeration.EnumMessage; +//import ru.spcex.platform.utils.enumeration.IMessageResolver; +//import ru.spcex.platform.utils.validation.IValidator; +// +//import java.time.Instant; +//import java.time.LocalDate; +//import java.time.format.DateTimeFormatter; +//import java.util.Collection; +//import java.util.Map; +//import java.util.Optional; +//import java.util.function.Function; +// +////todo SDf09 был изменён. Sdf09Executor теперь не работает. +//@Service +//public class Sdf09Executor extends AbstractExecutor { +// private final Logger log = LoggerFactory.getLogger(getClass()); +// private final static DateTimeFormatter datFormatter = DateTimeFormatter.ofPattern("dd.MM.yy"); +// private final Imdg statementImdg; +// private final Function sDf09Validator; +// private final LoggingService errorLogger; +// private final Imdg sdf10Imdg; +// private final ImdgProvider imdgProvider; +// private final AccountBalanceService accountBalanceService; +// private final IMessageResolver errorResolver; +// private final Imdg accountBalanceImdg; +// +// public Sdf09Executor(Function sDf09Validator, +// LoggingService errorLogger, +// ImdgProvider imdgProvider, +// AccountBalanceService accountBalanceService, +// IMessageResolver errorResolver) { +// this.statementImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Statement, Statement.class); +// this.sdf10Imdg = imdgProvider.getImdg(IMDGDistributedNames.Map_SDf10, SDf10.class); +// this.accountBalanceImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_AccountBalance, AccountBalance.class);; +// this.sDf09Validator = sDf09Validator; +// this.errorLogger = errorLogger; +// this.imdgProvider = imdgProvider; +// this.accountBalanceService = accountBalanceService; +// this.errorResolver = errorResolver; +// } +// +// @Override +// String exportTableName() { +// return "DF-10"; +// } +// +// public Result execute(Collection sdf, StatementRequest statementRequest){ +// Result result = new Result(); +// Long generationIdForGroup = imdgProvider.getImdgIdGenerator().nextId(); +// result.setGenerationId(generationIdForGroup); +// for (SDf09 sdf09 : sdf) { +// IValidator validator = sDf09Validator.apply(sdf09); +// Optional error = validator.tillFirstError(); +// Company company = validator.getStored(ValidationStored.Company); +// if (statementRequest.getAccountCreationResults().size() == 0 +// && BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { +// //на данном шаге company существует -> getId ok +// //формируем пакетный запрос на добавление account +// //ответ придет в этот же метод, process +// result.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); +// log.info("account {} for sdf01.id={} not found - send request for creation", sdf09.getAccount(), sdf09.getId()); +// continue; +// } else if (BalanceError.AccountNotPresent.equals(error.map(EnumMessage::getSubject).orElse(null))) { +// log.error("fatal error: resumed processing after generating accounts, but no account found for sdf01.id={}", sdf09.getId()); +// } +// if (error.isPresent()) { +// errorLogger.logError("sdf01.id={}", error.get(), sdf09.getId()); +// sdf10Imdg.insert(createErrorSdf10(sdf09, error.get(), generationIdForGroup)); +// continue; +// } +// Statement statement = statementImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount())); +// if (statement == null) { +// statement = createFlow(sdf09, +// company, +// validator.getStored(ValidationStored.Account)); +// } else { +// updateFlow(statement, sdf09, +// validator.getStored(ValidationStored.Account)); +// } +// SDf10 sdf10New = createSuccessSdf10(sdf09, generationIdForGroup); +// sdf10Imdg.insert(sdf10New); +// statement.setOutSDfId(sdf10New.getId()); +// AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); +// if (accountResult.getError() != null) { +// statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); +// statement.setErrorText(errorResolver.resolve(accountResult.getError())); +// } else { +// accountBalanceImdg.insert(accountResult.getAccount()); //insert == update? +// statement.setOperationStatus(OperationStatus.Executed.getKey()); +// } +// statementImdg.update(statement); +// } +// return result; +// } +// +// private Statement createFlow(SDf09 sdf09, Company company, Account account) { +// Statement statement = new Statement(); +// statement.setAddresseeId(company.getId()); +// statement.setSenderId(Sender.Prc.getId()); +// statement.setCreated(Instant.now()); +// statement.setClearingDate(LocalDate.now()); +// statement.setStatementType(StatementType.incr.getKey()); +// statement.setAccountId(account.getId()); +// statement.setAccount(sdf09.getAccount()); +// statement.setInOutDirection(InOutDirection.in.getKey()); +// statement.setAmount(sdf09.getSum()); +// statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); +// statement.setOperationStatus(OperationStatus.Pending.getKey()); +// statement.setInSDfId(sdf09.getId()); +// statement.setInOutSDfType(InOutSDfType.type9.getKey()); +// statementImdg.insert(statement); +// return statement; +// } +// +// private void updateFlow(Statement statement, SDf09 sdf09, Account account) { +// statement.setUpdated(Instant.now()); +// statement.setAccountId(account.getId()); +// statement.setAccount(sdf09.getAccount()); +// statement.setInOutDirection(InOutDirection.in.getKey()); +// statement.setAmount(sdf09.getSum()); +// statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); +// statement.setInSDfId(sdf09.getId()); +//// statement.setOutSDfId(sdf10.getId()); заполняется внешним кодом +// statement.setInOutSDfType(InOutSDfType.type9.getKey()); +// statementImdg.update(statement); +// } +// +// private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { +// AccountSdfRequestPart req = new AccountSdfRequestPart(); +// req.setAccount(account); +// req.setCompanyId(companyId); +// req.setSdfId(sdf09Id); +// return req; +// } +// +// private SDf10 createErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { +// SDf10 sDf10 = createSuccessSdf10(sdf09, generationIdForGroup); +// String errorId = error.getSubject().getId().toString(); +// sDf10.setResult(errorId.substring(errorId.length() - 3)); +// return sDf10; +// } +// +// private SDf10 createSuccessSdf10(SDf09 sdf09, Long generationIdForGroup) { +// SDf10 sDf10 = new SDf10(); +// sDf10.setAccount(sdf09.getAccount()); +// sDf10.setSum(sdf09.getSum()); +// sDf10.setMarket(sdf09.getMarket()); +// sDf10.setType(sdf09.getType()); +// sDf10.setNumber(sdf09.getNumber()); +// sDf10.setInn(sdf09.getInn()); +// sDf10.setResult("OK"); +// sDf10.setGenerationId(generationIdForGroup); +// sDf10.setGenerationTime(Instant.now()); +// sDf10.setInSDf09Id(sdf09.getId()); +// return sDf10; +// } +//} diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf16Executor.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf16Executor.java index 7b0efe5e9..eb9080003 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf16Executor.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/Sdf16Executor.java @@ -105,10 +105,10 @@ public class Sdf16Executor extends AbstractExecutor { sdf17Imdg.insert(sdfNew); statement.setOutSDfId(sdfNew.getId()); AccountResult accountResult = accountBalanceService.createAccountBalance(statement.getAddresseeId(), - statement.getAccountId(), statement.getAmount(), statement.getCashMovementCurrencyCode()); + statement.getAccountId(), statement.getAmount(), null /*todo statement.getCashMovementCurrencyCode() */); if (accountResult.getError() != null) { - statement.setErrorCode(accountResult.getError().getSubject().getId().toString()); - statement.setErrorText(errorResolver.resolve(accountResult.getError())); + statement.setErrorCodeId(accountResult.getError().getSubject().getId()); + //todo аполнение statement.setErrorTextId(errorResolver.resolve(accountResult.getError())); } else { accountBalanceImdg.insert(accountResult.getAccount()); statement.setOperationStatus(OperationStatus.Executed.getKey()); @@ -143,7 +143,6 @@ public class Sdf16Executor extends AbstractExecutor { statement.setAccount(sdf.getAccount()); statement.setInOutDirection(InOutDirection.in.getKey()); statement.setAmount(sdf.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf.getId()); statement.setInOutSDfType(InOutSDfType.type16.getKey()); @@ -158,7 +157,6 @@ public class Sdf16Executor extends AbstractExecutor { statement.setAccount(sdf.getAccount()); statement.setInOutDirection(InOutDirection.in.getKey()); statement.setAmount(sdf.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setInSDfId(sdf.getId()); statement.setInOutSDfType(InOutSDfType.type16.getKey()); statementImdg.update(statement); diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java index c2125fe09..5cddeb723 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/service/StatementService.java @@ -54,7 +54,7 @@ public class StatementService extends QueueConsumer implements InitializingBean this.kafkaReqProducer = kafkaReqProducer; this.executorsMap = executorsMap; this.sdfImdgs.put(SdfTable.SDF_01, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf01, SDf01.class)); - this.sdfImdgs.put(SdfTable.SDF_09, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf09, SDf09.class)); +// todo изменение классов. this.sdfImdgs.put(SdfTable.SDF_09, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf09, SDf09.class)); this.sdfImdgs.put(SdfTable.SDF_16, imdgProvider.getImdg(IMDGDistributedNames.Map_SDf16, SDf16.class)); } diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf09ValidationRule.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf09ValidationRule.java index 64b6b80cf..7f1d910a9 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf09ValidationRule.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf09ValidationRule.java @@ -17,6 +17,7 @@ import java.math.RoundingMode; import java.util.Map; import java.util.Optional; +@Deprecated // связан с Sdf09Executor , он в переработке или удалении. public enum Sdf09ValidationRule implements IValidationRule> { CompanyPresent() { @Override @@ -24,48 +25,48 @@ public enum Sdf09ValidationRule implements IValidationRule companySymbolImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); - if (sdf09.getInn() == null) { - return of(BalanceError.CompanyNotFound, "empty inn"); - } - String innStr = sdf09.getInn().setScale(0, RoundingMode.DOWN).toString(); - CompanySymbols symbol = companySymbolImdg - .getSingleObjectByFieldValues(Map.of("companySymbol", CompanySymbol.INN.getKey(), - "companySymbolValue", innStr)); - Company company = null; - if (symbol != null) { - company = companyImdg.getSingleObjectByID(symbol.getCompanyId()); - } - if (company == null) { +// todo изменения классов. if (sdf09.getInn() == null) { +// return of(BalanceError.CompanyNotFound, "empty inn"); +// } +// String innStr = sdf09.getInn().setScale(0, RoundingMode.DOWN).toString(); +// CompanySymbols symbol = companySymbolImdg +// .getSingleObjectByFieldValues(Map.of("companySymbol", CompanySymbol.INN.getKey(), +// "companySymbolValue", innStr)); +// Company company = null; +// if (symbol != null) { +// company = companyImdg.getSingleObjectByID(symbol.getCompanyId()); +// } +// if (company == null) { return of(BalanceError.CompanyNotFound); - } - context.storeObject(ValidationStored.Company, company); - return empty(); +// } +// context.storeObject(ValidationStored.Company, company); +// return empty(); } }, AccountPresent() { @Override public Optional validate(ImdgValidationContext context) { SDf09 sdf09 = context.getValidatedObject(); - if (sdf09.getAccount() == null) { +// if (sdf09.getAccount() == null) { return of(BalanceError.AccountNotPresent); - } - Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); - Account account = accountImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), - "accountType", AccountType.Clrn.getKey())); - if (account == null) { - return of(BalanceError.AccountNotPresent); - } - context.storeObject(ValidationStored.Account, account); - return empty(); +// } +// Imdg accountImdg = context.obtainMap(IMDGDistributedNames.Map_Account, Account.class); +// Account account = accountImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), +// "accountType", AccountType.Clrn.getKey())); +// if (account == null) { +// return of(BalanceError.AccountNotPresent); +// } +// context.storeObject(ValidationStored.Account, account); +// return empty(); } }, Market() { @Override public Optional validate(ImdgValidationContext context) { SDf09 sdf09 = context.getValidatedObject(); - if (!"U".equals(sdf09.getMarket())) { - return of(BalanceError.WrongMarket); - } +// if (!"U".equals(sdf09.getMarket())) { +// return of(BalanceError.WrongMarket); +// } return empty(); } }; diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AbstractServiceTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AbstractServiceTest.java index 84160e341..b77d31c7a 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AbstractServiceTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/AbstractServiceTest.java @@ -34,7 +34,7 @@ import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFields AccountBalanceService.class, Sdf01Executor.class, Sdf08Service.class, - Sdf09Executor.class, +// Sdf09Executor.class, Sdf16Executor.class, StatementService.class, LoggingService.class, diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf01ExecutorTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf01ExecutorTest.java index 6c3907c9d..b2633523a 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf01ExecutorTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf01ExecutorTest.java @@ -203,7 +203,7 @@ class Sdf01ExecutorTest extends AbstractServiceTest { sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setFile_type(sdf01.getFile_type()); - sDf02.setInSDf01Id(sdf01.getId()); + sDf02.setInSDfId(sdf01.getId()); sDf02.setGenerationId(generationIdForGroup); sDf02.setGenerationTime(Instant.now()); sDf02.setResult("OK!"); @@ -223,7 +223,6 @@ class Sdf01ExecutorTest extends AbstractServiceTest { statement.setInOutDirection(InOutDirection.in.getKey()); statement.setSettlementDate(LocalDate.parse(sdf01.getDat(), datFormatter)); statement.setAmount(BigDecimalUtil.parse(sdf01.getRemainder())); - statement.setCashMovementCurrencyCode(cashMovementCurrencyCode); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf01.getId()); statement.setInOutSDfType(InOutSDfType.type1.getKey()); @@ -245,7 +244,7 @@ class Sdf01ExecutorTest extends AbstractServiceTest { sDf02.setSumengage(sdf01.getSumengage()); sDf02.setSumunblock(sdf01.getSumunblock()); sDf02.setFile_type(sdf01.getFile_type()); - sDf02.setInSDf01Id(sdf01.getId()); + sDf02.setInSDfId(sdf01.getId()); String errorId = error.getSubject().getId().toString(); sDf02.setResult(errorId.substring(errorId.length() - 3)); sDf02.setGenerationId(generationIdForGroup); diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf09ExecutorTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf09ExecutorTest.java index 241c74f85..8e71fcc10 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf09ExecutorTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf09ExecutorTest.java @@ -1,243 +1,243 @@ -package ru.spcex.clearing.balance.service; - -import org.apache.kafka.clients.producer.MockProducer; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.SpyBean; -import ru.clearing.classes.statics.data.account.Account; -import ru.clearing.classes.statics.data.account.AccountBalance; -import ru.clearing.classes.statics.data.company.Company; -import ru.clearing.classes.statics.data.company.CompanySymbols; -import ru.clearing.classes.statics.data.sdf.SDf09; -import ru.clearing.classes.statics.data.sdf.SDf10; -import ru.clearing.classes.statics.data.statement.Statement; -import ru.spcex.clearing.balance.errors.BalanceError; -import ru.spcex.clearing.balance.utils.MatcherFactory; -import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; -import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; -import ru.spcex.platform.enumeration.*; -import ru.spcex.platform.utils.enumeration.EnumMessage; - -import javax.annotation.PostConstruct; -import java.math.BigDecimal; -import java.time.Instant; -import java.time.LocalDate; -import java.util.Collection; -import java.util.Collections; -import java.util.Map; - -import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator; - -class Sdf09ExecutorTest extends AbstractServiceTest { - private static final MatcherFactory.Matcher SDF_10_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id"); - private final Long ID = 2L; - private final String acc = "213456789"; - @Autowired - Sdf09Executor sdf09Executor; - private SDf09 sdf09; - private StatementRequest statementRequest; - @SpyBean - private MockProducer producer; - - @PostConstruct - void init() { - super.init(); - sdf09 = getTestSdf09(); - statementRequest = new StatementRequest(); - } - - /** - * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}
- * Тест проверяет генерацию сущностей {@link Result}, {@link Statement}, {@link SDf10}
- * Входные параметры:
- * accountId - {@link StatementRequest}: new StatementRequest()
- * addresseeId - {@link Collection}
- * addresseeId - {@link SDf09}
- * {@link SDf09#market} - "U"
- * {@link SDf09#account} - "123456789"
- * {@link SDf09#inn} - 987654321
- * {@link SDf09#sum} - 1000
- */ - @Test - void execute() { - //check create statement, SDf10 and AccountBalance - Company company = getTestCompany(); - companyMap.put(addresseeIdNew, company); - - CompanySymbols companySymbols = getTestCompanySymbols(); - companySymbolsMap.put(addresseeIdNew, companySymbols); - - Account account = getTestAccount(ID, acc); - accountMap.put(accountIdNew, account); - - Result predictableResult = new Result(); - predictableResult.setGenerationId(ID); - Statement predictableStatement = getTestStatement(currentId.getAndIncrement(), company, account, sdf09); - predictableStatement.setOperationStatus(OperationStatus.Executed.getKey()); - SDf10 predictableSdf10 = getTestSdf10(currentId.getAndIncrement(), sdf09, ID); - predictableStatement.setOutSDfId(predictableSdf10.getId()); - AccountResult predictableNewResult = getTestAccountResult(currentId.getAndIncrement(), account, company); - - Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); - Statement resultStatement = statementImdg.getSingleObjectByFieldValues(Map.of("account", acc)); - SDf10 resultSdf10 = sdf10Imdg.getSingleObjectByFieldValues(Map.of("account", acc)); - AccountBalance resultAccountBalance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", acc)); - - RESULT_MATCHER.assertMatch(result, predictableResult); - STATEMENT_MATCHER.assertMatch(resultStatement, predictableStatement); - SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); - ACCOUNT_BALANCE_MATCHER.assertMatch(resultAccountBalance, predictableNewResult.getAccount()); - } - - /** - * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}
- * Тест проверяет валидацию
- * Входные параметры:
- * accountId - {@link StatementRequest}: new StatementRequest()
- * addresseeId - {@link Collection}
- * addresseeId - {@link SDf09}
- * {@link SDf09#market} - "U"
- * {@link SDf09#account} - "123456789"
- * {@link SDf09#inn} - 987654321
- * {@link SDf09#sum} - 1000
- */ - @Test - void validatedExecute() { - //CompanyNotFound - companyMap.delete(addresseeIdNew); - checkError(new EnumMessage(BalanceError.CompanyNotFound)); - - Company company = getTestCompany(); - companyMap.put(addresseeIdNew, company); - companySymbolsMap.delete(addresseeIdNew); - checkError(new EnumMessage(BalanceError.CompanyNotFound)); - - CompanySymbols companySymbols = getTestCompanySymbols(); - companySymbolsMap.put(addresseeIdNew, companySymbols); - sdf09.setInn(null); - checkError(new EnumMessage(BalanceError.CompanyNotFound)); - - //AccountNotPresent - sdf09.setInn(inn); - accountMap.delete(accountIdNew); - checkErrorAccountNotPresent(company); - - //AccountNotPresent - Account account = new Account(); - account.setAccount(null); - account.setAccountType(AccountType.Clrn.getKey()); - account.setStatus(Status.Active.getKey()); - accountMap.put(accountIdNew, account); - checkErrorAccountNotPresent(company); - - //AccountNotPresent - account = getTestAccount(ID, acc); - accountMap.put(accountIdNew, account); - sdf09.setAccount(null); - checkErrorAccountNotPresent(company); - - //WrongMarket - sdf09.setAccount(acc); - sdf09.setMarket(null); - checkError(new EnumMessage(BalanceError.WrongMarket)); - - //BalanceNotEnough - sdf09.setMarket("U"); - sdf09.setSum(null); - checkError(new EnumMessage(BalanceError.BalanceNotEnough)); - - //BalanceNotEnough - sdf09.setSum(new BigDecimal(-1000)); - AccountBalance balance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), - "accountType", AccountType.Clrn.getKey())); - if (balance != null) accountBalanceImdg.delete(balance); - else balance = getTestAccountBalance(ID, account, company); - checkError(new EnumMessage(BalanceError.BalanceNotEnough)); - - //BalanceNotEnough - balance.setFreeBalanceAmount(new BigDecimal(999)); - accountBalanceImdg.insert(balance); - checkError(new EnumMessage(BalanceError.BalanceNotEnough)); - - balance.setFreeBalanceAmount(amountNew); - accountBalanceImdg.insert(balance); - } - - private void checkError(EnumMessage enumMessage) { - SDf10 predictableSdf10 = getTestErrorSdf10(sdf09, enumMessage, ID); - Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); - Collection resultsSdf10 = sdf10Imdg.getCollectionObjectsByFieldValues(Map.of("account", acc)); - SDf10 resultSdf10 = resultsSdf10.stream().max((entry1, entry2) -> entry1.getId() > entry2.getId() ? 1 : -1).get(); - SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); - } - - protected Statement getTestStatement(Long id, Company company, Account account, SDf09 sdf09) { - Statement statement = new Statement(); - statement.setId(id); - statement.setAddresseeId(company.getId()); - statement.setSenderId(Sender.Prc.getId()); - statement.setCreated(Instant.now()); - statement.setClearingDate(LocalDate.now()); - statement.setStatementType(StatementType.incr.getKey()); - statement.setAccountId(account.getId()); - statement.setAccount(sdf09.getAccount()); - statement.setInOutDirection(InOutDirection.in.getKey()); - statement.setAmount(sdf09.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); - statement.setOperationStatus(OperationStatus.Pending.getKey()); - statement.setInSDfId(sdf09.getId()); - statement.setInOutSDfType(InOutSDfType.type9.getKey()); - statementImdg.insert(statement); - return statement; - } - - private SDf10 getTestSdf10(Long id, SDf09 sdf09, Long generationIdForGroup) { - SDf10 sDf10 = new SDf10(); - sDf10.setId(id); - sDf10.setAccount(sdf09.getAccount()); - sDf10.setSum(sdf09.getSum()); - sDf10.setMarket(sdf09.getMarket()); - sDf10.setType(sdf09.getType()); - sDf10.setNumber(sdf09.getNumber()); - sDf10.setInn(sdf09.getInn()); - sDf10.setResult("OK"); - sDf10.setGenerationId(generationIdForGroup); - sDf10.setGenerationTime(Instant.now()); - sDf10.setInSDf09Id(sdf09.getId()); - return sDf10; - } - - private SDf09 getTestSdf09() { - SDf09 sdf09 = new SDf09(); - sdf09.setId(ID); - sdf09.setMarket("U"); - sdf09.setAccount(acc); - sdf09.setInn(inn); - sdf09.setSum(amountNew); - return sdf09; - } - - private SDf10 getTestErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { - SDf10 sDf10 = getTestSdf10(ID, sdf09, generationIdForGroup); - sDf10.setId(ID); - String errorId = error.getSubject().getId().toString(); - sDf10.setResult(errorId.substring(errorId.length() - 3)); - return sDf10; - } - - private void checkErrorAccountNotPresent(Company company) { - Result predictableResult = new Result(); - predictableResult.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); - Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); - RESULT_MATCHER.assertMatch(result, predictableResult); - } - - private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { - AccountSdfRequestPart req = new AccountSdfRequestPart(); - req.setAccount(account); - req.setCompanyId(companyId); -// req.setAccountType(AccountType.Clrn.getKey()); - req.setSdfId(sdf09Id); - return req; - } -} \ No newline at end of file +//package ru.spcex.clearing.balance.service; +// +//import org.apache.kafka.clients.producer.MockProducer; +//import org.junit.jupiter.api.Test; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.test.mock.mockito.SpyBean; +//import ru.clearing.classes.statics.data.account.Account; +//import ru.clearing.classes.statics.data.account.AccountBalance; +//import ru.clearing.classes.statics.data.company.Company; +//import ru.clearing.classes.statics.data.company.CompanySymbols; +//import ru.clearing.classes.statics.data.sdf.SDf09; +//import ru.clearing.classes.statics.data.sdf.SDf10; +//import ru.clearing.classes.statics.data.statement.Statement; +//import ru.spcex.clearing.balance.errors.BalanceError; +//import ru.spcex.clearing.balance.utils.MatcherFactory; +//import ru.spcex.clearing.platform.messaging.domain.cud.account.sdf01.AccountSdfRequestPart; +//import ru.spcex.clearing.platform.messaging.domain.cud.balance.StatementRequest; +//import ru.spcex.platform.enumeration.*; +//import ru.spcex.platform.utils.enumeration.EnumMessage; +// +//import javax.annotation.PostConstruct; +//import java.math.BigDecimal; +//import java.time.Instant; +//import java.time.LocalDate; +//import java.util.Collection; +//import java.util.Collections; +//import java.util.Map; +// +//import static ru.spcex.clearing.balance.utils.MatcherFactory.usingIgnoringFieldsComparator; +// +//class Sdf09ExecutorTest extends AbstractServiceTest { +// private static final MatcherFactory.Matcher SDF_10_MATCHER = usingIgnoringFieldsComparator("created", "comment", "outSDfId", "generationTime", "generationId", "id"); +// private final Long ID = 2L; +// private final String acc = "213456789"; +// @Autowired +// Sdf09Executor sdf09Executor; +// private SDf09 sdf09; +// private StatementRequest statementRequest; +// @SpyBean +// private MockProducer producer; +// +// @PostConstruct +// void init() { +// super.init(); +// sdf09 = getTestSdf09(); +// statementRequest = new StatementRequest(); +// } +// +// /** +// * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}
+// * Тест проверяет генерацию сущностей {@link Result}, {@link Statement}, {@link SDf10}
+// * Входные параметры:
+// * accountId - {@link StatementRequest}: new StatementRequest()
+// * addresseeId - {@link Collection}
+// * addresseeId - {@link SDf09}
+// * {@link SDf09#market} - "U"
+// * {@link SDf09#account} - "123456789"
+// * {@link SDf09#inn} - 987654321
+// * {@link SDf09#sum} - 1000
+// */ +// @Test +// void execute() { +// //check create statement, SDf10 and AccountBalance +// Company company = getTestCompany(); +// companyMap.put(addresseeIdNew, company); +// +// CompanySymbols companySymbols = getTestCompanySymbols(); +// companySymbolsMap.put(addresseeIdNew, companySymbols); +// +// Account account = getTestAccount(ID, acc); +// accountMap.put(accountIdNew, account); +// +// Result predictableResult = new Result(); +// predictableResult.setGenerationId(ID); +// Statement predictableStatement = getTestStatement(currentId.getAndIncrement(), company, account, sdf09); +// predictableStatement.setOperationStatus(OperationStatus.Executed.getKey()); +// SDf10 predictableSdf10 = getTestSdf10(currentId.getAndIncrement(), sdf09, ID); +// predictableStatement.setOutSDfId(predictableSdf10.getId()); +// AccountResult predictableNewResult = getTestAccountResult(currentId.getAndIncrement(), account, company); +// +// Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); +// Statement resultStatement = statementImdg.getSingleObjectByFieldValues(Map.of("account", acc)); +// SDf10 resultSdf10 = sdf10Imdg.getSingleObjectByFieldValues(Map.of("account", acc)); +// AccountBalance resultAccountBalance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", acc)); +// +// RESULT_MATCHER.assertMatch(result, predictableResult); +// STATEMENT_MATCHER.assertMatch(resultStatement, predictableStatement); +// SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); +// ACCOUNT_BALANCE_MATCHER.assertMatch(resultAccountBalance, predictableNewResult.getAccount()); +// } +// +// /** +// * {@link Sdf09Executor#execute(Collection collection, StatementRequest statementRequest)}
+// * Тест проверяет валидацию
+// * Входные параметры:
+// * accountId - {@link StatementRequest}: new StatementRequest()
+// * addresseeId - {@link Collection}
+// * addresseeId - {@link SDf09}
+// * {@link SDf09#market} - "U"
+// * {@link SDf09#account} - "123456789"
+// * {@link SDf09#inn} - 987654321
+// * {@link SDf09#sum} - 1000
+// */ +// @Test +// void validatedExecute() { +// //CompanyNotFound +// companyMap.delete(addresseeIdNew); +// checkError(new EnumMessage(BalanceError.CompanyNotFound)); +// +// Company company = getTestCompany(); +// companyMap.put(addresseeIdNew, company); +// companySymbolsMap.delete(addresseeIdNew); +// checkError(new EnumMessage(BalanceError.CompanyNotFound)); +// +// CompanySymbols companySymbols = getTestCompanySymbols(); +// companySymbolsMap.put(addresseeIdNew, companySymbols); +// sdf09.setInn(null); +// checkError(new EnumMessage(BalanceError.CompanyNotFound)); +// +// //AccountNotPresent +// sdf09.setInn(inn); +// accountMap.delete(accountIdNew); +// checkErrorAccountNotPresent(company); +// +// //AccountNotPresent +// Account account = new Account(); +// account.setAccount(null); +// account.setAccountType(AccountType.Clrn.getKey()); +// account.setStatus(Status.Active.getKey()); +// accountMap.put(accountIdNew, account); +// checkErrorAccountNotPresent(company); +// +// //AccountNotPresent +// account = getTestAccount(ID, acc); +// accountMap.put(accountIdNew, account); +// sdf09.setAccount(null); +// checkErrorAccountNotPresent(company); +// +// //WrongMarket +// sdf09.setAccount(acc); +// sdf09.setMarket(null); +// checkError(new EnumMessage(BalanceError.WrongMarket)); +// +// //BalanceNotEnough +// sdf09.setMarket("U"); +// sdf09.setSum(null); +// checkError(new EnumMessage(BalanceError.BalanceNotEnough)); +// +// //BalanceNotEnough +// sdf09.setSum(new BigDecimal(-1000)); +// AccountBalance balance = accountBalanceImdg.getSingleObjectByFieldValues(Map.of("account", sdf09.getAccount(), +// "accountType", AccountType.Clrn.getKey())); +// if (balance != null) accountBalanceImdg.delete(balance); +// else balance = getTestAccountBalance(ID, account, company); +// checkError(new EnumMessage(BalanceError.BalanceNotEnough)); +// +// //BalanceNotEnough +// balance.setFreeBalanceAmount(new BigDecimal(999)); +// accountBalanceImdg.insert(balance); +// checkError(new EnumMessage(BalanceError.BalanceNotEnough)); +// +// balance.setFreeBalanceAmount(amountNew); +// accountBalanceImdg.insert(balance); +// } +// +// private void checkError(EnumMessage enumMessage) { +// SDf10 predictableSdf10 = getTestErrorSdf10(sdf09, enumMessage, ID); +// Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); +// Collection resultsSdf10 = sdf10Imdg.getCollectionObjectsByFieldValues(Map.of("account", acc)); +// SDf10 resultSdf10 = resultsSdf10.stream().max((entry1, entry2) -> entry1.getId() > entry2.getId() ? 1 : -1).get(); +// SDF_10_MATCHER.assertMatch(resultSdf10, predictableSdf10); +// } +// +// protected Statement getTestStatement(Long id, Company company, Account account, SDf09 sdf09) { +// Statement statement = new Statement(); +// statement.setId(id); +// statement.setAddresseeId(company.getId()); +// statement.setSenderId(Sender.Prc.getId()); +// statement.setCreated(Instant.now()); +// statement.setClearingDate(LocalDate.now()); +// statement.setStatementType(StatementType.incr.getKey()); +// statement.setAccountId(account.getId()); +// statement.setAccount(sdf09.getAccount()); +// statement.setInOutDirection(InOutDirection.in.getKey()); +// statement.setAmount(sdf09.getSum()); +// statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); +// statement.setOperationStatus(OperationStatus.Pending.getKey()); +// statement.setInSDfId(sdf09.getId()); +// statement.setInOutSDfType(InOutSDfType.type9.getKey()); +// statementImdg.insert(statement); +// return statement; +// } +// +// private SDf10 getTestSdf10(Long id, SDf09 sdf09, Long generationIdForGroup) { +// SDf10 sDf10 = new SDf10(); +// sDf10.setId(id); +// sDf10.setAccount(sdf09.getAccount()); +// sDf10.setSum(sdf09.getSum()); +// sDf10.setMarket(sdf09.getMarket()); +// sDf10.setType(sdf09.getType()); +// sDf10.setNumber(sdf09.getNumber()); +// sDf10.setInn(sdf09.getInn()); +// sDf10.setResult("OK"); +// sDf10.setGenerationId(generationIdForGroup); +// sDf10.setGenerationTime(Instant.now()); +// sDf10.setInSDf09Id(sdf09.getId()); +// return sDf10; +// } +// +// private SDf09 getTestSdf09() { +// SDf09 sdf09 = new SDf09(); +// sdf09.setId(ID); +// sdf09.setMarket("U"); +// sdf09.setAccount(acc); +// sdf09.setInn(inn); +// sdf09.setSum(amountNew); +// return sdf09; +// } +// +// private SDf10 getTestErrorSdf10(SDf09 sdf09, EnumMessage error, Long generationIdForGroup) { +// SDf10 sDf10 = getTestSdf10(ID, sdf09, generationIdForGroup); +// sDf10.setId(ID); +// String errorId = error.getSubject().getId().toString(); +// sDf10.setResult(errorId.substring(errorId.length() - 3)); +// return sDf10; +// } +// +// private void checkErrorAccountNotPresent(Company company) { +// Result predictableResult = new Result(); +// predictableResult.getAccountRequests().add(createAccountRequestPart(sdf09.getId(), sdf09.getAccount(), company.getId())); +// Result result = sdf09Executor.execute(Collections.singletonList(sdf09), statementRequest); +// RESULT_MATCHER.assertMatch(result, predictableResult); +// } +// +// private AccountSdfRequestPart createAccountRequestPart(Long sdf09Id, String account, Long companyId) { +// AccountSdfRequestPart req = new AccountSdfRequestPart(); +// req.setAccount(account); +// req.setCompanyId(companyId); +//// req.setAccountType(AccountType.Clrn.getKey()); +// req.setSdfId(sdf09Id); +// return req; +// } +//} \ No newline at end of file diff --git a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf16ExecutorTest.java b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf16ExecutorTest.java index 9f12223ef..a346b430e 100644 --- a/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf16ExecutorTest.java +++ b/clearing-parent/balance-service/src/test/java/ru/spcex/clearing/balance/service/Sdf16ExecutorTest.java @@ -211,7 +211,6 @@ class Sdf16ExecutorTest extends AbstractServiceTest { statement.setAccount(sdf16.getAccount()); statement.setInOutDirection(InOutDirection.in.getKey()); statement.setAmount(sdf16.getSum()); - statement.setCashMovementCurrencyCode(CurrencyCode.RUB.getKey()); statement.setOperationStatus(OperationStatus.Pending.getKey()); statement.setInSDfId(sdf16.getId()); statement.setInOutSDfType(InOutSDfType.type16.getKey()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java index 4ab020059..d56b03780 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java @@ -109,35 +109,35 @@ public class PaymentInstructionCreator { payment1.setPaymentPurpose(paymentPurpose(liabilitiesClaimsAssets.getContract())); payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue(); - payment1.setCreditLegAmount(amount); - payment1.setDebitLegAmount(amount); + BigDecimal amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs(); + payment1.setCreditLeg_amount(amount); + payment1.setDebitLeg_amount(amount); - payment1.setCreditLegAccountId(liabilitiesClaimsAssets.getAccountId()); + payment1.setCreditLeg_accountId(liabilitiesClaimsAssets.getAccountId()); - payment1.setCreditCsAccount(null); + payment1.setCredit_csAccount(null); { - Account acc1 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId()); + Account acc1 = accountImdg.getSingleObjectByID(payment1.getCreditLeg_accountId()); if (acc1 != null) { - payment1.setCreditLegAccount(acc1.getAccount()); + payment1.setCreditLeg_account(acc1.getAccount()); } } { Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); if (acc1 != null) { - payment1.setDebitLegAccountId(acc1.getId()); - payment1.setDebitLegAccount(acc1.getAccount()); + payment1.setDebitLeg_accountId(acc1.getId()); + payment1.setDebitLeg_account(acc1.getAccount()); } } - payment1.setDebitCsAccount(null); -// payment1.setCreditLegDirection(InOutDirection.out.getKey()); -// payment1.setDebitLegDirection(InOutDirection.in.getKey()); + payment1.setDebit_csAccount(null); +// payment1.setCreditLeg_direction(InOutDirection.out.getKey()); +// payment1.setDebitLeg_direction(InOutDirection.in.getKey()); - payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setTransactionStatus(TransactionStatus.stld.getKey()); @@ -399,9 +399,9 @@ public class PaymentInstructionCreator { payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); - payment1.setCreditLegAmount(amount); - payment1.setDebitLegAmount(amount); + BigDecimal amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs(); + payment1.setCreditLeg_amount(amount); + payment1.setDebitLeg_amount(amount); { Account anotherAcc = selectAccount(payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); @@ -409,34 +409,34 @@ public class PaymentInstructionCreator { log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); } else { - payment1.setCreditLegAccountId(anotherAcc.getId()); + payment1.setCreditLeg_accountId(anotherAcc.getId()); } } - payment1.setCreditCsAccount(null); + payment1.setCredit_csAccount(null); { - Account acc2 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId()); + Account acc2 = accountImdg.getSingleObjectByID(payment1.getCreditLeg_accountId()); if (acc2 != null) { - payment1.setCreditLegAccount(acc2.getAccount()); + payment1.setCreditLeg_account(acc2.getAccount()); } } { Account acc2 = accountImdg.getSingleObjectByID(liabilitiesClaimsAssets.getAccountId()); if (acc2 != null) { - payment1.setDebitLegAccountId(acc2.getId()); - payment1.setDebitLegAccount(acc2.getAccount()); + payment1.setDebitLeg_accountId(acc2.getId()); + payment1.setDebitLeg_account(acc2.getAccount()); } } - payment1.setDebitCsAccount(null); + payment1.setDebit_csAccount(null); -// payment2.setCreditLegDirection(InOutDirection.out.getKey()); -// payment2.setDebitLegDirection(InOutDirection.in.getKey()); +// payment2.setCreditLeg_direction(InOutDirection.out.getKey()); +// payment2.setDebitLeg_direction(InOutDirection.in.getKey()); - payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setTransactionStatus(TransactionStatus.stld.getKey()); @@ -483,9 +483,9 @@ public class PaymentInstructionCreator { payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); - payment2.setCreditLegAmount(amount); - payment2.setDebitLegAmount(amount); + BigDecimal amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs(); + payment2.setCreditLeg_amount(amount); + payment2.setDebitLeg_amount(amount); { Long accountId = liabilitiesClaimsAssets.getAccountId(); @@ -493,28 +493,28 @@ public class PaymentInstructionCreator { if (acc1 == null) { log.warn("Account not found: {}", accountId); } else { - payment2.setCreditLegAccountId(acc1.getId()); - payment2.setCreditLegAccount(acc1.getAccount()); + payment2.setCreditLeg_accountId(acc1.getId()); + payment2.setCreditLeg_account(acc1.getAccount()); } } - payment2.setCreditCsAccount(null); + payment2.setCredit_csAccount(null); { Account acc1 = selectAccount(payment2.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED); if (acc1 != null) { - payment2.setDebitLegAccountId(acc1.getId()); - payment2.setDebitLegAccount(acc1.getAccount()); + payment2.setDebitLeg_accountId(acc1.getId()); + payment2.setDebitLeg_account(acc1.getAccount()); } } - payment2.setDebitCsAccount(null); + payment2.setDebit_csAccount(null); // payment1.setCreditLegDirection(InOutDirection.out.getKey()); // payment1.setDebitLegDirection(InOutDirection.in.getKey()); - payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment2.setCreditLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); + payment2.setDebitLeg_currencyCode(liabilitiesClaimsAssets.getCurrency()); payment2.setTransactionStatus(TransactionStatus.stld.getKey()); @@ -702,7 +702,7 @@ public class PaymentInstructionCreator { if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { if (isFirstLeg) { - BigDecimal amount = safeBD(liabilitiesClaimsMoney.getLiabilitiesAmount()).subtract(bdFromLongSafe(paymentIAny.getCreditLegAmount())); + BigDecimal amount = safeBD(liabilitiesClaimsMoney.getLiabilitiesAmount()).subtract(safeBD(paymentIAny.getCreditLeg_amount())); liabilitiesClaimsMoney.setLiabilitiesAmount(amount); modified = true; } @@ -713,7 +713,7 @@ public class PaymentInstructionCreator { if (clearingCategory.contains(ClearingCategory.B)) { if (isFirstLeg) { - BigDecimal amount = safeBD(liabilitiesClaimsMoney.getClaimsAmount()).subtract(bdFromLongSafe(paymentIAny.getDebitLegAmount())); + BigDecimal amount = safeBD(liabilitiesClaimsMoney.getClaimsAmount()).subtract(safeBD(paymentIAny.getDebitLeg_amount())); liabilitiesClaimsMoney.setClaimsAmount(amount); modified = true; } @@ -730,8 +730,4 @@ public class PaymentInstructionCreator { return modified; } - private BigDecimal bdFromLongSafe(Long l) { - if (l == null) return BigDecimal.ZERO; - return new BigDecimal(l); - } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java index 3be7d7de9..f02fd0477 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java @@ -26,9 +26,9 @@ public class Sdf03Builder { sDf03.setSeg_type("U"); sDf03.setDoc_type("002"); sDf03.setDocnm_ref(paymentInstruction.getId().toString()); - sDf03.setPriority("9"); - sDf03.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); - sDf03.setC_acc_deb(paymentInstruction.getCreditLegAccount()); +// sDf03.setPriority("9"); +// sDf03.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); + sDf03.setC_acc_deb(paymentInstruction.getCreditLeg_account()); if (paymentInstruction.getSenderId().equals(Sender.One.getId())) { sDf03.setSbanknam1(paymentInstruction.getPayeeBankName()); } else { @@ -60,8 +60,8 @@ public class Sdf03Builder { } // =@00100, если ?; // =@00000, если ?. - sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); - sDf03.setC_acc_cred(paymentInstruction.getDebitLegAccount()); +// sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); + sDf03.setC_acc_cred(paymentInstruction.getDebitLeg_account()); if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { sDf03.setRbanknam1(paymentInstruction.getAddresseeBankName()); } else { @@ -75,23 +75,23 @@ public class Sdf03Builder { sDf03.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY)); } sDf03.setPay_val("RUR"); - sDf03.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null); + sDf03.setSum_deb(paymentInstruction.getDebitLeg_amount() != null ? paymentInstruction.getDebitLeg_amount().toString() : null); //37 sp_code varchar(2) Код назначения платежа String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose()); for (int i = 0; i < splitPaymentPurpose.length; i++) { String specif = splitPaymentPurpose[i]; if (i == 0) { sDf03.setSpecif_1(specif); - } else if (i == 1) { - sDf03.setSpecif_2(specif); - } else if (i == 2) { - sDf03.setSpecif_3(specif); - } else if (i == 3) { - sDf03.setSpecif_4(specif); - } else if (i == 4) { - sDf03.setSpecif_5(specif); - } else if (i == 5) { - sDf03.setSpecif_6(specif); +// } else if (i == 1) { +// sDf03.setSpecif_2(specif); +// } else if (i == 2) { +// sDf03.setSpecif_3(specif); +// } else if (i == 3) { +// sDf03.setSpecif_4(specif); +// } else if (i == 4) { +// sDf03.setSpecif_5(specif); +// } else if (i == 5) { +// sDf03.setSpecif_6(specif); } } sDf03.setGenerationTime(Instant.now()); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java index 59e5beaff..3caca1a33 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java @@ -22,78 +22,78 @@ public class Sdf11Builder { public SDf11 buildSdf11(PaymentInstruction paymentInstruction, Long generationId) { SDf11 sDf11 = new SDf11(); - sDf11.setSeg_type("U"); - sDf11.setDoc_type("002"); - sDf11.setDocnm_ref(paymentInstruction.getId().toString()); - sDf11.setPriority("9"); - sDf11.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); - sDf11.setC_acc_deb(paymentInstruction.getCreditLegAccount()); - if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { - sDf11.setSbanknam1(paymentInstruction.getAddresseeBankName()); - //(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5). - sDf11.setSbanknam2(sDf11.getSbanknam1().substring(35)); - sDf11.setSbanknam1(sDf11.getSbanknam1().substring(0, 35)); - if (sDf11.getSbanknam2().length() > 35) { - sDf11.setSbanknam3(sDf11.getSbanknam2().substring(35)); - sDf11.setSbanknam2(sDf11.getSbanknam2().substring(0, 35)); - if (sDf11.getSbanknam3().length() > 35) { - sDf11.setSbanknam4(sDf11.getSbanknam3().substring(35)); - sDf11.setSbanknam3(sDf11.getSbanknam3().substring(0, 35)); - if (sDf11.getSbanknam4().length() > 35) { - sDf11.setSbanknam5(sDf11.getSbanknam4().substring(35)); - sDf11.setSbanknam4(sDf11.getSbanknam4().substring(0, 35)); - if (sDf11.getSbanknam5().length() > 35) { - //warn: too large for all field - //sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35)); - } - } - } - } - } else { - Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); - if (company != null) { - sDf11.setSbanknam1(company.getShortName()); - } - } - // =@00100, если ?; - // =@00000, если ?. - sDf11.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); - sDf11.setC_acc_cred(paymentInstruction.getDebitLegAccount()); - if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { - sDf11.setRbanknam1(paymentInstruction.getAddresseeBankName()); - } else { - Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); - if (company != null) { - sDf11.setRbanknam1(company.getShortName()); - } - } - LocalDate paymtDt = TimeUtil.toLocalDate(paymentInstruction.getPaymentDate()); - if (paymtDt != null) { - sDf11.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY)); - } - sDf11.setPay_val("RUR"); - sDf11.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null); - //37 sp_code varchar(2) Код назначения платежа - String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose()); - for (int i = 0; i < splitPaymentPurpose.length; i++) { - String specif = splitPaymentPurpose[i]; - if (i == 0) { - sDf11.setSpecif_1(specif); - } else if (i == 1) { - sDf11.setSpecif_2(specif); - } else if (i == 2) { - sDf11.setSpecif_3(specif); - } else if (i == 3) { - sDf11.setSpecif_4(specif); - } else if (i == 4) { - sDf11.setSpecif_5(specif); - } else if (i == 5) { - sDf11.setSpecif_6(specif); - } - } - sDf11.setGenerationTime(Instant.now()); - sDf11.setGenerationId(generationId); - sDf11.setPaymentInstructionId(paymentInstruction.getId()); +// todo поменялись классы sDf11.setSeg_type("U"); +// sDf11.setDoc_type("002"); +// sDf11.setDocnm_ref(paymentInstruction.getId().toString()); +// sDf11.setPriority("9"); +// sDf11.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); +// sDf11.setC_acc_deb(paymentInstruction.getCreditLegAccount()); +// if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { +// sDf11.setSbanknam1(paymentInstruction.getAddresseeBankName()); +// //(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5). +// sDf11.setSbanknam2(sDf11.getSbanknam1().substring(35)); +// sDf11.setSbanknam1(sDf11.getSbanknam1().substring(0, 35)); +// if (sDf11.getSbanknam2().length() > 35) { +// sDf11.setSbanknam3(sDf11.getSbanknam2().substring(35)); +// sDf11.setSbanknam2(sDf11.getSbanknam2().substring(0, 35)); +// if (sDf11.getSbanknam3().length() > 35) { +// sDf11.setSbanknam4(sDf11.getSbanknam3().substring(35)); +// sDf11.setSbanknam3(sDf11.getSbanknam3().substring(0, 35)); +// if (sDf11.getSbanknam4().length() > 35) { +// sDf11.setSbanknam5(sDf11.getSbanknam4().substring(35)); +// sDf11.setSbanknam4(sDf11.getSbanknam4().substring(0, 35)); +// if (sDf11.getSbanknam5().length() > 35) { +// //warn: too large for all field +// //sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35)); +// } +// } +// } +// } +// } else { +// Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); +// if (company != null) { +// sDf11.setSbanknam1(company.getShortName()); +// } +// } +// // =@00100, если ?; +// // =@00000, если ?. +// sDf11.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); +// sDf11.setC_acc_cred(paymentInstruction.getDebitLegAccount()); +// if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { +// sDf11.setRbanknam1(paymentInstruction.getAddresseeBankName()); +// } else { +// Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); +// if (company != null) { +// sDf11.setRbanknam1(company.getShortName()); +// } +// } +// LocalDate paymtDt = TimeUtil.toLocalDate(paymentInstruction.getPaymentDate()); +// if (paymtDt != null) { +// sDf11.setPay_date(paymtDt.format(PROPERTY_DATE_FORMATTER_YY)); +// } +// sDf11.setPay_val("RUR"); +// sDf11.setSum_deb(paymentInstruction.getDebitLegAmount() != null ? paymentInstruction.getDebitLegAmount().toString() : null); +// //37 sp_code varchar(2) Код назначения платежа +// String[] splitPaymentPurpose = SpecifUtil.splitPaymentPurpose(paymentInstruction.getPaymentPurpose()); +// for (int i = 0; i < splitPaymentPurpose.length; i++) { +// String specif = splitPaymentPurpose[i]; +// if (i == 0) { +// sDf11.setSpecif_1(specif); +// } else if (i == 1) { +// sDf11.setSpecif_2(specif); +// } else if (i == 2) { +// sDf11.setSpecif_3(specif); +// } else if (i == 3) { +// sDf11.setSpecif_4(specif); +// } else if (i == 4) { +// sDf11.setSpecif_5(specif); +// } else if (i == 5) { +// sDf11.setSpecif_6(specif); +// } +// } +// sDf11.setGenerationTime(Instant.now()); +// sDf11.setGenerationId(generationId); +// sDf11.setPaymentInstructionId(paymentInstruction.getId()); return sDf11; } } diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java index 1fa43982d..9c5ad9ae1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/order/PaymentInstructionSorter.java @@ -18,6 +18,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IMessageResolver; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -59,10 +60,10 @@ public class PaymentInstructionSorter { List aList = new ArrayList<>(); List bList = new ArrayList<>(); for (PaymentInstruction payment : payments) { - Account creditLegAcc = accImdg.getSingleObjectByID(payment.getCreditLegAccountId()); - Account debitLegAcc = accImdg.getSingleObjectByID(payment.getDebitLegAccountId()); + Account creditLegAcc = accImdg.getSingleObjectByID(payment.getCreditLeg_accountId()); + Account debitLegAcc = accImdg.getSingleObjectByID(payment.getDebitLeg_accountId()); if (creditLegAcc == null || debitLegAcc == null) { - String message = String.format("cannot find account CreditLegAccountId/DebitLegAccountId %d/%d", payment.getCreditLegAccountId(), payment.getDebitLegAccountId()); + String message = String.format("cannot find account CreditLegAccountId/DebitLegAccountId %d/%d", payment.getCreditLeg_accountId(), payment.getDebitLeg_accountId()); log.error("generationId={}, senderId={} payment.id={} {}", generationId, senderId, payment.getId(), message); continue; @@ -80,18 +81,18 @@ public class PaymentInstructionSorter { //continue; } } - Function, Long> creditAmountSum = paymentInstructions -> paymentInstructions + Function, BigDecimal> creditAmountSum = paymentInstructions -> paymentInstructions .stream() - .map(PaymentInstruction::getCreditLegAmount) - .reduce(0L, Long::sum); - Function, Long> debitAmountSum = paymentInstructions -> paymentInstructions + .map(PaymentInstruction::getCreditLeg_amount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + Function, BigDecimal> debitAmountSum = paymentInstructions -> paymentInstructions .stream() - .map(PaymentInstruction::getDebitLegAmount) - .reduce(0L, Long::sum); - Long fromClearingToBankCreditAmount = creditAmountSum.apply(aList); - Long fromBankToClearingCreditAmount = creditAmountSum.apply(bList); - Long fromClearingToBankDebitAmount = debitAmountSum.apply(aList); - Long fromBankToClearingDebitAmount = debitAmountSum.apply(bList); + .map(PaymentInstruction::getDebitLeg_amount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal fromClearingToBankCreditAmount = creditAmountSum.apply(aList); + BigDecimal fromBankToClearingCreditAmount = creditAmountSum.apply(bList); + BigDecimal fromClearingToBankDebitAmount = debitAmountSum.apply(aList); + BigDecimal fromBankToClearingDebitAmount = debitAmountSum.apply(bList); if (!fromClearingToBankCreditAmount.equals(fromBankToClearingCreditAmount)) { error = new EnumMessage(ClearingError.CompanyCreditCheck, senderId.toString()); } else if (!fromClearingToBankDebitAmount.equals(fromBankToClearingDebitAmount)) { diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF03_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF03_Converter.java index c6e8c22f0..9505abaf5 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF03_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF03_Converter.java @@ -17,15 +17,15 @@ public class S_DF03_Converter extends DFConverter { values.add(typeMatch(entity.getDoc_type())); values.add(typeMatch(entity.getDocnm_ref())); values.add(typeMatch(entity.getDocnmprev())); - values.add(typeMatch(entity.getPriority())); - values.add(typeMatch(entity.getSbankcode())); +// values.add(typeMatch(entity.getPriority())); +// values.add(typeMatch(entity.getSbankcode())); values.add(typeMatch(entity.getC_acc_deb())); values.add(typeMatch(entity.getSbanknam1())); values.add(typeMatch(entity.getSbanknam2())); values.add(typeMatch(entity.getSbanknam3())); values.add(typeMatch(entity.getSbanknam4())); values.add(typeMatch(entity.getSbanknam5())); - values.add(typeMatch(entity.getRbankcode())); +// values.add(typeMatch(entity.getRbankcode())); values.add(typeMatch(entity.getC_acc_cred())); values.add(typeMatch(entity.getRbanknam1())); values.add(typeMatch(entity.getRbanknam2())); @@ -33,31 +33,31 @@ public class S_DF03_Converter extends DFConverter { values.add(typeMatch(entity.getRbanknam4())); values.add(typeMatch(entity.getRbanknam5())); values.add(typeMatch(entity.getPay_date())); - values.add(typeMatch(entity.getExt_date())); +// values.add(typeMatch(entity.getExt_date())); values.add(typeMatch(entity.getPay_val())); values.add(typeMatch(entity.getSum_deb())); - values.add(typeMatch(entity.getSclientn1())); - values.add(typeMatch(entity.getSclientn2())); - values.add(typeMatch(entity.getSclientn3())); - values.add(typeMatch(entity.getSclientn4())); - values.add(typeMatch(entity.getSc_code())); - values.add(typeMatch(entity.getAcc_deb())); - values.add(typeMatch(entity.getRclientn1())); - values.add(typeMatch(entity.getRclientn2())); - values.add(typeMatch(entity.getRclientn3())); - values.add(typeMatch(entity.getRclientn4())); - values.add(typeMatch(entity.getAcc_kr_1())); - values.add(typeMatch(entity.getAcc_kr_2())); - values.add(typeMatch(entity.getSp_code())); +// values.add(typeMatch(entity.getSclientn1())); +// values.add(typeMatch(entity.getSclientn2())); +// values.add(typeMatch(entity.getSclientn3())); +// values.add(typeMatch(entity.getSclientn4())); +// values.add(typeMatch(entity.getSc_code())); +// values.add(typeMatch(entity.getAcc_deb())); +// values.add(typeMatch(entity.getRclientn1())); +// values.add(typeMatch(entity.getRclientn2())); +// values.add(typeMatch(entity.getRclientn3())); +// values.add(typeMatch(entity.getRclientn4())); +// values.add(typeMatch(entity.getAcc_kr_1())); +// values.add(typeMatch(entity.getAcc_kr_2())); +// values.add(typeMatch(entity.getSp_code())); values.add(typeMatch(entity.getSpecif_1())); - values.add(typeMatch(entity.getSpecif_2())); - values.add(typeMatch(entity.getSpecif_3())); - values.add(typeMatch(entity.getSpecif_4())); - values.add(typeMatch(entity.getSpecif_5())); - values.add(typeMatch(entity.getSpecif_6())); - values.add(typeMatch(entity.getSend_type())); - values.add(typeMatch(entity.getServdate())); - values.add(typeMatch(entity.getDoc_result())); +// values.add(typeMatch(entity.getSpecif_2())); +// values.add(typeMatch(entity.getSpecif_3())); +// values.add(typeMatch(entity.getSpecif_4())); +// values.add(typeMatch(entity.getSpecif_5())); +// values.add(typeMatch(entity.getSpecif_6())); +// values.add(typeMatch(entity.getSend_type())); +// values.add(typeMatch(entity.getServdate())); +// values.add(typeMatch(entity.getDoc_result())); values.add(typeMatch(entity.getImp_result())); return values.toArray(Object[]::new); } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java index 516c4736a..86c92ec10 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF08_Converter.java @@ -14,8 +14,8 @@ public class S_DF08_Converter extends DFConverter { @Override public Object[] toObjectArray(SDf08 entity) { List values = new LinkedList<>(); - values.add(convertStrToLong(entity.getNumber())); - values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME +// values.add(convertStrToLong(entity.getNumber())); +// values.add(typeMatch(convertStrToLong(entity.getDatetime()))); // UNIX TIME return values.toArray(Object[]::new); } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF10_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF10_Converter.java index ce0204280..c4ae987de 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF10_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF10_Converter.java @@ -13,13 +13,13 @@ public class S_DF10_Converter extends DFConverter { @Override public Object[] toObjectArray(SDf10 entity) { List values = new LinkedList<>(); - values.add(typeMatch(entity.getAccount())); - values.add(typeMatch(entity.getSum())); - values.add(typeMatch(entity.getMarket())); - values.add(typeMatch(entity.getType())); - values.add(typeMatch(entity.getNumber())); - values.add(typeMatch(entity.getInn())); - values.add(typeMatch(entity.getResult())); +// values.add(typeMatch(entity.getAccount())); +// values.add(typeMatch(entity.getSum())); +// values.add(typeMatch(entity.getMarket())); +// values.add(typeMatch(entity.getType())); +// values.add(typeMatch(entity.getNumber())); +// values.add(typeMatch(entity.getInn())); +// values.add(typeMatch(entity.getResult())); return values.toArray(Object[]::new); } diff --git a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF11_Converter.java b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF11_Converter.java index 92a76193b..8325b4d13 100644 --- a/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF11_Converter.java +++ b/clearing-parent/dbf-exporter/src/main/java/ru/spcex/clearing/dbf/exporter/services/converters/S_DF11_Converter.java @@ -13,51 +13,51 @@ public class S_DF11_Converter extends DFConverter { @Override public Object[] toObjectArray(SDf11 entity) { List values = new LinkedList<>(); - values.add(typeMatch(entity.getSeg_type())); - values.add(typeMatch(entity.getDoc_type())); - values.add(typeMatch(entity.getDocnm_ref())); - values.add(typeMatch(entity.getDocnmprev())); - values.add(typeMatch(entity.getPriority())); - values.add(typeMatch(entity.getSbankcode())); - values.add(typeMatch(entity.getC_acc_deb())); - values.add(typeMatch(entity.getSbanknam1())); - values.add(typeMatch(entity.getSbanknam2())); - values.add(typeMatch(entity.getSbanknam3())); - values.add(typeMatch(entity.getSbanknam4())); - values.add(typeMatch(entity.getSbanknam5())); - values.add(typeMatch(entity.getRbankcode())); - values.add(typeMatch(entity.getC_acc_cred())); - values.add(typeMatch(entity.getRbanknam1())); - values.add(typeMatch(entity.getRbanknam2())); - values.add(typeMatch(entity.getRbanknam3())); - values.add(typeMatch(entity.getRbanknam4())); - values.add(typeMatch(entity.getRbanknam5())); - values.add(typeMatch(entity.getPay_date())); - values.add(typeMatch(entity.getExt_date())); - values.add(typeMatch(entity.getPay_val())); - values.add(typeMatch(entity.getSum_deb())); - values.add(typeMatch(entity.getSclientn1())); - values.add(typeMatch(entity.getSclientn2())); - values.add(typeMatch(entity.getSclientn3())); - values.add(typeMatch(entity.getSclientn4())); - values.add(typeMatch(entity.getSc_code())); - values.add(typeMatch(entity.getAcc_deb())); - values.add(typeMatch(entity.getRclientn1())); - values.add(typeMatch(entity.getRclientn2())); - values.add(typeMatch(entity.getRclientn3())); - values.add(typeMatch(entity.getRclientn4())); - values.add(typeMatch(entity.getAcc_kr_1())); - values.add(typeMatch(entity.getAcc_kr_2())); - values.add(typeMatch(entity.getSp_code())); - values.add(typeMatch(entity.getSpecif_1())); - values.add(typeMatch(entity.getSpecif_2())); - values.add(typeMatch(entity.getSpecif_3())); - values.add(typeMatch(entity.getSpecif_4())); - values.add(typeMatch(entity.getSpecif_5())); - values.add(typeMatch(entity.getSpecif_6())); - values.add(typeMatch(entity.getSend_type())); - values.add(typeMatch(entity.getServdate())); - values.add(typeMatch(entity.getDoc_result())); +// values.add(typeMatch(entity.getSeg_type())); +// values.add(typeMatch(entity.getDoc_type())); +// values.add(typeMatch(entity.getDocnm_ref())); +// values.add(typeMatch(entity.getDocnmprev())); +// values.add(typeMatch(entity.getPriority())); +// values.add(typeMatch(entity.getSbankcode())); +// values.add(typeMatch(entity.getC_acc_deb())); +// values.add(typeMatch(entity.getSbanknam1())); +// values.add(typeMatch(entity.getSbanknam2())); +// values.add(typeMatch(entity.getSbanknam3())); +// values.add(typeMatch(entity.getSbanknam4())); +// values.add(typeMatch(entity.getSbanknam5())); +// values.add(typeMatch(entity.getRbankcode())); +// values.add(typeMatch(entity.getC_acc_cred())); +// values.add(typeMatch(entity.getRbanknam1())); +// values.add(typeMatch(entity.getRbanknam2())); +// values.add(typeMatch(entity.getRbanknam3())); +// values.add(typeMatch(entity.getRbanknam4())); +// values.add(typeMatch(entity.getRbanknam5())); +// values.add(typeMatch(entity.getPay_date())); +// values.add(typeMatch(entity.getExt_date())); +// values.add(typeMatch(entity.getPay_val())); +// values.add(typeMatch(entity.getSum_deb())); +// values.add(typeMatch(entity.getSclientn1())); +// values.add(typeMatch(entity.getSclientn2())); +// values.add(typeMatch(entity.getSclientn3())); +// values.add(typeMatch(entity.getSclientn4())); +// values.add(typeMatch(entity.getSc_code())); +// values.add(typeMatch(entity.getAcc_deb())); +// values.add(typeMatch(entity.getRclientn1())); +// values.add(typeMatch(entity.getRclientn2())); +// values.add(typeMatch(entity.getRclientn3())); +// values.add(typeMatch(entity.getRclientn4())); +// values.add(typeMatch(entity.getAcc_kr_1())); +// values.add(typeMatch(entity.getAcc_kr_2())); +// values.add(typeMatch(entity.getSp_code())); +// values.add(typeMatch(entity.getSpecif_1())); +// values.add(typeMatch(entity.getSpecif_2())); +// values.add(typeMatch(entity.getSpecif_3())); +// values.add(typeMatch(entity.getSpecif_4())); +// values.add(typeMatch(entity.getSpecif_5())); +// values.add(typeMatch(entity.getSpecif_6())); +// values.add(typeMatch(entity.getSend_type())); +// values.add(typeMatch(entity.getServdate())); +// values.add(typeMatch(entity.getDoc_result())); return values.toArray(Object[]::new); } diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf04Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf04Table.java index 47022da4d..60a2d24c0 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf04Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf04Table.java @@ -23,15 +23,15 @@ public class SDf04Table extends AbstractTable { result.setDoc_type((String) entity[1]); result.setDocnm_ref((String) entity[2]); result.setDocnmprev((String) entity[3]); - result.setPriority((String) entity[4]); - result.setSbankcode((String) entity[5]); +// result.setPriority((String) entity[4]); +// result.setSbankcode((String) entity[5]); result.setC_acc_deb((String) entity[6]); result.setSbanknam1((String) entity[7]); result.setSbanknam2((String) entity[8]); result.setSbanknam3((String) entity[9]); result.setSbanknam4((String) entity[10]); result.setSbanknam5((String) entity[11]); - result.setRbankcode((String) entity[12]); +// result.setRbankcode((String) entity[12]); result.setC_acc_cred((String) entity[13]); result.setRbanknam1((String) entity[14]); result.setRbanknam2((String) entity[15]); @@ -39,33 +39,33 @@ public class SDf04Table extends AbstractTable { result.setRbanknam4((String) entity[17]); result.setRbanknam5((String) entity[18]); result.setPay_date((String) entity[19]); - result.setExt_date((String) entity[20]); +// result.setExt_date((String) entity[20]); result.setPay_val((String) entity[21]); result.setSum_deb((String) entity[22]); - result.setSclientn1((String) entity[23]); - result.setSclientn2((String) entity[24]); - result.setSclientn3((String) entity[25]); - result.setSclientn4((String) entity[26]); - result.setSc_code((String) entity[27]); - result.setAcc_deb((String) entity[28]); - result.setRclientn1((String) entity[29]); - result.setRclientn2((String) entity[30]); - result.setRclientn3((String) entity[31]); - result.setRclientn4((String) entity[32]); - result.setAcc_kr_1((String) entity[33]); - result.setAcc_kr_2((String) entity[34]); - result.setSp_code((String) entity[35]); +// result.setSclientn1((String) entity[23]); +// result.setSclientn2((String) entity[24]); +// result.setSclientn3((String) entity[25]); +// result.setSclientn4((String) entity[26]); +// result.setSc_code((String) entity[27]); +// result.setAcc_deb((String) entity[28]); +// result.setRclientn1((String) entity[29]); +// result.setRclientn2((String) entity[30]); +// result.setRclientn3((String) entity[31]); +// result.setRclientn4((String) entity[32]); +// result.setAcc_kr_1((String) entity[33]); +// result.setAcc_kr_2((String) entity[34]); +// result.setSp_code((String) entity[35]); result.setSpecif_1((String) entity[36]); - result.setSpecif_2((String) entity[37]); - result.setSpecif_3((String) entity[38]); - result.setSpecif_4((String) entity[39]); - result.setSpecif_5((String) entity[40]); - result.setSpecif_6((String) entity[41]); - result.setSend_type((String) entity[42]); - result.setServdate((String) entity[43]); - result.setDoc_result((String) entity[44]); +// result.setSpecif_2((String) entity[37]); +// result.setSpecif_3((String) entity[38]); +// result.setSpecif_4((String) entity[39]); +// result.setSpecif_5((String) entity[40]); +// result.setSpecif_6((String) entity[41]); +// result.setSend_type((String) entity[42]); +// result.setServdate((String) entity[43]); +// result.setDoc_result((String) entity[44]); result.setImp_result((String) entity[45]); - result.setFile_name(filename); + result.setFileName(filename); result.setGenerationTime(Instant.now()); result.setGenerationId(fileId); return result; diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java index bb87117bb..f372c1e67 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf09Table.java @@ -21,13 +21,13 @@ public class SDf09Table extends AbstractTable { public SDf09 getEntity(Object[] entity) { SDf09 result = new SDf09(); - result.setAccount((String) entity[0]); - result.setSum((BigDecimal) entity[1]); - result.setMarket((String) entity[2]); - result.setType((String) entity[3]); - result.setNumber((BigDecimal) entity[4]); - result.setInn((BigDecimal) entity[5]); - result.setFileName(filename); +// result.setAccount((String) entity[0]); +// result.setSum((BigDecimal) entity[1]); +// result.setMarket((String) entity[2]); +// result.setType((String) entity[3]); +// result.setNumber((BigDecimal) entity[4]); +// result.setInn((BigDecimal) entity[5]); +// result.setFileName(filename); result.setGenerationTime(Instant.now()); result.setGenerationId(fileId); return result; diff --git a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java index ed4ea3620..9aab7d0b3 100644 --- a/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java +++ b/clearing-parent/dbf-importer/src/main/java/ru/spcex/clearing/dbf/importer/logic/data/tables/SDf12Table.java @@ -20,11 +20,11 @@ public class SDf12Table extends AbstractTable { @Override public SDf12 getEntity(Object[] entity) { SDf12 result = new SDf12(); - result.setAccount((String) entity[0]); - result.setDeal((String) entity[1]); +// result.setAccount((String) entity[0]); +// result.setDeal((String) entity[1]); BigDecimal status = (BigDecimal) entity[2]; - result.setStatus(status != null ? status.longValue() : null); - result.setFileName(filename); +// result.setStatus(status != null ? status.longValue() : null); +// result.setFileName(filename); result.setGenerationTime(Instant.now()); result.setGenerationId(fileId); return result; diff --git a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ContractRegisterServiceTest.java b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ContractRegisterServiceTest.java index 3609a92e0..ddf2f397c 100644 --- a/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ContractRegisterServiceTest.java +++ b/clearing-parent/registry-service/src/test/java/ru/spcex/clearing/registry/service/ContractRegisterServiceTest.java @@ -71,7 +71,7 @@ class ContractRegisterServiceTest { contractRegisterNewRequest.setName("name"); contractRegisterNewRequest.setNumber("number"); contractRegisterNewRequest.setIssueDate(LocalDate.now()); - contractRegisterNewRequest.setCompanyFullName(1651656L); + contractRegisterNewRequest.setCompanyFullName("CMP FN"); contractRegisterNewRequest.setCompanyId(companyId); contractRegisterNewRequest.setDocumentType("documentType"); contractRegisterNewRequest.setIssuePlace("issuePlace"); diff --git a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java index 367d11525..c49781d95 100644 --- a/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java +++ b/clearing-parent/reports-service/src/main/java/ru/spcex/clearing/reports/services/collector/ReportBR_0420314_P2_Collector.java @@ -17,6 +17,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.imdg.api.predicate.ImdgPredicate; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; import java.util.Collection; @@ -94,16 +95,16 @@ public class ReportBR_0420314_P2_Collector extends ReportWithPeriodCollector Date: Thu, 11 May 2023 15:08:35 +0300 Subject: [PATCH 36/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D1=8B.=20=D0=92=D1=81=D1=91=20=D0=B3?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=D0=B2=D0=BE,=20=D0=BD=D0=BE=20=D0=BD=D0=B5?= =?UTF-8?q?=20=D1=82=D1=83=D1=82=20=D1=82=D0=BE=20=D0=B1=D1=8B=D0=BB=D0=BE?= =?UTF-8?q?...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../structure/RunnableMapNamesForTesting.java | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java index 11c92a279..55572a080 100644 --- a/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java +++ b/clearing-parent/imdg/src/test/java/ru/spcex/clearing/imdg/structure/RunnableMapNamesForTesting.java @@ -263,16 +263,20 @@ public class RunnableMapNamesForTesting { new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DepoBalanceRegister, DepoBalanceRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setQuantity", new Object[]{BigDecimal.valueOf(73.32)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_DepoPaymentInstructionRegister, DepoPaymentInstructionRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setQuantity", new Object[]{BigDecimal.valueOf(73.32)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExcludeLiabilitiesRegister, ExcludeLiabilitiesRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_ExecutionRegister, ExecutionRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), - new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); + new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), + new SettingOperation("setQuantity", new Object[]{BigDecimal.valueOf(73.32)}), + new SettingOperation("setAmount", new Object[]{BigDecimal.valueOf(45.32)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_LiabilitiesRegister, LiabilitiesRegister.class, new SettingOperation("setCreated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}), new SettingOperation("setUpdated", new Class[]{Instant.class}, new Object[]{generatingRandomInstant(true)}))); @@ -294,7 +298,6 @@ public class RunnableMapNamesForTesting { checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_InDocumentJournal, InDocumentJournal.class, new SettingOperation("setAmount", new Class[]{BigDecimal.class}, new Object[]{generatingRandomBigDecimal(2)}))); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_InformationAccount, InformationAccount.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_KeyRate, KeyRate.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_MoneyMarketSecurity, MoneyMarketSecurity.class, usingIgnoringFieldsComparator( // todo поправить тест для ASecurityHistoryMapStore "created", "updated", @@ -360,10 +363,22 @@ public class RunnableMapNamesForTesting { checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf51, SDf51.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf52, SDf52.class)); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf53, SDf53.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf54, SDf54.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf55, SDf55.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf54, SDf54.class, + new SettingOperation("setSeg_type", new Object[]{"S"}), + new SettingOperation("setDoc_result", new Object[]{"DR"}), + new SettingOperation("setOp_type", new Object[]{"OT"}), + new SettingOperation("setOp_order", new Object[]{"A"}) + )); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf55, SDf55.class, + new SettingOperation("setSeg_type", new Object[]{"S"}), + new SettingOperation("setDoc_result", new Object[]{"DR"}), + new SettingOperation("setOp_type", new Object[]{"OT"}), + new SettingOperation("setOp_order", new Object[]{"A"}) + )); checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf56, SDf56.class)); - checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf57, SDf57.class)); + checkerBusinessMapStores.add(new CheckerBusinessMapStore<>(IMDGDistributedNames.Map_SDf57, SDf57.class, + new SettingOperation("setOp_type", new Object[]{"OT"}) + )); } } From d6e31a84e5fb0d3889210213ca9adc5e8a7f6bb3 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 11 May 2023 17:06:30 +0300 Subject: [PATCH 37/60] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-293?= =?UTF-8?q?=20meta=204:=20=D0=B8=20=D1=82=D1=83=D1=82=20=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=B8=D0=BB=D0=B8=20=D0=BC=D0=B5=D1=82=D1=83=204?= =?UTF-8?q?=20=D0=BD=D0=B5=D0=BC=D0=BD=D0=BE=D0=B3=D0=BE.=20=D0=A2=D0=B5?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D1=8C=20=D1=83=D0=B6=20=D1=82=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/meta/data.xml | 1086 ++--- .../src/main/resources/meta/meta.xml | 4126 +++++++++-------- .../classes/statics/data/misc/Market.java | 9 + .../classes/statics/data/misc/STrades.java | 3 +- .../statics/data/registry/Registry.java | 218 +- .../statics/data/scheduler/Planner.java | 54 +- .../data/scheduler/PlannerAllToday.java | 86 +- .../data/scheduler/PlannerTemplate.java | 39 +- .../db-scripts/src/main/resources/db/DDL.sql | 44 +- .../businessevent/MarketHistoryMapStore.java | 3 +- .../RegistryHistoryMapStore.java | 13 +- .../imdg/businessobject/MarketMapStore.java | 15 +- .../imdg/businessobject/PlannerMapStore.java | 17 +- .../PlannerTemplateMapStore.java | 27 +- .../imdg/businessobject/RegistryMapStore.java | 16 +- .../imdg/object/PlannerAllTodayMapStore.java | 12 +- .../clearing/imdg/object/STradesMapStore.java | 21 +- 17 files changed, 2953 insertions(+), 2836 deletions(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/data.xml b/clearing-parent/backend-api/src/main/resources/meta/data.xml index a1bed7620..6c64fd383 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/data.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml @@ -1,544 +1,544 @@ - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index a8d7dc20a..096bf86a6 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,2056 +1,2072 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -