From 7b7baf52d3c502f464522e2550c809eddf1e9943 Mon Sep 17 00:00:00 2001 From: aalehin Date: Wed, 31 May 2023 18:51:03 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/CLS-280 --- update --- .../AdmittedLiabilitiesRegisterService.java | 32 +++++++++++++------ .../CoveredLiabilitiesRegisterService.java | 25 +++++++++------ .../service/DepoBalanceRegisterService.java | 4 +++ ...DepoPaymentInstructionRegisterService.java | 5 ++- .../ExcludeLiabilitiesRegisterService.java | 19 ++++++++--- .../service/LiabilitiesRegisterService.java | 11 +++++-- .../service/MoneyBalanceRegisterService.java | 24 ++++++++++++-- .../platform/enumeration/RegistryStatus.java | 1 + 8 files changed, 92 insertions(+), 29 deletions(-) diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java index 411c7b6bd..18460747a 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/AdmittedLiabilitiesRegisterService.java @@ -15,11 +15,9 @@ 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.AdmittedLiabilitiesRegisterNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; -import ru.spcex.platform.enumeration.RegistryCapacity; -import ru.spcex.platform.enumeration.RegistryCode; -import ru.spcex.platform.enumeration.RegistryDesignation; -import ru.spcex.platform.enumeration.RegistryInstrumentType; +import ru.spcex.platform.enumeration.*; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -27,6 +25,9 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; +import static ru.spcex.platform.enumeration.Task.createRegistry_ADLR; +import static ru.spcex.platform.enumeration.Task.createRegistry_GBRR; + @Service public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -52,14 +53,20 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements callback(AdmittedLiabilitiesRegisterNewRequest.class) .setConsumer(this::admittedLiabilitiesRegisterNew) .forDestination(Consts.REGISTRY_ADMITTED_LIABILITIES_REGISTER_NEW, callbacks::put); + callback(LauncherCommandRequest.class) + .setConsumer(this::admittedLiabilitiesRegisterNew) + .forDestination(createRegistry_ADLR.topic(), callbacks::put); init(); } - - public void admittedLiabilitiesRegisterNew(BaseRequest userRequest) { + public void admittedLiabilitiesRegisterNew(BaseRequest userRequest) { log.debug("AdmittedLiabilitiesRegisterNewRequest received from {}", Consts.REGISTRY_ADMITTED_LIABILITIES_REGISTER_NEW); String sqlConditionForRegistry = getSqlForRegistries(); Collection registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry); + if (registries == null) { + log.debug("No registry with such conditions {}", sqlConditionForRegistry); + return; + } registries.forEach((registry -> { Collection admittedLiabilitiesRegistersBySessionIdAndCompanyId = admittedLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); if (admittedLiabilitiesRegistersBySessionIdAndCompanyId == null || admittedLiabilitiesRegistersBySessionIdAndCompanyId.isEmpty()) { @@ -96,13 +103,18 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements private String getSqlForRegistries() { return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + - "registryCapacity = '%s' and " + - "registryCode = '%s'" + "registryUnit = '%s' and " + + "status in ('%s','%s','%s','%s','%s')" , RegistryDesignation.O.getKey(), RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(), - RegistryCapacity.P.getKey(), - RegistryCode.T.getKey()); + RegistryCode.T.getKey(), + RegistryStatus.OK.getKey(), + RegistryStatus.NACK.getKey(), + RegistryStatus.UNCV.getKey(), + RegistryStatus.NACC.getKey(), + RegistryStatus.FAIL.getKey() + ); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java index 040844a35..a7d2f1f63 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/CoveredLiabilitiesRegisterService.java @@ -15,6 +15,7 @@ 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.CoveredLiabilitiesRegisterNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.platform.enumeration.*; import ru.spcex.platform.imdg.api.Imdg; @@ -24,6 +25,9 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; +import static ru.spcex.platform.enumeration.Task.createRegistry_ADLR; +import static ru.spcex.platform.enumeration.Task.createRegistry_CDLR; + @Service public class CoveredLiabilitiesRegisterService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -49,15 +53,21 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements callback(CoveredLiabilitiesRegisterNewRequest.class) .setConsumer(this::coveredLiabilitiesRegisterNew) .forDestination(Consts.REGISTRY_COVERED_LIABILITIES_REGISTER_NEW, callbacks::put); + callback(LauncherCommandRequest.class) + .setConsumer(this::coveredLiabilitiesRegisterNew) + .forDestination(createRegistry_CDLR.topic(), callbacks::put); init(); } - public void coveredLiabilitiesRegisterNew(BaseRequest userRequest) { - log.debug("CoveredLiabilitiesRegisterNewRequest received from {}", Consts.REGISTRY_COVERED_LIABILITIES_REGISTER_NEW); + public void coveredLiabilitiesRegisterNew(BaseRequest userRequest) { + log.debug("CoveredLiabilitiesRegisterNew received"); String sqlConditionForRegistry = getSqlForRegistries(); Collection registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry); - //checking for duplicates + if (registries == null) { + log.debug("No registry with such conditions {}", sqlConditionForRegistry); + return; + } registries.forEach((registry -> { Collection coveredLiabilitiesRegisterBySessionIdAndCompanyId = coveredLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); if (coveredLiabilitiesRegisterBySessionIdAndCompanyId == null || coveredLiabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) { @@ -94,15 +104,12 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements private String getSqlForRegistries() { return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + - "registryCapacity = '%s' and " + - "registryCode = '%s' and" + - "registryStatus in ('%s', '%s')", + "registryUnit = '%s' and" + + "registryStatus = '%s'", RegistryDesignation.O.getKey(), RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(), - RegistryCapacity.P.getKey(), RegistryCode.T.getKey(), - RegistryStatus.OK.getKey(), - RegistryStatus.PROC.getKey()); + RegistryStatus.OK.getKey()); } } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java index 5e5bf15c2..ba0556bf0 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoBalanceRegisterService.java @@ -52,6 +52,10 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial String sqlForRegistries = getSqlForRegistries(); Collection registries = registryMap.getCollectionObjectsBySQL(sqlForRegistries); log.trace("Started searching depoBalanceRegister in register by companyId, sessionId..."); + if (registries == null) { + log.debug("No registry with such conditions {}", sqlForRegistries); + return; + } registries.forEach((registry -> { Collection depoBalanceRegisterBySessionIdAndCompanyId = depoBalanceRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); if (depoBalanceRegisterBySessionIdAndCompanyId == null || depoBalanceRegisterBySessionIdAndCompanyId.isEmpty()) { diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java index 08091501a..6e03d9b4a 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/DepoPaymentInstructionRegisterService.java @@ -59,7 +59,10 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme public void depoPaymentInstructionRegisterNew(BaseRequest userRequest) { log.debug("LauncherCommandRequest received from {}", createRegistry_GORR.topic()); Collection actualSessions = sessionMap.getCollectionObjectsByFieldValues(Map.of("section", "FOND")); - + if (actualSessions == null) { + log.debug("No Session with such conditions section = FOND"); + return; + } for (Session session : actualSessions) { Collection paymentInstructionBySessionId = paymentInstructionMap.getCollectionObjectsByFieldValues(Map.of("sessionId", session.getId())); diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java index d32f5b9ca..05ded367e 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/ExcludeLiabilitiesRegisterService.java @@ -15,6 +15,7 @@ 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.ExcludeLiabilitiesRegisterNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.platform.enumeration.*; import ru.spcex.platform.imdg.api.Imdg; @@ -26,6 +27,9 @@ import java.time.LocalDate; import java.util.Collection; import java.util.Map; +import static ru.spcex.platform.enumeration.Task.createRegistry_EXLR; +import static ru.spcex.platform.enumeration.Task.createRegistry_GRRT; + @Service public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -53,15 +57,22 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements callback(ExcludeLiabilitiesRegisterNewRequest.class) .setConsumer(this::excludeLiabilitiesRegisterNew) .forDestination(Consts.REGISTRY_EXCLUDE_LIABILITIES_REGISTER_NEW, callbacks::put); + callback(LauncherCommandRequest.class) + .setConsumer(this::excludeLiabilitiesRegisterNew) + .forDestination(createRegistry_EXLR.topic(), callbacks::put); init(); } - public void excludeLiabilitiesRegisterNew(BaseRequest userRequest) { - log.debug("ExcludeLiabilitiesRegisterNewRequest received from {}", Consts.REGISTRY_EXCLUDE_LIABILITIES_REGISTER_NEW); + public void excludeLiabilitiesRegisterNew(BaseRequest userRequest) { + log.debug("ExcludeLiabilitiesRegisterNew received"); String sqlForRegistries = getSqlForRegistries(); Collection registries = registryMap.getCollectionObjectsBySQL(sqlForRegistries); - registries.forEach((registry -> { + if (registries == null) { + log.debug("No registry with such conditions {}", sqlForRegistries); + return; + } + registries.forEach((registry -> { Collection excludeLiabilitiesRegisterBySessionIdAndCompanyId = excludeLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); if (excludeLiabilitiesRegisterBySessionIdAndCompanyId == null || excludeLiabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) { insertExcludeLiabilitiesRegister(registry); @@ -102,7 +113,7 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + "registryCapacity = '%s' and " + - "registryCode = '%s' and " + + "registryUnit = '%s' and " + "registryStatus = '%s'" , RegistryDesignation.O.getKey(), diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java index 7d56779e7..764450b39 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/LiabilitiesRegisterService.java @@ -16,6 +16,7 @@ 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.LiabilitiesRegisterNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.platform.enumeration.RegistryCapacity; import ru.spcex.platform.enumeration.RegistryCode; @@ -29,6 +30,9 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; +import static ru.spcex.platform.enumeration.Task.createRegistry_EXLR; +import static ru.spcex.platform.enumeration.Task.createRegistry_LBSR; + @Service public class LiabilitiesRegisterService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -56,11 +60,14 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial callback(LiabilitiesRegisterNewRequest.class) .setConsumer(this::liabilitiesRegisterNew) .forDestination(Consts.REGISTRY_LIABILITIES_REGISTER_NEW, callbacks::put); + callback(LauncherCommandRequest.class) + .setConsumer(this::liabilitiesRegisterNew) + .forDestination(createRegistry_LBSR.topic(), callbacks::put); init(); } - public void liabilitiesRegisterNew(BaseRequest userRequest) { + public void liabilitiesRegisterNew(BaseRequest userRequest) { log.debug("LiabilitiesRegisterNewRequest received from {}", Consts.REGISTRY_LIABILITIES_REGISTER_NEW); String sqlConditionForRegistry = getSqlForRegistries(); Collection registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry); @@ -118,7 +125,7 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + "registryCapacity = '%s' and " + - "registryCode = '%s'", + "registryUnit = '%s'", RegistryDesignation.L.getKey(), RegistryInstrumentType.S.getKey(), RegistryInstrumentType.M.getKey(), diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java index 92441d90b..17ae5c992 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyBalanceRegisterService.java @@ -7,6 +7,7 @@ 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.account.Account; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.CompanySymbols; import ru.clearing.classes.statics.data.register.MoneyBalanceRegister; @@ -33,6 +34,7 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia private final Imdg registryMap; private final Imdg companySymbolsMap; private final Imdg companyMap; + private final Imdg accountMap; @Autowired public MoneyBalanceRegisterService(Consumer kafkaQueue, @@ -43,6 +45,7 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia this.registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class); this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); + this.accountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class); } @Override @@ -57,7 +60,10 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia log.debug("LauncherCommandRequest received from {}", createRegistry_GBRR.topic()); String sqlConditionForRegistry = getSqlForRegistries(); Collection registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry); - //checking for duplicates + if (registries == null) { + log.debug("No registry with such conditions {}", sqlConditionForRegistry); + return; + } registries.forEach((registry -> { Collection moneyBalanceRegisterBySessionIdAndCompanyId = moneyBalanceRegisterMap.getCollectionObjectsByFieldValues( Map.of( @@ -82,9 +88,21 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia CompanySymbols companySymbol = companySymbolsMap.getSingleObjectByFieldValues(Map.of("companyId", registry.getCompanyId())); String setHouseName = company != null ? company.getShortName() : null; String inn = companySymbol != null ? companySymbol.getCompanySymbolValue() : null; + String accountType = registry.getAccountType(); + String account = null; + String infoAccount = null; + if (accountType.equalsIgnoreCase("CLRN")) { + account = registry.getAccount(); + Account accountValue = accountMap.getSingleObjectByFieldValues(Map.of("companyId", registry.getCompanyId(), "accountType", "INFO")); + infoAccount = accountValue != null ? accountValue.getAccount() : null; + } else if (accountType.equalsIgnoreCase("INFO")) { + Account accountValue = accountMap.getSingleObjectByFieldValues(Map.of("companyId", registry.getCompanyId(), "accountType", "CLRN")); + account = accountValue != null ? accountValue.getAccount() : null; + infoAccount = registry.getAccount(); + } moneyBalanceRegister.setSetHouseName(setHouseName); - moneyBalanceRegister.setAccount(registry.getAccount()); - moneyBalanceRegister.setInfoAccount(registry.getAccountType()); + moneyBalanceRegister.setAccount(account); + moneyBalanceRegister.setInfoAccount(infoAccount); moneyBalanceRegister.setRemainderSum(registry.getCloseBalance()); moneyBalanceRegister.setInn(inn); moneyBalanceRegister.setSessionId(registry.getSessionId()); diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryStatus.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryStatus.java index 256d7e49c..46f490bda 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryStatus.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/RegistryStatus.java @@ -6,6 +6,7 @@ public enum RegistryStatus implements IEnumKey { OK("OK"), PROC("PROC"), NACK("NACK"), + NACC("NACC"), FAIL("FAIL"), UNCV("UNCV"), MNG("MNG"),