---
рефакторинг
This commit is contained in:
aalehin 2023-07-26 18:22:30 +03:00
parent 98db18e687
commit 9518c7130a
13 changed files with 176 additions and 61 deletions

View file

@ -0,0 +1,26 @@
package ru.spcex.clearing.registry.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import ru.spcex.clearing.registry.validation.ValuesOfMapNonNullRule;
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.Function;
@Configuration
public class ValidationConfig {
@Bean("fieldValuesValidator")
public Function<Map<String, ?>, IValidator> fieldValuesValidator() {
return map -> {
ImdgValidationContext<Map<String, ?>> context = new ImdgValidationContext<>();
context.setValidatedObject(map);
return new ValidatorImpl<>(context,
new ValuesOfMapNonNullRule()
);
};
}
}

View file

@ -17,35 +17,41 @@ 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.RegistryDesignation;
import ru.spcex.platform.enumeration.RegistryInstrumentType;
import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.RegistryUnit;
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.Collection;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException;
import static ru.spcex.platform.enumeration.Task.createRegistry_ADLR;
@Service
public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements InitializingBean {
public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<Registry, AdmittedLiabilitiesRegister> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<AdmittedLiabilitiesRegister> admittedLiabilitiesRegisterMap;
private final Imdg<Registry> registryMap;
private final Imdg<Company> companyMap;
private final Imdg<Security> securityMap;
private final Function<Map<String, ?>, IValidator> fieldValuesValidator;
@Autowired
public AdmittedLiabilitiesRegisterService(Consumer<String, Object> kafkaQueue,
Producer<String, Object> kafkaProducer,
ImdgProvider imdgProvider) {
ImdgProvider imdgProvider, Function<Map<String, ?>, IValidator> fieldValuesValidator) {
super(kafkaQueue, kafkaProducer);
this.admittedLiabilitiesRegisterMap = imdgProvider.getImdg(IMDGDistributedNames.Map_AdmittedLiabilitiesRegister, AdmittedLiabilitiesRegister.class);
this.registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
this.securityMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class);
this.fieldValuesValidator = fieldValuesValidator;
}
@Override
@ -68,9 +74,7 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements
return;
}
registries.forEach((registry -> {
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()) {
if (isDuplicateInMap(registry).isEmpty()) {
insertAdmittedLiabilitiesRegister(registry);
}
}
@ -118,4 +122,11 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements
RegistryStatus.FAIL.getKey()
);
}
@Override
public Optional<AdmittedLiabilitiesRegister> isDuplicateInMap(Registry entity) {
Map<String, ? extends Comparable<?>> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId());
return Optional.ofNullable(admittedLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues));
}
}

View file

@ -17,19 +17,22 @@ 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.RegistryDesignation;
import ru.spcex.platform.enumeration.RegistryInstrumentType;
import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.RegistryUnit;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException;
import static ru.spcex.platform.enumeration.Task.createRegistry_CDLR;
@Service
public class CoveredLiabilitiesRegisterService extends QueueConsumer implements InitializingBean {
public class CoveredLiabilitiesRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<Registry, CoveredLiabilitiesRegister> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<CoveredLiabilitiesRegister> coveredLiabilitiesRegisterMap;
@ -69,9 +72,7 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements
return;
}
registries.forEach((registry -> {
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()) {
if (isDuplicateInMap(registry).isEmpty()) {
insertCoveredLiabilitiesRegister(registry);
}
}
@ -113,4 +114,10 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements
RegistryUnit.T.getKey(),
RegistryStatus.OK.getKey());
}
@Override
public Optional<CoveredLiabilitiesRegister> isDuplicateInMap(Registry entity) {
Map<String, ? extends Comparable<?>> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId());
return Optional.ofNullable(coveredLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues));
}
}

View file

