parent
87c114370c
commit
dac9c80c6f
8 changed files with 25 additions and 54 deletions
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue