---
правки по ревью
This commit is contained in:
aalehin 2023-07-26 15:42:07 +03:00
parent 87c114370c
commit dac9c80c6f
8 changed files with 25 additions and 54 deletions

View file

@ -17,10 +17,7 @@ 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.RegistryCode;
import ru.spcex.platform.enumeration.RegistryDesignation;
import ru.spcex.platform.enumeration.RegistryInstrumentType;
import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -113,7 +110,7 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements
RegistryDesignation.O.getKey(),
RegistryInstrumentType.S.getKey(),
RegistryInstrumentType.M.getKey(),
RegistryCode.T.getKey(),
RegistryUnit.T.getKey(),
RegistryStatus.OK.getKey(),
RegistryStatus.NACK.getKey(),
RegistryStatus.UNCV.getKey(),

View file

@ -17,10 +17,7 @@ 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.RegistryCode;
import ru.spcex.platform.enumeration.RegistryDesignation;
import ru.spcex.platform.enumeration.RegistryInstrumentType;
import ru.spcex.platform.enumeration.RegistryStatus;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -113,7 +110,7 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements
RegistryDesignation.O.getKey(),
RegistryInstrumentType.S.getKey(),
RegistryInstrumentType.M.getKey(),
RegistryCode.T.getKey(),
RegistryUnit.T.getKey(),
RegistryStatus.OK.getKey());
}
}

View file

@ -119,7 +119,7 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements
RegistryDesignation.O.getKey(),
RegistryInstrumentType.S.getKey(),
RegistryInstrumentType.M.getKey(),
RegistryCode.T.getKey(),
RegistryUnit.T.getKey(),
RegistryStatus.FAIL.getKey());
}
}

View file