@ -23,12 +23,12 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException;
import static ru.spcex.platform.enumeration.Task.createRegistry_GRRT;
@Service
public class DepoBalanceRegisterService extends QueueConsumer implements InitializingBean {
public class DepoBalanceRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<Registry, DepoBalanceRegister> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<DepoBalanceRegister> depoBalanceRegisterMap;
@ -53,7 +53,7 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial
public void depoBalanceRegisterNew(BaseRequest<LauncherCommandRequest> userRequest) {
log.debug("LauncherCommandRequest received from {}", createRegistry_GRRT.topic());
if (userRequest.getRequestPayload().getCompanyId() == null ){
if (userRequest.getRequestPayload().getCompanyId() == null) {
log.debug("No companyId in LauncherCommandRequest.id={}", userRequest.getId());
return;
}
@ -65,9 +65,7 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial
return;
}
registries.forEach((registry -> {
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()) {
if (isDuplicateInMap(registry).isEmpty()) {
insertDepoBalanceRegister(registry);
}
}
@ -99,4 +97,10 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial
pb.sql(codeSql.build())
);
}
@Override
public Optional<DepoBalanceRegister> isDuplicateInMap(Registry entity) {
Map<String, ? extends Comparable<?>> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId());
return Optional.ofNullable(depoBalanceRegisterMap.getFirstObjectByFieldValues(fieldValues));
}
}

View file

@ -22,13 +22,13 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException;
import static ru.spcex.platform.enumeration.Task.createRegistry_GORD;
import static ru.spcex.platform.enumeration.Task.createRegistry_GORR;
@Service
public class DepoPaymentInstructionRegisterService extends QueueConsumer implements InitializingBean {
public class DepoPaymentInstructionRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<PaymentInstruction, DepoPaymentInstructionRegister> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<DepoPaymentInstructionRegister> depoPaymentInstructionRegisterMap;
@ -36,6 +36,7 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme
private final Imdg<Session> sessionMap;
private final Imdg<TradingClearingRegistry> tradingClearingRegistryMap;
private final Imdg<InOutDirectionDictionary> InOutDirectionDictionaryMap;
@Autowired
public DepoPaymentInstructionRegisterService(Consumer<String, Object> kafkaQueue,
Producer<String, Object> kafkaProducer,
@ -65,15 +66,11 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme
return;
}
for (Session session : actualSessions) {
Map<String, ? extends Comparable<?>> fieldValues = getFieldValuesOrThrowException(Map.of("sessionId", session.getId()));
Map<String, ? extends Comparable<?>> fieldValues = Map.of("sessionId", session.getId());
Collection<PaymentInstruction> paymentInstructionBySessionId =
paymentInstructionMap.getCollectionObjectsByFieldValues(fieldValues);
for (PaymentInstruction paymentInstruction : paymentInstructionBySessionId) {
DepoPaymentInstructionRegister depoPaymentInstructionRegister = depoPaymentInstructionRegisterMap.getFirstObjectByFieldValues(Map.of(
"companyId", paymentInstruction.getSenderId(),
"sessionId", paymentInstruction.getSessionId())
);
if (depoPaymentInstructionRegister == null){
if (isDuplicateInMap(paymentInstruction).isEmpty()) {
insertDepoPaymentInstructionRegister(paymentInstruction);
}
}
@ -90,7 +87,7 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme
depoPaymentInstructionRegister.setCreated(Instant.now());
depoPaymentInstructionRegister.setUpdated(Instant.now());
depoPaymentInstructionRegister.setCompanyId(paymentInstruction.getSenderId());
depoPaymentInstructionRegister.setTradingClearingRegistryType(tradingClearingRegistry.getTradingClearingRegistryType() );
depoPaymentInstructionRegister.setTradingClearingRegistryType(tradingClearingRegistry.getTradingClearingRegistryType());
depoPaymentInstructionRegister.setTradingClearingRegistry(tradingClearingRegistry.getCode());
depoPaymentInstructionRegister.setCbCode("RNCB-BE-01");
depoPaymentInstructionRegister.setQuantity(paymentInstruction.getCreditLeg_amount());
@ -101,4 +98,12 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme
depoPaymentInstructionRegisterMap.insert(depoPaymentInstructionRegister);
log.debug("inserted successfully DepoBalanceRegister entity with id: {}", depoPaymentInstructionRegister.getId());
}
@Override
public Optional<DepoPaymentInstructionRegister> isDuplicateInMap(PaymentInstruction entity) {
return Optional.ofNullable(depoPaymentInstructionRegisterMap.getFirstObjectByFieldValues(Map.of(
"companyId", entity.getSenderId(),
"sessionId", entity.getSessionId())
));
}
}

View file

@ -26,12 +26,12 @@ import java.time.Instant;
import java.time.LocalDate;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException;
import static ru.spcex.platform.enumeration.Task.createRegistry_EXLR;
@Service
public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements InitializingBean {
public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<Registry, ExcludeLiabilitiesRegister> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<ExcludeLiabilitiesRegister> excludeLiabilitiesRegisterMap;
@ -73,9 +73,7 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements
return;
}
registries.forEach((registry -> {
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()) {
if (isDuplicateInMap(registry).isEmpty()) {
insertExcludeLiabilitiesRegister(registry);
}
}
@ -122,4 +120,10 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements
RegistryUnit.T.getKey(),
RegistryStatus.FAIL.getKey());
}
@Override
public Optional<ExcludeLiabilitiesRegister> isDuplicateInMap(Registry entity) {
Map<String, ? extends Comparable<?>> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId());
return Optional.ofNullable(excludeLiabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues));
}
}

