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 18460747a..963e7d282 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 @@ -17,7 +17,10 @@ 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.*; +import ru.spcex.platform.enumeration.RegistryCode; +import ru.spcex.platform.enumeration.RegistryDesignation; +import ru.spcex.platform.enumeration.RegistryInstrumentType; +import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -25,8 +28,8 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; +import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; 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 { @@ -68,7 +71,8 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements return; } registries.forEach((registry -> { - Collection admittedLiabilitiesRegistersBySessionIdAndCompanyId = admittedLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Map> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Collection admittedLiabilitiesRegistersBySessionIdAndCompanyId = admittedLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(fieldValues); if (admittedLiabilitiesRegistersBySessionIdAndCompanyId == null || admittedLiabilitiesRegistersBySessionIdAndCompanyId.isEmpty()) { insertAdmittedLiabilitiesRegister(registry); } @@ -104,7 +108,7 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + "registryUnit = '%s' and " + - "status in ('%s','%s','%s','%s','%s')" + "registryStatus in ('%s','%s','%s','%s','%s')" , RegistryDesignation.O.getKey(), RegistryInstrumentType.S.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 a7d2f1f63..2591a06ef 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 @@ -17,7 +17,10 @@ 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.enumeration.RegistryCode; +import ru.spcex.platform.enumeration.RegistryDesignation; +import ru.spcex.platform.enumeration.RegistryInstrumentType; +import ru.spcex.platform.enumeration.RegistryStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -25,7 +28,7 @@ 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.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; import static ru.spcex.platform.enumeration.Task.createRegistry_CDLR; @Service @@ -69,7 +72,8 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements return; } registries.forEach((registry -> { - Collection coveredLiabilitiesRegisterBySessionIdAndCompanyId = coveredLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Map> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Collection coveredLiabilitiesRegisterBySessionIdAndCompanyId = coveredLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(fieldValues); if (coveredLiabilitiesRegisterBySessionIdAndCompanyId == null || coveredLiabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) { insertCoveredLiabilitiesRegister(registry); } @@ -104,7 +108,7 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements private String getSqlForRegistries() { return String.format("registryDesignation = '%s' and " + "registryInstrumentType in ('%s','%s') and " + - "registryUnit = '%s' and" + + "registryUnit = '%s' and " + "registryStatus = '%s'", RegistryDesignation.O.getKey(), RegistryInstrumentType.S.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 ba0556bf0..712b065f8 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 @@ -21,6 +21,7 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; +import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; import static ru.spcex.platform.enumeration.Task.createRegistry_GRRT; @Service @@ -57,7 +58,8 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial return; } registries.forEach((registry -> { - Collection depoBalanceRegisterBySessionIdAndCompanyId = depoBalanceRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Map> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Collection depoBalanceRegisterBySessionIdAndCompanyId = depoBalanceRegisterMap.getCollectionObjectsByFieldValues(fieldValues); if (depoBalanceRegisterBySessionIdAndCompanyId == null || depoBalanceRegisterBySessionIdAndCompanyId.isEmpty()) { insertDepoBalanceRegister(registry); } 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 6e03d9b4a..edfb78671 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 @@ -23,6 +23,7 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; +import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; import static ru.spcex.platform.enumeration.Task.createRegistry_GORR; import static ru.spcex.platform.enumeration.Task.createRegistry_GRRT; @@ -64,8 +65,9 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme return; } for (Session session : actualSessions) { + Map> fieldValues = getFieldValuesOrThrowException(Map.of("sessionId", session.getId())); Collection paymentInstructionBySessionId = - paymentInstructionMap.getCollectionObjectsByFieldValues(Map.of("sessionId", session.getId())); + paymentInstructionMap.getCollectionObjectsByFieldValues(fieldValues); for (PaymentInstruction paymentInstruction : paymentInstructionBySessionId) { DepoPaymentInstructionRegister depoPaymentInstructionRegister = depoPaymentInstructionRegisterMap.getSingleObjectByFieldValues(Map.of( "companyId", paymentInstruction.getSenderId(), 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 05ded367e..5546df5ab 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 @@ -27,8 +27,8 @@ import java.time.LocalDate; import java.util.Collection; import java.util.Map; +import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; 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 { @@ -73,7 +73,8 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements return; } registries.forEach((registry -> { - Collection excludeLiabilitiesRegisterBySessionIdAndCompanyId = excludeLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Map> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Collection excludeLiabilitiesRegisterBySessionIdAndCompanyId = excludeLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(fieldValues); if (excludeLiabilitiesRegisterBySessionIdAndCompanyId == null || excludeLiabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) { insertExcludeLiabilitiesRegister(registry); } 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 764450b39..c42e48ba4 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 @@ -30,7 +30,7 @@ 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.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; import static ru.spcex.platform.enumeration.Task.createRegistry_LBSR; @Service @@ -73,7 +73,8 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial Collection registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry); //checking for duplicates registries.forEach((registry -> { - Collection liabilitiesRegisterBySessionIdAndCompanyId = liabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Map> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId())); + Collection liabilitiesRegisterBySessionIdAndCompanyId = liabilitiesRegisterMap.getCollectionObjectsByFieldValues(fieldValues); if (liabilitiesRegisterBySessionIdAndCompanyId == null || liabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) { insertLiabilitiesRegister(registry); } 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 17ae5c992..259ebc713 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 @@ -24,6 +24,7 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; +import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; import static ru.spcex.platform.enumeration.Task.createRegistry_GBRR; @Service @@ -65,14 +66,14 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia return; } registries.forEach((registry -> { - Collection moneyBalanceRegisterBySessionIdAndCompanyId = moneyBalanceRegisterMap.getCollectionObjectsByFieldValues( - Map.of( + Map> fieldValues = getFieldValuesOrThrowException(Map.of( "companyId", registry.getCompanyId(), "sessionId", registry.getSessionId() ) ); + Collection moneyBalanceRegisterBySessionIdAndCompanyId = moneyBalanceRegisterMap.getCollectionObjectsByFieldValues(fieldValues); if (moneyBalanceRegisterBySessionIdAndCompanyId == null || moneyBalanceRegisterBySessionIdAndCompanyId.isEmpty()) { insertMoneyBalanceRegister(registry); } diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java index fbfa88193..e1113ab5d 100644 --- a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/service/MoneyPaymentInstructionRegisterService.java @@ -21,12 +21,13 @@ import java.time.Instant; import java.util.Collection; import java.util.Map; +import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException; import static ru.spcex.platform.enumeration.Task.createRegistry_GORR; @Service public class MoneyPaymentInstructionRegisterService extends QueueConsumer implements InitializingBean { + private final static String TOPIC_NAME = createRegistry_GORR.topic(); private final Logger log = LoggerFactory.getLogger(getClass()); - private final Imdg moneyPaymentInstructionRegisterMap; private final Imdg paymentInstructionMap; private final Imdg sessionMap; @@ -45,26 +46,18 @@ public class MoneyPaymentInstructionRegisterService extends QueueConsumer implem public void afterPropertiesSet() { callback(LauncherCommandRequest.class) .setConsumer(this::moneyPaymentInstructionRegisterNew) - .forDestination(createRegistry_GORR.topic(), callbacks::put); + .forDestination(TOPIC_NAME, callbacks::put); init(); } public void moneyPaymentInstructionRegisterNew(BaseRequest userRequest) { - log.debug("LauncherCommandRequest received from {}", createRegistry_GORR.topic()); - Collection actualSessions = sessionMap.getCollectionObjectsByFieldValues( - Map.of( - "section", - "MKR" - ) - ); + log.debug("LauncherCommandRequest received from {}", TOPIC_NAME); + Map> fieldValuesSectionMkr = getFieldValuesOrThrowException(Map.of("section", "MKR")); + Collection actualSessions = sessionMap.getCollectionObjectsByFieldValues(fieldValuesSectionMkr); actualSessions.forEach(session -> { - Collection paymentInstructionBySessionId = - paymentInstructionMap.getCollectionObjectsByFieldValues( - Map.of( - "sessionId", - session.getId() - ) - ); + Map> fieldValuesSessionId = getFieldValuesOrThrowException(Map.of("sessionId", session.getId())); + Collection paymentInstructionBySessionId = + paymentInstructionMap.getCollectionObjectsByFieldValues(fieldValuesSessionId); for (PaymentInstruction paymentInstruction : paymentInstructionBySessionId) { MoneyPaymentInstructionRegister moneyPaymentInstructionRegister = moneyPaymentInstructionRegisterMap.getSingleObjectByFieldValues(Map.of( "companyId", paymentInstruction.getSenderId(), diff --git a/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/util/FieldValuesValidator.java b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/util/FieldValuesValidator.java new file mode 100644 index 000000000..26e166102 --- /dev/null +++ b/clearing-parent/registry-service/src/main/java/ru/spcex/clearing/registry/util/FieldValuesValidator.java @@ -0,0 +1,32 @@ +package ru.spcex.clearing.registry.util; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +public class FieldValuesValidator { + public static List validateFieldValues(Map map) { + List errors = new ArrayList<>(); + map.forEach((key, value) -> { + if (key == null) { + errors.add("Key is null!"); + } else if (key.isEmpty()) { + errors.add("Key is empty!"); + } + if (value == null) { + errors.add("Value is null!"); + } + }); + return errors; + } + + public static Map> getFieldValuesOrThrowException(Map> fieldValues) { + List errors = validateFieldValues(fieldValues); + if (!errors.isEmpty()) { + Optional error = errors.stream().findFirst(); + throw new IllegalStateException("Illegal state of field and values :" + error.orElse(null)); + } + return fieldValues; + } +}