@ -33,7 +33,7 @@ import static ru.spcex.clearing.imdg.IMDGDistributedNames.*;
import static ru.spcex.platform.enumeration.Task.createRegistry_ECNR;
@Service
public class ExecutionRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<ExecutionCommon> {
public class ExecutionRegisterService extends QueueConsumer implements InitializingBean, ICheckDuplicate<ExecutionCommon, ExecutionRegister> {
private final Logger log = LoggerFactory.getLogger(getClass());
private final Imdg<ExecutionRegister> executionRegisterMap;
@ -72,12 +72,12 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ
Collection<ExecutionFond> collectionFond = executionFondMap.getCollectionObjectsByFieldValues(Map.of("clearingDate", localDateNow));
Collection<ExecutionDeposit> collectionDeposit = executionDepositMap.getCollectionObjectsByFieldValues(Map.of("clearingDate", localDateNow));
collectionFond.forEach(x -> {
if (!isDuplicateInMap(x)) {
if (isDuplicateInMap(x).isEmpty()) {
insertExecutionRegister(true, x);
}
});
collectionDeposit.forEach(x -> {
if (!isDuplicateInMap(x)) {
if (isDuplicateInMap(x).isPresent()) {
insertExecutionRegister(false, x);
}
});
@ -88,16 +88,16 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ
ExecutionRegisterOnSaveRequest request = userRequest.getRequestPayload();
ExecutionCommon common = setUpExecutionCommon(request);
boolean isFond = request.isExecutionFond();
if (!isDuplicateInMap(common)) {
Optional<ExecutionRegister> optionalDuplicate = isDuplicateInMap(common);
if (optionalDuplicate.isEmpty()) {
insertExecutionRegister(isFond, common);
} else {
updateExecutionRegister(isFond, common);
updateExecutionRegister(isFond, common, optionalDuplicate.get());
}
}
private void updateExecutionRegister(boolean isFond, ExecutionCommon common) {
private void updateExecutionRegister(boolean isFond, ExecutionCommon common, ExecutionRegister registerToUpdate) {
log.trace("Started updating ExecutionRegister entity...");
ExecutionRegister registerToUpdate = getDuplicate(common);
registerToUpdate.setSecurityId(common.getSecurityId());
registerToUpdate.setExchangeExecutionTime(common.getExchangeExecutionTime());
registerToUpdate.setAmount(isFond ? ((ExecutionFond) common).getSettlementAmount() : ((ExecutionDeposit) common).getFirstLegAmount());
@ -113,8 +113,8 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ
String sellerTradingClearingRegister = null;
String sellerMoneyAccount = null;
String sellerDepoAccount = null;
Long buyerId = common.getSide().equalsIgnoreCase("BUY") ? common.getCompanyId() : common.getCounterPartyId();
Long sellerId = common.getSide().equalsIgnoreCase("BUY") ? common.getCounterPartyId() : common.getCompanyId();
Long buyerId = common.getSide().equalsIgnoreCase(MoneyFlowSide.BUY.getKey()) ? common.getCompanyId() : common.getCounterPartyId();
Long sellerId = common.getSide().equalsIgnoreCase(MoneyFlowSide.BUY.getKey()) ? common.getCounterPartyId() : common.getCompanyId();
String buyerClearingCode = null;
String buyerTradingClearingRegister = null;
String buyerMoneyAccount = null;
@ -276,16 +276,10 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ
}
@Override
public boolean isDuplicateInMap(ExecutionCommon entity) {
public Optional<ExecutionRegister> isDuplicateInMap(ExecutionCommon entity) {
Map<String, ? extends Comparable<?>> map = Map.of("exchangeExecutionId", entity.getExchangeExecutionId(),
"tradingDate", LocalDate.now()); //clarify timezone
return !executionRegisterMap.getCollectionObjectsByFieldValues(map).isEmpty();
return Optional.ofNullable(executionRegisterMap.getSingleObjectByFieldValues(map));
}
public ExecutionRegister getDuplicate(ExecutionCommon entity) {
Map<String, ? extends Comparable<?>> map = Map.of("exchangeExecutionId", entity.getExchangeExecutionId(),
"tradingDate", LocalDate.now()); //clarify timezone
return executionRegisterMap.getSingleObjectByFieldValues(map);
}
}

View file

@ -1,8 +1,10 @@
package ru.spcex.clearing.registry.service;
public interface ICheckDuplicate<T> {
import java.util.Optional;
public interface ICheckDuplicate<T, T1> {
/**
* @return true - если есть дубликат в реестре, false - если дубликатов нет
* @return возвращает optinal с дубликатом
* */
boolean isDuplicateInMap(T entity);
Optional<T1> isDuplicateInMap(T entity);
}

View file

@ -18,9 +18,9 @@ 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.RegistryCode;
import ru.spcex.platform.enumeration.RegistryDesignation;
import ru.spcex.platform.enumeration.RegistryInstrumentType;
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.time.TimeUtil;
@ -140,6 +140,6 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial
RegistryDesignation.L.getKey(),
RegistryInstrumentType.S.getKey(),
RegistryInstrumentType.M.getKey(),
RegistryCode.T.getKey());
RegistryUnit.T.getKey());
}
}

View file

@ -167,7 +167,7 @@ public class ReportServiceTest_KS {
registry_1.setCompanyId(COMPANY_ID);
registry_1.setAccount("ACCOUNT");
registry_1.setAccountType(AccountType.Clrn.getKey());
registry_1.setRegistryCode(RegistryCode.T.getKey());
registry_1.setRegistryCode(RegistryUnit.T.getKey());
registryImdg.insert(registry_1);
Statement statement_1 = new Statement();
@ -259,7 +259,7 @@ public class ReportServiceTest_KS {
registry_1.setCompanyId(COMPANY_ID);
registry_1.setAccount("ACCOUNT");
registry_1.setAccountType(AccountType.Depo.getKey());
registry_1.setRegistryCode(RegistryCode.T.getKey());
registry_1.setRegistryCode(RegistryUnit.T.getKey());
registryImdg.insert(registry_1);
EquitySecurity equitySecurity = new EquitySecurity();

View file

@ -1,19 +0,0 @@
package ru.spcex.platform.enumeration;
import ru.spcex.platform.utils.enumeration.IEnumKey;
public enum RegistryCode implements IEnumKey {
T("T");
//TODO где взять дополнительные значения для registry code?
private final String key;
RegistryCode(String key) {
this.key = key;
}
@Override
public String getKey() {
return key;
}
}