View file

@ -2,9 +2,13 @@ package ru.spcex.clearing.registry.service;
import java.util.Optional;
/**
* @param <T> - тип объекта по которому мы будем проверять наличие дубликата
* @param <T1> - тип объекта (реестра) который мы нашли как дубликат
* */
public interface ICheckDuplicate<T, T1> {
/**
* @return возвращает optinal с дубликатом
* @return возвращает optional с дубликатом
* */
Optional<T1> isDuplicateInMap(T entity);
}

View file

@ -28,12 +28,12 @@ import ru.spcex.platform.utils.time.TimeUtil;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException;
import static ru.spcex.platform.enumeration.Task.createRegistry_LBSR;
@Service
public class LiabilitiesRegisterService extends QueueConsumer implements InitializingBean {
public class LiabilitiesRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<Registry, LiabilitiesRegister> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<LiabilitiesRegister> liabilitiesRegisterMap;
@ -72,9 +72,7 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial
Collection<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry);
//checking for duplicates
registries.forEach((registry -> {
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()) {
if (isDuplicateInMap(registry).isEmpty()) {
insertLiabilitiesRegister(registry);
}
}
@ -142,4 +140,10 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial
RegistryInstrumentType.M.getKey(),
RegistryUnit.T.getKey());
}
@Override
public Optional<LiabilitiesRegister> isDuplicateInMap(Registry entity) {
Map<String, ? extends Comparable<?>> fieldValues = Map.of("companyId", entity.getCompanyId(), "sessionId", entity.getSessionId());
return Optional.ofNullable(liabilitiesRegisterMap.getFirstObjectByFieldValues(fieldValues));
}
}

View file

@ -26,12 +26,12 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import static ru.spcex.clearing.registry.util.FieldValuesValidator.getFieldValuesOrThrowException;
import static ru.spcex.platform.enumeration.Task.createRegistry_GBRR;
@Service
public class MoneyBalanceRegisterService extends QueueConsumer implements InitializingBean {
public class MoneyBalanceRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<Registry, MoneyBalanceRegister> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<MoneyBalanceRegister> moneyBalanceRegisterMap;
@ -73,15 +73,7 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia
return;
}
registries.forEach((registry -> {
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()) {
if (isDuplicateInMap(registry).isEmpty()) {
insertMoneyBalanceRegister(registry);
}
}
@ -170,4 +162,14 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia
return prdct;
}
@Override
public Optional<MoneyBalanceRegister> isDuplicateInMap(Registry entity) {
Map<String, ? extends Comparable<?>> fieldValues = Map.of(
"companyId",
entity.getCompanyId(),
"sessionId",
entity.getSessionId()
);
return Optional.ofNullable(moneyBalanceRegisterMap.getFirstObjectByFieldValues(fieldValues));
}
}

View file

