This commit is contained in:
parent
53a574f34f
commit
2a873a22b3
2 changed files with 46 additions and 11 deletions
|
|
@ -89,6 +89,9 @@ public class EventsReceiver extends QueueConsumer implements InitializingBean {
|
|||
callback(CreateRegistryRequest.class)
|
||||
.setConsumer(event -> registryService.createRegistry(event.getRequestPayload()))
|
||||
.forDestination(Consts.REGISTRY_NEW, callbacks::put);
|
||||
callback(LauncherCommandRequest.class)
|
||||
.setConsumer(event -> registryService.resetBalances())
|
||||
.forDestination(Task.createRegistry_GRYT.topic(), callbacks::put);
|
||||
init();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
|
|||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.Instant;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class RegistryService {
|
||||
|
|
@ -54,22 +57,51 @@ public class RegistryService {
|
|||
|
||||
}
|
||||
|
||||
private RegistryTradingParams createRegistryInfoByType(String type){
|
||||
private RegistryTradingParams createRegistryInfoByType(String type) {
|
||||
TradingClearingRegistryType registryType = IEnumKey.getEnumByKey(TradingClearingRegistryType.class, type);
|
||||
RegistryTradingParams registryInfo = null;
|
||||
//todo спросить про дубль C и T
|
||||
switch (registryType){
|
||||
case Owner_A -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.A, RegistryUnit.T);
|
||||
case Client_B -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.T);
|
||||
case Trustee_C, DepoOfShares_T -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.T);
|
||||
case TrusteeManager_D -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.A);
|
||||
case Issuer_E -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.E, RegistryUnit.R);
|
||||
case ToThePlacementOrRedeem_Z -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.Z, RegistryUnit.R);
|
||||
case DepoBond_H -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.R);
|
||||
case DepoOfTrustedBond_N -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.C, RegistryUnit.R);
|
||||
case DepoOfTrustedShares_S -> registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.C, RegistryUnit.T);
|
||||
switch (registryType) {
|
||||
case Owner_A ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.A, RegistryUnit.T);
|
||||
case Client_B ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.M, RegistryCapacity.B, RegistryUnit.T);
|
||||
case Trustee_C, DepoOfShares_T ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.T);
|
||||
case TrusteeManager_D ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.A);
|
||||
case Issuer_E ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.E, RegistryUnit.R);
|
||||
case ToThePlacementOrRedeem_Z ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.Z, RegistryUnit.R);
|
||||
case DepoBond_H ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.A, RegistryUnit.R);
|
||||
case DepoOfTrustedBond_N ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.C, RegistryUnit.R);
|
||||
case DepoOfTrustedShares_S ->
|
||||
registryInfo = new RegistryTradingParams(RegistryDesignation.A, RegistryInstrumentType.S, RegistryCapacity.C, RegistryUnit.T);
|
||||
}
|
||||
return registryInfo;
|
||||
}
|
||||
|
||||
|
||||
public void resetBalances() {
|
||||
Collection<Registry> registriesA = registryImdg.getCollectionObjectsByFieldValues(Map.of(
|
||||
"registryDesignation", RegistryDesignation.A.getKey())
|
||||
);
|
||||
|
||||
for (Registry registry : registriesA) {
|
||||
if (RegistryUnit.B.equalsByKey(registry.getRegistryUnit())) {
|
||||
registry.setBalance(BigDecimal.ZERO);
|
||||
}
|
||||
registry.setOpenBalance(BigDecimal.ZERO);
|
||||
registry.setCloseBalance(BigDecimal.ZERO);
|
||||
registry.setCheckBalance(BigDecimal.ZERO);
|
||||
registry.setDiffBalance(BigDecimal.ZERO);
|
||||
registry.setPlanBalance(BigDecimal.ZERO);
|
||||
|
||||
registry.setUpdated(Instant.now());
|
||||
registryImdg.update(registry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue