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.registry.AdmittedLiabilitiesRegisterNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.platform.enumeration.RegistryCode;
|
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.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
|
|
@ -113,7 +110,7 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements
|
||||||
RegistryDesignation.O.getKey(),
|
RegistryDesignation.O.getKey(),
|
||||||
RegistryInstrumentType.S.getKey(),
|
RegistryInstrumentType.S.getKey(),
|
||||||
RegistryInstrumentType.M.getKey(),
|
RegistryInstrumentType.M.getKey(),
|
||||||
RegistryCode.T.getKey(),
|
RegistryUnit.T.getKey(),
|
||||||
RegistryStatus.OK.getKey(),
|
RegistryStatus.OK.getKey(),
|
||||||
RegistryStatus.NACK.getKey(),
|
RegistryStatus.NACK.getKey(),
|
||||||
RegistryStatus.UNCV.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.registry.CoveredLiabilitiesRegisterNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.platform.enumeration.RegistryCode;
|
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.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
||||||
|
|
@ -113,7 +110,7 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements
|
||||||
RegistryDesignation.O.getKey(),
|
RegistryDesignation.O.getKey(),
|
||||||
RegistryInstrumentType.S.getKey(),
|
RegistryInstrumentType.S.getKey(),
|
||||||
RegistryInstrumentType.M.getKey(),
|
RegistryInstrumentType.M.getKey(),
|
||||||
RegistryCode.T.getKey(),
|
RegistryUnit.T.getKey(),
|
||||||
RegistryStatus.OK.getKey());
|
RegistryStatus.OK.getKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements
|
||||||
RegistryDesignation.O.getKey(),
|
RegistryDesignation.O.getKey(),
|
||||||
RegistryInstrumentType.S.getKey(),
|
RegistryInstrumentType.S.getKey(),
|
||||||
RegistryInstrumentType.M.getKey(),
|
RegistryInstrumentType.M.getKey(),
|
||||||
RegistryCode.T.getKey(),
|
RegistryUnit.T.getKey(),
|
||||||
RegistryStatus.FAIL.getKey());
|
RegistryStatus.FAIL.getKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ import static ru.spcex.clearing.imdg.IMDGDistributedNames.*;
|
||||||
import static ru.spcex.platform.enumeration.Task.createRegistry_ECNR;
|
import static ru.spcex.platform.enumeration.Task.createRegistry_ECNR;
|
||||||
|
|
||||||
@Service
|
@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 Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
||||||
private final Imdg<ExecutionRegister> executionRegisterMap;
|
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<ExecutionFond> collectionFond = executionFondMap.getCollectionObjectsByFieldValues(Map.of("clearingDate", localDateNow));
|
||||||
Collection<ExecutionDeposit> collectionDeposit = executionDepositMap.getCollectionObjectsByFieldValues(Map.of("clearingDate", localDateNow));
|
Collection<ExecutionDeposit> collectionDeposit = executionDepositMap.getCollectionObjectsByFieldValues(Map.of("clearingDate", localDateNow));
|
||||||
collectionFond.forEach(x -> {
|
collectionFond.forEach(x -> {
|
||||||
if (!isDuplicateInMap(x)) {
|
if (isDuplicateInMap(x).isEmpty()) {
|
||||||
insertExecutionRegister(true, x);
|
insertExecutionRegister(true, x);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
collectionDeposit.forEach(x -> {
|
collectionDeposit.forEach(x -> {
|
||||||
if (!isDuplicateInMap(x)) {
|
if (isDuplicateInMap(x).isPresent()) {
|
||||||
insertExecutionRegister(false, x);
|
insertExecutionRegister(false, x);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
@ -88,16 +88,16 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ
|
||||||
ExecutionRegisterOnSaveRequest request = userRequest.getRequestPayload();
|
ExecutionRegisterOnSaveRequest request = userRequest.getRequestPayload();
|
||||||
ExecutionCommon common = setUpExecutionCommon(request);
|
ExecutionCommon common = setUpExecutionCommon(request);
|
||||||
boolean isFond = request.isExecutionFond();
|
boolean isFond = request.isExecutionFond();
|
||||||
if (!isDuplicateInMap(common)) {
|
Optional<ExecutionRegister> optionalDuplicate = isDuplicateInMap(common);
|
||||||
|
if (optionalDuplicate.isEmpty()) {
|
||||||
insertExecutionRegister(isFond, common);
|
insertExecutionRegister(isFond, common);
|
||||||
} else {
|
} 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...");
|
log.trace("Started updating ExecutionRegister entity...");
|
||||||
ExecutionRegister registerToUpdate = getDuplicate(common);
|
|
||||||
registerToUpdate.setSecurityId(common.getSecurityId());
|
registerToUpdate.setSecurityId(common.getSecurityId());
|
||||||
registerToUpdate.setExchangeExecutionTime(common.getExchangeExecutionTime());
|
registerToUpdate.setExchangeExecutionTime(common.getExchangeExecutionTime());
|
||||||
registerToUpdate.setAmount(isFond ? ((ExecutionFond) common).getSettlementAmount() : ((ExecutionDeposit) common).getFirstLegAmount());
|
registerToUpdate.setAmount(isFond ? ((ExecutionFond) common).getSettlementAmount() : ((ExecutionDeposit) common).getFirstLegAmount());
|
||||||
|
|
@ -113,8 +113,8 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ
|
||||||
String sellerTradingClearingRegister = null;
|
String sellerTradingClearingRegister = null;
|
||||||
String sellerMoneyAccount = null;
|
String sellerMoneyAccount = null;
|
||||||
String sellerDepoAccount = null;
|
String sellerDepoAccount = null;
|
||||||
Long buyerId = common.getSide().equalsIgnoreCase("BUY") ? common.getCompanyId() : common.getCounterPartyId();
|
Long buyerId = common.getSide().equalsIgnoreCase(MoneyFlowSide.BUY.getKey()) ? common.getCompanyId() : common.getCounterPartyId();
|
||||||
Long sellerId = common.getSide().equalsIgnoreCase("BUY") ? common.getCounterPartyId() : common.getCompanyId();
|
Long sellerId = common.getSide().equalsIgnoreCase(MoneyFlowSide.BUY.getKey()) ? common.getCounterPartyId() : common.getCompanyId();
|
||||||
String buyerClearingCode = null;
|
String buyerClearingCode = null;
|
||||||
String buyerTradingClearingRegister = null;
|
String buyerTradingClearingRegister = null;
|
||||||
String buyerMoneyAccount = null;
|
String buyerMoneyAccount = null;
|
||||||
|
|
@ -276,16 +276,10 @@ public class ExecutionRegisterService extends QueueConsumer implements Initializ
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isDuplicateInMap(ExecutionCommon entity) {
|
public Optional<ExecutionRegister> isDuplicateInMap(ExecutionCommon entity) {
|
||||||
Map<String, ? extends Comparable<?>> map = Map.of("exchangeExecutionId", entity.getExchangeExecutionId(),
|
Map<String, ? extends Comparable<?>> map = Map.of("exchangeExecutionId", entity.getExchangeExecutionId(),
|
||||||
"tradingDate", LocalDate.now()); //clarify timezone
|
"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;
|
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.registry.LiabilitiesRegisterNewRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
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.RegistryDesignation;
|
||||||
import ru.spcex.platform.enumeration.RegistryInstrumentType;
|
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.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.utils.time.TimeUtil;
|
import ru.spcex.platform.utils.time.TimeUtil;
|
||||||
|
|
@ -140,6 +140,6 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial
|
||||||
RegistryDesignation.L.getKey(),
|
RegistryDesignation.L.getKey(),
|
||||||
RegistryInstrumentType.S.getKey(),
|
RegistryInstrumentType.S.getKey(),
|
||||||
RegistryInstrumentType.M.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.setCompanyId(COMPANY_ID);
|
||||||
registry_1.setAccount("ACCOUNT");
|
registry_1.setAccount("ACCOUNT");
|
||||||
registry_1.setAccountType(AccountType.Clrn.getKey());
|
registry_1.setAccountType(AccountType.Clrn.getKey());
|
||||||
registry_1.setRegistryCode(RegistryCode.T.getKey());
|
registry_1.setRegistryCode(RegistryUnit.T.getKey());
|
||||||
registryImdg.insert(registry_1);
|
registryImdg.insert(registry_1);
|
||||||
|
|
||||||
Statement statement_1 = new Statement();
|
Statement statement_1 = new Statement();
|
||||||
|
|
@ -259,7 +259,7 @@ public class ReportServiceTest_KS {
|
||||||
registry_1.setCompanyId(COMPANY_ID);
|
registry_1.setCompanyId(COMPANY_ID);
|
||||||
registry_1.setAccount("ACCOUNT");
|
registry_1.setAccount("ACCOUNT");
|
||||||
registry_1.setAccountType(AccountType.Depo.getKey());
|
registry_1.setAccountType(AccountType.Depo.getKey());
|
||||||
registry_1.setRegistryCode(RegistryCode.T.getKey());
|
registry_1.setRegistryCode(RegistryUnit.T.getKey());
|
||||||
registryImdg.insert(registry_1);
|
registryImdg.insert(registry_1);
|
||||||
|
|
||||||
EquitySecurity equitySecurity = new EquitySecurity();
|
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