@ -20,12 +20,12 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
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 {
public class MoneyPaymentInstructionRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<PaymentInstruction, MoneyPaymentInstructionRegister> {
private final static String TOPIC_NAME = createRegistry_GORR.topic();
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<MoneyPaymentInstructionRegister> moneyPaymentInstructionRegisterMap;
@ -52,16 +52,14 @@ public class MoneyPaymentInstructionRegisterService extends QueueConsumer implem
public void moneyPaymentInstructionRegisterNew(BaseRequest<LauncherCommandRequest> userRequest) {
log.debug("LauncherCommandRequest received from {}", TOPIC_NAME);
Map<String, ? extends Comparable<?>> fieldValuesSectionMkr = getFieldValuesOrThrowException(Map.of("section", "MKR"));
Map<String, ? extends Comparable<?>> fieldValuesSectionMkr = Map.of("section", "MKR");
Collection<Session> actualSessions = sessionMap.getCollectionObjectsByFieldValues(fieldValuesSectionMkr);
actualSessions.forEach(session -> {
Map<String, ? extends Comparable<?>> fieldValuesSessionId = getFieldValuesOrThrowException(Map.of("sessionId", session.getId()));
Map<String, ? extends Comparable<?>> fieldValuesSessionId = Map.of("sessionId", session.getId());
Collection<PaymentInstruction> paymentInstructionBySessionId =
paymentInstructionMap.getCollectionObjectsByFieldValues(fieldValuesSessionId);
for (PaymentInstruction paymentInstruction : paymentInstructionBySessionId) {
Map<String, ? extends Comparable<?>> fieldValuesCompanyIdSessionId = getFieldValuesOrThrowException(Map.of("senderId", paymentInstruction.getSenderId(), "date", paymentInstruction.getClearingDate()));
MoneyPaymentInstructionRegister moneyPaymentInstructionRegister = moneyPaymentInstructionRegisterMap.getFirstObjectByFieldValues(fieldValuesCompanyIdSessionId);
if (moneyPaymentInstructionRegister == null) {
if (isDuplicateInMap(paymentInstruction).isEmpty()) {
insertMoneyPaymentInstructionRegister(paymentInstruction);
}
}
@ -84,4 +82,10 @@ public class MoneyPaymentInstructionRegisterService extends QueueConsumer implem
moneyPaymentInstructionRegisterMap.insert(moneyPaymentInstructionRegister);
log.debug("inserted successfully PaymentInstruction entity with id: {}", paymentInstruction.getId());
}
@Override
public Optional<MoneyPaymentInstructionRegister> isDuplicateInMap(PaymentInstruction entity) {
Map<String, ? extends Comparable<?>> fieldValuesCompanyIdSessionId = Map.of("senderId", entity.getSenderId(), "date", entity.getClearingDate());
return Optional.ofNullable(moneyPaymentInstructionRegisterMap.getFirstObjectByFieldValues(fieldValuesCompanyIdSessionId));
}
}

View file

@ -6,7 +6,7 @@ import java.util.Map;
import java.util.Optional;
public class FieldValuesValidator {
public static List<String> validateFieldValues(Map<String, ?> map) {
public static List<String> delete2(Map<String, ?> map) {
List<String> errors = new ArrayList<>();
map.forEach((key, value) -> {
if (key == null) {
@ -21,8 +21,8 @@ public class FieldValuesValidator {
return errors;
}
public static Map<String, ? extends Comparable<?>> getFieldValuesOrThrowException(Map<String, ? extends Comparable<?>> fieldValues) {
List<String> errors = validateFieldValues(fieldValues);
public static Map<String, ? extends Comparable<?>> delete(Map<String, ? extends Comparable<?>> fieldValues) {
List<String> errors = delete2(fieldValues);
if (!errors.isEmpty()) {
Optional<String> error = errors.stream().findFirst();
throw new IllegalStateException("Illegal state of field and values :" + error.orElse(null));

View file

@ -0,0 +1,18 @@
package ru.spcex.clearing.registry.validation;
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
public enum RegistryError implements IErrorEnumId {
ValidationOfFieldValuesMapError(19000L);
private final Long id;
RegistryError(Long id) {
this.id = id;
}
@Override
public Long getId() {
return id;
}
}

View file

@ -0,0 +1,26 @@
package ru.spcex.clearing.registry.validation;
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.validation.IValidationRule;
import java.util.Map;
import java.util.Optional;
/**
* Проверка наличия компании с переданными в запросе companySymbol и companySymbolCode (реквизиты)
*/
public class ValuesOfMapNonNullRule implements IValidationRule<ImdgValidationContext<Map<String, ? >>> {
@Override
public Optional<EnumMessage> validate(ImdgValidationContext<Map<String, ? >> context) {
Map<String, ? > map = context.getValidatedObject();
for (Map.Entry<String, ?> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value == null) {
return of(RegistryError.ValidationOfFieldValuesMapError, key);
}
}
return empty();
}
}