---
fix up
This commit is contained in:
aalehin 2023-06-01 14:23:03 +03:00
parent 5fa0bcd9be
commit dab63ad8be
9 changed files with 72 additions and 32 deletions

View file

@ -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<AdmittedLiabilitiesRegister> admittedLiabilitiesRegistersBySessionIdAndCompanyId = admittedLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Map<String, ? extends Comparable<?>> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Collection<AdmittedLiabilitiesRegister> 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(),

View file

@ -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<CoveredLiabilitiesRegister> coveredLiabilitiesRegisterBySessionIdAndCompanyId = coveredLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Map<String, ? extends Comparable<?>> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Collection<CoveredLiabilitiesRegister> 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(),

View file

@ -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<DepoBalanceRegister> depoBalanceRegisterBySessionIdAndCompanyId = depoBalanceRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Map<String, ? extends Comparable<?>> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Collection<DepoBalanceRegister> depoBalanceRegisterBySessionIdAndCompanyId = depoBalanceRegisterMap.getCollectionObjectsByFieldValues(fieldValues);
if (depoBalanceRegisterBySessionIdAndCompanyId == null || depoBalanceRegisterBySessionIdAndCompanyId.isEmpty()) {
insertDepoBalanceRegister(registry);
}

View file

@ -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<String, ? extends Comparable<?>> fieldValues = getFieldValuesOrThrowException(Map.of("sessionId", session.getId()));
Collection<PaymentInstruction> paymentInstructionBySessionId =
paymentInstructionMap.getCollectionObjectsByFieldValues(Map.of("sessionId", session.getId()));
paymentInstructionMap.getCollectionObjectsByFieldValues(fieldValues);
for (PaymentInstruction paymentInstruction : paymentInstructionBySessionId) {
DepoPaymentInstructionRegister depoPaymentInstructionRegister = depoPaymentInstructionRegisterMap.getSingleObjectByFieldValues(Map.of(
"companyId", paymentInstruction.getSenderId(),

View file

@ -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<ExcludeLiabilitiesRegister> excludeLiabilitiesRegisterBySessionIdAndCompanyId = excludeLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Map<String, ? extends Comparable<?>> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Collection<ExcludeLiabilitiesRegister> excludeLiabilitiesRegisterBySessionIdAndCompanyId = excludeLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(fieldValues);
if (excludeLiabilitiesRegisterBySessionIdAndCompanyId == null || excludeLiabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) {
insertExcludeLiabilitiesRegister(registry);
}

View file

@ -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<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry);
//checking for duplicates
registries.forEach((registry -> {
Collection<LiabilitiesRegister> liabilitiesRegisterBySessionIdAndCompanyId = liabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Map<String, ? extends Comparable<?>> fieldValues = getFieldValuesOrThrowException(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
Collection<LiabilitiesRegister> liabilitiesRegisterBySessionIdAndCompanyId = liabilitiesRegisterMap.getCollectionObjectsByFieldValues(fieldValues);
if (liabilitiesRegisterBySessionIdAndCompanyId == null || liabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) {
insertLiabilitiesRegister(registry);
}

View file

@ -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<MoneyBalanceRegister> moneyBalanceRegisterBySessionIdAndCompanyId = moneyBalanceRegisterMap.getCollectionObjectsByFieldValues(
Map.of(
Map<String, ? extends Comparable<?>> fieldValues = getFieldValuesOrThrowException(Map.of(
"companyId",
registry.getCompanyId(),
"sessionId",
registry.getSessionId()
)
);
Collection<MoneyBalanceRegister> moneyBalanceRegisterBySessionIdAndCompanyId = moneyBalanceRegisterMap.getCollectionObjectsByFieldValues(fieldValues);
if (moneyBalanceRegisterBySessionIdAndCompanyId == null || moneyBalanceRegisterBySessionIdAndCompanyId.isEmpty()) {
insertMoneyBalanceRegister(registry);
}

View file

@ -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<MoneyPaymentInstructionRegister> moneyPaymentInstructionRegisterMap;
private final Imdg<PaymentInstruction> paymentInstructionMap;
private final Imdg<Session> 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<LauncherCommandRequest> userRequest) {
log.debug("LauncherCommandRequest received from {}", createRegistry_GORR.topic());
Collection<Session> actualSessions = sessionMap.getCollectionObjectsByFieldValues(
Map.of(
"section",
"MKR"
)
);
log.debug("LauncherCommandRequest received from {}", TOPIC_NAME);
Map<String, ? extends Comparable<?>> fieldValuesSectionMkr = getFieldValuesOrThrowException(Map.of("section", "MKR"));
Collection<Session> actualSessions = sessionMap.getCollectionObjectsByFieldValues(fieldValuesSectionMkr);
actualSessions.forEach(session -> {
Collection <PaymentInstruction> paymentInstructionBySessionId =
paymentInstructionMap.getCollectionObjectsByFieldValues(
Map.of(
"sessionId",
session.getId()
)
);
Map<String, ? extends Comparable<?>> fieldValuesSessionId = getFieldValuesOrThrowException(Map.of("sessionId", session.getId()));
Collection<PaymentInstruction> paymentInstructionBySessionId =
paymentInstructionMap.getCollectionObjectsByFieldValues(fieldValuesSessionId);
for (PaymentInstruction paymentInstruction : paymentInstructionBySessionId) {
MoneyPaymentInstructionRegister moneyPaymentInstructionRegister = moneyPaymentInstructionRegisterMap.getSingleObjectByFieldValues(Map.of(
"companyId", paymentInstruction.getSenderId(),

View file

@ -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<String> validateFieldValues(Map<String, ?> map) {
List<String> 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<String, ? extends Comparable<?>> getFieldValuesOrThrowException(Map<String, ? extends Comparable<?>> fieldValues) {
List<String> errors = validateFieldValues(fieldValues);
if (!errors.isEmpty()) {
Optional<String> error = errors.stream().findFirst();
throw new IllegalStateException("Illegal state of field and values :" + error.orElse(null));
}
return fieldValues;
}
}